单目SLAM在移动端应用的实现难点有哪些?

作者:王小新
链接:https://www.zhihu.com/question/50385799/answer/135164952
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

我目前做的项目是类似于Android手机端SLAM,具体目的是什么不便透露,作为过来人,分享下经验,避免后来人走弯路,手机端最难以解决的问题从难到易排序如下:
1.手机处理速度
2.手机卷帘相机
3.人体移动速度
4.手机移动方向
5.多款相机参数难以统一
目前市面上的android手机多种多样,硬件越来越强大,使用人数也是最多,同时也有前人经验将orb-SLAM2移植到手机上的经验,移植过的人因该都知道,使用的时候,加载词袋模型需要花费7-8分钟时间,变成二进制文件也是缓慢,然后出来效果是每秒1-2帧(记不太请),慢的可以,然后果断放弃了。

然后 开始在手机端重写几乎所有算法,框架仿照ORB-SLAM2,以用来更加容易的适用手机的所有的特性,若是想要达到实时效果或者稍有延迟,只有两种路可以选择 1,降低图像的采样率 2,增加手机处理速度,面对需要用在实际中的项目,只有采用谦前者,果断采用每秒10帧采样,并对图像进行压缩,并使用多线程处理,结果效果不好,采样率只有再降~,采样降低势必造成一些精度损失,只能使用其他传感器进行弥补,所以走到了多传感器融合的道路。

然后就是手机相机了,卷帘相机,确实是个头疼的问题,走快了,图像花的不行,发生严重畸变,所有自己就写了个算法对可以用和不可用进行处理,并完善采样过程中的不足,但是依然没有彻底解决,但是解决了不少。

手机移动方向,手机移动方向是个大问题,实际用的时候不能总是手拿着相机不动吧,不现实,Tango不知道怎么做到的,一直研究。

要注意:回环检测一定要适合自己系统重写!!,识别不同场景,目前开源的所有算法几乎都尝试过,不是前期库加载太慢,就是效率太低,无法使用!!

优化算法可以研究后进行移植,适合自己的,我用的是g2o。

再就是手机花费最多的时间是mapping过程,这个过程是将手机形成的三维点进行对帧之间的对照,也就是说是寻找一个三维点被那几个帧看到了,从而进行优化,一定要注意!!!

这里最好解决的就是手机参数了,简单粗暴,每个手机都校准一下呗,然后写到数据库中,这里就怀念iphone了,就那么几种型号,怪不的好多做视觉的都使用iphone,唉!!

补充: 注意尺度问题,我推荐使用IMU进行对尺度补充,可以降低计算成本!!


都是实际中遇到的问题,给大家避免一些坑,说的不对的地方请大家勿喷.

————————————————————————————————————————————————————————————————————
更多高端分析: https://www.zhihu.com/question/50385799

你可能感兴趣的:(机器人ROS,SLAM)