In my previous post <a href="http://sandbox.arrayfire.com/creating-a-simple-corner-detector-with-arrayfire/">Writing a Simple Corner Detector with ArrayFire</a>, I talked a little bit about the new features that we are working on for ArrayFire. Some of these new computer vision features will be available in the next release of ArrayFire, which will be out in just a few months.

For the next release, ArrayFire will have a complete set to start with feature tracking, combining the FAST feature detector [1] and ORB to extract descriptors [2], descriptor matching will be done with the Hamming function. We will also include a dedicated version of the Harris corner detector [3], even knowing we can fully write it using core ArrayFire functions, this implementation will be more straightforward and simpler to use, combined with a better performance.

For this post, I would like to share our current benchmarks for this new set of features. We compare the results of each of these functions to the OpenCV implementations, which is currently one of the best code references for computer vision.

The results shown below were all generated with an Intel Sandy Bridge 32 core processor and an NVIDIA Tesla K20C GPU. Software used is ArrayFire development version and OpenCV 2.4.9, with SSE and CUDA support.

<iframe height=371 width=600 src="//docs.google.com/a/sandbox.arrayfire.com/spreadsheets/d/1OqbdY8B8K7z6_trW2qB1lseDREGzVe7V1OJKsPnmUC4/gviz/chartiframe?oid=516496594" seamless frameborder=0 scrolling=no></iframe>

[1] Rosten, Edward, and Tom Drummond. "Machine learning for high-speed corner detection." Computer Vision–ECCV 2006. Springer Berlin Heidelberg, 2006. 430-443.
[2] Rublee, Ethan, et al. "ORB: an efficient alternative to SIFT or SURF." Computer Vision (ICCV), 2011 IEEE International Conference on. IEEE, 2011.
[3] Harris, Chris, and Mike Stephens. “A combined corner and edge detector.” Alvey vision conference. Vol. 15. 1988.