feifanrensheng

SLAM in dynamic environments via ML-RANSAC

动态环境中的同时定位和映射(SLAM)是机器人导航中的一个重要问题,但研究较少。在本文中,我们提出了一种在真实动态环境中分割和跟踪多个移动物体的新方法。 使用称为多级RANSAC(ML-RANSAC)算法的现有技术方法将检测到的对象分类为静止和移动物体。该算法旨在在复杂情况下运行SLAM时跟踪移动对象。 ML-RANSAC算法被开发用于鲁棒地估计未知环境中的多个移动物体的速度和位置,而物体的状态(静态或动态)不是先验已知的。该算法的主要特征是能够在SLAM中处理静态和动态对象,以及检测和跟踪移动对象(DATMO)而不将问题分成两个独立的部分(SLAM和DATMO)。我们将所提出的算法应用于两组模拟数据,以在对象被遮挡或置于密集动态场景中的情况下验证其性能。 我们通过模拟研究将我们的方法与真实数据进行了比较。 此外,我们在Pioneer P3-DX移动机器人上实现了该算法,该机器人在真实动态环境中导航。仿真研究以及实时实验表明,该算法能够在动态环境中执行SLAM时准确跟踪和分类对象。

1. Introduction

在静态环境中已经有几种成功解决SLAM问题的方法; 然而,由于对移动物体的检测,分类和跟踪的同时要求,动态环境的问题更加困难。因此,近年来,SLAM在动态环境中引起了许多研究者的关注。 由于数据关联中的错误,对象检测中的错误,循环关闭过程中的失败以及错误的状态估计[1],动态环境中静态对象的假设导致整个SLAM过程的恶化。如果同时解决SLAM和DATMO的问题,可以解决这些问题。 从建图过程中移除移动对象可以提高地图的质量,而从静态对象构建可靠的地图会导致成功的移动物体检测[2]。 关于SLAM的调查可以在[3-5]中找到。 此外,读者可参考[6]查看DATMO方法及其应用。

Wang等人提出了SLAM与DATMO相关的第一项非凡工作。[7]作者通过将估计问题分解为静态和动态对象的两个独立的后验来估计SLAM和DATMO后验。 他们在城市环境中使用激光测距仪数据验证了他们的算法。达姆斯等人。 [8]研究了一种独立于传感器的算法,用于在城市环境中使用自主车辆对动态物体进行分类和跟踪。 Migliore等。 [9]通过应用MonoSLAM算法和仅轴承跟踪器,使用单目摄像机在动态环境中研究具有运动物体跟踪的SLAM。为了降低计算复杂度,SLAM的解决方案与运动对象跟踪解耦。 其他研究[10,11]采用2D激光扫描仪来检测和跟踪城市交通中自动驾驶车辆的移动物体。 边界框用于根据激光数据对检测到的对象进行分类。Lin和Wang [12]在动态环境中使用双目相机研究室内环境中的定位,建图和运动物体跟踪。 他们比较了双目SLAMMOT(同时定位和映射,移动物体跟踪)和单目SLAMMOT的性能,并评论说使用双目SLAMMOT改善了SLAM在动态环境中的性能。然而,该方法受到对图像的可靠2D特征跟踪的要求,以使算法正常运行并且在实验环境中限制单个目标跟踪。 Vu等人[13]在室外环境中实现了基于网格的定位和局部建图以及DATMO。使用与自适应交互多模型(IMM)滤波器相结合的多假设跟踪(MHT)方法来检测移动物体。 Azim和Aycard [14]提出了一种分层方法,用于在室外动态环境中使用3D范围激光对运动物体进行分类,以减少传感器噪声和来自3D激光扫描仪数据的错误检测的动态物体。Baig等人[15]使用两个连续网格之间的转移占用信息,而不是在动态环境中执行完整的SLAM解决方案。 在[16]中提出了一种基于2.5D网格的DATMO。 全局最近邻(GNN)数据关联方法和卡尔曼滤波用于跟踪移动对象。在[17]中,通过在动态环境(如RoboCup和交通场景)中利用移动物体,提出了一种基于EKF的多机器人同时定位和跟踪的算法。 作者提到,将运动对象扩展到定位估计中可以提高定位性能,同时解决在具有挑战性的环境中构建地图的问题。

Visual SLAM and Structure from Motion in Dynamic Environments: A Survey

