How do i multi thread OpenCV? Or make it run on GPU pipeline

asked 2019-10-04 09:19:08 -0500

After a lot of research, i found that real time object detection is light years ahead of the current state of OpenCV and computer vision. My current demo is working with SURF + FLANN and detects object fairly well but has a very, very low frame rate.

My initial approach was optimizing image quality, but that harms accuracy. So i played with minimum number of matches, maximum numbers of keypoints and other threshold values. I think i have the right amount of accuracy and performance balanced but its still not enough. I need it to be at least 2 times faster and 2 times more accurate. I did do some task manager examination and found that it is running on a single CPU core. Can i make it run on multiple cores? and if so, what would be the most optimal way. Also is it possible to make it run on the GPU?

edit retag flag offensive close merge delete



The SURF function is parallelized with the TBB library, so perhaps you should rebuild OpenCV with TBB support.

Witek gravatar imageWitek ( 2019-10-05 16:58:23 -0500 )edit

real time object detection

yea, your idea is 10 years behind, and won't ever work properly. consider using cnns, like SSD,RCNN or YOLO for this.

berak gravatar imageberak ( 2019-10-08 08:07:35 -0500 )edit