视觉里程计和视觉slam (slam视觉里程计)

编者序:本文是2017年发表的SVO 2.0,在SVO1.0的基础上增加了对多相机和宽视场相机的支持,增加了运动先验,可以有效跟踪弱角点和边缘像素,提高了算法的稳健性,实验表明每帧跟踪仅需要2.5毫秒,明显比state-of-the-art算法快很,但可以获得相比拟的精度。原文太长,将分上中下三篇分享。上篇很好的综述VO算法,并给出了系统总览与详细部署。中篇是详细算法原理,下篇是实验验证及讨论。

推荐指数☆☆☆☆☆

一、实验评估

我们使用c++实现SVO,并测试其精度、稳健性和运算效率。首先比较提出的稀疏图像对齐算法和半稠密、稠密图像对齐算法,测试patch大小对稀疏方法的影响,最后比较不同配置的SVO整个流程与state-of-the-art在22个不同数据序列上的效果。

1.1 图像对齐:从稀疏到稠密

该实验使用的是已知相机运动、深度和标定的合成数据集Urban Canyon dataset,如下图所示。数据集包括2500帧,帧间间隔是0.2m,平均场景深度是12.4m。试验中选择已知深度的参考帧,并通过图像到模型对齐方法将其后的60帧对齐到参考帧上,每帧在真值2m的距离范围内均匀采样重复对齐800次,当估计的相对位姿接近真值0.1m时认为收敛。该实验测试的是稳健性:从较大的初始扰动中能够成功实现位姿估计表明算法具备处理快速相机运动的能力,测试图像和参考图像之间的距离反映了相机帧频的影响。

视觉里程计和视觉slam,slam视觉里程计

稀疏图像对齐算法,提取100个FAST角点,使用提供的深度图初始化相应的3D点,使用patch大小从1×1到5×5重复试验。对比的半稠密和稠密算法分别是LSD和DTAM。

实验结果如下图所示,横轴代表帧序号,纵轴代表收敛次数百分比。从图中可以看出,半稠密和稠密图像对齐差别很小,这是因为梯度为零的像素由于雅克比行列式为零而不能提供优化信息。我们认为仅在有运动模糊和图像散焦时所有像素才都有用。将patch大小提高到4×4稀疏图像对齐收敛效果逐步提高,再增大patch大小并不能提高收敛。

视觉里程计和视觉slam,slam视觉里程计

与半稠密方法相比,稀疏方法并没有达到同样的收敛,尤其是在到参考帧的距离方面,因此SVO使用稀疏图像对齐仅仅对齐相邻两帧,而不像LSD那样对齐到最后一个关键帧。就运算效率而言,复杂度与优化中使用的像素数成正比,我们可以在使用高帧频相机和稀疏方法与低帧频相机与半稠密方法中折中。

1.2 EUROC数据集测试

EUROC数据集如下图所示,绿色为角点,粉色为边缘点。

视觉里程计和视觉slam,slam视觉里程计

5次试验取平均的结果(绝对变换误差)及与不含闭环检测的ORB-SLAM、LSD-SLAM和DSO的对比如下表所示。为了理解SVO扩展影响,测试了不同配置:仅使用FAST角点、边缘点、使用陀螺仪运动先验信息等,此三者仅优化最后的位姿,而BA是指通过增量平滑算法iSAM2优化所有的关键帧,当新关键帧选择时在iSAM2图中插入并优化每一个新的关键帧,该配置不使用运动先验和边缘点。由于SVO仅仅是视觉里程计,它不检测闭环,仅维护最后的5到10个关键帧组成的局部地图。

视觉里程计和视觉slam,slam视觉里程计

试验表明双目一般可以获得更高的精度,这是因为双目不存在尺度漂移,并且内部相机三角化可以在仅旋转时快速初始化新的3D路标。大多数情况下,SVO比实时模式下的ORB-SLAM和LSD-SLAM精度更高,然而不要求实时或有更强的计算能力时,ORB-SLAM能够进一步优化轨迹从而获得明显精度提高。DSO比单目SVO精度高,DSO中更精确的光度模型或许可以帮助SVO处理Vicon Room序列剧烈光照变化,并且这些序列经常出现仅旋转,使得SVO在这些序列上失败。

当分析实时性和cpu占用率时,SVO的力量开始显现,如下图所示。在PC和TX1上的结果表明,SVO比ORB-SLAM和LSD-SLAM快10倍,同时CPU占用率时它们的40%。这种明显差别的原因在于SVO并不是每帧都提取特征和描述子。此外,作为SLAM算法,ORB-SLAM花费了大部分时间在地图匹配上,使得在已建图区域理论上没有漂移。相反,在前三种配置的SVO中,我们仅仅估计最后一帧相对于最后一些关键帧的位姿。SVO比LSD用了明显少很多的像素,并不能半稠密重建环境,然而去可以在并行处理器中实现。DSO作者文献中给出单线程实时配置下,每个关键帧需要151ms,每帧需要9ms;在五倍实时配置中,关键帧和普通帧分别需要65ms和9ms。当包含BA时,在SVO中处理关键帧要比普通帧多约10ms,体现在搞时间标准差上。使用运动先验信息可以进一步稀疏图像对齐效率,因为可以更接近解空间初始化,需要更少的迭代。