在过去的几十年中,来自运动的结构(SfM)和视觉同时定位和映射(视觉SLAM)技术已经从计算机视觉和机器人社区中获得了极大的兴趣。这些技术的许多变体已经开始在广泛的应用中产生影响,包括机器人导航和增强现实。 然而,尽管在这些领域有一些显着的成果,但大多数SfM和视觉SLAM技术基于观察到的环境是静态的假设而运行。但是,当面对移动物体时,整体系统精度可能会受到损害。 在本文中,我们首次展示了针对动态环境中的操作的可视SLAM和SfM技术的调查。我们确定了三个主要问题:如何执行重建(鲁棒的视觉SLAM),如何分割和跟踪动态对象,以及如何实现关节运动分割和重建。 基于这种分类,我们提供了现有方法的综合分类。最后,从实用性和鲁棒性的角度对每个解决方案类的优缺点进行了批判性讨论。

1 INTRODUCTION

在过去几十年中,估计摄像机姿态和重建环境三维模型的问题引起了许多研究者的极大关注。解决这个问题的技术来自计算机视觉和机器人研究社区,通过运动结构(SfM)和视觉同时定位和映射(视觉SLAM)。 标准SfM和视觉SLAM旨在通过从多个图像中检测到的一组特征对应来同时估计场景的相机姿态和3D结构。通过选择是通过估计概率分布来整合来自所有图像的特征测量还是优化所选图像,可以通过基于滤波器的方法(例如,卡尔曼滤波器)或束调整(BA)[150]来解决估计问题。

MonoSLAM [29]可以被认为是第一种基于滤波器的方法,可以将机器人社区的一般SLAM问题转化为纯视觉。 它可以在机器人导航的实时计算约束下通过贝叶斯框架传播摄像机位置和特征测量的一阶不确定性。 在计算机视觉领域,Longuet-Higgins的论文[53]可能是导致一系列SfM技术出现的第一部作品。他发现相对相机姿势的计算可以使用极线几何下两个视图的8点对应来完成。 随后,出现了解决问题的其他不同观点,包括因子分解[151,154]和旋转平均[50,107]。 一些广泛采用的系统是公开的,如Bundler [147,148]或VisualSfM [174],尽管它们在批处理模式下效果最好。

SfM(离线)和视觉SLAM(在线)的早期工作中的不同目标和特征使得计算机视觉和机器人社区所经历的路径不同并且在很大程度上断开连接。 然而,[109,110,117]和PTAM [75]的工作通过引入可以实时操作的增量SfM将两个社区聚集在一起。此外,[150]的结果表明,基于束调整的增量SfM比基于给定相同计算时间量的过滤的视觉SLAM更准确。 然后,基于增量SfM开发了许多来自机器人社区的视觉SLAM解决方案,如[94]或[113]。 另一方面,由于对更详细地图的需求日益增长以及微软Kinect等经济实惠的深度相机的可用性,能够生成密集或半稠密地图的解决方案,例如KinectFusion [115]或LSD-SLAM [36], 越来越受欢迎。

尽管SfM和视觉SLAM具有显着的成果,但大多数方法基于观察到的环境是静态的假设而工作。 由于现实世界包含动态对象,因此当前的方法由于错误的对应或先前跟踪的特征的遮挡而容易失败[152]。 由于没有足够多的特征要匹配,因此姿态估计可能会漂移甚至丢失。显然需要设计在这些情况下稳健的定位技术。 在动态环境中进行稳健的姿态估计或定位对于许多应用来说是至关重要的,例如机器人导航[10,108,149],无人驾驶汽车[102,145]或紧急响应任务[23,127]。

在动态环境中查看SLAM问题的另一个视角不仅是提供稳健的本地化,而且还将其功能扩展到检测,跟踪和重建动态对象的形状。 为此,[169]和[170]采用激光扫描仪使用贝叶斯方法跟踪移动物体,并在称为SLAMMOT(同时定位,映射和运动物体跟踪)的系统中创建。 计算机视觉社区还研究了多体运动结构(MBSfM)主题,即多发刚体运动的SfM概括[12,25]。随着移动和可穿戴设备的激增,视觉SLAM在动态环境中的自然扩展将使许多应用受益,包括避障[63],人机交互[51],人们关注[183],路径规划[19], 合作机器人[46],协作建图[28],无人驾驶汽车[102],增强现实(例如,移动电话[76],可穿戴设备[18]),或视障人士的导航辅助[4,134]。

本文回顾了动态环境中的视觉定位和三维重建技术,包括三个主要问题:如何执行强大的可视化SLAM,如何分割和跟踪3D中的动态对象,以及如何实现关节运动分割和重建。 我们提供现有方法的分类,并连接视觉SLAM和动态对象分割的领域。 最后,我们从实际角度批判性地讨论了现有方法的优缺点。

