随着无人机、无人车以及移动机器人的井喷式发展,导航技术成为了制约无人平台广泛应用的瓶颈技术之一。在应用需求的牵引下,视觉/惯性组合导航技术,特别是视觉与微惯性传感器的组合,逐渐发展成为当前自主导航及机器人领域的研究热点。本文介绍的视觉/惯性组合导航技术侧重于利用视觉和惯性信息估计载体的位置、速度、姿态等运动参数以及环境的几何结构参数,而不包含场景障碍物检测以及载体运动轨迹规划等。
视觉/惯性组合导航具有显著的优点:1)微惯性器件和视觉传感器具有体积小、成本低的优点,随着制造技术的不断进步,器件越来越小,且成本越来越低。2)不同于卫星和无线电导航,视觉和惯性导航均不依赖外部设施支撑,可以实现自主导航。3)惯性器件和视觉器件具有很好的互补性,惯性导航误差随时间累积,但是在短时间内可以很好地跟踪载体快速运动,保证短时间的导航精度;而视觉导航在低动态运动中具有很高的估计精度,且引入了视觉闭环矫正可以极大地抑制组合导航误差,两者的组合可以更好地估计导航参数。
视觉和惯性组合导航技术近年来取得了长足的发展。孙永全和田红丽从同步定位与构图(Simultaneous Localization and Mapping,SLAM)的角度对视觉/惯性组合导航技术的基本原理和标志性成果进行了详细分析。Huang对基于滤波技术的视觉/惯性组合导航技术进行了全面的描述,特别是对滤波器的可观性和滤波状态的一致性问题进行了深入的探讨。Huang和Zhao等对基于激光和视觉传感器的SLAM技术进行了全面的介绍,该文引用的文献十分全面,但缺乏基本原理的阐述。当前随着基于机器学习的视觉/惯性组合导航算法性能不断提高,部分算法已达到甚至超过传统的基于模型的组合导航算法性能。因此,非常有必要按照基于模型的算法和基于机器学习的算法对视觉/惯性组合导航技术进行详细的分析。
1 视觉/惯性组合导航技术发展简述
传统的基于视觉几何与运动学模型的视觉和惯性导航技术研究成果非常丰富。本文主要从纯视觉导航以及组合导航2个层次梳理相关工作。
纯视觉导航技术主要有2个分支:一个分支是视觉里程计(Visual Odometry,VO)技术;而另一个分支是视觉同步定位与构图(Visual Simultaneous Localization and Mapping,VSLAM)技术。Scaramuzza教授对早期的VO技术进行了详细的介绍,并阐述了VO技术与VSLAM技术的区别与联系:VO侧重于利用连续图像帧之间的位姿增量进行路径积分,至多包含滑动窗口内的局部地图;VSLAM侧重于全局路径和地图的优化估计,支持重定位和闭环优化;通常VO可以作为VSLAM算法框架的前端。
目前,视觉里程计可以根据使用相机个数的不同分为单目、双目和多目视觉里程计。其中最具有代表性和影响力的主要有三种算法,分别是视觉里程计库(Library for Visual Odometry,LIBVISO)、半直接单目视觉里程计(Semi-Direct Monocular Visual Odometry,SVO)和直接稀疏里程计(Direct Sparse Odometry,DSO)。这三种算法由于代码公开,易于使用,运动估计效果好,成为了研究者们广泛使用和对比的算法。
对于VSLAM算法,目前主流的方法可以分为两类:一类是基于滤波的方法;另一类是基于Bundle Adjustment的优化算法。这两类方法的开创性成果分别是Davison教授提出的Mono SLAM算法和Klein博士提出的并行跟踪与构图(Parallel Tracking And Mapping,PTAM)算法。在2010年国际机器人和自动化大会(IEEE International Conference on Robotics and Automation,ICRA)上,Strasdat的文章指出优化算法比滤波算法的性价比更高,从此以后基于非线性优化的VSLAM算法就渐渐多起来。其中代表性的工作是ORB-SLAM和LSD-SLAM,二者的主要区别是ORB-SLAM的前端采用稀疏特征,而LSDSLAM的前端采用稠密特征。
当然,任何纯视觉导航算法都存在无法避免的固有缺点:依赖于场景的纹理特征、易受光照条件影响以及难以处理快速旋转运动等。因此,为了提高视觉导航系统的稳定性,引入惯性信息是很好的策略。
视觉/惯性组合导航技术与VSLAM算法类似,主要采用两种方案:一种是采用滤波技术融合惯性和视觉信息;另一种是采用非线性迭代优化技术融合惯性和视觉信息。
基于滤波技术的视觉/惯性组合导航算法,可以进一步分为松组合和紧组合两种框架。文献[14-15]使用了卡尔曼滤波器来融合双目相机和惯性器件输出。作为一种松组合方式,组合中没有充分使用惯性器件的输出来辅助图像特征点的匹配、跟踪与野值剔除。2007年,Veth提出了一种视觉辅助低精度惯性导航的方法。该算法使用了多维随机特征跟踪方法,其最大的缺点是跟踪的特征点个数必须保持不变。同年,Mourikis提出了基于多状态约束的卡尔曼滤波器(Multi-State Constraint Kalman Filter,MSCKF)算法[,其优点是在观测模型中不需要包含特征点的空间位置;但是MSCKF算法中存在滤波估计不一致问题:不可观的状态产生错误的可观性,如航向角是不可观的,但MSCKF通过扩展卡尔曼滤波(ExtendedKalman Filter,EKF)线性化后会使航向角产生错误的可观性。为了解决滤波估计不一致问题,李明阳等提出了首次估计雅可比EKF(the First Estimate Jacobian EKF,FEJ-EKF)算法;Huang等提出了基于可观性约束的无迹卡尔曼滤波(Unscented Kalman Filte,UKF)算 法;Castellanos等提出了Robocentric Mapping滤波算法。这些算法均在一定程度上解决了滤波估计不一致问题。
2015年,Bloesch等提出了鲁棒视觉惯性里程计(Robust Visual Inertial Odometry,ROVIO),该算法利用EKF将视觉信息和惯性测量单元(Inertial Measurement Unit,IMU)信息进行紧耦合,在保持精度的同时降低了计算量。Indelman等基于EKF,综合利用了2幅图像间的对极约束和3幅图像之间的三视图约束融合单目相机和惯性器件。基于相同的观测模型,Hu等给出了基于UKF的实现方法。
近年来,基于优化的算法得到了快速发展。Lupton和Sukkarieh于2012年首次提出了利用无初值条件下的惯性积分增量方法来解决高动态条件下的惯性视觉组合导航问题。文中采用了Sliding Window Forced Independence Smoothing技术优化求解状态变量。预积分理论的建立,使得基于优化的视觉/惯性组合导航算法得以实现。受此思想启发,Stefan等采用Partial Marginalization技术,通过优化非线性目标函数来估计滑动窗口内关键帧的位姿参数。其中,目标函数分为视觉约束和惯性约束2个部分:视觉约束由空间特征点的重投影误差表示,而惯性约束由IMU运动学中的误差传播特性表示。该方法不适用于长航时高精度导航,因为没有闭环检测功能,无法修正组合导航系统的累积误差。2017年,Forster等完善了计算关键帧之间惯性积分增量的理论,将该理论扩展到Rotation Group,并分析了其误差传播规律。该算法也未考虑闭环检测问题。同样基于预积分理论,沈劭劼课题组提出了视觉惯性导航(Visual-Inertial Navigation System,VINS)算法。该算法具备自动初始化、在线外参标定、重定位、闭环检测等功能。ORB-SLAM的设计者Mur-Artal等利用预积分理论,将惯性信息引入ORB-SLAM框架,设计了具有重定位和闭环检测等功能的视觉/惯性组合导航算法。关于预积分理论,目前还缺乏积分增量合并以及相应的协方差矩阵合并方法。因此,文献[28]去掉了ORB-SLAM中的关键帧删除功能。表1汇总了基于视觉几何与运动学模型的视觉和惯性导航技术的主要研究成果。
基于模型的视觉/惯性组合导航技术需要信噪比较高的输入数据,算法的整体性能不仅受制于算法的基本原理,还取决于参数的合理性与精确度。相对而言,深度学习神经网络能够通过大数据训练的方式自适应地调节参数,对输入数据具有一定的容错性,因此已有研究人员开发了一系列基于深度学习的视觉/惯性组合导航技术,并已取得一定成果。
使用深度学习神经网络替换传统算法中的个别模块是较为直接的算法设计思路,如利用深度学习神经网络实现里程计前端中的特征点识别与匹配。Detone等提出了SuperPoint算法,该算法首先使用虚拟三维物体的角点作为初始训练集,并将特征点提取网络在此数据集上进行训练;对经过训练的网络在真实场景训练集中进行检测得到自标注点,并将标注有自标注点的真实场景图像进行仿射变化得到匹配的自标注点对,从而得到了最终的训练集;随后使用对称设计的特征点识别网络,将特征提取器读入的原始图像经过多层反卷积层转换为特征点响应图像,响应区域为相邻帧图像匹配特征点的位置。几何对应网络(Geometric Correspondence Network,GCN)则是利用相对位姿标签值构建的几何误差作为匹配特征点空间位置估计值的约束;随后使用多视觉几何模型结合低层特征提取前端网络得到的匹配特征点,求解载体的运动信息。此类低层特征提取前端易于与传统实时定位与建图系统相结合,并且较为轻量,可植入嵌入式平台进行实时解算。
另一种思路是使用深度学习神经网络实现从原始数据到导航参数的整个转化过程。Kendall团队基于图像识别网络GoogleNet开发了一种基于单张图像信息的绝对位姿估计网络PoseNet。首先,搭建绝对位姿回归数据集,配合高精度姿态捕捉设备,为单目相机拍摄的每一帧图像标注绝对位姿标签值;然后使用多层全连接层替换GoogleNet的多个softmax层,并构成位姿回归器,回归器的输出维度与使用欧拉角表示的位姿维数相同;通过长时间的训练,PoseNet能较为准确地将训练数据集图像投影为对应位姿标签,然而没有额外的几何约束,网络收敛较为困难。Wang等在位姿估计网络中引入相邻帧图像信息,构建基于深度学习的单目视觉里程计Deep VO,为了能够同时处理相邻两帧图像的信息,将Flow Net网络的主体作为视觉特征提取器,并使用输入窗口大于1的长短时记忆(Long Short Term Memory,LSTM)网络联合时间轴上相邻多帧图像的高层信息,以此来优化里程计短时间内的估计精度;最后使用全连接层综合图像高层信息,并转化为相邻帧图像的相对位姿估计值。实验结果表明,Deep VO相对于早期基于模型的视觉里程计LIBVISO性能具有一定提升,同时与同类型算法相比,也有明显的性能提升。
与基于模型的视觉/惯性组合导航技术类似,为了提高导航算法的自主性与抗干扰能力,研究人员在基于深度学习的视觉导航技术中引入惯导数据,并为其设计单独的网络来提取有用的数据特征。牛津大学的Clark团队设计了一种端对端的视觉/惯性组合里程计网络VINet,使用双向光流提取网络Flow Net-Corr提取相邻帧图像的高层特征,使用单层全连接层对图像高层特征进行压缩,并使用多节点LSTM网络处理两帧图像间的惯性信息;随后将两种数据的高层特征在单维度上进行结合,构成视觉/惯性信息融合特征;最后使用全连接层将融合特征投影至SE(3)空间中,得到相对位姿估计值。VINet在道路与无人机数据中都显示出较为优秀的性能,同时为基于深度学习的组合导航技术提供了基础模板。
陈昶昊于2019年提出了基于注意力模型的视觉/惯性组合里程计网络Attention-based VIO,网络的基本框架与VINet类似,但视觉特征提取器使用更为轻量的Flow Netsimple卷积层,以此来提高网络运行效率。借鉴自然语言处理领域的注意力机制,使用soft attention和hard attention两种注意力网络剔除融合特征中的噪声高层特征,从而加快训练收敛,提高网络性能。表2汇总了基于机器学习的视觉/惯性组合导航技术的主要研究成果。
在国内,清华大学、上海交通大学、浙江大学、哈尔滨工程大学、国防科技大学、北京航空航天大学、北京理工大学、南京航空航天大学、西北工业大学、电子科技大学、中国科学院自动化研究所等高校和科研机构的多个研究团队近年来在惯性/视觉组合导航领域开展了系统性的研究工作,取得了诸多研究成果。
2 视觉/惯性组合导航技术的典型应用及发展趋势
视觉/惯性组合导航技术是机器人、计算机视觉、导航等领域的研究热点,在国民经济和国防建设中取得了广泛的应用,但也面临着诸多挑战。
2.1 视觉/惯性组合导航技术的典型应用
国民经济领域,在无人机、无人车、机器人、现实增强、高精度地图等应用的推动下,视觉/惯性组合导航技术取得了快速发展。例如Google的Tango项目和无人车项目、微软的Hololens项目、苹果的ARKit项目、百度无人车项目、大疆无人机项目、高德高精度地图项目等大型应用项目都成立了视觉/惯性组合导航技术相关的研究小组,极大地促进了视觉/惯性组合导航技术在国民经济中的应用。以Google的Tango项目为例,其导航定位核心算法是基于滤波框架的MSCKF算法;微软的Hololens项目则是以KinectFusion为基础的SLAM算法。
国防建设领域,由于视觉/惯性组合导航技术不依赖外部人造设施,在卫星拒止环境中有着重要的应用价值。例如美国陆军研发的一种新型联合精确空投系统采用惯性/视觉组合导航技术解决高精度定位问题。嫦娥三号巡视器也采用视觉与惯性组合实现定姿定位。李丰阳等总结了视觉/惯性组合导航技术在地面、空中、水下和深空等多种场景中的应用。
2.2 视觉/惯性组合导航技术的未来发展趋势
视觉/惯性组合导航技术取得了广泛的应用,但在复杂条件下的可靠性还有待加强,其未来的发展主要体现在以下4个方向:
1)提升信息源的质量。首先是提升惯性器件(特别是基于微机电系统(Micro-Electro-Mechanical System,MEMS)工艺的微惯性器件)的零偏稳定性和环境适应性等性能指标;其次是提升视觉传感器的光照动态适应性、快速运动适应性等性能指标;此外,还可以引入更多的传感器,如磁传感器、超声波传感器、激光雷达等,提升复杂条件下组合导航系统的综合性能。
2)提升信息融合算法的水平。视觉和惯性信息各有特点,不同条件下信息的质量也不尽相同,需要设计智能的信息融合机制。目前的算法大多是基于静态场景假设,但在实际应用中,场景都有一定的动态性,动态环境下的视觉/惯性组合导航是提升复杂条件下导航可靠性的重要研究方向。此外,目前基于滤波的信息融合算法仍然存在滤波状态发散或者状态收敛到错误值的情况,需要对系统的可观性进行分析,提升状态估计的一致性。对于优化框架的信息融合算法,目前的预积分理论还有待完善,特别是在SLAM的地图管理中删除关键帧时,与关键帧相关的积分增量及对应的协方差需要合并,目前还缺乏协方差合并方法;而且基于BA的优化算法计算量较大,对于大尺度的闭环优化,计算耗时太久,存在错失闭环优化的情况,急需提升BA算法的效率。
3)发展新的导航理论。大自然中许多动物具有惊人的导航本领,例如:北极燕鸥每年往返于相距数万km远的南北两极地区;信鸽能够在距离饲养巢穴数百km远的地方顺利返回巢穴。模仿和借鉴动物导航本领的仿生导航技术逐渐成为了导航领域研究的热点。胡小平等对仿生导航技术进行了全面的总结。此外,随着多平台集群应用的普及,利用组网编队中平台间导航信息交互来提升位置、速度、姿态等参数估计精度的协同导航技术方兴未艾。谢启龙等从无人机、机器人、无人水下潜航器、导弹4个应用层面梳理了协同导航技术的国内外发展现状。
4)扩充导航系统的功能。目前的视觉/惯性组合导航侧重于导航参数的估计,对于引导和控制等关注较少。随着机器学习技术在视觉/惯性组合导航领域的应用,可以将机器学习在环境理解、避障检测、引导控制等方面的成果融入到导航系统中。