Why is OpenCV good at handling ORB detection and Harris Keypoints for large scale images?

I attended an Arrayfire webinar hosted by NVIDIA a few weeks ago, and engineers have provided some interesting graphs to compare the performance of the ArrayFire library with OpenCV (1 thread) and GPU (CUDA) processor.

HARRIS Key point definition

Harris Keypoint detection

ORB point recognition

enter image description here

I had the opportunity to ask them why the ArrayFire speedup (over a single threaded CPU implementation) decreases for large images. They told me that "it was because the OpenCV processor was very fast at processing large-scale data" - without any technical details.

Do you have any idea what they might be?

+3


source to share


1 answer


I am the one who implemented both Harris and ORB on ArrayFire and actually made the graph you posted. The sample images were different, so they have different functions and different pixels per factor.



ORB and Harris performance depends on both the number of pixels and the characteristics of the image. In the next few weeks, I will try to collect more data and have more consistent pixels for each ratio to see if this is the reason.

+4


source







All Articles