1.1 Comparison to Other Surveys

 有许多与SfM和视觉SLAM相关的调查论文Huang等人(1994)[64]讨论了SfM算法的早期发展,该算法侧重于重建算法及其性能,取决于特征对应类型。 Oliensis(2000)[118]对多视图重建方法(即优化,卡尔曼滤波器融合,投影方法和基于不变量的方法)进行了批判性回顾。 他们建议实验和算法设计应基于算法行为的理论分析。Bonin-Font等人(2008)[10]讨论了移动机器人的视觉导航,并将这些技术分为基于地图的导航和非基于地图的导航。 Fuentes-Pacheco等人(2012)[40]回顾了视觉SLAM方法,强调如果不考虑环境的动态元素,视觉SLAM技术容易失败。 然而,该论文没有深入研究动态场景的问题或描述该领域的现有技术。

最近的评论文章讨论了各种风格的视觉SLAM Yousif等人(2015)[181]调查了涵盖视觉测距(VO)和视觉SLAM的一般视觉SLAM方法,包括滤波器,非滤波器和基于RGB-D的解决方案。 VO和Visual SLAM中使用的基本技术用于帮助社区为特定任务选择最佳技术。 同样,Younes等人(2016)[180]也讨论了视觉SLAM中的最新技术,但仅关注基于非滤波器的技术。他们比较并对每种技术使用的具体策略进行了重要评估。 另一方面,Garcia-Fidalgo等人(2015)[43]专注于拓扑映射,将环境建模为图形。 他们根据图像描述符的类型对2000年至2015年的主要解决方案进行了分类,并讨论了每种解决方案的优缺点。

从现有调查中可以看出,没有任何工作解决了动态环境的具体问题。 据我们所知,本文是第一篇在动态环境中详细讨论视觉定位和3D重建技术的调查文章。

1.2 Article Organization

本文的结构如下:第2节定义了可视SLAM在动态环境中的问题和一般应用。 还提供了现有方法的分类和连接它们的高级管道。 第3,4和5节分别讨论了鲁棒视觉SLAM,动态对象分割和3D跟踪以及关节运动分割和重建的现有技术。 第6节对每种方法的优缺点进行了严格的审查。最后,第7节总结了本文,并讨论了未来工作的方向。

2 TAXONOMY OF EXISTING APPROACHES

动态环境中同时定位和重建的问题可以从两个不同的角度来看:要么作为鲁棒性问题,要么作为动态环境中标准视觉SLAM的扩展。作为鲁棒性问题,尽管在相机前面存在多个移动物体,但视觉SLAM中的姿势估计应该保持准确,这可能导致先前跟踪的特征的错误对应或遮挡。 通过分割图像中的静态和动态特征以及将动态部分视为异常值来实现稳健性。 然后仅基于静态部分计算姿势估计。从将视觉SLAM扩展到动态环境的角度来看,系统应该能够将跟踪的特征分割成不同的簇,每个簇与不同的对象或主体相关联。 然后,可以重建每个对象结构(形状)并跟踪其轨迹。如果静态点云可用,系统甚至可以将动态对象插入到静态地图中。
基于动态环境中视觉SLAM的这一普遍问题,我们首先根据应用程序及其相应的输出划分现有方法。 从广义上讲,这三个类可以被视为通过拒绝动态特征来构建静态地图的技术(Robust Visual SLAM); 提取移动对象的技术,忽略静态背景(动态对象分割); 和尝试同时处理世界静态和动态组件的技术(联合运动分割和重建)。对于每个应用程序,我们进一步确定生成输出所需的一系列操作。 然后,基于每个动作类别的基本技术的相似性对每个动作类别的现有方法进行分类。 最后,现有方法的分类描述如下,其中概述了本次审查其余部分的结构:

图1描述了每种方法如何连接到其他方法,并在动态环境中形成完整的可视SLAM管道。 该管道包括三个主要应用:(A)鲁棒的视觉SLAM(输入:特征对应/图像序列,输出:静态世界的3D点云),(B)动态对象分割和3D跟踪(输入:特征对应/图像序列) ,输出:每个对象的3D轨迹),以及(C)联合运动分割和重建(输入:特征对应,输出:静态特征和动态特征的3D点云)。虽然我们只将应用程序分为三类,但更多的应用程序 可以使用不同的配置; 例如,对于机器人跟随人的场景,重建静态特征并在图像空间或2D(而不是3D)中跟踪对象可能就足够了。 最后,可以组合应用程序A和B的输出以从应用程序C获得类似的输出。

3 ROBUST VISUAL SLAM

