Ask Your Question
0

openCV ML vs Tensorflow?

asked 2016-06-23 18:53:18 -0600

aaronl gravatar image

Has anyone done a comparison on the nueral nets of openCV and those of TensorFlow? My understanding is that the openCV was written as a fundamental NN for ML, not specialized for only images. There are lots of tools for images in openCV, I understand that. But on the basics of the NN architecture, what are the major feature differences between two such systems?

Thanks, Aaron

edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted
2

answered 2016-06-24 06:26:53 -0600

Eduardo gravatar image

updated 2016-06-24 06:35:17 -0600

In my opinion, you cannot compare OpenCV ML module with TensorFlow (on one hand the ML module contains some classical ML algorithms, on the other hand Tensorflow is one of the state of the art DNN library heavily maintained by Google and other people). Use Tensorflow (or one of the many DNN libraries that exist) if you want to use DNN.

If you want to have both, you should use the Python interface, you will have lots of up to date ML algorithms in scikit and you will be able to use OpenCV and Tensorflow in the same time.

edit flag offensive delete link more
-1

answered 2018-05-01 22:22:34 -0600

Cale gravatar image

The reason why you would want to use TensorFlow (TF) is two-fold, one it supports hardware acceleration, and two it supports distributed systems. The way tensorflow supports said features is it uses nVidia cuDNN, Android NN API, and Intel MKL-DNN. The most important optimizations are in the ARM and nVidia CPUs. There is nothing special about TensorFlow other than Apache Kafka and Hadoop, which there is ABSOLUTELY no reason these features should not be supported by OpenCV 3. It's best to look at Microsoft's CNTK for inspiration. CNTK dominates TF for real-time machine learning because it's an integrated C++ core with cross-language bindings, as opposed to TF's hodgepodge solution of Python, C++, and Java is substantially slower. Microsoft is winning on the core of CNTK. CNTK is by far superior to TF, but TF has the ARM hardware acceleration (which MS is no doubt going to implement in the near future) and ready-to-go cloud GPU support. There are no good reasons why OpenCV 3 should not do this, only I would go with ARM NN SDK over Android NN API.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2016-06-23 18:53:18 -0600

Seen: 6,508 times

Last updated: May 01 '18