边缘点仅提供了图像域的一维约束,而角点提供了两维约束。因此,当可以提取到足够的角点时,SVO优先使用角点,而在特征纹理不明显角点较少或没有时,边缘点提高了算法稳健性。

视觉里程计和视觉slam,slam视觉里程计

视觉里程计和视觉slam,slam视觉里程计

1.2 TUM数据集测试

TUM数据集时通过Kinect RGBD相机采集的,比使用VI-Sensor采集的EUROC质量低很多,体现在卷帘曝光、运动模糊等。实验结果如下图所示,ORB-SLAM和LSD-SLAM的评估是直接饮用的别人文献数据,其更好性能是由于闭环检测能力。

视觉里程计和视觉slam,slam视觉里程计

1.3 ICL-NUIM数据集测试

该数据是合成数据集,对纯视觉里程计来说挑战性很大,因为很难提取特征和经常性的纯旋转。为保证成功跟踪,试验中FAST角点门限设为5而不是20,实验结果如下图所示。低门限导致检测到许多质量低的特征,然而在SVO*特中**征仅当相应的场景深度成功估计后才使用,深度估计过程有助于辨别分数低的可用于运动估计的稳定特征。

视觉里程计和视觉slam,slam视觉里程计

该数据集上并不能使用BA调整SVO结果,因为iSAM2后端是基于高斯牛顿法的,对欠约束变量非常敏感,导致线性问题欠定。而数据集中的纯旋转和低视差会导致很多欠约束变量,此时使用基于Levenberg Marquardt或加入惯性测量会比较好些。

1.4 Circle数据集测试

本实验探讨广角的用途。我们使用无人机搭载下视相机在屋子里飞了个圆形轨迹,然后用鱼眼相机重复了该过程。SVO实验结果如下图所示。使用透视相机重建的轨迹随时间慢慢漂移而使用鱼眼的估计与groundtruth完美重合。ORB-SLAM和LSD-SLAM开源代码并不支持广角相机,因此使用ORB-SLAM在透视相机数据上测试,但不含闭环时漂移远大于SVO。由于地板上的高频特征,LSD-SLAM在该数据集上不能初始化。

视觉里程计和视觉slam,slam视觉里程计

二、性能讨论

效率

基于特征的方法每帧都有一个关键点和描述子提取的常量时间,如ORB-SLAM中每帧提取ORB特征需要11ms,该常量时间是基于特征的方法的瓶颈。相反,SVO没有该项花销并且受益于高帧频相机,稀疏图像对齐步骤在解空间附近自动初始化,收敛迅速。LSD-SLAM使用了相同的原理,然而跟踪的像素明显多于SVO而慢了一个数量级。总之,在Intel i7 2.8GHZ处理器上,ORB-SLAM和LSD-SLAM每帧大约需要30和23ms,而SVO仅仅需要2.5ms。

精度

SVO通过直接特征对齐获得亚像素特征匹配精度,然后联合优化结构和运动以最小化重投影误差。如果不需要高精度,可以仅对最后相机位姿执行调整refine步骤,获得高帧频;如果需要高精度,我们使用iSAM2联合优化整个轨迹的运动和结构。iSAM2时一种增量平滑算法,保证了优化的稀疏性,当有新的测量时仅更新很少变量,这使得iSAM2可以获得与整个轨迹batch估计同样的精度,并且可以实时实现。使用iSAM2的BA具有一致性,估计的协方差与估计误差一致,一致性估计是与其它传感器融合的前提,因此SVO能够与惯性测量融合。LSD-SLAM固定结构仅优化位姿图,并不能捕获到半稠密深度估计和相机位姿估计的关系。

稳健性

当使用高帧频(如40~80)相机时SVO最稳健。高速相机和稳健深度估计使得可以在重复和高频纹理(草地、椒盐)环境跟踪,如下图所示。 本文提出的概率深度估计方法优于从两个视图三角化点的标准方法之处在于,外点非常少,这是由于每个深度滤波器使用很多测量直到收敛。此外,显式建模了错误测量,使得在高度字相似环境中深度可以收敛。

视觉里程计和视觉slam,slam视觉里程计

SVO另外的优势在于算法直接从优化开始,稀疏图像对齐中的数据关联直接通过几何问题给出,而不需要基于特征方法中的RANSAC。直接从优化开始简化了与运动先验信息结合,这些先验信息可从陀螺仪、多相机rig获得。使用多相机大大增加了对纯旋转的稳健性,因为深度能从相机间的测量三角化。

最后,边缘特征的使用增加了算法的稳健性,实验表明稀疏图像对齐算法可获得与半稠密、稠密相比拟的帧间运动估计稳健性。

To be continue。。。。。。。

英文名称:SVO: Semi-Direct Visual Odometry for Monocular and Multi-Camera Systems

链接:http://www.zora.uzh.ch/id/eprint/127902/1/TRO16_Forster-SVO.pdf

Q:直接方法不需要data association怎么理解?

死磕自律,遇见更好的自己;自斩双臂,方能长出强两翼。

败而不弃,潜龙勿用待时机;执着坚毅,飞升上神创奇迹!

关注该公众号,一起创造奇迹。