如果仅基于静态特征计算姿势估计,则可以实现动态环境中的鲁棒视觉SLAM。 图2描绘了鲁棒的可视SLAM以及可用方法和相应参考的流程图。 可以看出,应用程序的输入是直接的图像序列,或者是取决于是否采用基于深度学习的方法而提取的特征对应关系。该应用程序包含两个主要模块:(1)运动分割和(2)定位和3D重建。 运动分割将特征分类为静态和动态特征,但仅静态特征用于世界的定位和3D重建。 另一方面,动态特征和3D点云数据(输出OA)可以通过动作模块B.1和B.2被引导到应用B以进行进一步处理。 本节讨论用于鲁棒视觉SLAM的运动分割和标准定位以及3D重建技术的方法。

3.1 Motion Segmentation

 运动分割(也称为运动物体检测/分割[30,74,84])通过将特征分类为两个不同的组(静态和动态特征)来检测图像中的运动部分。

 

标准视觉SLAM通过使用稳健的统计方法(例如通过随机样本共识(RANSAC)[37])计算几何模型(例如,基本矩阵,单应性)来实现这一点,并且排除不与模型一致的特征点。 特定距离度量,例如Sampson距离[59]用于确定排除。如果静态特征占大多数,这种方法将很有效。当摄像机前面的动态物体占主导地位或被捕获的场景被大的移动物体遮挡时,这些类型的方法可能会失败。 其他方法利用外部传感器(例如惯性测量单元(IMU))通过估计相机自我运动来解决此问题[67,92]。 来自IMU的姿势估计可用于初始化相机姿态并且稳健地分割静态和动态特征。在本节中,我们将讨论除静态视觉SLAM或视觉惯性SLAM技术之外的静态和动态特征分割的替代方法(有关现有方法的摘要,请参见表1)。

3.1.1 Background-Foreground Initialization.

背景前景初始化技术假设系统具有关于环境的先验知识并利用该信息来分割静态和动态特征。 该先验知识可以附加到背景(静态特征)或前景对象(动态特征)。 如果信息是关于前景对象的,则意味着系统知道在摄像机前移动的对象的类型或形状。

前景初始化中的大多数方法都使用逐个检测方案[14,89]。 Wangsiripitak等人[173]假设动态特征所在的3D物体是已知的。 他们使用了沿着边缘的一组控制点建模的3D多面体对象,并使用Harris的RaPid跟踪器跟踪它[56]。 如果先前跟踪的特征位于跟踪对象上,则一旦检测到对象移动,它将被移除。还会删除对象遮挡的任何静态要素。 类似地,Wang等人[172]假设属于移动对象的一组SURF特征描述符[8]是已知的并存储在数据库中。 通过比较从特征检测步骤获得的描述符,识别移动物体并估计其位移和方向。Chhaya等[21]使用可变形的线框对象类模型在相机前建模车辆。 使用主成分分析(PCA)对模型进行3D CAD数据训练。 该模型用于识别并从姿势估计计算中分割汽车。 另一方面,Lee等人[89,90]使用预训练的人体探测器通过逐个检测方案跟踪行人。 他们采用约束多核(CMK)方法通过考虑深度信息来处理跟踪期间的遮挡。

背景初始化不是初始化前景对象,而是设置类似于背景减法技术[7,126]中的背景模型。 Zhang等[184]初始化了一组属于背景的特征点,并将其设置为背景模型。 他们假设在首次初始化视觉定位时没有前景对象。然后,当处理新帧时,使用GPCA [165]应用3D运动分割。 使用与先前背景模型具有最高对应性的分段运动来更新背景。使用基于新背景模型的标准对极几何来计算姿势估计。

 3.1.2 Geometric Constraints.

依赖于几何约束的技术利用极线几何属性[59]来分割静态和动态特征。 它们基于以下事实:动态特征将违反静态场景的多视图几何中定义的标准约束(参见图3(a))。 约束可以从极线,三角测量,基本矩阵估计或重投影误差的方程导出,如图3(b)所示。

Kundu等[84]用机器人测距法构造基本矩阵来定义两个几何约束。第一个约束来自极线几何,它指出后续视图中的匹配点应位于相应的极线上。如果跟踪的特征距离极线很远,则很可能是动态特征。第二个约束是流向量绑定(FVB),其旨在分割当3D点沿着极线移动时发生的退化运动。通过设置跟踪要素流的上限和下限,位于边界外的跟踪要素将被检测为移动。最后,将特征分类为静态或动态的决定由递归贝叶斯滤波器确定。而不是使用极线,Migliore等[104]通过三角测量原理划分静态和动态特征。他们在概率过滤框架下连续检查三个不同视图中三个投影观察光线的交点。如果特征是动态的,则在运动期间光线的交叉点不相同或者甚至不会发生。然而,由于传感器测量噪声很大,他们采用不确定投影几何[61]来检查观察光线之间的关系,同时考虑到测量的不确定性。然后通过统计假设检验确定静态和动态特征的分类。

