基于RANSAC的多帧尺度估计
本文提出一种基于RANSAC框架和新型评分方法的单目SLAM尺度估计技术,通过多关键帧收集三维地面点并利用投影误差评估平面拟合精度,有效缓解了无纹理区域下点云稀疏与重建不准的问题。在KITTI数据集上实现了1.03%的平均平移误差,显著优于现有方法。
基于RANSAC平面拟合与新型评分方法的多个关键帧高精度尺度估计
摘要
由于单个相机的投影特性,单目视觉同时定位与地图构建(vSLAM)算法存在尺度漂移问题。近期研究通过估计相机到拟合地面平面的高度来解决尺度漂移问题。然而,来自无纹理地面区域的三维地面点(3DGP)重建精度低且数量不足,导致拟合平面在尺度估计中不够准确。本文提出一种新的拟合平面精度度量方法。从前一个关键帧出发,首先获取拟合平面与穿过相机中心及地面区域上二维特征点的射线交点处的三维点;然后利用各自的平面单应性,将这些三维点和二维特征点变换至当前关键帧;最后,将变换后的三维点投影到当前关键帧的图像平面上,并计算投影点与变换后特征点之间的平均欧氏距离。所提出的方法在KITTI数据集上实现了1.03%的平均平移误差,优于最先进的单目vSLAM方法。
索引词
单目SLAM,平面拟合,RANSAC,尺度估计。
一、引言
近年来,视觉同步定位与地图构建(vSLAM)已成为自动驾驶领域日益热门的研究课题[1],[2]。车辆运动可以从单个深度传感器、RGB相机或立体相机捕获的图像数据中进行估计。由于单个RGB相机比其他传感器更便宜且所需标定工作更少,因此单目vSLAM在汽车行业中具有吸引力。然而,由于单个RGB相机具有纯粹的投影特性,无法获取真实世界尺度信息,只能估计相机的相对位姿。
对于移动的车辆,这会导致误差传播,即所谓的尺度漂移问题[3]。近年来,已开发出多种利用环境先验知识来校正尺度漂移的方法,例如检测到的物体尺寸[4]–[7]、交通标志[8]以及安装在车辆上的相机高度[6],[7],[9]–[14]。在本研究中,我们使用相机高度进行尺度估计,因为真实相机高度可以可靠地测量并视为已知,而在真实驾驶环境中,物体的尺寸(如车辆)可能会有显著变化。
大多数基于相机高度的尺度校正方法通过寻找平坦的地面平面并将其与真实相机高度进行比较来估计相机高度。具体而言,可以通过对重建的三维地面点(3DGPs)[12]–[15]进行平面拟合来估计相机高度。然而,由于车辆向前运动以及特征匹配不准确,重建的3DGPs不可避免地受到噪声和异常值的影响。为了减少异常值的影响,在[13],[14]中使用随机抽样一致性(RANSAC)算法[16]对3DGPs进行平面拟合。为进一步提高精度,计算图像垂直消失点的方向,该方向与地面平面的法向量方向相同,并用于选择RANSAC地面平面拟合的内点三维点[14]。在[12]中,除了使用上述平面拟合获得的相机高度外,还通过分解连续帧之间的单应性矩阵获得另一个相机高度估计值。最终结果通过使用预训练分类器进行选择。
Songetal.[6],[7],[15]根据3DGPs、单应性矩阵分解以及检测到的物体尺寸来估计相机高度。使用卡尔曼滤波器融合从不同数据获得的结果。为了适当地融合这些结果,对每一帧,通过将先前训练的线性模型应用于估计结果,来计算卡尔曼滤波器的观测误差协方差矩阵。
简而言之,平面拟合可以单独使用[13],[14]或结合其他方法[12],[15]来估计相机高度。多线索方法[6],[7],[12],[15]需与基于学习的数据融合协同工作以生成最终结果。我们注意到,这些方法的性能在很大程度上依赖于用于训练的数据库。与多线索方法相比,单一平面拟合线索方法更为简单轻量,且不需要复杂的数据融合过程。然而,由于3D高斯点的重建精度较低,仅通过平面拟合来估计相机高度具有挑战性。尽管RANSAC能够通过拟合最大内点集的平面有效滤除外点,但其性能常常受限。这是因为仅使用点到平面距离来确定内点容易受到3D高斯点重建精度有限的影响。此外,由于道路区域仅占据图像的一小部分且缺乏图像纹理,当前帧中可见的3D高斯点数量通常不足以进行稳健估计。
为了利用3D高斯点(3DGPs)准确估计相机高度,我们提出了一种基于RANSAC框架的新型平面拟合方法。为此,我们从多个关键帧中收集了足够数量的3D高斯点候选点。在此过程中,即使位于相机后方的3D高斯点也被纳入考虑,前提是车辆行驶在局部平面表面上。在 RANSAC迭代过程中,为了对拟合的三维平面进行评分,我们从相机中心向之前关键帧中地面区域检测到的每个特征点构造一条三维射线。三维平面点(3DPP)被定义为该射线与拟合三维平面的交点。随后,我们通过平面运动将前一个关键帧中3DPP的坐标变换至当前关键帧。从当前关键帧出发,计算由前一关键帧变换而来的特征点与3DPP投影点之间的平均欧氏距离。最终,在RANSAC迭代过程中选择具有最小欧氏距离的平面,并据此计算相机高度。我们在KITTI数据集上评估了结合所提出的尺度估计方法的ORB‐SLAM[17]性能。实验结果表明,使用我们尺度估计方法的ORB‐SLAM在采用和不采用所提出的评分方法时,在KITTI数据集上的平均平移误差分别为1.03%和1.44%,优于最先进的方法。
II. 背景
A. ORB-SLAM
在提出的方法中,我们通过使用ORB‐SLAM[17](被公认为最广泛使用的基于特征的单目视觉SLAM系统)来获取三维点和相机位姿。在ORB‐SLAM中,三个并行线程——i.e.,跟踪线程、局部建图线程和回环检测线程——在中央处理器(CPU)上运行。跟踪线程估计当前帧的相机位姿,并检查当前帧是否满足关键帧选择准则。因此,关键帧被自适应地选择,以确保在各种驾驶环境中特征点能够实现鲁棒跟踪。例如,当场景因车辆旋转或高速运动而发生较大变化时,会尽快选择新的关键帧以实现鲁棒跟踪。来自跟踪线程的关键帧会在局部建图线程中进一步优化。具体而言,如果某一关键帧与其他三个关键帧共享超过90%的特征点,则该关键帧将被移除,以维持ORB‐SLAM系统的效率。局部建图线程重建三维点,并执行局部光束法平差(BA)[19],以确定重建的三维点与优化后的关键帧相机位姿之间的最优几何关系。在检测到闭环轨迹后,回环检测线程通过位姿图优化校正所有相机位姿。

