CNN-SLAM:实时密集单目SLAM,可学习深度预测

摘要:

考虑到卷积神经网络在深度预测方面的最新进展(CNNs)。本文研究了如何利用深度神经网络的预测深度图进行精确、密集的单眼重建。我们提出一种将cnn预测的稠密深度图与直接单目SLAM测得的深度融合在一起的方法。我们的融合方案在单目SLAM方法容易失败的图像位置(如低纹理区域)的深度预测方面具有优势,反之亦然。我们演示了使用深度预测来估计重建的绝对规模,从而克服了单眼SLAM的主要局限性之一。最后,我们提出了一个框架来有效地融合语义标签,从一个单一的框架中获得,具有密集的SLAM,从一个单一的视图中产生语义连贯的场景重建。对两个基准数据集的评估结果表明了该方法的鲁棒性和准确性。

1、引言:

结构-运动(SfM)和同步定位和映射(SLAM)是计算机视觉和机器人领域一个非常活跃的研究领域的统称,该领域的目标是实现3D场景重建和从3D和成像传感器获得相机姿态估计。最近,实时SLAM方法旨在融合范围地图获得从一个移动的深度传感器见证了一个日益流行,因为它们可以用于导航和几种类型的自治代理的映射,从移动机器人到无人机,以及许多增强现实技术和计算机图形学的应用。例如Kinect fusion[21]等体融合方法,以及基于RGB-D数据的致密SLAM方法[30,11],除了导航和映射外,还可以用于精确的场景重建。然而,这种方法的一个主要缺点是,深度相机有几个局限性:实际上,大多数深度相机的工作范围有限,而基于主动传感的深度相机在阳光下无法工作(或表现很差),因此,在室外环境中,重建和测绘的精度如果有可能的话就会降低。

CNN-SLAM:实时密集单目SLAM,可学习深度预测_第1张图片

图1所示。所提出的单目SLAM方法(a)可以估算出比现有技术(b)更好的绝对标度,而后者是许多SLAM应用(如AR)所必需的,例如将骨架扩展到重建中。c)我们的方法可以从单个视图生成联合的3D和语义重建。

一般来说,由于深度相机不如彩色相机普遍,因此很多研究兴趣都集中在单相机的密集和半密集SLAM方法上[22,4,20]。这些方法通过对相邻帧的小基线立体匹配来估计当前视点的深度,从而实现单目场景的实时重建。工作的假设是,摄像机在空间中随着时间的推移而转换,因此对连续的帧可以被视为构成一个立体装配。立体匹配通常是通过颜色一致性或依赖于关键点提取和匹配来实现的。

单目SLAM方法的一个主要局限性是对绝对标度的估计。事实上,即使相机姿态估计和场景重建能够准确地进行,这种重建的绝对规模仍然存在固有的模糊性,限制了单目SLAM在上述增强现实和机器人领域的大多数应用(图1,b)。一些方法建议通过将场景与一组预先定义的3D模型进行匹配,通过对象检测来解决这个问题,从而根据估计的对象大小[6]恢复初始尺度,但是在场景中没有已知形状的情况下,恢复初始尺度是失败的。单目SLAM的另一个主要限制是单纯旋转摄像机运动下的姿态估计,由于缺乏立体基线,无法进行立体估计,导致跟踪失败。

最近,出现了一种新的研究方法,通过学习方法从单个图像进行深度预测。特别深的使用卷积神经网络(cnn)(16、2、3)在一个端到端的时尚展示了潜在的回归深度映射在一个相对较高的分辨率和绝对精度好的即使在缺乏单眼线索(纹理、重复模式)驱动深度估计的任务。深度学习方法的一个优点是,绝对比例尺可以从示例中学习,因此可以从单个图像中预测,而不需要基于场景的假设或几何约束,这与[10,18,1]不同。这种深度图的一个主要限制是,尽管全局精确,但深度边界往往是局部模糊的:因此,如果像[16]中那样,将这些深度融合在一起进行场景重建,重建的场景将整体上缺少形状细节。