Lin等人[95]基于将运动物体误分类为静态物体并将其结合到姿态估计中的观察来检测运动物体将显着降低SLAM性能。 它们计算两种不同条件下的姿态估计的差异,一种不添加检测到的新特征,另一种在假设它是静止的情况下包括新特征。 通过计算两个结果之间的距离,设置阈值,并通过二元贝叶斯滤波器对其进行积分,它们能够以高精度分割静止和移动特征。

另一种几何方法是利用重投影误差。 Zou和Tan [28]将前一帧的特征投射到当前帧并测量跟踪特征的距离。 静态和动态特征的分类由其重投影距离的大小决定。 Tan等人[152]也使用类似的投影原理来检测动态特征。 但是,他们还考虑了遮挡处理以提供鲁棒的视觉SLAM。将特征投影到当前帧后,将使用外观差异来检查图像的一部分是否已更改。 如果外观显着变化,则由于视点改变,很可能该区域可能被动态对象或静态对象遮挡。 这些条件遮挡的3D点将被保留并用于稳健地估计相机姿势。

3.1.3 Optical Flow.

光流定义了从两个连续图像计算出的亮度模式的明显运动[62]。 通常,它对应于图像中的运动场,因此它可以用于分割运动对象。 Klappstein [74]基于从光流计算的运动度量来定义运动物体的可能性。 如果场景中存在移动物体,则运动度量测量光流被侵犯的程度。 利用图切算法基于运动度量来分割运动对象。

Alcantarilla等[4]通过残余运动可能性,基于场景流(3D光流的版本)中的3D运动矢量的模数来分割运动物体。 Mahalanobis距离用于考虑基于密集光流和立体重建的计算场景流中的测量不确定性。如果残差很低,则特征点很可能属于静态对象。 通过对残余运动似然进行阈值处理,可以从SLAM过程中删除驻留在运动对象上的特征点,使得视觉里程计算估计更加稳健。 Derome等[30,31]通过计算预测图像与来自立体相机的观察图像之间的残差来计算光流。 通过在时间上向后处理,通过使用估计的相机自我运动将当前立体帧变换为前一帧来计算预测图像。 然后通过检测残余场中的斑点来观察移动物体。

3.1.4 Ego-Motion Constraints.

标准SfM和视觉SLAM通过8点[53]或5点算法[116]计算摄像机的运动。 在不对相机如何移动做出任何假设的情况下计算该一般自我运动估计。 估计相机姿态的另一种方式是假设相机根据给定外部信息(例如,车轮测距信息)的特定参数化而移动。 通过实施该自我运动约束,可以通过拟合与相机运动约束匹配的特征点来完成对静态特征的分类。

Scaramuzza [136]提出使用轮式车辆的非完整约束来计算相机运动。 他基于相机运动是平面和圆形的假设来模拟自我运动。 通过使用该约束,相机自我运动可以通过一个自由度(DOF)参数化,并且可以通过1点算法[137]来计算。 同样,Sabzevari等人[133]也采用轮式车辆约束来通过利用阿克曼转向几何来估计相机运动。 满足估计的相机运动的特征点被认为是静态特征,而其他点被视为动态特征。

3.1.5 Deep Learning for Motion Segmentation.

与最先进的技术[79]相比,通过将分类错误减少一半来赢得ImageNet对象识别竞赛后,深度神经网络(DNN)在计算机视觉社区中获得了极大的普及。DNN是一种表示学习技术,旨在通过使用神经网络的多个层次层来学习数据的高级抽象[52,88]。 DNN的主要特点是它们可以直接处理原始输入数据,而无需手工设计的特征提取。 这种技术已经开始在许多研究领域做出重大改变,包括以前被认为不可能将其作为学习问题由于几何变换的参与[55]。 虽然已开始出现用于视觉定位和3D重建的DNN的许多实现(在第3.2.2节中讨论),但用于运动分割的DNN仍然很少。

从基于特征的运动分割,我们知道可以通过利用光流来分割运动对象。 Dosovitskiy等[33]表明,估计光流可以通过监督学习来完成。 他们提出了两种不同的卷积神经网络(CNN)架构来预测光流。 第一架构(FlowNetS)通过堆叠两个连续图像作为CNN的输入来设计,而另一个(FlowNetC)通过引入相关层来比较由两个相同CNN流产生的两个特征图来设计。Ilg等[66]通过将FlowNetS和FlowNetC堆叠到更深的网络中并添加新的并行网络来处理小位移,将此方法改进为“FlowNet 2.0”。 实验结果表明,FlowNet 2.0可以通过最先进的方法获得有竞争力的结果。 Mayer等人[101]也展示了使用立体图像的场景流估计的扩展。这种光流可以被馈送到更深的网络中以发现运动特征,如[48]中所示。这些运动特征显示出对动作识别有用[47,146],尽管不清楚是否可以使用相同的网络来分割移动物体并提供运动边界,因为它没有明确地设计用于解决运动分割问题。

