Long-term 3D Localization and Pose from Semantic Labellings

Carl Toft、Carl Olsson、Fredrik Kahl
Chalmers University of Technology、Lund University

摘要

相机位姿估计和3D定位的主要挑战之一是识别不同季节、不同天气和光照条件下近似不变的特征。本文仅基于单个查询图象的像素级别语义标签提出了一种准确和鲁棒的六自由度相机位姿估计方法。定位通过使用一个由语义标记的点与曲线组成的稀疏3D模型并根据这些在查询图象上相应的投影曲线的质量,建立了一个误差函数。该方法在最近发布的牛津RobotCar数据集上进行评估,结果表明在许多情况下通过最小化误差函数可以恢复公寸级别精度的位姿。

1.介绍

1982年,Marr的统一视觉理论出版而且它一直是视觉界的主要灵感来源。这一理论与人类的知觉相似,并在多个层面上发挥作用;开始于局部视觉图元,以对场景的全局理解结束。有趣的是,当审视当今表现最好的视觉建图和定位系统时,很大程度上缺乏对场景整体的理解。与前述不同,它们依赖于点投影的几何形状和有效的局部特征,这些足够可以单独并可靠的在图像间匹配而没有任何的语义理解。
对局部纹理描述子的依赖使得系统对会影响局部场景外观的观测点的变化、天气条件、光照和季节变化等都很敏感。此外如果没有任何高层次的理解,就很难确定场景的哪些部分对于定位而言可能是不可靠的,例如汽车或其他移动对象。因此传统的几何定位系统在较弱的局部外观信息情况下,受到的约束不够。
本文讨论的是基本问题:是否能够通过高级信息执行图像定位,例如图像内容的语义理解?这些信息与当地的纹理相比很大程度上不受天气、光照和季节变化的影响。我们利用最近在像素级语义图像标记方面的进展,获得适合于长期定位鲁棒的场景描述。其基本思想是,仅凭查询图像中语义类的分布就足以为相机z姿态提供强有力的约束。
为了解决这个问题,我们创建了一个由简单几何特征组成的场景模型,例如3D点和曲线,但是有一个有意义的语义标签。它们被投影到查询图像中,并与其语义内容进行比较。我们的结果表明这种简单的方法可以用于从单个查询图像进行可靠的长期定位,请参见图1中的两个示例。因为我们只在查询图像中使用语义标记的信息,增加的不变性使我们能够定位在与模型完全不同的条件下捕获的图像。有人可能会认为我们没有使用查询图像中的所有信息,因为我们只依赖语义标签。这当然是正确的,在实际系统中应该使用查询图像中的所有可用信息。在这项工作中,我们在突破极限并研究在这些条件下是否有可能实现可靠的相机姿态估计。我们在城市街道场景中进行长期3D定位的实验结果是非常令人鼓舞的。我们展示了在许多情况下可以从一幅图像中实现全局的度量定位,尽管是在季节变化和具有挑战性的光照条件基于局部特征的方法完全失败的情况下。

2.相关工作

传统的相机姿态估计(有时被称为“相机切除”,或简单地称为“本地化”)通过匹配查询图像和3D模型之间的点特征来执行。在这种情况下,模型只是由三维空间中的一组点组成。与每个点相关联的是一个或多个描述向量,描述该点的局部外观,正如在构建三维模型时所看到的那样。当图像被局部化时,从图像中提取特征点,并且每个图像点与3D模型中最相似的点相匹配。这样就得到了一组2D-3D对应关系,由此计算出完整的六自由度位姿。这仅与在图像领域工作的方法形成对比,解决了“视觉位置识别”的问题,调查见参考文献[23]。我们只关注三维定位问题。
长期定位的主要困难在于用来描述图像和3D场景的特征描述子在环境中遇到的不同季节、天气和时间情况下并不是不变的。Valgren和Lilienthal[34]研究了SIFT和SURF对单一图像的长期定位的适用性,发现直立U-SURF在他们的方案中表现的最好。另一种解决长期定位问题的方法是寻找新的描述子可以更好地应对环境的变化。例如,Yi等人在参考文献[35]中创建了一个新的名为LIFT的特征描述子,他们通过在对应于相同特征但在不同环境条件下观测的图像块上训练卷积神经网络,并发现与SIFT相比,该描述子在光照条件差异很大的条件下拍摄的图片之间产生了更正确的匹配。我们使用LIFT描述子作为基线与我们的方法进行比较,因为LIFT比许多类似的特征描述子(包括SIFT)性能要好得多。
Badino等人在匹兹堡一条9公里长的道路上进行了跨季节的视觉定位。这条路在一年的时间里横跨了十几次,捕捉了季节变化和各种天气条件。使用其中一条横跨创建了一个地图,它存储了在道路上大致相同的位置上的GPS位置和相机中可见的SURF特征。然后可以使用贝叶斯过滤方法对其余的数据集进行定位。因此这种方法依赖于SURF描述子的不变性。为了补偿特征匹配的不可靠性,使用连续图像序列进行定位。使用多幅图像进行定位(或者更确切地说是位置识别)的想法也在参考文献[26]中进行了研究,其中使用了多达300幅连续图像来进行基于图像强度相关测量的定位。在参考文献[6]中,只使用视觉里程计信息进行了自定位研究。有一些复杂的单幅图像3D定位算法被开发出来用于处理大量的误匹配,参考文献[20,7,19,9,33,30,36,18,32,31]。然而,如果局部特征匹配不能正常工作,这样的方法注定会失败。在参考文献[21]中通过一种挖掘方法,在一段时间内找到稳定的局部特征。在参考文献[17,8]中介绍了深度学习方法。在参考文献[28]中为进行长期视觉定位,推导出了信息论度量来比较查询图像和呈现的图像而不依赖于单个像素。虽然它需要一个完整的环境几何3D模型。我们探索了另一种途径,通过使用语义信息获得长期可靠的线索。在文[2]中,将室内场景中的目标识别应用于二维地图中的机器人定位,获得了更稳定的匹配结果。
在参考文献[2]中,为在2D地图中机器人定位,,将室内场景中的对象识别用于获得更稳定的匹配结果。该方法是基于粒子滤波的,也就是说需要一段时间的多次观测。我们工作的另一个灵感来源是语义三维重建。参考文献[14]中的结果表明,3D重建和多视图立体可以通过使用图像中的语义标注来完成。

3.一个令人振奋的例子

定位算法的输入是查询图像的像素级语义标签。如果仅利用这些信息就能准确地计算出相机的姿态,只要使用语义分割的方法在这些条件下可以输出精确的标签,这样就可以在不同的环境条件下进行有效的3D定位。因此,定位问题转移到了分割问题,准确的长期定位成为语义标记进展的自然成果。图2展示了一张来自牛津RobotCar数据集图像的典型语义标记,该标签是通过应用参考文献[13]中的在城市场景数据集中训练的方法来获得的。该标签由每个像素的一个整数组成,表示了其赋值的语义类别。这些类别通常包括道路、路面、建筑物、植被、杆和天空等等。还要注意的是,图像中不同的连接部分是完全没有特征的,并且完全以它们的轮廓为特征。
通过对图像的检测,可以从图像中提取出两种姿态信息。图像中语义类的课程空间分布应该能够提供关于图像在地图中的位置的粗略信息;在公园拍摄的照片将以植被为主;而在市中心拍摄的照片可能包含更多的建筑物。
然而,期望能够提取更精确的度量信息似乎也是合理的。天空与远处植被交汇的道路和等高线提供了摄像机旋转的信息,道路的两旁提供了关于汽车在道路上的横向位置的信息,路边的电线杆应提供关于道路纵向位置的准确信息。考虑到所有的证据,因此从单一的标记图像中计算出完整的六自由度姿态是可能的。在下一节中,我们提出了一个框架以统一的方式处理这些信息,并通过最小化损失函数来允许进行高效的姿态计算。

4.语义定位框架

4.1.模型

我们的模型由两种类型的元素组成;3D点与空间曲线。3D点在这里插入图片描述都假设为属于一个单一的语义范畴,因此有一个关联的标签。给出一个待定的3×4相机矩阵P(包含方向和位置)我们计算投影在这里插入图片描述
和惩罚函数在这里插入图片描述
其中在这里插入图片描述测量标记为在这里插入图片描述的的图像中x与最近像素之间的距离。
请注意,对于标记为在这里插入图片描述的像素,如果缺少正确标记的投影,不会带来惩罚。只有当3D点投射到语义不同的部分时,才会发生惩罚。这是至关重要的,因为我们的3D模型是使用标准的SfM系建立的统,因此还远未完成。此外,这允许我们以一种非常简单但有效的方式处理遮挡,方法是记录一个3D点应该被看到的距离,并在在这里插入图片描述项中增加一个深度阈值。
由于语义标记图像中的大部分信息存储在离散的不同类的曲线中,我们的三维模型还包括一组空间曲线在这里插入图片描述被赋予两个语义标签在这里插入图片描述
对于三维曲线,我们使用了一个惩罚函数R p ciηL1 i,L2 i(x(S)ds。
其中在这里插入图片描述是计算点x与图像曲线之间最小截断距离的函数,该曲线将标记为L1 i和L2的区域分隔开来。
请注意,我们的空间曲线可能与实际物理曲线不相对应。虽然分隔道路和人行道的曲线是真实的,但天际线却不是。我们还发现,使用它们并视为远处的曲线有助于约束定位。尤其它们对于确定方向是有用的。
类似于三维点,三维模型中的曲线不需要解释整个观察到的图像。例如,如果我们想使用远处植被与天空交汇的天际线作为曲线型(正如我们在实验部分所做的那样),当3D模型中的天际线曲线没有被重新投影到图像中的整个观察到的天际线上,我们不会被惩罚。相反,我们只对表示天际线的三维曲线的投影与查询图像中观察到的天际线不一致的每一点进行惩罚。
我们的计算损失函数如下:
在这里插入图片描述
其中,积分是用弧长参数s计算的。数字在这里插入图片描述在这里插入图片描述是不同语义类的权重,让我们选择提供一些更重要的证据,如果需要的话。在Sec.5进行的实验中,
这些常数都被设置为一。在这里插入图片描述是重投影曲线i的长度。值在这里插入图片描述是标标签为在这里插入图片描述的图像中所看到的点数。通过在查找表中存储距离函数在这里插入图片描述可以非常有效地计算损失函数(1),如图3所示。当我们希望评价对一个给定的姿态P的损失函数E时,曲线和点投影到P中,然后从预先计算的表中检索η和d的对应值,这使得最小化损失函数迭代非常快。
在上述框架内,我们没有指定要使用哪种类型的曲线来进行定位。在第5节的定位实验中,曲线在这里插入图片描述是分段线性曲线,因为很容易投影到所以相机并整合起来。我们也还没有为这些曲线指定任何特定的语义标签。对它们有用的唯一要求是,应该能够可靠地从语义标记的图片中提取这些曲线。

4.2.优化损失函数

损失函数是一个复杂的非凸函数,具有多个局部极小值。为了找到损失函数一个好的最小值,必须利用一些问题结构的先验知识。否则如果在估计初始相机姿态上出现梯度下降,除非初始姿态非常接近全局最小值,否则我们极有可能出现局部最小值。呈现在下一节的实验中,我们用曲线来表示道路的两边和街道上的电线杆,以及代表天空中远处树木轮廓的曲线。利用这些知识,采用以下方法使在这里插入图片描述降至最低。
给一个姿态的初始估计,在(1)上只使用点和道路边缘进行梯度下降,其他直线的项设置为零。这可能会对相机的旋转产生很好的估计。这之后是梯度下降,其中只包括对应于道路边缘和电线杆的项。
在这个阶段,车辆的旋转和水平位置很可能接近它们的最佳值。于是就合理的假设六个自由度中有五个是固定的:三个用于旋转,一个用于横向,另一个用于垂直方向。因为只有一个自由度剩下,沿着这个维度进行线性搜索,与车辆在道路上的纵向位置相对应。这个方向被假定是沿着当前相机的主轴。图5展示了一个沿此方向的损失函数例子。最后,从搜索过程中得到的最小值执行最后一轮梯度下降,保留损失函数的所有项。对梯度下降法的所有导数都进行了数值计算。
最后一个必须解决的问题是在哪里获得相机矩阵的初始估计值在这里插入图片描述。在实际应用中,例如在真正的自动驾驶场景中,可能有相当好的GPS(和其他传感器)和惯导用来估计车辆位置, 可以作为局部优化的起点。然而,在本文中,我们对没有其他信息只从单一的标记图像进行全局定位,并使用一种简单的基于查询图象中语义标签空间统计的初始化方法。
特别的,分割后的图像的上半部分被划分为六个大小相同的区域(两行三列)。然后,通过对区域中所有像素类(不包括汽车和行人)做直方图,为每个区域分配一个描述子向量,然后对向量进行归一化。在此向量中,附加两个梯度直方图,这些直方图是从该区域所看到的建筑物和植被类别所对应的二值图像在归一化并以1/2的倍数进行缩放之后得到的。最后,将从所有区域得到的六个向量叠加成一个最终的描述向量。
在构建三维地图的过程中,计算了映射序列中所有图像的描述向量。当稍后展示要定位的图像时,将为查询图像计算描述符,然后从映射序列中匹配到最近的描述符。然后将所发现的相机作为初始相机矩阵在这里插入图片描述进行局部优化。

猜你喜欢

转载自blog.csdn.net/qq_33838170/article/details/83743439