B. 三维空间中平面的表示与参数化
为了符号表示的简洁性,我们简要定义本文中使用的符号。二维点、三维点、旋转矩阵和平移向量分别记为u、X、R和t。上标用于表示坐标系,而下标用于表示数据或RANSAC迭代的索引。若无必要,可省略上标和下标。给定世界坐标系中的一个三维点Xw ∈ R3,其在第kth个关键帧坐标系中的对应三维点为Xk= RkwXw+tkw,其中Rkw ∈ R3×3和tkw ∈ R3×1分别为旋转矩阵和平移向量。三维点Xk=(x, y, z)T在图像平面上的投影记为uk= π(Xk),其中π(·):R3 →R2是由相机内参确定的针孔相机投影模型,uk=(u, v)T是由投影图像坐标组成的向量。给定uk和反投影模型π−1(·):R2 → R3,,对应的三维点可恢复为Xk= ρ · π−1(uk),其中ρ为尺度因子。
图1展示了相机与地面平面之间的几何构型。三维空间中的一个平面可以用其单位法向量n=[nx, ny, nz]T和该平面到相机中心的距离d ∈ R来表示。设Xp为位于该平面上的一个三维点,则平面方程可表示为
$$
n^T X_p + d = 0. \tag{1}
$$
C. 地面区域检测
为了计算相机高度,必须首先检测图像中的地面区域。大多数传统方法通过道路上的感兴趣区域(RoI)来确定地面区域[6],[7],[9],[11],[12],[14],但如果该感兴趣区域被道路上的意外物体遮挡,则可能导致相机高度估计失败。Wang et al.[13]提出了一种不依赖于感兴趣区域(RoI)的方法,而是基于相机的运动方向来确定地面区域。具体而言,首先根据Delaunay三角剖分[20]将图像分割为若干个三角形区域;然后,若某个三角形区域通过重建的三维点计算出的法向量大致垂直于相机的运动方向,则将其分类为地面区域。Lee et al.[9]则利用在量化颜色空间上训练的朴素贝叶斯分类器来确定地面区域。
得益于深度学习的最新进展,各种基于卷积神经网络(CNN)的语义分割方法已被开发出来,并表现出卓越的性能[21]。特别是基于标准CNN的方法模型方面,已开发出多种道路分割方法[21]–[28]。例如,一些方法[23]–[25]采用编码器‐解码器网络架构以减少处理时间。其他方法[26]–[28]尝试通过引入额外的先验信息(如轮廓和道路区域位置)来提高分割精度。在本文中,我们使用之前的工作[29]获取地面区域。详细结构可参见[29]。
III. 动机
使用鲁棒估计方法(如RANSAC或MLESAC)对3D高斯点进行平面拟合是简单且直观的。然而,我们发现,当将其用于尺度估计时,平面拟合往往失败或产生较大误差。原因如下:首先,从无纹理道路区域获取的有效3D高斯点数量可能不足。这种情况尤其在道路区域过曝或被意外物体遮挡时发生,如图2所示。实际上,为了实现鲁棒估计,基于RANSAC的平面拟合方法需要相当大量的样本。
其次,由于3D高斯点重建精度较低,使点到平面距离最小化的拟合平面在尺度估计中可能是次优的。我们进一步利用KITTI视觉里程计数据集[18](包含11个具有真实相机轨迹的序列(00–10)以及另外10个无真实值的序列(11–20))说明这些问题。在此,对序列00–10应用了未启用回环检测的ORB‐SLAM算法。收集了ORB‐SLAM为每个关键帧重建的3D高斯点,并利用真实相机位姿将其缩放至世界坐标系1。
a) 3D高斯点不足:图3显示了每个关键帧可见的已采集3D高斯点数量、yz平面上的已采集3D高斯点以及其y坐标值的直方图。发现每个关键帧的有效3D高斯点的平均数量较小,e.g.,每个关键帧的3D高斯点平均数量关键帧为7.24,如图3(a)中红线所示。其他序列的结果可在项目网页上获取。2为解决此问题,我们假设如果采集的图像具有相似的场景内容,则车辆行驶在同一个平面上。为此,我们不仅从相机中心前方收集3D高斯点,还从相机中心后方收集。因此,所收集的3D高斯点可能无法从当前相机视角看到。
b) 3D高斯点的低重建精度:采集的3D高斯点应分布在y=1.65 m附近的平面周围,该值为真实相机高度[30]。在图3(b)中,所有三维点均显示在 yz平面中,并用红线标出了对应于 y=1.65 m的位置。可以看出,重建出的3D高斯点在 y=1.65 m两侧呈非对称分布。此外,采集到的3D高斯点的 y坐标平均值与1.65 m存在显著差异,导致尺度估计出现较大误差。
c) 使用点到平面距离进行不准确的平面拟合:为了将地面平面拟合到3D高斯点,可以应用RANSAC和 MLESAC[31]等鲁棒估计方法。在这些方法中,通过寻找最大的内点共识集,并利用最小二乘法估计平面参数。所拟合的平面在拟合平面与选定的内点3D高斯点之间的正交距离意义上是最优的。如果能够准确获得一个三维平面,则该平面上的三维投影点必须满足由相机位姿确定的平面运动。此外,三维投影点在图像平面上的投影应接近于地面上检测到的特征点。然而,如图4所示,其中特征点和三维投影点的投影分别用红色和蓝色表示,二者之间存在较大偏差。基于这一观察,我们提出一种替代方法,使用三维投影点而非3D高斯点对拟合平面进行评分。
第四节 提出的方法
图5表示所提出的尺度估算法的流程图。从ORB‐SLAM的局部建图线程中,我们首先收集世界坐标系中的三维点,以及每个关键帧的位置和旋转。在收集到的三维点中,跨多个关键帧选择3D高斯点。如果N> δ,其中N和δ分别表示3D高斯点的数量和阈值,则使用算法1对收集到的3D高斯点进行平面拟合。根据获得的平面参数(n d),计算尺度因子并用于校正相机位姿。如果N ≤ δ,则使用先前计算的尺度因子来校正相机位姿。
A. 三维地面点采集
如第二节‐B所述,为了准确获取平面方程,鲁棒方法通常需要充足的具有高置信度的三维地面点;然而,采用两个连续帧[6],[7],[12]的常见方案可能不足以收集所需数量的3D高斯点。在本文中,我们提出从多个关键帧中收集3D高斯点,其依据是:如果车辆在平坦地面上行驶,则所捕获的图像会共享足够数量的公共特征点。
每个关键帧可见的3D高斯点数量,(b) 3D高斯点在 yz平面上的分布,以及(c) y‐坐标值的直方图)

