Software Topics
| OpenCV - ARM NEON Accelerating |
|---|
In the past you could easily build OpenCV with NEON support by adding –mfpu=neon to the compiler command line.
My experience with doing this with the face detector yielded an approximate 2X performance increase.
You can see an example of this running here: http://youtu.be/D2euiWthsSA
The latest version of OpenCV 2.3.1 supports building OpenCV with NEON enabled directly via CMake.
Android hardware targets
You may wish to build OpenCV and samples for multiple hardware targets.
Just change the cmake cache ARM_TARGET to either: "armeabi" "armeab-v7a" "armeab-v7a with NEON"
You may install each of these to the toolchain/NDK, and they should be linked against properly via way of the android-cmake toolchain.
http://opencv.willowgarage.com/wiki/AndroidTrunk
Unfortunately there is only one function in OpenCV specifically accelerated for NEON.
The Hamming algorithm in the BRIEF algorithm has been coded to take advantage of the NEON coprocessor. All other accelerations occur via compiler libraries.











Uncanny Vision Solutions has an accelerated imageprocessing/computervision library called UncannyCV optimized for ARM-Neon. The UncannyCV API interface is not identical to OpenCV APIs. So in that sense we cannot claim to have an accelerated OpenCV library.
But for most of the high level algorithms we have tried to keep the UncannyCV APIs as close as possible to OpenCV.
The APIs can be loosely classified into 3
1. Low level APIs - convolution, morphological, rescaling, rotate/flip, pyramid, histogram, colour conversion etc
2. Mid level APIs - Canny, Hough, K-means clustering, Lens distortion correction, Persepctive transform, Harris Corner, FAST, connected components etc
3. High level APIs - Optical flow, ORB etc
Visit www.uncannyvision.com for more details. We have UncannyCV SDKs for iOS, Android and Linux