Robust Monocular SLAM in Dynamic Environments

Abstract

我们提出了一种新的实时单目SLAM系统,该系统能够在动态环境中鲁棒地工作。与传统方法不同,我们的系统允许场景的部分是动态的,或者整个场景是逐渐变化的。关键的贡献在于,我们提出了一种新的在线关键帧表示和更新方法来自适应地建模动态环境,其中外观或结构的变化可以被有效地检测和处理。我们通过将已更改的特征从关键帧投影到当前帧来进行外观和结构比较,从而可靠地检测这些特征。由于遮挡引起的外观变化也可以被可靠地检测和处理。具有较大变化区域的关键帧将被新选择的帧替换。此外,我们提出了一种新的基于先验的自适应RANSAC算法(PARSAC),即使在内点比很低的情况下也能有效地去除离群点,从而即使在非常具有挑战性的情况下也能可靠地估计相机姿态。实验结果表明,该系统能在动态环境中稳定工作,性能优于目前最先进的SLAM系统(如PTAM)
关键词 : I.4.8【图像处理与计算机视觉】:场景分析—跟踪;h . 5.1[信息接口和表示]:多媒体信息系统——人工的、增强的和虚拟的现实

Introduction

相机跟踪是机器人导航和增强现实应用的关键组成部分,它提供必要的相机参数来指导路线,或者设置三维环境的虚拟相机。以往的许多工作都需要目标场景的先验知识,如点云[9]、CAD模型[30]、或人工标记[12]等。这些基于模型的相机跟踪技术通常需要精确的3D模型[19],这极大地限制了它们在实践中的应用,因为复杂的自然场景通常难以重建。
近年来,Davison等[8]提出了一种称为monoSLAM(单目同时定位与建图)的实时相机跟踪系统,可以同时恢复未准备场景的3D结构。由于monoSLAM使用扩展卡尔曼滤波器同时求解三维点和相机姿态,因此可以将其视为基于滤波的SLAM。Klein和Murray [17]提出使用基于结构自运动(SfM)技术的多线程框架来解决SLAM问题。他们将相机跟踪和场景建图的计算负担分配到两个工作线程上,并在并行框架中实现了一个实时SfM系统(称为PTAM)。Strasdat等人[36]进一步比较了基于SfM的SLAM和基于滤波器的SLAM,并得出结论,前者在精度和可扩展性方面都优于后者。由于monoSLAM和PTAM都是基于场景的三维稀疏特征,最近的作品,如DTAM [25],提出通过彩色图像和逆深度图像之间的直接每像素对齐来跟踪相机运动,这被证明比基于稀疏特征的方法对退化图像和快速运动更具弹性。
然而,以上所有的SLAM系统都有各自的缺点。最显著的问题是目标场景在处理过程中必须保持静止,因为他们没有考虑更新包括光照变化在内的动态对象对应的3D结构,否则恢复的3D模型会迅速过时,系统必须从头开始。最近,3D深度相机(例如微软Kinect)在相机跟踪方面变得越来越流行。KinectFusion系统[24]将捕获的深度图融合到用体积截断符号距离函数表示维护的场景模型中,并使用预测表面和当前捕获的深度图之间的多尺度迭代最近点对准来跟踪相机运动。值得注意的是,即使在过程中目标场景逐渐变化,系统也可以通过深度融合对三维结构进行相应调整,跟踪过程将随着动态结构而继续。
KinectFusion系统在很大程度上依赖于Kinect的3D深度相机,而仅仅使用普通的彩色相机仍然是一个悬而未决的问题,尽管在动态环境中已经有许多关于定位的工作[14,1,28,16,43]。本文提出了一种新的基于鲁棒不变特征的SLAM系统,该系统能够处理场景中包含大的运动物体或逐渐变化的具有挑战性的情况。我们的框架与皮尔克等人[28]的CD SLAM相似,后者可以在动态世界中实现跟踪和建图,它们主要利用参考三维特征的可见性信息来过滤2D-3D匹配过程中的潜在歧义,描述子采用的HoC描述子[27]。相反,我们建议通过比较特征外观和结构来丢弃过时的特征和检测到的关键帧,并且我们的系统可以鲁棒地处理遮挡。
我们的框架类似于PTAM,但是我们使用不变特征(即SIFT [20])代替FAST [32]来执行全局匹配,这对于快速移动和相机重新定位更鲁棒,并且可以容易地扩展以处理更大规模的场景。此外,我们提出了一种新的基于先验的自适应RANSAC算法,该算法具有在线三维点和关键帧更新方案,使得所提出的系统能够自适应地对可能具有显著光照或结构变化的动态环境进行建模。尤其是,可以可靠地检测和处理遮挡。图1显示了一个具有挑战性的例子,场景随着显著的光照变化而逐渐变化。我们的系统可以稳健地恢复相机运动,但PTAM失败了。由于昂贵的SIFT特征提取和匹配,我们的系统目前需要具有多线程编程的GPU加速,以在具有4核CPU的台式PC中实现实时性能(25fps)。

