基于紧耦合单目、双目和深度VINS系统的对比与分析

泡泡图灵智库,带你精读机器人*会议文章
标题:A Comparative Analysis of Tightly-coupled Monocular, Binocular, andStereo VINS
作者:Mrinal K. Paul, Kejian Wu, Joel A. Hesch, Esha D. Nerurkar, and Stergios I. Roumeliotis
来源:ICRA 2017
编译:博主
欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权


摘要

大家好,今天为大家带来的文章是——基于紧耦合单目、双目和深度VINS系统的对比与分析,该文章发表于ICRA2017。

本文提出了一个基于滑窗的双相机VINS系统(visionaided inertial navigation system),并使用了逆平方根来减少计算误差(注:因为Hessian矩阵中的值非常大,如果有32bit进行表示会丢失大量精度,引入数值误差;而Hessian矩阵经过平方根处理后能够避免此问题)。本文的双相机系统支持双目模式和深度模式(两者区别在于是否使用了双相机之间的约束关系),并且也进一步理论证明了深度模式比双目模式更优的原因。除此之外,本文还评价了双相机系统与单相机系统的优势。

在实验方面,本文测试了不同类型的前段和不同的参数的后端。最终,本文在各种场景和运行模式的数据集下进行了实时运行测试,并且与其他算法进行了比较。


主要贡献

1、 本文提出了一个紧耦合的双目深度的双目VINS系统,能够在手机处理器上实时运行;
2 、 深入详细的比较了单目、双目和深度VINS系统,在不同场景和运行模式下进行了测试;
3、 分析了不同前端和后端参数数值对VINS系统性能的影响;
4、 将本文的算法与OKVIS和ORB-SLAM2进行了比较,展现了本文系统优越的性能。


算法流程

基于紧耦合单目、双目和深度VINS系统的对比与分析
图1 本文所有系统的硬件架构,CL和CR分别是两个相机,I是IMU,另外的参数是各个传感器之间的转换系数。fR、fL是左右单目特征,fS是双目深度特征。

系统状态

在时间节点k,本文系统维护了如下的状态量,其中
Xs描述的是特征点在被第一次观测到时的观测值,Xk描述的是IMU观测值、双目信息、IMU的Bias和速度。
基于紧耦合单目、双目和深度VINS系统的对比与分析

IMU测量值及损失

给定IMU在时间点k到k+1的测量值为:
基于紧耦合单目、双目和深度VINS系统的对比与分析
因此经过积分后可以得到tk~tk+1处的状态量:
基于紧耦合单目、双目和深度VINS系统的对比与分析
需要注意的是此处的XIk描述的内容包含IMU观测值、IMU的bias和速度等状态量。
因此,损失的定义大致如下:
基于紧耦合单目、双目和深度VINS系统的对比与分析

视觉观测及损失

视觉观测主要针对特征点,其观测方程可以用以下公式表达,其中PI(读音)表示的是投影变换,n表示的是高斯噪声:
基于紧耦合单目、双目和深度VINS系统的对比与分析
为定义其损失,必须首先对上式进行线性化,如下所示:
基于紧耦合单目、双目和深度VINS系统的对比与分析
针对单目而言,通过常规的线性化即可得到其损失的定义:
基于紧耦合单目、双目和深度VINS系统的对比与分析
而对于深度系统而言,需要考虑双相机之间的约束关系,特征可能会同时被左右相机观测,因此其损失函数也必须考虑双目约束信息,其损失函数如下:
基于紧耦合单目、双目和深度VINS系统的对比与分析

视觉观测处理

本文的系统一共提供了三种模式的运行设置:单目模式、双目模式和深度模式,单目模式仅仅使用左相机,双目模式单独处理左右相机,深度相机考虑左右相机的约束关系。

同时在三种模式下,本文的系统还提供了两种模式的视觉观测处理模式:1)常规SLAM处理模式,需要恢复处特征点的状态值;2)MSCKF处理模式,将特征点信息直接边缘化,不恢复特征点的状态量,只利用其约束。

前端与后端

本文测试了两种类型的前端,包括:1)基于FAST角点和光流跟踪的前端;2)基于FREAK特征和特征匹配模式的前端。
针对深度模式,前端还需要完成左右相机之间的匹配,本文的是直接在原始鱼眼图像上进行匹配,其核心依据是球面曲线核线。对于光流跟踪,本文用SSD进行匹配;对于FREAK特征,直接进行特征匹配即可。

后端部分本文也依据两种不同的处理方式,分别提供了基于SLAM处理模式和MSCKF处理模式的后端。


主要结果

本文在如下图2所示的系统上进行了测试,使用了两个Chameleon-2相机传感器,装配PT-02118BMP镜头;IMU的型号是MPU-9250;计算平台是NVIDIA Jetson TK1。

基于紧耦合单目、双目和深度VINS系统的对比与分析
图2 本文硬件系统

基于紧耦合单目、双目和深度VINS系统的对比与分析
图3 三种不同运行模式下系统的精度状态,其中M代表单目,D代表双目,S代表深度。F-K表示FASt+光流的前端,F-F表示FREAK+匹配的前端。

基于紧耦合单目、双目和深度VINS系统的对比与分析
图4 展示了不同前端和运行模式对Track长度的敏感程度,其中M-F表示单目FREAK,S-F表示深度FREAK,M-K表示单目光流,M-S表示深度光流。

基于紧耦合单目、双目和深度VINS系统的对比与分析
图5 展示了不同slide-window大小对精度的影响

基于紧耦合单目、双目和深度VINS系统的对比与分析
图6 本文算法与OKVIS和ORB-SLAM2在本文数据集和MAV上的表现。


评论

总体感觉本文的算法和实验都很厉害,其最后的总结也对我们使用VINS类似方法有一定的指导意义。然而缺点在于代码没有公开,无法进一步时验。可喜的是提供了数据集和可执行文件,有兴趣大家可以查阅。

项目链接:
http://mars.cs.umn.edu/research/stereo_vins.php


基于紧耦合单目、双目和深度VINS系统的对比与分析