Lin和Wang [96]构建了一个网络,以明确地分割图像空间中的运动物体。他们采用重建独立分量分析(RICA)自动编码器[86,87]来学习时空特征。 然而,几何特征仍然用于帮助分割运动,因为时空特征不能学习运动的3D几何形状。 几何和时空特征都被馈入递归神经网络(RNN)以进行最终运动分割。使用不同的方法,Fragkiadaki等[38]通过回归给定RGB图像和光流的对象性得分来分割移动物体。 构建类似于AlexNet [79]的两个并行CNN,用于处理RGB图像和光流,然后将其馈送到回归网络并生成运动建议。 最近,Valipour等[160]提出了循环完全卷积网络(R-FCN),将时间数据合并到在线图像序列中分割前景运动。 完全卷积网络(FCN)[98]用于学习空间特征并产生像素密集预测,但门控递归单元(GRU)用于在应用去卷积之前对时间特征进行建模。

 3.2 Localization and 3D Reconstruction

定位和3D重建是指从多个图像估计相对相机姿态(平移和旋转)和观察环境的3D结构。 标准视觉SLAM通过利用特征对应来实现这一点。

 

在鲁棒的视觉SLAM中,不是从所有特征对应计算相机姿态和3D结构,而是仅使用由3.1节中描述的技术产生的静态特征。 所有动态特征都被视为异常值并从计算中排除。 另一方面,深度学习技术可以直接处理图像序列而无需计算特征对应关系。 本节讨论用于解决定位和3D重建问题的基于特征和基于深度学习的方法。

 3.2.1 Feature-Based Approaches.

在基于特征的可视SLAM中,提取显着特征以解决图像对应问题。 计算机视觉社区已经开发了大量的特征提取技术。 虽然早期的SfM [157]工作包括着名的“视觉测量”[117]使用了Harris角点检测器[57],但最近的工作[142,174]采用了强大的特征检测技术,如尺度不变特征变换(SIFT) )[99]或其轻量级变体,如Speeded Up Robust Features(SURF)[8]。 然而,由于SIFT和SURF被认为是计算上昂贵的,因此诸如来自加速段测试(FAST)的特征[130]的更快的方法被用于实时应用[76,94]。

为了找到对应关系,使用特征匹配技术匹配提取的特征。可以将技术划分为两个摄像机的光学中心之间的距离(称为基线/视差)分开多远。 对于短基线,基于光流技术(例如,Kanade-Lucas-Tomashi(KLT)跟踪器[100])可用于匹配。 相反,对于长基线,高度辨别特征描述符(例如,SIFT [99],SURF [8],BRIEF [17],BRISK [91]等)对于通过计算那些描述符之间的不相似性来找到对应关系是必要的。 不幸的是,使用这些特征匹配技术并不能保证完美的对应关系,特别是当数据包含异常值时。 稳健估计器(例如,RANSAC [37],PROSAC [22],MLESAC [158]等)的实现对于拒绝异常值和处理错误对应是有用的。

如果图像对应是已知的,则可以恢复两个或三个图像之间的相对姿势直到比例因子。 通过强制对极约束,可以通过8点[53]或5点算法[116]计算来自两个视图的姿势,而如果有三个视图可以使用三焦张量[156]。 在已经重建场景的一些3D点的情况下,通过解决透视n点问题(例如,P3P算法[42]),可以相对于3D模型获得相机姿势。

当相机姿势恢复时,可以通过三角形交叉两条投影光线来轻松地重建场景的3D点。 由于光线并不总是由于错误的对应而相交,因此提出了中点方法[9]或基于最小二乘法的方法[60]来估计交叉点。 然后,为了避免漂移问题,采用束调整(BA)[175]来通过最小化重投影误差来改善相机姿态和3D点。高斯 - 牛顿方法的变体,即Levenberg-Marquardt(LM)优化 ,是联合优化场景结构和摄像机运动的流行方法。

在实践中,如何实现基于特征的可视SLAM存在一些变化。 Mouragnon等[110,111]提出通过采用局部束调整(LBA)来优化最后几张图像,而不是优化所有图像上的相机姿态和环境的3D结构。 Klein和Murray [75]引入了“PTAM”,它表明如果管道在不同的线程上执行,跟踪和映射可以实时运行。此外,PTAM还引入了选择关键帧的思想,因此LBA也可以在所选择的关键帧上实现。 另一方面,Lim等人。 [94]使用二进制描述符和度量拓扑映射,使得大规模映射可以在没有任何并行计算的情况下实时操作。最新的技术如ORB-SLAM [113]集成了硬件和算法的进步。 过去十年,包括并行计算,ORB特征[131],统计模型选择[155],基于词袋位置识别的循环闭包[26,41],局部束调整[111]和图优化[81]。 有关ORB-SLAM或其他基于标准特征的技术的更详细的评论,感兴趣的读者可以关注[40]或[180]。