2 Related Work

已经有大量关于相机姿态估计和三维重建的文献。我们将简要回顾SLAM系统最相关的工作,以及对原始版本的一些重要扩展。

2.1 Filter-based SLAM

MonoSLAM [8]是在绘制无准备场景的同时进行实时相机跟踪的开创性工作。他们的系统是通过检测场景中已知大小的人工标记来初始化的。所有地标的位置和相机姿态在基于扩展卡尔曼滤波器的联合状态概率滤波框架中紧密相连,并与每个输入帧一起更新。MonoSLAM在一个预测的运动模型下,用相关模板以主动搜索的方式跟踪特征,该模型对观看方向不是不变的,并且在杂乱的环境中容易引起歧义,因此采用了一种简化的SIFT算法[4]来缓解这个问题。尽管EKF的效率很高,monoSLAM的计算复杂度是O(N2),其中N是地标的数量。因此,地标的数量通常被限制在几百个,如果不使用精细的特征选择方法,可扩展性被限制在小空间内[33]。Eade和Drummond [10]提出了一种单目SLAM系统,该系统采用了FastSLAM类型的[21]粒子滤波器和自上而下的搜索,以实现实时性能,同时绘制数百个地标。

2.2 SfM-based SLAM

运动结构(SfM)技术为从照片集合[35]或视频序列[41]进行离线3D结构重建提供了基本框架。核心算法,即束调整(BA),通常被认为计算量太大,无法在实时应用中调用。近年来,许多优化方法[11,40]被提出来加速BA,其中涉及数十个关键帧和数百个3D点的局部束调整被证明是有效解决的[22]。利用onlineBA,KleinandMurray[17]提出了一个并行跟踪和建图(PTAM)框架,它实际上是一个实时SfM系统。PTAM将建图和跟踪分成两个独立的任务,在两个并行的线程中运行。前者涉及向三维地图中添加新的三维点和关键帧,并使用局部BA优化局部结构。跟踪线程将匹配类似monoSLAM的2D-3D特征,并实时估计每个输入帧的相机姿态。为了提高跟踪的灵活性,他们还在地图上添加了边缘特征来增强快速运动下的跟踪,并添加了帧间旋转估计器来帮助快速平移下的跟踪[18]。他们进一步提出了一种使用现有密集关键帧的模糊表示的重新定位方法,这使得能够在多个场景之间切换[3]。我们的工作也属于基于SfM的SLAM,由于使用了带有关键帧表示的SIFT特征,以更统一的方式实现了上述目标。

2.3 SLAM in Dynamic Environments

