
摘要
一、介绍
短期的数据关联:在最新的几秒中匹配地图元素。就像是VO中做的一样,丢掉那些已经看不到的帧,这会导致有累计的漂移。 中期的数据关联:匹配相机累计误差小的地图,这也可以用在BA中,当系统在已经建好的地图中运行的时候可以达到零漂移。 长期的数据关联:利用场景重识别来匹配当前的观测和先前的观测,不用管累计误差而且即使跟踪失败也可以实现,长期的匹配可以利用位姿图优化重新设置漂移,为了更准确也可以利用BA。这是SLAM在大场景中精度保证的关键。
主要贡献:
一个单目和双目的视觉惯导SLAM系统:全部依赖于MAP(最后后验概率估计),即使是在IMU初始化的时候。 高召回率的场景重识别算法:DBoW2需要匹配三个连续的关键帧,太慢了。作者的方法是:候选的关键帧第一次就进行几何一致性检测,然后利用三个共视的关键帧进行局部的一致性检验,这种策略提升了召回率,并简化了数据关联,从而提高了地图准确性,但计算成本变高。 第一个可以解决纯视觉或者视觉惯导的完整的混合地图的SLAM系统。在单目或者双目的系统中,Atlas代表的是一系列不连续的地图,而且可以把他们应用到所有的建图过程中:场景重识别、相机重定位、闭环检测和精确的地图融合。这就允许地图是在不同的时间构建的(增量的SLAM系统),纯视觉的Atlas是参考的2019年IROS的一篇文章:ORBSLAM-atlas: a robust and accurate multi-map system,本文又添加了视觉惯导的混合地图系统来实现场景重识别。 抽象的相机表示:使SLAM系统与所使用的相机模型无关。并允许通过提供其投影,非投影和Jacobian函数来添加新模型我们提供了针孔和鱼眼模型的实现。
二、相关工作

视觉SLAM
MonoSLAM:第一个基于EKF和ShiTomasi特征的SLAM系统 PTAM:分离tracking和mapping、基于关键帧 LSD-SLAM:构建大场景的半稠密地图,但是没有对地图进行优化,精度低 SVO检测FAST特征,利用直接法跟踪特征,利用重投影误差模型来优化位姿,但是只有短期的数据关联,限制了他的精度。 DSO在检测不到特征点的场景也可以得到精准的相机定位,利用7个关键帧的局部光度误差的BA来优化位姿,利用逆深度来存储点。
视觉惯导系统
MSCKF:基于EKF的利用特征边缘化来简化计算(状态向量中没有地图点) OKVIS:第一个紧耦合的基于关键帧优化的VIO系统 ROVIO利用EKF的光度误差 快速的IMU初始化方法:Closed-form solution of visual-inertial structure from motionSimultaneous state initialization and gyroscope bias calibration in visual inertial aided navigation VINS->VINS-Fusion->Kimera VI-DSO:初始化需要20-30s
三、系统概述

Atlas是一个由一系列离散的地图组成的混合地图。这里会维护一个active map来定位来的新的关键帧,local mapping线程不断的优化更新这个地图。Atlas里面还有non-active地图。这个系统基于词袋模型给系统编码用于重定位、闭环检测和地图融合。 跟踪线程处理传感器信息、实时的计算当前帧和active map的位姿,最小化匹配特征点的重投影误差,这个线程还有一个关键帧筛选的过程。在VIO的模式下,机体的速度和IMU的bias利用惯导的参差来=进行优化。当跟踪线程跟丢的时候,跟踪线程尝试在所有的Alats中完成当前帧的重定位,如股票重定位成功,跟踪就被拉回来了,否则过一段时间activate就会重新存储为non-active,一个新的active map就会被初始化。 局部建图线程添加关键帧和点到active map中,删除多余的帧并使用视觉或者视觉惯导的BA来优化地图,这些都是在一个局部的滑窗中做的。除此之外,在有惯导的情况下,IMU的参数是利用MAP估计来初始化和优化。 闭环检测和地图融合线程在active map和整个Atlas中检测相同的区域。如果相同的区域是在active中,就会执行闭环的过程,如果属于不同的map,他们就会被融合为一个地图。在闭环纠正后,一个全局的BA在一个线程中被触发来优化地图。
四、相机模型
A.重定位
B.未矫正的双目SLAM
有一个恒定的SE(3)变换 两幅图像有部分相同的观测
视觉惯导SLAM



B.IMU初始化
纯单目SLAM可以提供非常精确的初始地图,但是不知道尺度。所以可以加入Imu获得尺度信息。 Scale drift-aware large scale monocular SLAM证明当尺度被明确地表示为一个优化变量,而不是使用BA的隐式表示时,它收敛得更快。 在IMU初始化过程中忽略传感器的不确定性会产生较大的不可预测的误差(Fast and robust initialization for visual-inertial SLAM_2019ICRA)