图6展示了所提出的基于多关键帧的三维地面点采集方法。为了获取3D高斯点,我们首先收集一组相邻的关键帧,记为 K1,其中每个元素都包含与当前关键帧共享的三维空间点。这些关键帧通过使用ORB‐SLAM中采用的共视图[17]来收集。在共视图中,只要任意两个关键帧共享至少15个三维点,它们就会被连接起来。K1中的关键帧在图6中用蓝色矩形表示。对于每个关键帧Fk ∈ K1,我们收集其可见的三维点Xw,并将它们投影到 Fk的图像平面上,方法如下:
$$
u_k = \pi(R_{kw} X_w + t_{kw}). \tag{2}
$$
如果投影点uk位于关键帧 Fk的地面区域内,则Xw被收集为候选三维地面点。图7展示了使用[29]获得的道路分割结果示例,其中包含从收集的三维空间点投影得到的点。道路区域以绿色显示,估计的3D高斯点和其他空间点分别标记为红色和蓝色点。
从多个关键帧中收集3D高斯点有效解决了第二节‐B中提到的3D高斯点不足的问题。一旦获得了足够的3D高斯点集合,我们就可以通过从候选3D高斯点中选择可靠的三维地面点来提高平面拟合的精度。通常,三维点的重建是通过三维射线的三角测量实现的从对应的二维特征点对反向投影得到。然而,在单目视觉 SLAM情况下,仅通过三角测量角的阈值来选择可靠的三维地面点并不可靠。这是因为每个3D高斯点的三角测量角会由于关键帧选择策略、未知的车速以及相机的前向运动而发生剧烈变化。为了解决这一问题,我们首先通过共视图进一步收集与K1中关键帧相连的关键帧,从而扩大关键帧集合 K1。我们将扩大的关键帧集表示为 K2,其在图6中由绿色矩形标出。然后,我们使用(2)将候选3D高斯点投影到关键帧Fk ∈ K2上。只有出现在至少 λ个关键帧中的3D高斯点才用于平面拟合。所提出的3D高斯点选择方法确保了三角测量角足够大,因为随着相机中心之间距离的增加,该角度也会增大。这种三维点采集策略尤其在道路区域过曝或被意外物体遮挡时非常有效。
B. 三维平面拟合
为了计算相机高度,我们在RANSAC框架下对3D高斯点进行平面拟合。如上所述,由于重建的3D高斯点精度较低,如果仅考虑点到平面的距离,则容易引入较大的d误差。因此,我们提出一种替代的平面拟合评分方法,使用位于平面上的三维投影点,而不是3D高斯点。该提出的方法基于以下事实:如果平面估计准确,那么将三维投影点投影到两个关键帧上得到的二维点,必须能够通过直接从这两个关键帧道路区域检测到的二维特征点计算出的单应性变换相互对应。评分过程包括三个步骤。第一步是从每个关键帧道路区域检测到的特征点获取三维投影点。第二步是三维投影点在当前关键帧上的投影。最后一步是计算投影点与单应性变换后的特征点之间的距离。
具体而言,在RANSAC的第 i次迭代中,首先从采集的3D高斯点中选择三个不共线的点(Xa,Xb,Xc)。然后通过归一化叉积得到单位法向量ni,即(Xb − Xa)×(Xc − Xa)。随后可通过nTi¯X计算相机高度 di,其中 ¯X为这三个点的质心。对于ni和 di,我们计算内点3D高斯点数量与 N之间的比例γ。然后,如果 γ> Tγ(其中 Tγ为内点比例的阈值),则使用内点3D高斯点重新估计平面。
设n∗i表示优化后的平面法向量,该向量通过求解以下约束优化问题获得:
$$
n^ _i = \arg \min_n | G^T n |^2, \quad \text{s.t.} |n|= 1, \tag{3}
$$
其中$G=[X^ _1,…, X^ _M] - \bar{X}^ 1^T$, $\bar{X}^ = \frac{1}{M} \sum_{M}^{n=1} X^ _n$, $X^*_k$表示第 k个内点三维高斯点,M表示内点3D高斯点的数量,且1是一个所有元素均为1的三维列向量。令G= UΣVT为G的奇异值分解(SVD)。根据瑞利‐里兹方法[32],法向量由U中对应最小奇异值的列向量确定。然后,距离从相机中心到地面平面的距离,记为d∗i,计算公式为d∗i= n∗Ti¯X∗。
为了衡量估计平面的精度,我们引入了一种新的评分度量,如图8所示。投影点和特征点分别用红色十字和蓝色圆圈表示。对应于特征点up的射线Xp(ρ)用蓝色箭头表示。设Pcp表示一个平面变换矩阵,该矩阵将Xp从前一个关键帧 Fp的坐标系变换到当前关键帧 Fc的坐标系,其表达式为:
$$
P_{cp}=(R_{cp}+ t_{cp}n^{ T}_i /d^ i), \tag{4}
$$
其中从先前关键帧到当前关键帧的旋转矩阵Rcp和平移向量tcp可根据组合规则[33]如下获得:
$$
R {cp}= R_{cw} R_{pw}^T, \quad t_{cp}= -R_{cp}t_{pw} + t_{cw}, \tag{5}
$$
其中Rpw (Rcw)和tpw (tcw)分别表示世界坐标系与前一个(当前)关键帧坐标系之间的旋转矩阵和平移向量。
设up为地面平面的特征点,Hcp为前一关键帧与当前关键帧图像平面之间的单应性矩阵。首先使用归一化直接线性变换计算该单应性矩阵,然后通过Levenberg‐Marquardt算法最小化所有内点特征点的对称转移误差来优化得到的单应性矩阵。对于特征点检测,在我们的实验中,我们使用了加速稳健特征(SURF)[35]而非 ORB,因为在无纹理的地面区域,SURF在检测和匹配精度方面优于ORB。3为了获得位于平面上的三维点Xp,我们将从相机中心沿方向 π−1(up)发出的射线进行参数化,如下所示:
$$
X_p(\rho)= \rho \cdot \pi^{-1}(up), \tag{6}
$$
其中ρ是一个标量参数,用于确定射线上的三维点的位置。由于Xp(ρ)与平面的交点必须满足式(1)中的平面方程,因此可通过将(6)代入(1)来求得平面上的三维点,如下所示:
$$
\rho \cdot n^{ T}_i(\pi^{-1}(up))+ d^ i= 0. \tag{7}
$$
因此,对于每个up,ρ和Xp按如下方式确定:
$$
\rho=\frac{-d^ _i}{n^{ T}_i(\pi^{-1}(up))}, \tag{8}
$$
$$
X_p= \rho \cdot \pi^{-1}(up). \tag{9}
$$
最后,我们测量重投影误差,如下所示:
$$
E_i= \frac{1}{W}\sum {p=1}^{W}|\pi(P_{cp}X_p)- u’ p|, \tag{10}
$$
其中
$$
u’_p= \omega(H {cp}(u_p^T, 1)^T). \tag{11}
$$
这里,W表示特征点的数量,| · |表示欧几里得范数。ω(·)是一个将齐次坐标转换为非齐次坐标的算子。
在第 i次RANSAC迭代中,我们得到拟合平面,i.e.,(n∗i, d∗i),及其对应的重投影误差 Ei。在经过 Titer次RANSAC迭代后终止迭代过程,并获得对应最小 Ei的(n∗i, d∗i)。最终的法向量和相机高度分别记为n∗和d∗。给定真实相机高度 dgt,尺度因子 s可简单地通过 dgt/d∗计算得到,其中 dgt=在使用KITTI基准数据集的实验中为1.65 m。算法1总结了所提出的三维平面拟合方法。
C. 尺度校正
在传统方法[6],[7],[11]–[13],[15]中,尺度校正是在跟踪线程中进行的,且使用经过尺度校正的相机位姿来跟踪后续帧的位姿。这类方法的优点是,如果在当前关键帧中无法计算尺度因子,i.e.,如果N ≤ δ,仍然可以从跟踪线程中获得相机位姿。然而,如果尺度因子估计不准确,则可能会给视觉SLAM的其他误差源引入额外的误差。与传统方法不同,我们利用局部建图线程中获得的世界坐标系下的当前相机中心位置cwc和前一相机中心位置cwp,得到具有校正后尺度的相机位置。具体而言,校正后的相机中心位置 ̂cwc按如下方式获得:
$$
\hat{c} {wc} = s\cdot(c {wc} - c_{wp})+ \hat{c}_{wp}, \tag{12}
$$
我们使用了OpenCV库的CUDA‐SURF以实现更高效的处理。特征匹配和单应性计算采用OpenCV‐4.0.0 Alpha内置函数,并使用默认参数进行。