为了处理动态场景,需要从静态部分识别动态内容。Hahnel等人[14]使用期望最大化(EM)算法来更新关于哪个测量(用激光测距扫描仪获得)可能对应于静态/动态对象的概率估计。Bibby和Reid [1]的SLAMIDE也用广义EM算法来估计3D特征(静态或动态)的状态。他们使用可逆模型选择将动态对象包含到SLAM中,这样系统可以将动态对象包含在单个框架中。如果场景像我们的例子中那样频繁变化,生成的地图可能包含许多不必要的3D特征,这显然相当浪费内存和计算,并且还可能遭受鲁棒性问题。布莱瑟等人[2]提出了一种类似monoSLAM [8]的基于CAD模型的SLAM系统,如果特征在超过50%的帧中没有被跟踪到(通过相机姿态预测的),该系统将从地图中删除特征。在他们的系统中,三维特征是单独三角化的,所以整体结构不如基于SfM的SLAM精确,比如PTAM。在PTAM的框架下,Shimamura等人[34]的vSLAM在跟踪线程上进行相机姿态估计后,估计了所有异常值的流向量,并由GMM对流向量进行聚类。如果聚类中异常值的数量超过阈值,则异常值被认为是在移动物体上,并从地图中消除。这两个系统都可以保持地图的紧密和精确,但是在大的遮挡(例如,出现大的移动物体)的情况下,标准的RANSAC过程可能很容易无法准确恢复相机姿态。此外,vSLAM不会移除任何关键帧,因此无法添加现有关键帧覆盖的新对象的3D特征。我们的系统通过用三维点更新关键帧并使用新的基于先验的自适应RANSAC算法来解决这两个问题。
利用多相机,我们不仅可以检测动态内容,还可以恢复运动物体的轨迹。Imre等人[15]使用一组固定校准的相机来恢复场景的参考3D结构,这将支持对其他移动相机的跟踪。在邹和谭[43]的CoSLAM系统中,所有相机都可以在场景中自由移动,其中每个相机独立工作,进行相机内姿态估计,静态和动态点都用于获得所有相机的相机间姿态估计。

2.4 3D Change Detection

场景变化检测在2D场景中非常常见,如背景去除、监控、医疗诊断等。[31]由于这些方法对光照和视点的变化很敏感,因此不适合直接用于三维场景。波拉德和蒙迪[29]在划分为体素的有界体积中表示目标三维空间,每个体素包含一个表面概率和一个颜色模型。然后,初始照片集合连同其已解决的相机姿态被一个接一个地馈送到系统,以更新来自相机中心的光线所跨越的体素的概率,直到系统收敛。结果,确定一个像素是否已经改变仅仅是计算从训练的颜色模型中看到像素颜色的概率。Taneja等人[37]认为图像外观的变化可能不会导致几何形状的变化,并提出了一种基于图形的方法。他们将旧的密集三维模型分成一组体素,这些体素对应于图形节点。对于边上的二元项,他们观察到具有相似颜色的相邻体素可能一起改变。对于节点上的一元项,体素被重新投影到所有可见的输入图像中,并且计算每对投影之间的像素色差。用图割算法求解所建立的吉布斯能量函数。对于鲁棒的实时SLAM,我们的目标是检测位置或外观发生变化的3D点,类似于[37],然而我们手头只有一堆稀疏的3D点和关键帧,因此基于体素的解决方案不适用于我们的情况。

3 FRAMEWORK

我们首先给出系统的概述,如图2所示。我们假设固有相机矩阵K是已知的且恒定的。类似于PTAM [17,18],我们同时估计场景结构和相机运动(6自由度),而无需场景的任何先验知识。与PTAM不同,我们为每个在线帧提取SIFT特征,并在相邻帧之间进行匹配,其中SiftGPU [39]用于我们的实现。类似于[9],我们使用关键帧来表示场景。关键帧选择和更新算法将在第4节中详细说明。
我们首先用[26]的方法用两个最初选择的关键帧初始化结构和运动。KD-Tree上的特征点被定义为参考特征,其三维位置已经被估计。我们使用KD-Tree来加速匹配过程。3D地图会随着添加的关键帧逐渐构建。如果添加了新的关键帧,将会重建更多的三维要素并将其添加到地图中,因此KD-Tree应该相应更新。由于在3D点数量较大时,KD-Tree的构建比较耗时,因此我们的系统维护了**两个KD-Tree,其中一个是活动的,用于实时匹配,另一个是在重建线程的新3D特征数量超过阈值时等待更新。**对于每个在线帧,我们提取SIFT特征,并将其与活动的KD-Tree进行匹配。如果后台KD-Tree已经更新,将变为活动状态,原来活动的KD-Tree会发生变化,等待下一轮更新。
对于当前帧中新提取的SIFT特征,我们通过比较它们的描述子将其与参考特征进行匹配。对于特征点x,其在KD-Tree中最近的两个描述子分别被表示为N1(x)和N2(x)。类似于[20],我们将x和N1(x)之间的匹配置信度定义为
其中p(x)表示特征x的描述子,如果c < 0.6,我们假设x和N1(x)匹配。
由于特征点在KD-Tree中的3D位置已经被估计,利用一批相对应的2D-3D点,我们可以迅速的通过最小化误差方程来估计相机姿态(即R和T)