3.2.2 Deep Learning for Pose Estimation and 3D Reconstruction.

深度学习的最新发展表明姿势估计可被视为学习问题。 虽然已经出现了许多用于自我运动计算的端到端架构[103,171],但还没有用于3D重建的端到端学习。 最近的工作仅停止深度预测[168,187]的学习过程,尽管得到的深度数据可用于使用基于点的融合重建3D环境,如[85]中所示。

在现有文献中存在两种用于训练姿势估计的常用方法,即监督学习和无监督学习。

监督学习通过最小化与地面实况姿势相比预测自我运动的误差来训练CNN。 由于CNN以分类任务而闻名,在早期工作中,姿势估计被认为是相机的平移和旋转的离散空间的分类问题。 Konda和Memisevic [78]可能是第一个使用这个原理提出视觉测距估计的人。 他们利用立体相机来预测相机的速度和方向。 网络通过使用同步自动编码器训练来自立体对的运动和深度的表示[77]。 这些运动和深度表示被馈送到CNN以通过基于softmax的分类来估计速度和方向。DeTone等[32]提出“HomographyNet”来训练CNN,使用单点的4点参数化训练两帧之间的单应性,而不是估计类似于基本矩阵的一般运动。 他们提出了两种不同的网络:一种是基于交叉熵损失函数的分类网络,另一种是基于欧几里德损失函数的回归网络。 他们表明,由于预测的连续性,回归网络比分类网络更准确。

在意识到CNN可以准确地用于回归问题之后,所有最近的姿势估计技术都采用基于回归的CNN。 Mohanty等[105]利用预训练的AlexNet网络[79]来输入回归网络。 两个连续的图像被送入两个并行的AlexNet网络,然后连接输出以通过完全连接的层回归相机测距。 根据实验,他们观察到AlexNet提取的特征对于视觉测距问题并不通用,因此测距仅适用于已知环境。

由于用于物体检测和分类的预训练卷积层不适用于测距估计,研究人员转向基于光学流的网络来概括在不同环境中学习的参数。 Muller和Savakis [112]设计了“流量计”,这是一个由两个连续的CNN组成的网络:第一个用于预测光流,后者用于估计相机运动。 FlowNetS [33]架构用于两个网络,尽管第二个网络通过完全连接的层替换细化部分,以便结合帧间测距计算。 Melekhov等。 [103]开发了一个端到端的CNN,用于计算两个视图之间的自我运动。他们堆叠了两个平行的CNN,重量共享,然后是空间金字塔池(SPP)层,以处理任意输入图像,同时保持特征图中的空间信息。回归层由两个完全连接的层组成,用于预测摄像机平移和旋转。

虽然以前的作品只通过CNN学习场景的几何特征表示,Wang等人。 [171]提出“DeepVO”作为端到端学习框架,能够通过递归卷积神经网络(RCNN),CNN和递归神经网络(RNN)的组合,从图像序列学习顺序运动动力学。 RNN对于学习语音或语言等顺序数据非常重要,因为它们保留了网络中所有序列元素的历史[88]。 事实证明,通过同时使用CNN和RNN,输出测距法比最先进的方法(与VISO2 Monocular和Stereo系统[45]相比)更好,并且具有竞争性。 尽管如此,他们表示相机前面的移动物体可能会降低姿态估计的准确性,但目前还不清楚如何在深度学习框架下处理它。

在无监督的情况下,CNN在没有地面实况数据的情况下进行训练。 相反,网络学习通过最小化类似于LSD-SLAM的光度误差来预测相机姿态[36]。 给定Iref作为参考图像,其中I:Ω→IR提供颜色强度,光度误差最小化以下目标函数:

Zhou等[187]利用新视图合成原理(在给定源图像的情况下合成具有不同姿势的目标图像的问题)开发了这种无监督学习机制。 他们构建了两个并行的CNN网络,用于预测深度和估计相机姿态。 在给定相机变换矩阵和源图像的情况下,来自源图像的预测深度用于合成目标图像。 通过如等式(1)中那样最小化光度误差,可以共同训练深度和相机姿势。 Vijayanarasimhan等人[168]不是根据深度预测生成目标图像,而是基于由卷积/反卷积网络产生的深度预测,相机运动和动态对象分割来构建3D场景流。 通过相机运动转换场景流,然后反投影到当前帧以评估光度误差。

