ARM-VO is an efficient monocular visual odometry algorithm designed for ARM processors. It uses NEON C intrinsics and multi-threading to accelerate keypoint detection and tracking. Check this video to see the performance on Raspberry Pi 3 and Odroid XU4.
- OpenCV (built with TBB)
How to build?
git clone https://github.com/zanazakaryaie/ARM-VO.git cd ARM-VO cmake . make
Test on KITTI dataset
Download the odometry dataset from here. Open a terminal and type:
./ARM_VO pathToData paramsFileName
ARM-VO recovers the scale if the camera height and pitch angle are provided. Thus, it is not applicable for drones or hand-held cameras.
The algorithm detects small-inter frame translations and pure rotations using GRIC but it doesn't decompose the estimated homography matrix. Track is lost if the camera rotates too much without translation.
If you get low FPS, check your power adapter. Raspberry Pi 3 runs ARM-VO at 8 frames per second (averagelly) if powered up with a 5V-2A adapter.
If you use ARM-VO in an academic work, please cite:
Zakaryaie Nejad, Z. & Hosseininaveh Ahmadabadian, A. Machine Vision and Applications (2019). https://doi.org/10.1007/s00138-019-01037-5
ARM-VO is a part of six-wheel surveying robot project named MOOR.