其中,xi是第i个2D特征,Xi是其对应的3D点。π是一个投影函数。类似于[17],我们也运行了一个线程,用于频繁调整估计的3D点和相机姿态。
上述策略采用简单的在线关键帧选择方法(例如[17]),对于静态场景通常效果相当好。但是,如果场景包含大的移动对象或逐渐变化,一些参考特征和选定的关键帧将无效,需要及时替换。在下一节中,我们将介绍一种新颖的在线关键帧和3D点更新方案来有效地解决这个问题。

4 ONLINE 3D POINTS AND KEYFRAME UPDATING

对于每个输入帧,如果它满足以下三个条件,它将被选为关键帧:1)相机姿态被成功估计,2)与已经存在的关键帧有着,低于m1个(在我们的实验中m1= 80)的共视特征点,3)贡献多于m2个新的3D点(在我们的实验中m2一般被设置为50-100),这些点是通过输入帧和现有关键帧之间的特征匹配和三角测量生成的。
如果输入帧已经满足前两个条件,我们会将其视为潜在的关键帧,然后选择与其具有最多共视点的5个最相关的关键帧。我们在输入帧和5个选定的关键帧之间再次执行特征匹配。输入帧中已经找到对应的特征不需要再次匹配。类似于[9],我们为每个关键帧构造一个KD-Tree来加速匹配。极线几何约束[42]也用于拒绝异常值并提高匹配精度。输入帧和关键帧之间的匹配点被记录以构成特征轨迹。对于每个轨迹Xi,我们通过以下方式估计其三维坐标:

其中φ(Xi)表示Xi出现的帧集合。如果新估计的三维点的数量满足第三个条件(即大于m2),我们将选择输入帧作为关键帧,并将其添加到关键帧集中。这些新估计的三维点也与新的关键帧一起被选为参考特征。整个三维地图的KD树会相应更新。
对于每个输入帧,我们还需要测量场景的某些部分是否发生了变化。具体来说,我们通过比较旋转矩阵和平移向量来选择5个最接近的关键帧。首先,我们比较当前帧和前一帧的Z轴方向。我们选择与当前帧方向差小于阈值的帧,然后进一步比较它们的相机位置,以确定最接近的5个帧。然后对于每个选定的关键帧,我们首先分别比较R、G、B通道的颜色直方图和当前帧。每个仓值归一化为∑255 i=0c2 i= 1,其中ci为第I个仓的R/G/B通道的归一化仓值。我们将颜色直方图的差异定义为三个直方图之间的距离之和。如果差值大于1,很可能某些区域已经改变,因此我们应该将此关键帧中的特征点投影到当前帧。对于关键帧中的特征点x,其三维位置表示为X,其在当前帧中的投影表示为x′。我们用V(X)来表示3D点X的状态,如果X无效,我们设置V(X) = 0,否则V(X) = 1。然后我们比较x和x′ 的外观和3D结构,确定X是有效还是无效。
从X到关键帧和当前帧的相机中心的观察方向分别表示为nx和nx′。图3给出了一个例子。nx和nx′之间的角度可以计算为arccos(nx转置nx′)。如果nx转置nx′ < τn(在我们的实验中τn一般设置为cos(30°)),那么特征点X在当前帧中很有可能是不可见的或者存在较大的透视畸变(例如相机围绕一个物体旋转180°),所以最好保持V(X) = 1。否则,我们将进一步比较x和x′之间的外观差异如下:
其中W(x)表示以x为中心的窗口,在我们的实验中设置为11×11。Iy表示y的颜色,y′是y的投影加上估计的深度和相机参数。d是一个小的平移向量。理想情况下,y′应该正好是y的对应关系。然而,由于估计误差,y′可能偏离真实位置。因此,我们在(2)中用位移d进行局部搜索来缓解这个问题。如果Dc(X) > τc,很可能是X的外观发生了变化或者发生了遮挡。例如,由于视点变化,该区域可能被移动对象甚至静态对象暂时遮挡。如果X的外观由于光照或位置变化而发生了变化,我们应该设置V(X) = 0。否则就不应该去掉X,所以如果我们在Dc(X) > τc的时候直接设置V(X) = 0,很多暂时遮挡的点会很快被去掉,可能会造成漂移或者摄像头丢失的问题,如图4(a)和我们的补充视频所示。因此,我们需要检测遮挡来避免这个问题,这在算法1中进行了描述。
将φ(x′)表示为当前帧中与x′的距离小于r1像素的一组跟踪特征点(在我们的实验中,r1通常设置为20,除了图9中的示例,其中r1=40)。

