鱼眼摄像头SLAM
鱼眼摄像头SLAM
在机器人技术、摄影测量学和计算机视觉等领域,鲁棒相机位姿估计是许多视觉应用的核心。近年来,在复杂、大规模的室内外环境中,人们越来越关注相机位姿估计方法的实时性、通用性和可操作性。其中,相机的视场角起着重要的作用,特别是在具有挑战性的室内场景中,往往是通过鱼眼镜头或相机镜头组合来增加视场角。除了使用鱼眼相机增加视野外,还可以将多个相机进行刚性耦合,形成一个多相机系统,从而有效地利用冗余观测信息来保证位姿估计的鲁棒性和观测目标特征的长可见性。因此,搭载多鱼眼相机系统的自主定位与建图(Simultaneous Localization and Mapping,SLAM)可以捕获更丰富的环境特征信息,从而获得更鲁棒的位姿跟踪效果。
图1. 鱼眼摄像头SLAM示例
一种基于特征的同时定位和构图(SLAM)系统,用于从宽基线移动测图系统(MMS)的多鱼眼相机装置中获得的全景图像序列。
首先,鱼眼摄像机标定方法结合了等距投影模型和三角多项式,以实现从鱼眼摄像机到等效理想相机模型的高精度标定,从而保证了从鱼眼图像到相应全景图像的准确转换。
其次,我们开发了全景相机模型、具有特定反向传播误差函数的相应束调整以及线性姿态初始化算法。
第三,实现由初始化,特征匹配,帧跟踪和闭合环方面的几种特定策略和算法组成的基于特征的SLAM,以克服跟踪宽基线全景图像序列的困难。我们对超过15公里轨迹和14,000张全景图像的大型MMS数据集以及小型公共视频数据集进行了实验。我们的结果表明,本文的全景SLAM系统PAN-SLAM可以在包括挑战性场景(例如黑暗隧道)在内的小规模室内和大型室外环境中实现全自动相机定位和稀疏地图重建,而无需任何其他传感器辅助。测量的绝对轨迹误差(ATE)精度接近0.1 m的高精度GNSS / INS。PAN-SLAM在各种环境下也具有无与伦比的鲁棒性,胜过几种基于特征的鱼眼镜头单目SLAM系统。该系统可被认为是一种理想的补充解决方案,替代昂贵的商用导航系统,尤其是在信号阻塞和多路径干扰普遍存在的城市环境中。
主要贡献
1. 基于多镜头组合式全景相机开发了精确的特征匹配和跟踪,闭环检测以及光束法调整的可靠姿态初值估计,这些技术在复杂的室外环境中具有高稳定性能;
2. 提出了一种新的鱼眼镜头校准方法,该方法可实现亚像素精度,并确保平滑跟踪和光束法调整的高精度;
3.在大范围多基线全景图像序列数据集和从多鱼眼相机组合装置捕获的开源小范围视频数据集上,PAN-SLAM系统的鲁棒性均优于当下其他几种方法。PAN-SLAM是唯一能够跟踪所有图像序列的系统。
4.实验证明,PAN-SLAM的定位精度为0.1 m,与昂贵的商用GNSS / INS跟踪系统的定位精度一样高,并且在信号阻塞情况下也更加可靠。它可以是当前商用GNSS / INS导航系统的强大补充和替代解决方案。
算法流程
1. 全景相机的成像、检校与优化模型
1.1 全景相机的成像
图2,(a)全景相机模型;(b)两个相邻鱼眼相机边缘影像上的投影不确定性。
多镜头组合式全景相机由一系列独立、固定的鱼眼镜头组成,多个镜头独立成像,再拼接为全景图。每个镜头具有各自的投影中心C,在实际制造过程中难以保证与球心S完全重合。物理上三点共线是C,Uc,P'。所以为了实现统一的全景坐标系,需要将实际像素坐标Uc投影到某个指定半径的球面上得到U。为了避免不共心导致的定位误差,通过事先标定单个相机中心在一个全景相机坐标系下的旋转Ri和位置Ti,得到表述共线条件方程的光束仍然是CUcP'。
首先将每个鱼眼影像上的像点转换到半径为r的球面上,然后计算球面点的极坐标,最后根据给定的全景图像宽高计算二维平面坐标。对于全景图像难免存在融合误差,如图1(b)所示,不过在连接点提取过程中排除该误差,不会影响鱼眼相机到全景相机之间的刚体几何转换。
1.2 鱼眼相机标定
为使得核线误差降低到1像素以下,本文对该模型加以改进,提出一种更为精确的鱼眼相机检校方法,显式地加入了鱼眼相机的成像过程。
1.3 光束法平差
类似ORB-SLAM优化方法,不过改进g2o库使其适用于全景成像模型,给出重投影误差函数式的解析导数形式,即误差函数对于位姿即地图点的雅可比矩阵。
图3,三角形节点代表位姿,圆形节点代表地图点,边代表误差项(a)位姿优化;(b)局部光束法平差;(c) 本质图优化;(d)全局光束法平差
本文实现的优化算法包含4类:图3(a),单帧位姿优化(仅根据匹配的地图点计算当前帧的精确位姿);图3(b),局部地图优化和平差(根据局部共视关键帧优化位姿与局部地图点);图3(c),本质图优化(用于检测闭环后,对全局关键帧的位姿进行调整);图3(d),全局光束法平差(优化所有位姿和地图点)。鱼眼图像上不同位置投射到球面上的变形不同,因此不同的点采用不同的误差阈值。
2.全景SLAM流程
系统分为3个线程并行工作,分别为跟踪,局部地图构建与闭环。所有步骤都经过调整,可以在复杂的室外环境中对宽基线全景图像序列进行准确稳健的跟踪和定位。
图4,全景SLAM流程
2.1 初始化
初始化本文将 ORB特征用于PAN-SLAM 系统的特征提取.鱼眼相机变形较大,匹配难度高,误匹配数量大.因此采用三帧而非两帧进行初始化.
2.2 地图点跟踪
图5,地图点跟踪算法流程
2.3 关键帧选择
本文的全景影像框幅高达8000×4000像素,由于车辆高速行驶,存在内存读写的限制,因此采用较大的采样间隔(1~3m ).
2.4 局部地图构建
根据全景相机的特殊情形,本文设定共视关键帧必须同时满足: ①与当前关键帧的共视点数≥50个;②与当前关键帧在图像序列中的间隔关键帧不超过40个;③其与当前关键帧的共视点在两帧所在金字塔层数差异>2的特征点数不超过总共视点数85%。
2.5 闭环检测
我们使用类似于ORB-SLAM的循环检测过程,但针对从不同方向捕获的全景图像引入了特殊的匹配策略。在实践中,即使对于针孔相机,基于BoW的方法也无法很好地识别横向或反向闭环。使用全景相机时,情况变得更糟。我们在这里采用了一种简单的对齐策略,即将当前球面图像展开为搜索到的先前帧的方向的2D图像。附带说明的是,此过程相对较慢;因此,如果检测到足够的循环,则可以跳过此步骤。
图6,(a)鱼眼模式;(b)全景模式,可以很好地跟踪到足够且均匀分布的特征。