Advices on technologies to use for realtime vision applications

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

Hi damien45.

I would suggest to move to Opencv3.2 since most of Opencv4tegra gpu optimization has been upstream back to opencv

Thank you ! This is exactly the kind of advice that I was looking for ! (I think this information should be pointed out somewhere in the Jetson documentation).

So, I can use Python, and it will save my days !