1 | initial version |
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.