如果X被移动物体遮挡,φ(x′)应该为空。原因是动态点违反了多视图约束,会被识别为离群点。因此,在移动对象中通常没有跟踪的三维点。在这种情况下,不应该将X设置为无效。排除这种情况,φ(x′)一般至少包含一个点y,我们把y∈φ(x′)对应的3D点表示为Xy。我们比较X和Xy之间的深度值。如果zXy≥ zX对于所有y ∈ φ(x′),其中zXy和zX是它们各自的深度值,设置V(X) = 0是安全的,因为没有任何东西遮挡X,所以X一定发生了变化。否则,对于zXy< zX的那些Xy,有两种情况:1)由于X的变化(光照或位置变化)而出现xy;2)Xy属于由于视点变化而暂时遮挡X的现有静态对象。我们需要设置V(X) = 0当且仅当它是第一种情况。实际上,我们可以通过将X和Xy投影到X最初出现的关键帧来区分这两种情况。它们的投影分别表示为xp和yp。在第一种情况下,Xy由于X的变化而出现,并且很可能与X在同一个物体上,所以Xy一般接近X,即| xp-yp |较小。在第二种情况下,| xp-yp |一般不小,因为X最初出现时没有被Xy遮挡,否则无法提取X。基于这一观察,我们通常可以通过检查| xp-yp |来可靠地区分上述两种情况。如果至少有一个点y ∈ φ(x′)满足| xp-yp | < r2(在我们的实验中r2一般设置为20),我们将V(X)= 0;否则,我们保持V(X) = 1。通过这种策略,我们可以可靠地检测变化的3D点,并减轻遮挡的影响,如图4和5所示。虽然少数被遮挡的三维特征仍可能被识别为无效的三维点,但这通常不会损害相机跟踪,因为我们的系统会及时快速添加新的三维特征。
对于每个关键帧,如果无效三维点的数量和与其他关键帧共享的公共要素的数量大于其总点数的90%,我们将该关键帧标记为无效。

5 PRIOR-BASED ADAPTIVE RANSAC

