考虑一下情况:一个搭载相机的机器人,其在如图 3.1 所示的任意已知3D场景 S S S中移动并采集图像。我们的目标是估计机器人在 S S S中的位姿 S E ( 3 ) \mathbb{SE}(3) SE(3),该位姿通过 G R , W G_{R,W} GR,W参数化:即从定义场景 S S S的先验坐标系 W W W到机器人坐标系 R R R的变化。
图3.1:一个搭载相机的机器人在预先测绘的场景 S S S中移动时采集图像 I I I,该场景包含定义在坐标系 W W W下的3D点集 q i q_i qi。对于任意的将 W W W坐标系的点映射到机器人坐标系 R R R的变换矩阵 G R , W G_{R,W} GR,W,点集 q i q_i qi的子集(一部分)会被重投影到图像 I I I的坐标 x i x_i xi。
由于场景结构已知,对于任意的 G R , W G_{R,W} GR,W,均可计算出场景中哪些点会重投影至相机,以及这些点在图像平面的上重投影坐标。通过在捕获图像 I I I中对重投影坐标 x x x进行差值,我们可以为投影到图像中的3D点获取其在 G R , W G_{R,W} GR,W下的外观观测。假设先验地图不仅存储了每个点的3D位姿还存储了其示例外观,则对于在 G R , W G_{R,W} GR,W在被重投影至图像 I I I的每个点,我们将用于两个组外观观测:一组来自先验,另一组来自图像。
图3.2 问题直觉。机器人开始于位姿A,此时(在该点时)其位姿由 G A , W G_{A,W} GA,W参数化,且该位姿已知。随后,经历一次顺时针横滚运动后,在位姿B时捕获到第二帧图像。当机器人从A到B的运动 G B , A G_{B,A} GB,A估计准确时, S S S中的点重投影到图像 I B \mathcal{I}B IB的点与图像对齐,并且它们的外观保持一致。当估计是错误的时( G ^ B , A ≠ G B , A \hat{G}{B,A}\ne G_{B,A} G^B,A=GB,A),重投影点不能与 I B \mathcal{I}_B IB对齐,因此它们的外观不一致。
图3.3 图3.2的示例使用了文献【106】的真实数据为。从初始机器人位置A(其位姿 G A , W G_{A,W} GA,W是准确的)观测到先验场景重投影点在图里用蓝色显示。相机随后向右平移在位置B捕获图像。此运动被正确估计且机器人位姿在B处位姿准确的情况以绿色显示,而运动被错误估计的相反情况用红色显示。对于每一帧图像,还展示了重投影点的强度(外观)直方图。数据来源于EPFL Multi-View Stereo Herz-Jesu-P8 基准数据集【106】。
在地面车辆运行于繁忙多样的环境的背景下,场景的集合结构通常是复杂的。此外,网格(计算机图形学中的核心基础表示)作为场景表示备受青睐,因其能充分利用GPU硬件对此类图元进行优化。然而,虽然纯虚拟构建的3D环境可以以这种形式原生构建,但用于捕获真实室外场景3D结构的系统却不输出原生网格,相反,3D激光雷达系统如(【97,113】)输出从环境中采样的点云。如何从采样的点云构建网格的问题仍然是一个活跃的研究领域。且与网格相关的纹理的存储需求可以会显著超过原始点云。因此我们定义 S S S为从环境中采样的彩色点云,并将其视为数据的基础表示。
S S S中的点 q q q的外观在图像 I \mathcal{I} I体现为: I ( x ) \mathcal{I}(x) I(x)是点 q q q重投影到图像平面对应亚像素坐标 x x x的图像(颜色)值,其中 x x x是相机内参标定和位姿的函数。基于针孔相机模型,并记相机参数为 κ \kappa κ,我们可以定义如公式3.1重投影算子 P \mathcal{P} P:
x = P ( q , G R , W , κ ) (3.1) x=\mathcal{P}(q,G_{R,W},\kappa)\tag{3.1} x=P(q,GR,W,κ)(3.1)
该算子将定义在 W W W下的点集 q ∈ R 3 q\in\mathbb{R}^3 q∈R3映射到图像平面的图像坐标值 x ∈ R 2 x\in\mathbb{R}^2 x∈R2。对具有 m m m通道的图像,我们以 L ( x ) ∈ R m \mathcal{L}(x)\in\mathbb{R}^m L(x)∈Rm表示坐标 x x x处的图像(颜色)值。
对于任意给定的相机和位姿,仅有场景 S S S的一部分被重投影到相机下。我么表示S的子集为: S ˉ ⊆ S \bar{S}\subseteq S Sˉ⊆S。
根据图3.1可视化展示,我们可以将单目相机的(定位)问题转化为对变换矩阵 G R , W G_{R,W} GR,W的优化问题,其目标是最小化目标函数 f d i s t a n c e : R 2 ( ∣ S ˉ ∣ × m ) ↦ R 1 f_{distance}:\mathbb{R}^{2(\left|\bar{S}\right|\times m)}\mapsto\mathbb{R}^1 fdistance:R2(∣Sˉ∣×m)↦R1。该函数通过公式3.3度量可见点子子集视觉外观之间的差异。
其中我们用 I S ( q ) \mathcal{I}S(q) IS(q)表示先验中存储的点 q q q的外观。假设 I S q \mathcal{I}S{q} ISq与实时图像中点 q q q的颜色值具有相同维度,尽管颜色空间不必保持一样。需特别注意, f d i s t a n c e f{distance} fdistance基于外观元组集合 ⟨ I ( P ( S ˉ , G R , W , κ ) ) , I S ( S ˉ ) ⟩ \left \langle\mathcal{I}(\mathcal{P}(\bar{S},G{R,W},\kappa)),\mathcal{I}S(\bar{S}) \ \right \rangle ⟨I(P(Sˉ,GR,W,κ)),IS(Sˉ) ⟩计算的(如公式3.2所示),而非逐元组独立计算的。为了清楚强调每个点所需的信息(每个元组的组成),我们在等式3.3中采用了等效的表示形式,其中每个点的元组成分以及 f d i s t a n c e f{distance} fdistance计算所基于的集合定义,均被显式的写入函数签名中。
显然,从公式3.3可知, L ( x ) \mathcal{L}(x) L(x)依赖于位姿 G R , W G_{R,W} GR,W,但需注意的是可见点集 S v i s S_{vis} Svis同样依赖于相机的位姿。因此 S v i s S_{vis} Svis在优化过程中应针对每个候选 G R , W G_{R,W} GR,W重新计算。
尽管公式3.3针对的是一个单独的相机,但是正如假设A4所述,我们假设待定位的车辆有多个同步且视场互补的单目相机。这是因为一个相机无法在现实场景 S S S中对变换矩阵 G R , W G_{R,W} GR,W的所有参数提供良好的约束,当然也不可能为所有可能的 S S S提供约束。因此,我们将公式扩展为公式3.4,
即对所有相机的目标函数 f d i s t a n c e f_{distance} fdistance求和。需注意,这需要满足 f d i s t a n c e f_{distance} fdistance的求和概念存在且理论有效。
此方法与基于特征的定位技术(如文献[98, 43])存在两大核心差异:特征选择与对应关系的处理方式。在基于特征的方法中,需在每一帧图像中显式地检测特征并建立对应关系,且需谨慎确保数据关联的正确性。而在公式(3.4)中,对应关系通过 S S S隐式确定,点选择仅需根据当前相机位置筛选可见点子集,这一操作通常为低计算开销的,且可通过点云的离线预处理进一步加速。
3.1.3 f d i s t a n c e 的性质 f_{distance}的性质 fdistance的性质
公式3.4中的 f d i s t a n c e f_{distance} fdistance存在多种潜在的选择。我们期望该函数对不同相机、不同光照条件以及场景中未建模的动态物体的外观差异具有鲁棒性。我们也想 f d i s t a n c e f_{distance} fdistance是可微的,并且有一个宽广的收敛域以收敛到清晰(理想情况下唯一)的极小值,从而可以通过标准数值优化方法优化。最后我们也要求 f d i s t a n c e f_{distance} fdistance加法操作存在,从而能对所有相机进行有意义的求和(如公式3.4所示),形式上这意味我们希望 f d i s t a n c e f_{distance} fdistance是一个度量[119]。
在本研究中,我们选择将 f d i s t a n c e f_{distance} fdistance定义为归一化信息距离(Normalised Information Distance, NID)[50,51]。该距离是互信息[95]的度量空间类比,我们将在第4章对其进行详细讨论。使用一个严格的信息度量是有吸引力的,因为它允许一个直观和简洁的公式,具有强大的理论基础。此外,它是鲁棒的,并且允许对来自不同模态的数据进行对齐,在本工作中,我们使用它来解释(应对)场景的外观随时间的变化,不同的相机配置和不同的颜色空间之间的差异。
3.2 相关工作
基于本地观测的传感器数据对地图进行度量定位的问题,是同步定位与建图(SLAM)问题的本质特征,且在过去二十年中一直是机器人领域的研究热点。二维平面激光雷达的使用,过去是且现在依然是 S E ( 2 ) \mathbb{SE}(2) SE(2)SLAM的中受欢迎的传感器选择。从历史上看,这主要是由于移动机器人受限于对实时自主探索的需求,其所能搭载的计算资源有限。最近,由于(随着)便携式计算机能力的稳步增长,使用单目或立体相机的视觉SLAM变得普遍(得到广的应用)。
基于特征方法的替代方案是所谓的"直接法"(Direct Methods)。这类方法无需提取任何稀疏图像特征,而是直接在整幅图像的原始像素强度上操作,从而充分利用所有可用信息(尽管该领域的早期研究曾使用图像块[99])。此类方法的流行,很大程度上得益于图形处理器(GPU)在通用计算任务中的崛起(GPGPU),因为GPU本身的大规模并行硬件设计使得实时评估稠密目标函数成为可能。该领域首个完整的实时系统是文献[77]提出的DTAM(密集跟踪与建图)。该方法使用单目RGB相机,并行迭代构建小尺度工作空间的密集三维纹理网格并实现实时定位。其中,建图部分采用正则化 L 1 L_1 L1变分目标函数,而定位部分则基于实时图像与当前稠密工作空间估计生成的合成图像之间的光度误差 L 2 L_2 L2范数。实验结果表明,其性能优于文献[39]中基于特征的PTAM方法,且对动态遮挡和虚焦表现出极强的鲁棒性。
光度像素误差的 L 2 L_2 L2范数已被证明是密集定位方法中非常流行的选择。例如:文献[52]中,利用汽车标准倒车摄像头实现了大规模 S E ( 2 ) \mathbb{SE}(2) SE(2)视觉里程计;文献[27]近期将其用于单目SLAM的半稠密场景。此外,在RGB-D场景中结合深度信息(文献[101])及立体视觉(文献[13])的视觉里程计也采用了此方法。
尽管 L 2 L_2 L2范数的使用隐含了"场景外观近似恒定"的假设,但像DTAM这样的SLAM系统仍可通过迭代更新模型纹理来应对渐变光照。然而,剧烈或突发的光照变化仍会导致系统失效(尽管在小规模室内工作环境中此类问题并不突出)。而对于[52, 13]等视觉里程计系统,光度一致性假设仅作用于相邻帧之间,因此即使在室外非受控光照条件下,该假设仍具合理性。