C.跟踪和建图
跟踪线程只优化最新两帧的状态而地图点位置保持不变。 建图使用关键帧及其点的滑动窗口作为可优化变量,包括可共视的关键帧,但保持其固定。
D.跟踪丢失的鲁棒提升
短期的失败:利用IMU的读数估计位姿,把地图点投影到估计的相机位姿上,然后在一个大的image窗口中做匹配,匹配的结果包含在VIO优化中。在大多说情况下可以恢复视觉跟踪,但是如果超过5s还没有恢复。进入下一个状态。 长期的失败:重新进行视觉惯导的初始化构建一个地图,这个地图成为active地图。
地图融合和闭环检测
A.场景重识别
DBoW2候选关键帧:利用active关键帧在Altas的DBoW2数据库中检索三个候选的相似帧,包括Ka的共视帧,我们把匹配帧称为Km。 局部窗口:对与每一个Km我们定义一个局部的窗口包括Km和他最好的共视帧,以及他们观测到的所有的地图点。DBoW2直接索引提供了Ka和局部窗口关键帧的特征点匹配,我们可以得到2D-2D和3D-3D的匹配关系。 3D对齐变换:利用RANSAC->Tam来来更好的对齐局部窗口中的Km和Ka的地图点。在单目或者单目惯导的系统中,如果地图还没初始化成功,我们计算Sim3变换,如果初始化成功我们计算SE3变换。在计算两种变换的时候我们都利用3点的Horn算法来找到Tam。如果计算出来的Tam把Ka中的点变换到Km中重投影误差小于某个阈值,就把这个匹配当成正确的。拥有最多选票的假设被选择(前提是该假设满足一定的阈值)。 匹配优化:将局部窗口中的所有地图点通过Tam进行转换,以找到更多与Ka中的关键点匹配的地图点。同时也要把Ka转换到局部窗口中找到与之的匹配点。利用所有的匹配点来计算Tam,利用双向带有鲁棒核函数的重投影误差的非线性优化来优化Tam,如果优化后inliers数量超过一定的阈值,就会在一个更小的图像窗口中进行第二段的匹配和非线性优化。 在三个共视关键帧中验证:为了避免假阳性的结果,DBoW2在连续三个关键帧中决定是否触发、延时或丢失位置重识别。这个方法的关键是:在大多数情况下我们需要验证的信息已经都在地图中了,为了验证位置重识别,我们在active地图中和Ka共视的两个关键帧(共视帧中共视的地图点超过一定的阈值。如果没有找到这样的共视关键帧,这种验证就会在新来的关键帧中进行,但是不需要再次启动词袋。验证一直持续,直到有三个关键帧验证Tam,或者连续两个关键帧验证失败。 重力方向验证:在有IMU的情况下,如果active地图成熟,我们已经估计了Tam。我们就要确定两帧的pitch和roll角低于某个阈值来确定是不是进行位置重识别。
B.视觉地图融合
连接窗口集合:连接窗口包括Ka和他的共视的关键帧,Km和他的共视关键帧,以及所有他们观测到的地图点。利用Tma把Ma中的地图点和关键帧和Mm对齐然后再放到连接窗口中。 融合地图:Ma和Mm融合组成一个新的active地图。为了删除重复的点,在Mm中的关键帧中主动搜索Ma的匹配点,对于每个匹配都删除Ma中的点,Mm中的点保存下来了所有的观测。利用中期的点关联来更新共视和基本图添加Mm和Ma的连接边。 连接窗口的BA:在连接窗口中把所有来自Mm和Ma中的关键帧进行局部优化。为了保证滑窗中的关键帧数,Mm的共视帧保持固定。一旦优化完成,连接窗口中的所有帧都可以进行跟踪,来快速准确的重用地图Mm。 位姿图优化:利用整个融合地图的本质图进行位姿图优化,保持连接区域的关键帧固定。这个优化将修正从连接窗口传播到地图的其余部分。
C.视觉惯导地图融合
VI连接窗口集合:如果active成熟了,在把Ma包含在连接窗口前把地图Ma利用Tma(SE3)进行变换。如果active没成熟,利用Tma(Sim3)来对齐Ma。 VI连接窗口BA:active关键帧Ka以及最新的五个关键帧的位姿,速度和偏置是可以优化的。这些变量通过IMU预积分来进行关联。对于Mm,我们也对Km和他时序上的五个相邻帧的位姿、速度和偏置进行优化,如下图所示:

D.闭环检测
参考文献
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群。
一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿 
▲长按关注公众号

▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款 
圈里有高质量教程资料、可答疑解惑、助你高效解决问题 觉得有用,麻烦给个赞和在看~ 