如果场景包含太多动态特征点,特别是当动态点也经历刚性运动时,使用标准RANSAC [13]可能不可靠,因为标准RANSAC总是选择具有最大数量支撑点的运动。在这里,我们提出了一种基于先验的自适应RANSAC算法(PARSAC)来解决这个问题。基本流程类似于标准的RANSAC。在第一步中,通过随机采样输入数据的最小子集,然后计算适合该最小样本的模型参数,来生成假设。在第二步中,使用所有点评估假设,并记录最佳假设。重复这两个步骤,直到满足某个终止标准。我们有一个关键的观察,静态背景特征通常均匀分布,而动态前景点可能聚集在几个小的纹理区域。对于稳健的相机姿态估计,匹配要求不要太接近或位于一条线上。因此,在确定最佳假设时,不仅要考虑内点数,还要考虑内点数的分布。
**样本生成。**Myatt等人[23]假设内点靠得很近,并建议基于邻近性对每个最小子集进行采样。在我们的场景中,由于只有动态点紧密地在一起,基于接近度的采样将导致许多只包含不需要的动态点的最小子集。我们建议通过强制采样点尽可能均匀地分布在整个图像中来避免这种情况。具体来说,我们将整个图像平均分成10×10个面元。对于每个bin Bi,我们最多只选择一个点。这种策略可以避免采样点聚集在一个小区域。我们可以随机采样这些bin。然而,如果内点比非常低,纯随机抽样策略可能会相当耗时,以产生一个好的假设。实际上,我们可以使用前一帧的内/外分布信息来指导当前帧的点采样,因为相邻帧之间的图像内容相当相似。具体来说,我们记录前一帧中每个仓的内点比,并将其截断为[0.2,1],以保证每个仓在当前帧中有一定的采样机会。前一帧的截断内点比表示为ε∫I。然后,对于当前帧中的bin采样,我们定义概率分布如下:

pi 表示从Bi 采样一个点的概率。我们根据估计的概率分布从bin中采样。
**假设评估。**我们不仅通过支撑点的数量,还通过它们的分布来评估一个假设。给定一个假设,我们计算所有点的重投影误差来确定内点和外点,这样内点的分布可以用协方差矩阵来描述
其中N是内点数,xi是第i个内点的图像位置,x¯ = 1/N∑i xi 是所有内点的平均位置。在这里,我们通过考虑内点比做了一点修改。我们使用bin中心来表示bin中的所有内点。对于每个bin Bi,它的置信权重被设置为它的内点比εi。然后我们用下面的加权协方差矩阵替换(3)

其中Xi是Bi的中心,x是加权平均位置,计算公式如下

等式(4)可以被认为是(3)的推广。如果我们只挑选具有内点的bin来构造协方差矩阵,并且平等地对待每个内点bin(设置 ε = 1/N,其中N是内点bins的数量),那么(4)将成为标准协方差矩阵,如(3)所示。通过加权方案,可以减少一些异常匹配与所评估的假设一致的问题,因为这些对应bins的权重将相当小。包含静态和移动点的bins的影响也可以减轻。最后,我们将评估的假设评分为
其中,A是用于归一化的图像大小。∑εi表示内点的加权数,πpdet©是代表内点分布的椭圆的面积大小。直觉告诉我们,最好的假设应该有大量均匀分布在整个图像中的内点。
终止标准。如果采样概率分布准确,只需几次迭代就能快速得到没有离群点的好样本。否则,应该重复采样过程,直到找到更好假设的概率低于阈值。我们通过评估抽样概率分布与当前最佳假设的吻合程度来模拟这种概率。表示ε是当前最佳假设的内点比,选择内点的概率是∑IPIεI,选择没有离群点的样本的概率是(∑IPIεI)m,其中m是样本大小。对于投影矩阵估计,m = 6。那么迭代次数Ks必须满足以下终止标准