V. 实验结果
为了进行性能比较,将提出的方法与手工设计的方法(包括李的方法[9]、宋的方法[7]和法纳尼的方法[12])以及基于CNN的方法(包括尹的方法[38]、苏卡尔的方法[39]和杨的方法[40])进行了对比。使用附加评分方法的所提出的尺度估计方法和不使用该方法的分别称为SERPS和 SERP。
A. 实验设置
为了评估提出的方法,我们使用了KITTI视觉里程计数据集[18],该数据集包含22个图像序列,涵盖了城市、住宅区、乡村和高速公路道路。序列00至10用于性能评估,因为其真实相机位姿是公开可用的。我们采用KITTI视觉里程计评估指标[18]来量化提出方法的性能,该指标是[41]中指标的扩展。我们比较了预测的相机位姿与真实相机位姿之间的差异,并计算了所有可能长度为100、200、…、800米的子序列的旋转和平移误差的平均值[18]。为了保证评估的公平性,我们对每个序列重复运行提出的方法、SERP和SERPS共30次,并测量误差的平均值和标准差。此外,为了评估尺度漂移校正的性能,我们计算了提出的方法的绝对轨迹误差(ATEs){v7},并将其与标准 ORB‐SLAM以及具有真实尺度的ORB‐SLAM(记为OS‐GTS)进行比较。ATE定义为估计轨迹和真实轨迹之间的均方根误差 (RMSE),其中我们使用了一个开源Python包[43]进行测量。所有实验均在一台配备AMD Ryzen 7 2700X CPU、16 GB内存和 NVIDIA GeForce Titan XP的个人计算机上进行。
B. 实现细节
提出的方法基于开源的ORB‐SLAM库[44]开发,该库在中央处理器(CPU)上使用三个并行线程进行跟踪、局部建图和回环检测(尺度校正)。为了确保线程安全操作,我们移除了回环检测线程,并新增一个称为尺度校正线程的线程来估计尺度因子。因此,用于跟踪和局部建图线程的参数与ORB‐SLAM中的完全相同。对于RANSAC平面拟合算法,在每次RANSAC迭代中随机选择三个点,内点选择的距离阈值设置为0.01。最大迭代次数 Titer设为100。
C. 参数敏感性分析
为了研究参数的影响,我们在KITTI数据集上使用不同参数设置测试了提出的方法。在本研究中,我们使用了序列 02,因为它是最长的序列,并涵盖了诸如启动、制动和加速等各种城市驾驶条件。为了确定关键帧的数量 |K1|以及所需的最小观测数 λ,我们评估了不同参数设置下的SERP和 SERPS。对于每种参数设置,我们对SERP和SERPS进行了 5次测试,平均平移误差列于表I中。此处, |K1| = 0表示三维高斯点仅从当前关键帧获取用于平面拟合。在这种情况下,SERP和SERPS趋于失败,因为收集到的三维高斯点的平均数量(记为 N)小于 δ,我们选择δ为15。例如, N= 14.47当 λ= 2且 N= 5.38当 λ= 3。当 |K1| > 2时, N显著增加。我们观察到,随着 |K1| 的增加,SERP和SERPS的性能得到改善,并且在 |K1| = 16时获得了最佳结果。比较不同 λ值下获得的结果,当 λ= 3时得到了更好的结果 |K1| > 4。需要注意的是,如果 λ> 3,地面平面拟合算法趋于失败,因为 N急剧减少。这是由于随着相机向前移动,地面上的特征点会非常迅速地移出视场,因此来自不同关键帧的同时可观测的3D高斯点更少。