4 DYNAMIC OBJECT SEGMENTATION AND 3D TRACKING

动态对象分割和3D跟踪聚类基于它们的运动将对应关系分成不同的组,并在3D中跟踪它们的轨迹。图4示出了现有方法的流程图以及动态对象分割和3D跟踪中的相应文献参考。可以看出,用于动态对象分割的基于特征的技术的输入仅由完整特征或动态特征组成(从动作模块A.1获得)。另一方面,基于深度学习的方法可以直接处理图像序列。然后将分割的动态对象馈送到3D跟踪模块以获得对象轨迹。可以可选地利用相机自我运动和从动作模块A.2获得的3D点云来帮助跟踪过程。 3D点云的可用性可以使输出对象轨迹与静态世界一致。本节讨论分割和跟踪场景中动态对象的技术。

4.1 Dynamic Object Segmentation

动态对象分割(也称为多体运动分割[73,132,153]或eoru-motion分割[133])将所有特征对应聚类成n个不同的对象运动。由于问题的鸡蛋特征,它被认为是一个难题。 为了估计物体的运动,应首先聚类特征; 另一方面,需要所有移动物体的运动模型来聚类特征。 由于遮挡,运动模糊或丢失跟踪特征,存在噪声,异常值或缺少特征对应性使问题更加复杂。 另一个挑战是处理退化运动(例如,当物体在相同平面上移动并且相机方向和速度随着相机运动而移动时)或相关运动(例如,两个人一起移动,关节运动)。 本节讨论处理此问题的现有方法(有关摘要,请参阅表2)。

4.1.1 Statistical Model Selection.

在静态场景中,可以通过一个运动模型来描述连续图像之间的特征点的变换。 相比之下,动态场景中的特征点可能来自多个运动模型,每个运动模型与不同的身体相关联。 运动模型可以基于以下类别之一:基本矩阵(F),仿射基本矩阵(F A),基本矩阵(E),单应性/投射性(H)或亲和力(A)。 模型选择问题尝试将所有可能的运动模型与数据拟合,并选择最适合数据的模型。 如果数据可以由动态场景中的几个模型描述,则需要许多假设来基于运动模型来分割数据。

基于统计技术的3D运动分割方法对数据的子集进行采样,并将运动模型拟合到RANSAC [37]或蒙特卡罗采样迭代[139]下的采样数据中。运动模型用于构建内部集合,并将剩余数据排除为模型的异常值。 然后,再次对剩余数据(先前模型的异常值)进行采样,以找到并拟合最佳描述剩余数据的另一模型。 重复该过程,直到所有数据都可以由n个运动模型描述,或者剩余的异常值不足以产生更多的运动模型。 可以从头开始重复该运动分割过程以生成许多候选假设(参见图5(b))。

确定哪种模型最好描述数据的方法基于信息标准。 文献中存在若干信息标准。 Akaike的信息准则(AIC)[2]选择最大化似然函数的模型,同时最小化生成模型的估计参数的数量。参数数量的惩罚是基于最大似然估计总是选择最一般模型作为最佳拟合模型的观察[155]。 一个直观的例子是任何点相对于点的误差都高于或等于相对于线的误差; 因此,始终选择一条线作为描述数据点的最佳模型。 AIC通过平衡拟合优度与模型复杂性之间的权衡来解决这个缺点。 它具有以下形式:

其中L是对数似然函数,K是模型的参数个数。 通常估计类似函数最大化基于特定距离度量观察对应关系的可能性,例如重投影误差或Sampson距离近似[59]。 然后,AIC选择在最小AIC估计(MAICE)过程下具有最小AIC分数的模型。

尽管它很受欢迎,但AIC没有渐近一致的估计值,并且容易过度拟合,因为它没有考虑到观测的数量。Schwarz [143]使用称为贝叶斯信息准则(BIC)的贝叶斯定理来进行修正。 BIC通过基于其复杂性对先验进行建模来扩展观察数据的后验概率。另一方面,Rissanen [129]通过使用最小位表示来最小化数据的编码长度来开发最小描述长度(MDL)。 基于先前作品的局限性,Kanatani [71,72]通过考虑观察的数量和模型的维度,提出了几何信息准则(G-AIC,或在一些文献中称为GIC); 它有以下形式:

其中N是数据的数量,D是模型的维度(例如,两个用于单应性,三个用于基本矩阵)。 基于BIC的另一个扩展是由Torr [155]设计的几何鲁棒信息准则(GRIC)。 通过结合异常值的稳健性和处理不同维度的能力,GRIC具有以下形式:

 

 

 

分类:

技术点:

相关文章: