基于鱼眼相机的SLAM方法介绍
{MultiCol-SLAM} - A Modular Real-Time Multi-Camera SLAM System
CubemapSLAM: A Piecewise-Pinhole Monocular Fisheye SLAM System
两个工程都是应用在鱼眼相机上的SLAM方案,在ORB-SLAM的基础上针对鱼眼相机做了更好的适配的工作。其中MultiCol-SLAM是一种多相机的SLAM方案,能够在复杂的环境中获取更鲁棒的位姿跟踪效果,更丰富的环境信息。CubemapSLAM方案也参考了MultiCol-SLAM相机模型处理基础上,扩展为单目的鱼眼相机SLAM系统。
MultiCol-SLAM
MultiCol-SLAM这篇文章中要对相机的多项式模型进行标定,是一个多鱼眼相机SLAM系统。对ORB-SLAM和ORB-SLAM2中提出的SLAM系统进行了改进,并将其扩展到鱼眼和多鱼眼相机系统中。
在ORB-SLAM的基础上提出了新的概念和方法:
(1)多关键帧
(2)鱼眼相机模型(Scaramuzza's polynomial model)
(3)基于多相机的捆集约束方法
(4)多相机的回环检测算法
(5)等等
在程序实现方法改进了
(1) 将矩阵变换从 cv::Mat 改为 cv::Matx 和 cv::Vec
(2) 把访问图像像素或者描述子从 .at 改为 .ptr()
(3)使用g2o::SparseOptimizerTerminateAction函数作为捆集约束姿态估计的终止条件
为了处理多摄像机系统,引入了主体帧,即描述多摄像机装备运动的帧:
开源地址:https://github.com/urbste/MultiCol-SLAM
参考文献:
1. MultiCol Bundle Adjustment: A Generic Method for Pose Estimation, Simultaneous Self-Calibration and Reconstruction for Arbitrary Multi-Camera Systems
2. Improved Wide-Angle, Fisheye and Omnidirectional Camera Calibration
CubemapSLAM
因为鱼眼相机有着较大的畸变,针对鱼眼相机做了一定的区域上的处理,特别是鱼眼相机的边界处的像素直接使用mask的方式将其舍弃,能够很好的实现SLAM的功能,
CubemapSLAM是一个实时的基于功能的SLAM(同时)定位与测绘)系统为鱼眼相机的一大特色视场(FoV)。大型FoV摄像机适用于大型户外活动SLAM应用程序,因为它们增加了视觉上的重叠连续帧,捕捉更多属于静态部分的像素的环境。然而,目前基于功能的SLAM系统就是这样因为PTAM和ORB-SLAM将他们的相机模型限制在针孔上。来为了弥补这一空缺,提出了一种新的SLAM系统利用完整的FoV而不引入失真的cubemap模型
开源地址:https://github.com/nkwangyh/CubemapSLAM
参考文献:
1. {ORB-SLAM}: a Versatile and Accurate Monocular {SLAM} System
2. {ORB-SLAM2}: an Open-Source {SLAM} System for Monocular, Stereo and {RGB-D} Cameras
3. MultiCol-SLAM-a modular real-time multi-camera slam system