为了研究内点比率阈值 Tγ的影响,我们将 |K1| 和 λ分别固定为16和3。由于我们发现内点比例 γ分布在0.4–0.8范围内,因此我们在该范围内测试了不同的 Tγ 值。图9显示了对每个 Tγ 值重复 SERPS 5次所得到的平均平移误差。结果表明,当 Tγ ≥ 0.6时可以获得更好的结果,因此我们选择将默认设置 Tγ 设为0.6。
在RANSAC迭代过程中,我们使用(2)重新估计平面,这对接计算复杂度影响最大。为了避免使用所有收集到的内点3D高斯点进行平面拟合,我们可以限制用于平面拟合的内点数量。设N表示允许的最大内点3D高斯点数量。在每次 RANSAC迭代中,如果内点3D高斯点的数量大于N,我们将根据这些内点3D高斯点到当前关键帧相机中心的距离进行排序,并仅使用距离最近的 N个内点3D高斯点进行平面拟合。

图10展示了不同N设置下SERPS的精度̂。当 N=200时获得了最高的精度ˆ,而当ˆN=250时精度下降,表明过多的数据反而损害了拟合精度。综上所述,默认参数设置确定为 |K1| = 16、 λ= 3、 Tγ = 0.6和 N= 200,其余实验均采用这些默认参数设置进行。我们进一步评估了SERPS在不同特征匹配技术下的性能,包括ORB[45]、SIFT[46]和GMS[47],分别记为SERPS‐ORB、SERPS‐SIFT以及SERPS‐GMS。使用OpenCV库的内置函数和默认参数进行特征检测与匹配。对于SIFT和SURF,根据对应描述子之间的欧氏距离进行特征点匹配。对于ORB,则使用汉明距离来比较二进制描述子。在GMS中,首先使用 ORB检测并匹配特征点,然后根据邻域内的匹配数量简单滤除不可靠的特征匹配。表II列出了SERPS、 SERPS‐ORB、SERPS‐SIFT和SERPS‐GMS获得的结果。SERPS‐SIFT表现出最佳的平均平移误差,为0.99%,但计算成本巨大。SERPS和SERPS‐GMS表现出相当的第二高精度。考虑到运行效率和高精度,我们默认使用 SERPS(结合SURF)。
在以10帧每秒拍摄视频帧的KITTI数据集中,通过 ORB‐SLAM的关键帧选择方法,我们平均每秒获得4.5个关键帧。从平均值角度来看,如果尺度校正线程的耗时少于222毫秒(=1/4.5秒),则所提出的尺度校正不会引入处理延迟。算法1和道路分割网络每关键帧平均分别耗时 23毫秒和160毫秒。由于尺度校正线程的平均处理时间为 183毫秒,因此可以得出结论:该方法仍可用于当前使用 ORB‐SLAM的应用场景,例如车辆定位和跟踪[48]。需要注意的是,跟踪和局部建图线程的运行时间不会受到尺度校正线程的显著影响,因为尺度校正线程是在一个新线程中执行的。为了验证这一点,我们计算了在有无尺度校正的情况下ORB‐SLAM在KITTI上的平均处理时间。表III提供了OS‐GTS、ORB‐SLAM、SERP和 SERPS的ATE结果。如预期所示,OS‐GTS取得了最佳的平均RMSE,为1.96米。标准ORB‐SLAM的平均RMSE最差,达到12.10米,这表明在具有挑战性的大规模环境中进行尺度校正是必要的。SERP的平均RMSE为3.75米,显著低于ORB‐SLAM。此外,通过使用所提出的评分度量进行平面拟合,我们获得了2.51米的平均RMSE,该结果与 OS‐GTS的ATE结果非常接近。这些结果证明了我们所提出的评分度量在尺度校正方法中的有效性。
D. 尺度漂移校正的影响
表III提供了OS‐GTS、ORB‐SLAM、SERP和 SERPS的ATE结果。如预期所示,OS‐GTS取得了最佳的平均RMSE,为1.96米。标准ORB‐SLAM的平均RMSE最差,达到12.10米,这表明在具有挑战性的大规模环境中进行尺度校正是必要的。SERP的平均RMSE为3.75米,显著低于ORB‐SLAM。此外,通过使用所提出的评分度量进行平面拟合,我们获得了2.51米的平均RMSE,该结果与 OS‐GTS的ATE结果非常接近。这些结果证明了我们所提出的评分度量在尺度校正方法中的有效性。
E. 总体性能
图11显示了SERP和SERPS在不同距离下的平均平移和旋转误差。结果表明,所提出的评分方法能够提高平移估计的精度,且不受段距离的影响。图12展示了使用 SERPS得到的轨迹。可以看出,估计的相机轨迹与真实相机轨迹高度吻合。
旋转误差和(b)平移误差)
序列00 和 (b)–(j) 序列02‐10)
表IV列出了传统方法和提出的方法在KITTI数据集上的性能,以平移误差的平均值和标准差表示,分别记为 Trans(%)和 σT。提出的方法与之前的手工设计[7],[9],[12]以及基于卷积神经网络的[38]–[40]方法进行了比较。最佳和次佳结果分别加粗并加下划线。比较方法的分数来自作者的论文,‘‐’表示数据不可用。所提出的SERPS取得了最佳结果,平均平移误差为1.03%。此外,SERPS与SERP之间的差距为0.41%,表明所提出的评分方法对性能提升起到了重要作用。
对于序列00,由于地面平面上特征数量相对较多,SERPS表现出其优越性,平移误差为0.95%。对于序列 01,仅有Lee的方法和法纳尼的方法报告了完整轨迹的结果。提出的方法在此高速公路序列上失败,原因是高度重复的特征导致特征匹配不准确。此外,尽管车速为90 km/h,序列01的记录频率仅为10 Hz,因此在序列的某些部分,通过多个关键帧收集的3D高斯点仍显不足。对于序列02,最佳结果由法纳尼的方法获得,平移误差为0.99%,SERPS紧随其后。对于序列03‐10,SERP在平移精度方面实现了显著提升。与传统方法相比,这表明从多个关键帧收集3D高斯点对尺度估计是有效的。所提出的SERPS相较于SERP进一步提高了精度,这表明使用所提出的评分方法拟合平面对于尺度估计非常有效。由于我们从多个关键帧中收集3D高斯点,因此即使道路区域在短时间内被遮挡,我们的方法也能提供稳定的结果。在序列07中,SERP和SERPS相较于其他方法取得了更优的结果,该序列的道路区域纹理比其他序列更少,并且在短时间内超过70%的视频帧被一辆大型卡车遮挡。在KITTI序列00、02和10中,存在许多包含非平面道路表面的视频帧。在这些帧中,视场发生了较大变化,因此共视图中的关键帧数量大幅减少。结果,收集到的3D高斯点数量少于 δ ,此时使用先前计算的尺度因子通过(12)式来校正当前相机位姿。如表IV所示,我们在这些序列上获得了最好和第二好的成绩。换句话说,我们简单的基于阈值的补救方法仍然可以处理非平面表面。通过结合使用额外的里程计数据[49]进行非平面表面检测,可以进一步提高提出的方法的性能。视频结果可从我们的项目网页获取。
VI. 结论
本文中,为了准确估计尺度因子,我们在RANSAC平面拟合框架下提出了一种方法。为了使平面拟合在尺度估计中更加稳定,我们提出在车辆行驶于局部平面表面的假设下,通过多个关键帧收集足够多的3D高斯点。此外,考虑到重建的3D高斯点不可避免的存在不确定性,我们引入了一种新的评分方法,利用从图像特征点反向投影得到的射线生成的三维投影点来评估拟合平面的精度。实验结果表明,与最先进的方法相比,提出的方法在平移误差方面实现了显著的性能提升。由于该方法基于广泛使用的视觉 SLAM系统,并通过新增一个线程实现尺度校正,因此可轻松部署到实际系统中。
为了理解所提出方法的有效性,我们未对ORB‐SLAM的跟踪和局部建图线程进行修改,且在尺度校正后未应用任何包括局部BA优化在内的后处理。我们预计通过使用基于帧间相似性的关键帧选择方法[50],[51]并应用局部BA优化,性能可以进一步提升。此外,为了更稳健地处理无纹理的地面区域,我们计划将提出的方法应用于其他使用立体、深度、惯性测量单元和/或全球定位系统传感器的视觉SLAM系统。
更多推荐


所有评论(0)