也就是说,如果Ks样本都包含异常值的概率小于η,我们将停止迭代。
找到最佳样本后,用所有内点进一步细化投影矩阵。最后,我们将估计的投影矩阵分解为R和T,然后通过最小化(1)来细化它们。
已经提出了几种鲁棒估计算法[13,38,7,6,23,5]。在这里,我们将孤立点剔除算法与标准的RANSAC [13]、LoSAC [7]和Multi-GS [5]进行了比较。为了验证内点比先验的有效性,我们还定义了另一种算法ARSAC,即从PARSAC中移除内点比先验。我们合成一个包含静态背景和刚性运动物体的场景。照相机和刚性物体经历不同的运动。如图6(a)所示,合成场景包含200个静态点、300个刚性移动对象中的动态点以及其他500个随机移动点。每个点都被标准高斯噪声污染。我们总共合成了100帧。我们发现RANSAC和loscffailtorecurizestaticpoints都能够准确地估计相机的运动,因为静态点的数量小于刚性运动点的数量。Multi-GS通常可以区分静态和动态点,因为它明确检测多个假设。然而,它无法确定哪种假设更好。相比之下,我们的方法不仅可以检测这两个运动,还可以识别所需的相机运动。此外,PARSAC和ARSAC的计算开销都比Multi-GS小得多,如表1所示(迭代次数设置为500)。需要注意的是,虽然PARSAC每次迭代的计算开销比ARSAC稍大,但PARSAC可以用更少的运算快速找到最佳假设。表2显示了不同算法的成功率(100帧)以及不断增长的迭代次数。对于这种具有挑战性的数据(内点率只有20%),由于之前使用了内点率,PARSAC已经可以通过1000次迭代达到95%的成功率,但是ARSAC需要20000次迭代才能达到相当的成功率。我们还发现,随着迭代次数的增加,RANSAC的成功率甚至变小。原因是静态点的数量小于刚性运动点的数量,所以RANSAC会倾向于将刚性运动点识别为内点。需要注意的是,在这个例子中Multi-GS实际上经常只识别静态点(识别刚性运动点的成功率只有60%左右),尽管它应该能准确识别两种假设。原因是离群值太多,使得Multi-GS的偏好分析不可靠。如果异常值比率很小,Multi-GS通常效果很好。
图6(b)和©显示了我们方法的两个不同假设(一个样本仅包含静态点,一个样本仅包含刚性移动点),其中计算的相应∑IεIAR相当可比,分别为24.94和21.77。考虑到样本的协方差矩阵由(5),我们有s1= 8.31 > s2= 1.89,所以更好的假设被准确地确定。
图7显示了一个例子,其中有两幅从不同视角拍摄的真实图像。可以看出,五叶屏经历了大的刚性运动。我们通过不同的算法来估计这两幅图像之间的基本矩阵,以去除异常值。ProSAC [6]算法需要根据每个特征匹配的质量对所有数据点进行优先排序。在这里,我们按照顺序对所有特征进行排序。RANSAC、LoSAC、ProSAC识别的内点(用绿色十字标记)都在五叶屏上,这是不正确的。相比之下,我们的ARSAC方法可以正确识别静态点。
图8(a)和(b)显示了相同系统的SLAM结果,但采用了不同的稳健估计量(即标准RANSAC和我们的PARSAC)。可以看到,标准的RANSAC在许多帧中将移动的红皮书上的匹配特征识别为内点,因此插入的紫色球体会随着移动的书籍一起漂移。相比之下,我们的PARSAC可以准确地识别内/外点,因此插入的球体可以保持在准确的位置而不会漂移。完整的画面和对比请参考我们的补充视频1。

7 DISCUSSIONS AND CONCLUSIONS

本文提出了一种新的动态环境下的鲁棒单目SLAM。与传统的SLAM或PTAM方法不同,我们的系统采用了具有关键帧表示的SIFT特征,这对于快速相机移动和全局重新定位更为可靠。通过将附近的关键帧投影到当前帧进行外观和结构比较,可以可靠地检测到变化的区域。可以有效地去除无效的三维点和关键帧,并及时更新,使我们的系统能够鲁棒地处理逐渐变化的场景。我们还提出了一种基于先验的自适应RANSAC方法,即使内点比很低,也能有效地找到内点匹配。基于上述技术,我们的系统可以在具有挑战性的情况下工作,在这种情况下,有许多大的运动物体和显著的局部光照变化,这对于以前的工作是非常困难的。