与此相关的是,尽管提出的用于单视图深度预测的方法很少,但深度预测在更高级别计算机视觉任务中的应用到目前为止大多被忽视,只有一些例子存在于文献[16]中。这个工作背后的主要思想是利用最好的两个世界,提出一个单眼SLAM方法融合在一起通过深度预测网络和直接单眼深度估计产生密集的场景重建,同时明确的绝对规模和稳健的跟踪。为了恢复模糊的深度边界,我们使用CNN深度预测图作为稠密重建的初始猜测,然后利用类似于[4]的小基线立体匹配的直接SLAM方案进行逐次细化。重要的是,小基线立体匹配具有改进预测深度图像边缘区域的潜力,而这些边缘区域往往更加模糊。同时,最初想从CNN-predicted获得深度图可以提供驾驶姿势估计绝对标度信息,以便估计姿态轨迹和场景重建可以更准确的绝对规模相比在单眼SLAM的状态。(图1,a)给出了一个例子,说明了以精确的绝对尺度进行场景重建的有效性,如本文中所提出的方法。此外,由于CNN预测的深度不受上述纯旋转问题的影响(因为它是在每一帧上单独估计的),跟踪可以变得更加健壮。最后,该框架可以实时运行,因为可以在同一架构的不同计算资源(分别是GPU和CPU)上同时执行CNNs深度预测和深度细化两个过程。

最近CNNs的另一个相关方面是,相同的网络架构可以成功地用于不同的高维回归任务,而不仅仅是深度估计:一个典型的例子是语义分割[3,29]。我们利用这方面提出的扩展框架,使用pixel-wise标签前后一致地和有效地融合语义标签稠密的SLAM,从而从单一视角获得语义连贯的场景重建:一个例子是图1所示,c)。值得注意的是,我们所知的语义重建已被证明只是在最近,只有基于立体[28]或[15]RGB-D数据,即不在单眼的情况下。

我们通过比较单目SLAM和深度估计两种公共SLAM基准来验证我们的方法,重点关注姿态估计和重建的准确性。自从CNNpredicted深度依赖于训练过程中,我们展示了一些实验,其中的训练集来自于一个完全不同的环境和一个不同的RGB传感器,而不是评估基准中可用的那些,因此,为了描述我们的方法的能力——尤其与实际应用相关——来概括到新的、不可见的环境。在真实环境中,我们也展示了我们的联合场景重建和语义标签融合的定性结果。

2. 相关工作

在本节中,我们将回顾框架内集成的两个领域的相关工作,即SLAM和深度预测。有大量关于SLAM的文献。从被处理的输入数据类型来看,方法可以分为基于深度相机的方法[21,30,11]和基于单目相机的方法[22,4,20]。相反,从方法论的观点来看,它们可以分为基于特征的[12,13,20]和直接的[22,5,4]。鉴于本文的范围,我们将在这里只关注单眼SLAM方法。

对于基于特征的单目SLAM,就姿态估计精度而言,ORB-SLAM[20]可以说是最先进的。该方法通过从输入图像中提取稀疏的ORB特征,对场景进行稀疏重建,并对摄像机姿态进行估计,同时利用局部束调整和位姿图优化。对于直接单目SLAM,[22]的稠密跟踪与映射(DTAM)采用短基线多视点立体匹配和正则化方案,在GPU上实现了实时的稠密重建,使得对彩色图像低纹理区域的深度估计更加平滑。此外,LargeScale Direct SLAM (LSD-SLAM)算法[4]提出了一种半稠密的地图表示法,这种表示法只在输入图像的梯度区域跟踪深度值,这使得在CPU上实现实时的直接SLAM具有足够的效率。LSD-SLAM的一个扩展是最近的多层次映射(MLM)算法[7],该算法在LSD-SLAM的基础上提出了一种稠密的方法来增加其密度,提高重建精度。

