Hi !
I’m currently developing a CV algorithm based on OpenCV and TensorFlow. TensorFlow is used for images classification while OpenCV is used for other stuff (background substraction, border detection, etc.)
The prototype has been developed on a laptop using Python 2.7 to ensure that I can do the stuff I need and now I want to run it on a TX2 platform. And I’m wondering which technologies I must use.
In the prototype, I use the following OpenCV functions :
- canny
- cvtColor
- bitwise_and
- findContours
- threshold
- calcHist
- calcBackProject
- getPerspectiveTransform
- undistortPoints
I hesitate between C++ and Python. I do prefer to use Python for its simplicity and productivity (I’m feeling easy with python) but C++ offers the possibility to use the GPU module of OpenCV while there is no binding for this module in Python.
But, because I will use OpenCV4Tegra, I know that some of core OpenCV functions are already optimized with GPU, without having to use OpenCV’s GPU module.
And, because I use TensorFlow for images classification, and because TensorFlow is “the same” as I choose C++ or Python, the task that requires the most computation will be on GPU regardless of language.
To finish, I see that OpenCV 3 has a Python binding for its GPU module
I have to compute 1920x1080@30fps video in real-time (from a UVC webcam).
What would you choose ?
- Python 2.7 / OpenCV4Tegra 2.4.13
- Python 2.7 / OpenCV 3.2 with CUDA support (and using cv.cuda functions everytime it is possible as there is Python bindings for them)
- C++ / OpenCV4Tegra 2.4.13
- C++ / OpenCV 3.2 with CUDA support
Thank you in advance