ORB特征提取代码测试
整合ICE-BA、ORB-SLAM2、openvslam中的ORB提取代码,并比较速度,方便以后使用
1. ORB-SLAM2
vsICE-BA
vs openvslam
ICE-BA
和openvslam
都是在原始的ORB-SLAM2基础上进行的优化,主要想保留原有的基于四叉树令特征点均匀分布的操作,
- ORB-SLAM2: 对特征点提取进行了均匀化处理,没有对性能的优化
- ICE-BA: Look-Up-Table优化了描述子计算+
ARM NEMO
指令集加速 - openvslam: 进行了SIMD指令集加速
2. 实际测试
测试数据选取的是EuRoc数据集中的图片,对整个序列提取ORB特征取平均值计算时间
ORB-SLAM2
:
Process image: 3682 of total 3682
Total time: 117.968s, Average time: 32.0392ms/image
#更换ros版本OpenCV3
Process image: 3682 of total 3682
Total time: 108.234s, Average time: 29.3955ms/image
ICE-BA
:
Process image: 3682 of total 3682
Total time: 75.9864s, Average time: 20.6373ms/image
#更换ros版本OpenCV3
Process image: 3682 of total 3682
Total time: 69.3227s, Average time: 18.8275ms/image
openvslam
:未开启SSE加速
Process image: 3682 of total 3682
Total time: 94.2699s, Average time: 25.6029ms/image
openvslam
:开启SSE加速
Process image: 3682 of total 3682
Total time: 89.493s, Average time: 24.3055ms/image
#更换ros版本OpenCV3
Total time: 83.7194s, Average time: 22.7375ms/image
3.分析
ICE-BA优化的比较彻底,速度比较粗暴,以后还是拿ICE-BA的来用吧,openvslam的感觉比较奇怪,SSE似乎没起作用,估计配置问题.