Robust Monocular SLAM in Dynamic Environments(浙大章国锋)相关推荐

  1. RS-SLAM A Robust Semantic SLAM in Dynamic Environments Based on RGB-D Sensor

    摘要: 大多数最先进的V-SLAM算法在结构化环境中表现良好.然而,静态世界的假设限制了进一步的实际应用.在本文中,我们提出了RS-SLAM,一个鲁棒的语义RGB-D SLAM系统.RS-SLAM能够 ...

  2. Towards Real-time Semantic RGB-D SLAM in Dynamic Environments(动态语义SLAM)

    动态环境下的实时语义SLAM 简介 摘要 系统流程 实验结果 总结 简介 在ICRA 2021上看到这样一篇论文:Towards Real-time Semantic RGB-D SLAM in Dy ...

  3. 论文阅读:(三)DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments

    之前看了有关语义分割的SLAM,最近调研下动态场景下基于动态实例剔除的论文. DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments- ...

  4. 章国锋:视觉SLAM最新观点分享

    6月20日,图图Seminar学术直播邀请国内视觉SLAM领域首屈一指的专家:浙江大学章国锋教授,带来了题为"视觉SLAM在AR应用上的关键性问题探讨"的精彩直播报告. 直播精彩看 ...

  5. Improving RGB-D SLAM in dynamic environments: A motion removal approach

    一.贡献 (1)提出一种针对RGB-D的新的运动分割算法 (2)运动分割采用矢量量化深度图像 (3)数据集测试,并建立RGB-D SLAM系统 二.Related work [1]R.K. Namde ...

  6. NID-SLAM: Robust Monocular SLAM using Normalised Information Distance - Part2

    在上一篇博客中, 我介绍了NID-SLAM中的的Robust Direct NID Tracking的实现.这篇继续记录一下文章中 Multi-resolution NID Tracking的部分. ...

  7. 【论文阅读笔记】基于单目视觉的同时定位与地图构建方法综述(刘浩敏 , 章国锋 , 鲍虎军)

    文章目录 代表性单目 V-SLAM 系统 研究热点与发展趋势 参考文献 代表性单目 V-SLAM 系统 研究热点与发展趋势 缓解特征依赖 稠密三维重建 多传感器融合 单词 释义 simultaneou ...

  8. 翻译:ORB-SLAM: a Versatile and Accurate Monocular SLAM System

    本文为ORB-SLAM的翻译,转载自:http://qiqitek.com/blog/?p=102 ORB-SLAM: a Versatile and Accurate Monocular SLAM ...

  9. 翻译 | ORB-SLAM: a Versatile and Accurate Monocular SLAM System(ORB-SLAM:一种通用的(全能的)精确的单目SLAM系统)

    博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 ORB-SLAM:一种通用的(全能 ...

最新文章

  1. 机器学习模型调参指南(附代码)
  2. 七步精通Python机器学习
  3. 游戏关卡中的类型运用:《LOOP》的无限可能
  4. notes邮件正文显示不全_python实现一次性批量发邮件
  5. Storm程序的并发机制原理总结
  6. git管理账户忘记了_强制找回GitLab管理员账户密码的方法
  7. 使用block的好处
  8. python千人成像_Python实现千图成像:从图片爬取到图片合成
  9. [置顶] SPL讲解(6)--Condition篇
  10. Flutter进阶第1篇: http get请求数据、post提交数据、以及渲染动态数据
  11. 深度学习笔记_ RestNet-50
  12. OFFICE软件有哪三大语言功能?
  13. MyCat全局序列之本地文件方式
  14. win10不让桌面上显示宽带连接服务器,Win10宽带连接桌面看不见了怎么办?
  15. android获取路由器ip地址吗,查看路由器IP地址方法(管理后台地址)
  16. 怎样通过物理地址查IP地址
  17. 浅谈选择示波器时的“5倍法则”
  18. JavaSE进阶篇【6】——2022年7月2日
  19. 作为一个面试官,我是怎么来面试测试人员的?
  20. 用myeclipse向Tomcat发布项目的时候出现发布的项目名和文件名称不一致的现象的解决方法(图文)

热门文章

  1. MySQL命令行导入含空值的orderinfo和userinfo字段内容
  2. 武汉市近年社会平均工资(职工平均工资对照表)
  3. websocket断网重连
  4. 下沉至县级城市,红星美凯龙会不会“水土不服”?
  5. 編程的本質:编程也应像其他科学和工程领域一样基于坚实的数学基础
  6. 诺基亚频频出击5G的野心
  7. oracle支持几国语言,明白ORACLE的多国语言设置
  8. Oracle Database 12c RMAN全量+增量备份+归档日志恢复详解
  9. 【Mayday】五月天至今的专辑列表
  10. 学习笔记之如何背单词?——通过看美剧背单词