4

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

HARRIS Keypoint detection

Harris Keypoint detection

ORB Keypoint detection

enter image description here

I had the opportunity to ask them why did the ArrayFire speedup (over single-threaded CPU implementation) decreases for large images. They answered me that "it was due to the fact OpenCV CPU was processing large scale data very efficiently" - Without giving any technical details.

Do you have an idea on what they might be?

talonmies
  • 70,661
  • 34
  • 192
  • 269
Djeb
  • 77
  • 6
  • mhmm... interesting. I think it's something dealing with SEE instructions. –  Dec 23 '14 at 22:45

1 Answers1

4

I am the one who implemented both Harris and ORB on ArrayFire and actually plotted the graphs you posted. The image samples used were different, so they have different features and different pixels per feature ratio.

The performance of ORB and Harris is dependent on both the number of pixels and features of an image. In the next few weeks, I will try to gather more data and have a more consistent pixels per feature ratio to verify that is the reason.

pentschev
  • 350
  • 1
  • 4