CNN-SLAM:实时密集单目SLAM,可学习深度预测_第2张图片

由于深度学习的最新进展,单视图深度预测在计算机视觉领域得到了越来越多的关注。经典的深度预测方法使用手工制作的特征和概率图形模型[10,18]来生成正则化的深度地图,通常对场景的几何结构做出强有力的假设。最近开发的深度卷积架构在深度估计精度方面明显优于以往的方法[16,2,3,29,19,17]。有趣的是,[16]的工作报告了使用稠密SLAM深度预测作为应用的定性结果。尤其是预测深度图作为输入用于Keller’s Point-Based 融合的 RGB-D SLAM算法[11],显示SLAM-based场景重建可获得使用深度预测,尽管它没有形状的细节,主要是由于上述模糊工件与损失相关联的空间信息通过收缩CNN的一部分。

3. 提出了单目语义SLAM

在本节中,我们将举例说明所提出的三维重建框架,该框架将CNN预测的稠密深度图与直接单目SLAM获得的深度测量数据融合在一起。此外,我们还展示了CNN预测的语义分割如何与全局重构模型相结合。图2中的流程图描绘了我们的框架的流程。我们采用了一个基于关键帧的SLAM范式[12,4,20],特别是我们在[4]中采用了直接半密度方法作为基线。在这种方法中,将一组视觉上明显不同的帧作为关键帧来收集,其位姿根据位姿图优化进行全局优化。同时,在每个输入帧上进行相机姿态估计,通过估计帧与其最近关键帧之间的转换。

为了保持较高的帧率,我们建议仅在关键帧上通过CNN预测深度图。特别是,如果当前估计的位姿与现有关键帧的位姿相差甚远,则会从当前帧中创建一个新的关键帧,并通过CNN估计其深度。此外,通过测量每个深度预测的像素级置信度,构造了不确定度图。因为在大多数情况下,SLAM使用的相机与CNN训练的数据集不同,我们提出了深度图的一种特定的归一化过程,以获得对不同相机参数的鲁棒性。此外,在进行语义标签融合时,我们使用第二个卷积网络来预测输入帧的语义分割。最后,建立关键帧上的姿态图,对关键帧的相对姿态进行全局优化。

该框架的一个特别重要的阶段,也是我们提案的一个主要贡献,是通过小基线立体匹配,通过加强关键帧和相关输入帧之间的颜色一致性最小化,来细化每个关键帧关联的CNN预测深度图。特别是深度值将主要在梯度图像区域周围进行细化,即在边缘匹配可以提高精度。这将在3.3和3.4小节中概述。与此相关的是,精确深度的传播方式是由与每个深度值相关的不确定性驱动的,这些不确定性是根据一个特别提出的置信度度量来估计的(在Subsec. 3.3中定义)。下面将详细介绍框架的每个阶段。

3.1 相机姿态估计

相机姿态估计的灵感来自于[4]中的关键帧方法。特别是,系统持有一组关键帧\boldsymbol{k_1,k_2,...,k_n\in K}作为进行SLAM重建的结构元件。每个关键帧\boldsymbol{k_i}都与一个姿态关键帧\boldsymbol{T_{k_i}}、一个深度图\boldsymbol{D_{k_i}}和一个深度不确定图\boldsymbol{U_{k_i}}相关联。与[4]不同,我们的深度图是密集的,因为它是通过基于CNN的深度预测生成的(参见Subsec. 3.2)。不确定度图测量每个深度值的置信度。与[4]将不确定度初始化为一个大的常数值不同,我们的方法是根据深度预测的测量置信度来初始化不确定度(见第3.3小节)。接下来,我们将引用一个通用深度映射元素\boldsymbol{u=(x,y)},图像域中的哪个范围\boldsymbol{u\in \Omega \subset \mathbb{R}^{2}}\boldsymbol{\dot{u}}为其齐次表示。

 

 

 

 

 

 

 

你可能感兴趣的:(论文学习,计算机视觉,机器学习,深度学习,人工智能)