个人为了看的方便没有广告,转载自泡泡机器人:
https://www.sohu.com/a/161346283_715754#comment_area 侵删
作者:
Raúl Mur-Artal*, J. M. M. Montiel, Member, IEEE, and Juan D. Tardós, Member, IEEE
翻译:Taylor Guo
原文部分重译与审核:赵搏欣
编辑:杨雨生
欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权
V.跟踪
在这一部分,我们将详细介绍跟踪线程在相机每帧图像上执行的步骤。在几个步骤中都提到的相机位姿优化,包括运动BA,将在附录部分进行阐述。
A、ORB特征提取
我们在8层图像金字塔上提取FAST角点,金字塔图像尺度因子为1.2。如果图像分辨率从512*384到752*480,我们发现提取1000个角点比较合适,如果分辨率提高,如KITTI数据集[40],则提取2000个角点。为了确保特征点均匀分布,我们将每层图像分成网格,每格提取至少5个角点。然后检测每格角点,如果角点数量不够,就调整阈值。如果某些单元格内检测不出角点,则其对应提取的角点数量也相应减少。最后,根据保留的FAST的角点计算方向和ORB特征描述子。ORB特征描述子将用于算法后续所有的特征匹配,而不是像PTAM算法中那样根据图像区块的相关性进行搜索。
B、通过前一图像帧估计相机的初始位姿
如果上一帧图像跟踪成功,我们就用运动速率恒定模型来预测当前相机的位置(即认为摄像头处于匀速运动),然后搜索上一帧图像中的特征点在地图中的对应云点与当前帧图像的匹配点,最后利用搜索到的匹配点对当前相机的位姿进一步优化。但是,如果没有找到足够的匹配点(比如,运动模型失效,非匀速运动),我们就加大搜索范围,搜索地图云点附近的点在当前帧图像中是否有匹配点,然后通过寻找到的对应匹配点对来优化当前时刻的相机位姿。
C、通过全局重定位来初始化位姿
如果扩大了搜索范围还是跟踪不到特征点,(那么运动模型已经失效),则计算当前帧图像的词袋(BoW)向量,并利用BoW词典选取若干关键帧作为备选匹配帧(这样可以加快匹配速度);然后,在每个备选关键帧中计算与地图云点相对应的ORB特征,就如第三部分E节所描述的。接着,对每个备选关键帧轮流执行PnP算法[41]计算当前帧的位姿(RANSAC迭代求解)。如果我们找到一个姿态能涵盖足够多的有效点,则搜索该关键帧对应的更多匹配云点。最后,基于找到的所有匹配点对相机位置进一步优化,如果有效数据足够多,则跟踪程序将持续执行。
D、跟踪局部地图
一旦我们获得了初始相机位姿和一组初始特征匹配点,我们就可以将更多的地图云点投影到图像上以寻找更多的匹配点。为了降低大地图的复杂性,我们只映射局部地图。该局部地图包含一组关键帧K1,它们和当前关键帧有共同的地图云点,还包括与关键帧K1在covisibility graph中相邻的一组关键帧K2。这个局部地图中有一个参考关键帧Kref∈K1,它与当前帧具有最多共同的地图云点。现在对K1, K2中可见的每个地图云点,在当前帧中进行如下搜索:
计算地图云点在当前帧图像中的投影点x。如果投影位置超出图像边缘,就将对应的地图云点删除。
计算当前视图射线v和地图云点平均视图方向n的夹角。如果n<cos(60o),就删除对应云点。
计算地图云点到相机中心的距离d。如果它不在地图云点的尺度不变区间内,即d∉[dmin,dmax],就删除该云点。
计算每帧图像的尺度比d/dmin。
对比地图云点的特征描述子D和当前帧中还未匹配的ORB特征,在预测的尺度层和靠近x的云点作最优匹配。
相机位姿最后通过当前帧中获得所有的地图云点进行优化。(这个环节的目的是在当前帧和局部地图之间找到更多的匹配点对,来优化当前帧的位姿)。
E、新关键帧的判断标准
最后一步是决定当前帧是否可以作为关键帧。由于局部地图构建的过程中有一个机制去筛选冗余的关键帧,所以我们需要尽快地插入新的关键帧以保证跟踪线程对相机的运动更具鲁棒性,尤其是对旋转运动。我们根据以下要求插入新的关键帧:
距离上一次全局重定位后需要超过20帧图像。
局部地图构建处于空闲状态,或距上一个关键帧插入后,已经有超过20帧图像。
当前帧跟踪少于50个地图云点。
当前帧跟踪少于参考关键帧K_ref云点的90%。
与PTAM中用关键帧之间的距离作为判断标准不同,我们加入一个最小的视图变换,如条件4。条件1
确保一个好的重定位,条件3保证好的跟踪。如果局部地图构建处于忙状态(条件2的后半部分)的时候插入关键帧,就会发信号去暂停局部BA,这样就可以尽可能快地去处理新的关键帧。
VI. 局部地图构建
这章我们将描述根据每个新的关键帧Ki构建局部地图的步骤。
A、关键帧插入
首先更新covisibility graph,具体包括:添加一个关键帧节点Ki,检查与Ki有共同云点的其他关键帧,用边线连接。然后,更新生成树上与Ki有最多共享点的其他关键帧的链接。计算表示该关键帧的词袋,并利用三角法生成新的地图云点。
B、地图点云筛选
三角化的云点为了已知保留在地图中,必须在其创建后的头三个关键帧中通过一个严格的测试,该测试确保留下的云点都是能被跟踪的,不是由于错误的数据而被三角化的。一个云点必须满足如下条件:
跟踪线程必须在超过25%的图像中找到该特征点。
如果创建地图云点经过了多个关键帧,那么它必须至少是能够被其他3个关键帧观测到。
一旦一个地图云点通过测试,它只能在被少于3个关键帧观测到的情况下移除。这样的情况在关键帧被删除以及局部BA排除异值点的情况下发生。这个策略使得我们的地图包含很少的无效数据。
C、新地图点云创建
新的地图云点的创建是通过对covisibility
graph中连接的关键帧Kc中的ORB特征点进行三角化实现的。对Ki中每个未匹配的ORB特征,我们在其他关键帧的未匹配云点中进行查找,看是否有匹配上的特征点。这个匹配过程在第三部分第E节中有详细阐述,然后将那些不满足对级约束的匹配点删除。ORB特征点对三角化后,需要对其在摄像头坐标系中的深度信息,视差,重投影误差和尺度一致性进行审查,通过后则将其作为新点插入地图。起初,一个地图云点通过2个关键帧观测,但它在其他关键帧中也有对应匹配点,所以它可以映射到其他相连的关键帧中,搜索算法的细则在本文第5部分D节中有讲述。
D、局部BA
局部BA主要对当前处理的关键帧Ki,以及在covisibility
graph中与Ki连接的其他关键帧Kc,以及这些关键帧观测到的地图云点进行优化所有其他能够观测到这些云点的关键帧但没有连接Ki的会被保留在优化线程中,但保持不变。优化期间以及优化后,所有被标记为无效的观测数据都会被丢弃,附录有详细的优化细节。
E、局部关键帧筛选
为了使重构保持简洁,局部地图构建尽量检测冗余的关键帧,删除它们。这样对BA过程会有很大帮助,因为随着关键帧数量的增加,BA优化的复杂度也随之增加。当算法在同一场景下运行时,关键帧的数量则会控制在一个有限的情况下,只有当场景内容改变了,关键帧的数量才会增加,这样一来,就增加了系统的可持续操作性。如果关键帧Kc中90%的点都可以被其他至少三个关键帧同时观测到,那认为Kc的存在是冗余的,我们则将其删除。尺度条件保证了地图点以最准确的方式保持它们对应的关键帧(这句翻译没理解透:The
scale condition ensures that map points maintain keyframes from which
they are measured with most
accuracy.)这个策略受Tan等人的工作[24]的启发,在这项工作中,作者在经过一系列变化检测后即将关键帧删除。
VII. 闭环检测
闭环检测线程抽取Ki——最后一帧局部地图关键帧,用于检测和闭合回环。具体步骤如下:
A、候选关键帧
我们先计算Ki的词袋向量和它在covisibility
graph中相邻图像(θmin=30)的相似度,保留最低分值Smin。然后,我们检索图像识别数据库,丢掉那些分值低于Smin的关键帧。这和DBoW2中均值化分值的操作类似,可以获得好的鲁棒性,DBoW2中计算的是前一帧图像,而我们是使用的covisibility信息。另外,所有连接到Ki的关键帧都会从结果中删除。为了获得候选回环,我们必须检测3个一致的候选回环(covisibility
graph中相连的关键帧)。如果对Ki来说环境样子都差不多,就可能有几个候选回环。
B、计算相似变换
单目SLAM系统有7个自由度,3个平移,3个旋转,1个尺度因子 [6]。因此,闭合回环,我们需要计算从当前关键帧Ki到回环关键帧Kl的相似变换,以获得回环的累积误差。计算相似变换也可以作为回环的几何验证。
我们先计算ORB特征关联的当前关键帧的地图云点和回环候选关键帧的对应关系,具体步骤如第3部分E节所示。此时,对每个候选回环,我们有了一个3D到3D的对应关系。我们对每个候选回环执行RANSAC迭代,通过Horn方法(如论文[42])找到相似变换。如果我们用足够的有效数据找到相似变换Sil,我们就可以优化它,并搜索更多的对应关系。如果Sil有足够的有效数据,我们再优化它,直到Kl回环被接受。
C、回环融合
回环矫正的第一步是融合重复的地图云点,在covisibility
graph中插入与回环相关的的新边缘。先通过相似变换Sil矫正当前关键帧位姿Tiw,这种矫正方法应用于所有与Ki相邻的关键帧,这样回环两端就可以对齐。然后,回环关键帧及其近邻能观测到的所有地图云点都映射到Ki及其近邻中,并在映射的区域附近小范围内搜索它的对应匹配点,如第5部分D节所述。所有匹配的地图云点和计算Sil过程中的有效数据进行融合。融合过程中所有的关键帧将会更新它们在covisibility
graph中的边缘,创建的新边缘将用于回环检测。
D、Essential Graph优化
为了有效地闭合回环,我们通过Essential Graph优化位姿图,如第三部分D节所示,这样可以将回环闭合的误差分散到图像中去。优化程序通过相似变换校正尺度偏移,如论文[6]。误差和成本计算如附录所示。优化过后,每一个地图云点都根据关键帧的校正进行变换。
VIII. 实验
我们采用NewCollege[39]的大场景机器人图像序列对本文提出的系统进行了较全面的实验评估,首先采用TUM的室内16个手持RGB-D数据集[38]对系统的总体性能进行了评估,包括算法的定位精度,重定位和程序运行能力;然后,用KITTI的10个汽车户外图像数据集[40],评估算法在实时大场景下的操作及其定位精度和位姿图的优化效率。
算法运行在Intel Core i7-4700MQ (4核@2.40GHz)和8GB
RAM的实验平台上,运算速率可达到实时,且以帧率对图像进行准确处理。ORB-SLAM有3个主线程,它们和其他ROS线程并行运行,由于引入了ROS操作系统,因此算法结果具有一定的随机性,针对这个原因,我们在一些实验中公布了算法运行的中间结果。
A、基于Newcollege数据集测试系统性能
NewCollege数据集[39]包含了一个2.2公里的校园的机器人图像序列。它是由双目相机拍摄,帧率为20fps,分辨率512x38。图像序列中包含几个回环和快速的旋转,这对单目视觉定位非常具有挑战性。据我们所知,目前没有单目系统可以处理整个图像序列。例如论文[7],尽管其算法可以实现回环检测,也可以应用于大场景环境,但只有小部分序列图像能够显示单目结果。
如图4显示的是我们的算法检测到的闭合回路,从图中可以看出,我们选择的有效数据点都支持相似性变换。图5则对比了回环闭合前后的环境地图重构状况。其中,红色标注的是局部地图,回环检测后可以看到其两端扩展到连接整个运行轨迹。图6是以实时帧率速度运行整个图像序列后的全局地图,从图中可以看出,后边的大回环并没有完全闭合,它从另外一个方向穿过,位置识别程序没能发现闭合回路。
我们统计了ORB_SLAM算法每个线程所用的时间。表1显示了算法跟踪和局部构图的时间。可以看出,跟踪的帧率大概在25-30Hz,这是跟踪局部地图所需的最多时间。如果需要的话,这个时间还可以更快,只要减少局部地图中所包含的关键帧数量即可。局部地图构建线程中需时最高的是局部BA优化。局部BA的时间根据机器人探索环境的状态变动,即在未探索环境下所需时间多,在已经探索过的环境下运行所需时间少,因为在未知环境中如果跟踪线程插入一个新的关键帧,BA优化会被中断,如第5部分E节所示。如果不需要插入新的关键帧,局部BA优化则会执行大量已经设置的迭代程序。
表2显示了6个闭合回路的结果。可以看到回环检测是如何亚线性地随关键帧数量的增多而增加。这主要是由于高效的数据库检索,表2中只比较了具有相同图像单词的图像子集,由此可见用于位置识别词袋模型的潜力。我们的Essential
Graoh中包含的边缘是关键帧数量的5倍,它是一个稀疏图。
B、基于TUM RGB-D标准库的定位精度
TUM RGB-D数据集[38]是一个用于估计摄像头定位精度的优秀数据库,它提供了许多图像序列,还包括外部运动捕捉系统提供的对应轨迹真值。我们去掉那些不适合纯单目SLAM系统的图像序列,这些序列包含强烈的旋转,没有纹理或没有运动。
为了验证算法性能,我们选择了最近提出的直接法半稠密LSD-SLAM(论文[10])和经典算法PTAM(论文[4])作为对比。除此之外,我们还比较了由RGBD-SLAM(论文[43])算法生成的轨迹。为了在相同的基准下比较ORB-SLAM,LSD-SLAM和PTAM,我们用相似变换对齐关键帧轨迹,在尺度未知的情况下,检测轨迹的绝对误差(论文[38])。对RGBD-SLAM算法,我们通过相机坐标变换来对齐轨迹,也采用同样的方法检测尺度是否重构良好。LSD-SLAM从随机深度值开始初始化,然后随机值逐渐收敛,因此与基准对比的时候,我们会丢掉前10个关键帧。对于PTAM算法,我们从一个好的初始化中,手动选择两个关键帧。表3
是对我们选择的16个图像序列运行5次的中间结果。
从表中可以看出,ORB-SLAM可以处理所有的图像序列,除了fr3 nostructure texture far (fr3 nstr
tex
far)以外。这是一个平面的场景,相机的轨迹在这种情况下有两种可能,正如论文[27]中的描述的。我们的初始化方法检测到这种模棱两可的情况,为了保证算法的安全运行选择不进行初始化。PTAM初始化有时会选择对的方案,有些可能会选择错的方案,且导致的错误可能不能接受。我们没有注意到LSD-SLAM的2种不同的重构方案,但在这个图像序列出现的错误非常多。针对其他的图像序列,PTAM和LSD-SLAM算法的鲁棒性都比我们的方法差,且分别有八组序列和三组序列中地图点容易跟踪丢失。
关于精度问题,没有回环检测期间,ORB-SLAM和PTAM算法的定位精度相当,但回环检测成功后,ORB-SLAM算法将达到更高的定位精度,正如在图像序列fr3
nostructure texture near withloop (fr3 nstr tex
near)中表现的。非常意外的一个结果是PTAM和ORB-SLAM都非常明显地表现出精度高于LSD-SLAM和RGBD-SLAM。一个可能的原因是它们将地图的优化过程简化为一个单纯的姿态图优化过程,这样就造成了传感器测量信息的丢失,但在我们的算法中,采用BA优化,同时通过传感器测量优化相机的姿态和地图的云点位置,这是解决运动到结构[2]的经典标准算法。。我们将在第9部分B节进一步讨论了这个结果。另一个有趣的结果是在图像序列fr2
desk with person 和 fr3 walking xyz中,LSD-SLAM对动态物体的鲁棒性相比ORB-SLAM差一些。
我们注意到RGBD-SLAM在图像序列fr2上尺度上有一个偏差,用7自由度对齐轨迹则误差明显减少。最后我们注意到Engle等人在论文[10]中提出在f2_xyz上PTAM的精度比LSD-SLAM算法低,RMSE是24.28cm。然而,论文没有给出足够的细节说明如何获得这些结果的,因此我们没有办法复现它。
C、基于TUM RGB-D标准数据库的重定位
我们在TUM
RGB-D数据集上进行了两组重定位实验。在第一个实验中,我们选择fr2_xyz图像序列,通过前30秒构建了一个地图,然后对后来的每一帧图像都进行全局重定位,并评估重构出来的相机位姿精度。我们对PTAM算法进行了相同的实验。如图7所示是创建初始地图的关键帧,重定位的图像帧位姿和这些帧对应的真值。从图中可以看出PTAM算法只能够对重定位关键帧附近的图像帧,这是因为其算法中重定位方法并不具备不变形导致的。表4显示了PTAM算法和ORB_SLAM算法相对地面真值的误差。从表中数据可以看出,ORB-SLAM比PTAM可以更精准地多定位2倍的图像帧。在第2个实验中,我们采用fr3_sitting_xyz图像序列来初始化地图,然后用fr3_walking_xyz图像序列重定位所有的图像帧。这是一个颇具挑战性的实验,由于图像中有人移动,会造成图像局部区域的遮挡。在该试验中,PTAM并没有实现重定位,而ORB-SLAM重定位了78%的图像帧,如表4所示。图8显示了ORB-SLAM重定位的一些实验图例。
D、基于TUM RGB-D标准数据集测试算法的运行生命
之前的重定位实验表明我们的系统可以从非常不同的视角定位地图,在中等动态环境中的鲁棒性也较好。这个特性和关键帧筛选程序使得算法在不同的视角和局部动态环境中能够一直运行到图像结束。
在全静态场景情况下,即使相机从不同视角观测场景,ORB-SLAM也可以使关键帧数量保持在一个有限的水平内。我们在一个自定义的图像序列中验证了这一点,手持相机在93秒以内都拍摄同一张桌子,但视角一直变换,形成一个轨迹。我们对比了我们地图的关键帧数量和PTAM生成的关键帧,如图9所示。可以看到PTAM一直都在插入关键帧,而ORB-SLAM会删除冗余的关键帧,将其总数保持在一个稳定的范围内。
当然,在整个程序运行过程中,静态环境下的正常操作是任何SLAM系统的一个基本要求,更引人关注的是动态环境下的状况。我们在几个fr3的图像序列中分析了ORB-SLAM系统的状况,图像序列有:sitting
xyz, sitting halfsphere, sitting rpy, walking xyz, walking halfspehere
和walking
rpy。所有的视频中,相机都对着桌子,但运动轨迹不同,拍摄场景中有人在移动,椅子也被移动了。如图10(a)所示是ORB_SLAM算法生成的地图中所有关键帧的总数量,图10(b)显示从图像帧中创建或删除关键帧,从中可以看出从关键帧到地图构建需要多久时间。可以看到前2个图像序列中新看到(增加)场景时地图的大小一直在增加。图10(b)是前2个视频中创建的关键帧。在视频sitting_rpy和walking_xyz中,地图没有增加,地图是通过已有场景创建。相反,在最后两个视频中,有更多的关键帧插入但没有在场景中表示出来,可能由于场景的动态变化。图10(C)是关键帧的柱状图,它们是从视频中挑选出来的。大部分的关键帧被筛选程序删除了,只有一小部分留下来了。ORB-SLAM有大量关键帧的生成策略,在未知环境下非常有用;后面系统会生成一个小的子集来代表这些关键帧。
在整个实验中,我们系统的地图根据场景上内容来增加,而不是根据时间,它可以存储场景的动态变化,对场景的理解非常有用。
E、基于KITTI数据集测试算法在大场景大回环下的性能对比
KITTI数据集中里程计的数据包括11个视频,它的获取是在一个住宅区驾驶汽车,基准精度非常高,有一个GPS和一个Velodyne
Laser
Scanner。这个数据集对单目系统非常有挑战性,因为视频中有快速旋转,区域内有大量树叶,这使数据关联变得更困难,而且车速相对较快,视频记录的频率为10fps。除了视频01外,ORB-SLAM可以处理其他所有的视频,01是高速路上的视频,可追踪的物体非常少。视频00,02,05,06,07,09,有闭环回路,系统可以检测到,并使它闭合。其中视频09的闭环只能在视频的最后几个图像帧里检测到,并不是每次都能成功检测到(结果显示的是针对其被检测到的运行情况)。
对于轨迹与基准的定性比较如图11和12所示。在TUM
RGB-D数据集中,我们可以通过相似变换对齐轨迹的关键帧和基准。图11是定性比较的结果,图12是论文[25]中的最新单目SLAM在视频00,05,06,07和08上执行的结果。除了08有一些偏移以外,ORB-SLAM在这些视频上的轨迹都很精准。
表5显示了每个视频的关键帧轨迹中间的RMSE误差。我们基于地图尺寸提供了轨迹的误差。结果表明我们的轨迹误差是地图尺寸的1%左右。大致范围低的是视频03的0.3%高的是视频08的5%。视频08中没有闭环,漂移也没办法纠正,因为闭环控制需要获得更精确的重构。
在本次实验中,我们还确认了到底全局BA的20层迭代最终能优化多少地图重构,相关细节如附录所示。我们还注意到全局BA优化可以稍微增加闭环轨迹的精度,但这对开环轨迹有负面影响,这意味着我们的系统已经非常精确了。在有些应用中,如果需要非常精确的结果我们的算法会提供一组匹配,需要定义一个比较强的相机网络,一个初始估计,这样全局BA优化迭代次数就会变少。
最后讲一下我们算法的闭环检测和用于essential
graph边缘的θmin的效率。我们选择视频09(一段非常长的图像序列,在最后有一个闭环),然后评估不同的闭环检测算法。表6是关键帧轨迹RMSE和不同情况下没有闭环检测优化所用的时间,表中的相关内容包括:如果直接采用全局BA优化(20层或100层迭代)的情况,如果只用位姿图优化(10层迭代不同数量的边缘)的情况,如果先用位姿图优化再执行全局BA优化的情况。结果表明,在闭环检测之前,算法的RMSE误差较大,以至于BA优化没办法收敛,即便是迭代100次之后后误差仍旧非常大。另一方面,essential
graph优化收敛速度很快,而且结果也更精确。θmin对精度影响并不大,减少边缘的数量会明显降低精度。位姿图优化后再执行一个BA优化则可以增加精度,但时间也增加了。
IX. 结论和讨论
A、结论
本文中,我们提出了一个新的单目SLAM系统,并详细介绍了其组成模块,最后基于公共数据库对其性能进行了全方位的测试。通过实验得知,我们的系统可以处理室内与室外的图像序列,能够用于汽车、机器人和手持设备上。其定位精度在室内小场景中约为1厘米,室外大场景的应用是几米(前提是我们与真实轨迹尺度对齐的情况下)。
由Klein和Murray[4]提出的PTAM算法被认为是目前最精准的单目实时SLAM方法。PTAM后端是BA优化,这是众所周知的离线SFM(从运动到结构)问题[2]的经典解法。PTAM算法和Mouragnon[3]早期作品的主要贡献是将BA算法引入到机器人SLAM框架下,并具有良好的实时性。而本文的主要贡献是将PTAM算法的适用性进一步扩展,使其可以应用于原来不可应用的场景下。为了实现这一目标,我们整合了前面几年的优秀作品,引入新的想法和算法,从头设计了一种新的单目SALM系统所用到的技术包括Gálvez-López和Tardós提出的论文[5]中的闭环检测,Strasdat等人在论文[6],[7]中提出的的闭环检测程序和covisibility
graph,Kuemmerle等人在论文[37]中提出的g2o优化框架以及Rubble等人提出的ORB特征[9]。到目前为止就我们所知,本文提出的ORB_SLAM方法的定位精度最高,也是最可靠最完整的单目SLAM系统。我们提出的新的生成和删除关键帧策略,允许每个几帧就创建一个关键帧,然后当关键帧冗余时则删除。这样的构图方式很灵活,在外界条件很差的情况下可以保证系统正常运行,比如相机作纯旋转运动或快速移动时。当算法在相同场景下运行时,地图在只有拍摄到新内容的情况下才会增长,可以从我们的长期构图结果中看到这个特性。
最后,我们还展示了ORB特征具有很好的识别能力,可识别剧烈视角变换情况下的场景信息。此外,它们能够被非常快速的提取和匹配(不需要多线程或GPU加速),这就使得跟踪和地图构建更加实时精确。
B、离散/特征SLAM方法与稠密/直接SLAM方法对比
最近,DTAM[44]和LSD-SLAM[10]提出了一种实时单目SALM算法,算法直接利用图像像素的亮度信息进行摄像头的定位与优化,并重构稠密或半稠密的环境地图。这类方法即为直接法,直接方法不需要特征提取,可以避免人工匹配。他们对图像模糊,弱纹理环境和像论文[45]这样的高频纹理环境的鲁棒性更好。与由稀疏点构建的地图相比,比如ORB-SLAM或PTAM算法,稠密/直接法SLAM对相机定位之外的其他应用任务可能更有用途。
部分重译:
然而,直接方法有他们自己的局限。首先,这些方法假设真实场景中的物体的像是由该物体本身的表面反射模型产生的,因此,算法采用的光度一致性寻找匹配点的思路就限制了匹配点之间的基线距离,通常都比特征匹配点的基线要窄。这对重构的精度影响很大,因为重构需要较宽的基线来减少深度的不确定性。如果直接建模不准确,则可能会受到快门,自动增益和自动曝光的影响(如TUM
RGB-D
的对比测试)。最后,由于直接方法计算要求较高,因此为了满足计算速度,DTAM算法采用地图增量式扩张的方法,而LSD-SLAM则丢掉传感器测量信息,将地图优化降低为对位姿图的优化。
相反,基于特征的方法可以在更宽的基线上匹配特征,主要得益于特征匹配算法较好地视图不变特性。BA优化和相机位姿优化,地图云点通过传感器测量进行融合。在运动结构估计中,论文[46]已经指出了基于特征的方法相比直接方法的优势。在我们的实验第8部分B节中也直接提供了证据,,表明基于特征的定位精度更高。未来单目SLAM应该会整合两种最好的方法。
C、后续
我们系统的精度可以通过结合无限远点跟踪来进一步增强。这些在视图中看不到的平行线交点,并没有包含在本文算法构建的地图中,但对相机的旋转非常有用[21]。
另外一种方法是将稀疏地图更新到一个更加稠密的地图。由于我们关键帧的选择机制,关键帧组成了一个紧凑的地图,地图具有非常高精度的位姿信息和丰富的covisibility信息。所以,ORB-SLAM稀疏地图是一个非常优秀的初始估计框架,比稠密地图更好。这个方向的首次尝试在论文[47]中有详细描述。
附录:非线性优化
捆集调整(BA)
地图云点3D位置 Xw,j∈R3,关键帧位姿Tiw∈SE(3)
W表示世界坐标,通过匹配的关键点Xi,j∈R2减少重投影误差。
地图云点j在关键帧i中的误差是:
其中πi是影射函数:
其中,Riw∈SO(3),tiw∈R3,分别表示Tiw的旋转和平移部分
(fi,u , fi,v),(ci,u , ci,v)分别是相机i的焦点距离和主点。
代价函数:
ρh是Huber鲁棒代价函数,Ωi,j=δi,j2I2x2是协方差矩阵,与检测关键点的尺度有关。在全局捆集调整中(在初始化地图中),我们优化了所有云点和关键帧。
参考文献
[1] B. Triggs, P. F. McLauchlan, R. I. Hartley, and A. W.
Fitzgibbon,“Bundle adjustment a modern synthesis,” in Vision algorithms:
theoryand practice, 2000, pp. 298–372.
[2] R. Hartley and A. Zisserman, Multiple View Geometry in ComputerVision, 2nd ed. Cambridge University Press, 2004.
[3] E. Mouragnon, M. Lhuillier, M. Dhome, F. Dekeyser, and P. Sayd,
“Realtime localization and 3d reconstruction,” in Computer Vision and
PatternRecognition, 2006 IEEE Computer Society Conference on, vol. 1,
2006,pp. 363–370.
[4] G. Klein and D. Murray, “Parallel tracking and mapping for small
ARworkspaces,” in IEEE and ACM International Symposium on Mixed
andAugmented Reality (ISMAR), Nara, Japan, November 2007, pp. 225–234.
[5] D. G´alvez-L´opez and J. D. Tard´os, “Bags of binary words for
fastplace recognition in image sequences,” IEEE Transactions on
Robotics,vol. 28, no. 5, pp. 1188–1197, 2012.
[6] H. Strasdat, J. M. M. Montiel, and A. J. Davison, “Scale
drift-awarelarge scale monocular SLAM.” in Robotics: Science and Systems
(RSS),Zaragoza, Spain, June 2010.
[7] H. Strasdat, A. J. Davison, J. M. M. Montiel, and K.
Konolige,“Double window optimisation for constant time visual SLAM,” in
IEEEInternational Conference on Computer Vision (ICCV), Barcelona,
Spain,November 2011, pp. 2352–2359.
[8] C. Mei, G. Sibley, and P. Newman, “Closing loops without places,”
inIEEE/RSJ International Conference on Intelligent Robots and
Systems(IROS), Taipei, Taiwan, October 2010, pp. 3738–3744.
[9] E. Rublee, V. Rabaud, K. Konolige, and G. Bradski, “ORB: an
efficientalternative to SIFT or SURF,” in IEEE International Conference
onComputer Vision (ICCV), Barcelona, Spain, November 2011, pp.
2564–2571.
[10] J. Engel, T. Sch¨ops, and D. Cremers, “LSD-SLAM: Large-scale
directmonocular SLAM,” in European Conference on Computer Vision(ECCV),
Zurich, Switzerland, September 2014, pp. 834–849.
[11] R. Mur-Artal and J. D. Tard´os, “Fast relocalisation and loop
closing inkeyframe-based SLAM,” in IEEE International Conference on
Roboticsand Automation (ICRA), Hong Kong, China, June 2014, pp. 846–853.
[12] ——, “ORB-SLAM: Tracking and mapping recognizable features,”
inMVIGRO Workshop at Robotics Science and Systems (RSS), Berkeley,USA,
July 2014.
[13] B. Williams, M. Cummins, J. Neira, P. Newman, I. Reid, and J.
D.Tard´os, “A comparison of loop closing techniques in monocular
SLAM,”Robotics and Autonomous Systems, vol. 57, no. 12, pp. 1188–1197,
2009.
[14] D. Nister and H. Stewenius, “Scalable recognition with a
vocabularytree,” in IEEE Computer Society Conference on Computer Vision
andPattern Recognition (CVPR), vol. 2, New York City, USA, June 2006,pp.
2161–2168.
[15] M. Cummins and P. Newman, “Appearance-only SLAM at large
scalewith FAB-MAP 2.0,” The International Journal of Robotics
Research,vol. 30, no. 9, pp. 1100–1123, 2011.
[16] M. Calonder, V. Lepetit, C. Strecha, and P. Fua, “BRIEF:
BinaryRobust Independent Elementary Features,” in European Conference
onComputer Vision (ECCV), Hersonissos, Greece, September 2010,
pp.778–792.
[17] E. Rosten and T. Drummond, “Machine learning for high-speed
cornerdetection,” in European Conference on Computer Vision (ECCV),
Graz,Austria, May 2006, pp. 430–443.
[18] H. Bay, T. Tuytelaars, and L. Van Gool, “SURF: Speeded Up
RobustFeatures,” in European Conference on Computer Vision (ECCV),
Graz,Austria, May 2006, pp. 404–417.
[19] D. G. Lowe, “Distinctive image features from scale-invariant
keypoints,”International Journal of Computer Vision, vol. 60, no. 2, pp.
91–110,2004.
[20] A. J. Davison, I. D. Reid, N. D. Molton, and O. Stasse,
“MonoSLAM:Real-time single camera SLAM,” IEEE Transactions on Pattern
Analysisand Machine Intelligence, vol. 29, no. 6, pp. 1052–1067, 2007.
[21] J. Civera, A. J. Davison, and J. M. M. Montiel, “Inverse
depthparametrization for monocular SLAM,” IEEE Transactions on
Robotics,vol. 24, no. 5, pp. 932–945, 2008.
[22] C. Forster, M. Pizzoli, and D. Scaramuzza, “SVO: Fast
semi-directmonocular visual odometry,” in Proc. IEEE Intl. Conf. on
Robotics andAutomation, Hong Kong, China, June 2014, pp. 15–22.
[23] O. D. Faugeras and F. Lustman, “Motion and structure from
motionin a piecewise planar environment,” International Journal of
PatternRecognition and Artificial Intelligence, vol. 2, no. 03, pp.
485–508, 1988.
[24] W. Tan, H. Liu, Z. Dong, G. Zhang, and H. Bao, “Robust
monocularSLAM in dynamic environments,” in IEEE International Symposium
onMixed and Augmented Reality (ISMAR), Adelaide, Australia, October2013,
pp. 209–218.
[25] H. Lim, J. Lim, and H. J. Kim, “Real-time 6-DOF monocular
visualSLAM in a large-scale environment,” in IEEE International
Conferenceon Robotics and Automation (ICRA), Hong Kong, China, June
2014, pp.1532–1539.
[26] D. Nist´er, “An efficient solution to the five-point relative
pose problem,”IEEE Transactions on Pattern Analysis and Machine
Intelligence,vol. 26, no. 6, pp. 756–770, 2004.
[27] H. Longuet-Higgins, “The reconstruction of a plane surface from
twoperspective projections,” Proceedings of the Royal Society of
London.Series B. Biological Sciences, vol. 227, no. 1249, pp. 399–410,
1986.
[28] P. H. Torr, A. W. Fitzgibbon, and A. Zisserman, “The problem
ofdegeneracy in structure and motion recovery from uncalibrated
imagesequences,” International Journal of Computer Vision, vol. 32, no.
1,pp. 27–44, 1999.
[29] A. Chiuso, P. Favaro, H. Jin, and S. Soatto, “Structure from
motioncausally integrated over time,” IEEE Transactions on Pattern
Analysisand Machine Intelligence, vol. 24, no. 4, pp. 523–535, 2002.
[30] E. Eade and T. Drummond, “Scalable monocular SLAM,” in IEEE
ComputerSociety Conference on Computer Vision and Pattern
Recognition(CVPR), vol. 1, New York City, USA, June 2006, pp. 469–476.
[31] H. Strasdat, J. M. M. Montiel, and A. J. Davison, “Visual SLAM:
Whyfilter?” Image and Vision Computing, vol. 30, no. 2, pp. 65–77, 2012.
[32] G. Klein and D. Murray, “Improving the agility of
keyframe-basedslam,” in European Conference on Computer Vision (ECCV),
Marseille,France, October 2008, pp. 802–815.
[33] K. Pirker, M. Ruther, and H. Bischof, “CD SLAM-continuous
localizationand mapping in a dynamic world,” in IEEE/RSJ
InternationalConference on Intelligent Robots and Systems (IROS), San
Francisco,USA, September 2011, pp. 3990–3997.
[34] S. Song, M. Chandraker, and C. C. Guest, “Parallel, real-time
monocularvisual odometry,” in IEEE International Conference on Robotics
andAutomation (ICRA), 2013, pp. 4698–4705.
[35] P. F. Alcantarilla, J. Nuevo, and A. Bartoli, “Fast explicit
diffusion foraccelerated features in nonlinear scale spaces,” in British
Machine VisionConference (BMVC), Bristol, UK, 2013.
[36] X. Yang and K.-T. Cheng, “LDB: An ultra-fast feature for
scalableaugmented reality on mobile devices,” in IEEE International
Symposiumon Mixed and Augmented Reality (ISMAR), 2012, pp. 49–57.
[37] R. Kuemmerle, G. Grisetti, H. Strasdat, K. Konolige, and W.
Burgard,“g2o: A general framework for graph optimization,” in IEEE
InternationalConference on Robotics and Automation (ICRA), Shanghai,
China,May 2011, pp. 3607–3613.
[38] J. Sturm, N. Engelhard, F. Endres, W. Burgard, and D. Cremers,
“Abenchmark for the evaluation of RGB-D SLAM systems,” in
IEEE/RSJInternational Conference on Intelligent Robots and Systems
(IROS),Vilamoura, Portugal, October 2012, pp. 573–580.
[39] M. Smith, I. Baldwin, W. Churchill, R. Paul, and P. Newman, “The
newcollege vision and laser data set,” The International Journal of
RoboticsResearch, vol. 28, no. 5, pp. 595–599, 2009.[40] A. Geiger, P.
Lenz, C. Stiller, and R. Urtasun, “Vision meets robotics:The KITTI
dataset,” The International Journal of Robotics Research,vol. 32, no.
11, pp. 1231–1237, 2013.
[41] V. Lepetit, F. Moreno-Noguer, and P. Fua, “EPnP: An accurate
O(n)solution to the PnP problem,” International Journal of Computer
Vision,vol. 81, no. 2, pp. 155–166, 2009.
[42] B. K. P. Horn, “Closed-form solution of absolute orientation
using unitquaternions,” Journal of the Optical Society of America A,
vol. 4, no. 4,pp. 629–642, 1987.
[43] F. Endres, J. Hess, J. Sturm, D. Cremers, and W. Burgard, “3-d
mappingwith an rgb-d camera,” IEEE Transactions on Robotics, vol. 30,
no. 1,pp. 177–187, 2014.
[44] R. A. Newcombe, S. J. Lovegrove, and A. J. Davison, “DTAM:
Densetracking and mapping in real-time,” in IEEE International
Conference onComputer Vision (ICCV), Barcelona, Spain, November 2011,
pp. 2320–2327.
[45] S. Lovegrove, A. J. Davison, and J. Ibanez-Guzm´an, “Accurate
visualodometry from a rear parking camera,” in IEEE Intelligent
VehiclesSymposium (IV), 2011, pp. 788–793.
[46] P. H. Torr and A. Zisserman, “Feature based methods for
structureand motion estimation,” in Vision Algorithms: Theory and
Practice.Springer, 2000, pp. 278–294.
[47] R. Mur-Artal and J. D. Tardos, “Probabilistic semi-dense mapping
fromhighly accurate feature-based monocular SLAM,” in Robotics:
Scienceand Systems (RSS), Rome, Italy, July 2015.
[48] H. Strasdat, “Local Accuracy and Global Consistency for
EfficientVisual SLAM,” Ph.D. dissertation, Imperial College, London,
October2012.