论文标题:
VOOM: Robust Visual Object Odometry and Mapping using
Hierarchical Landmarks
论文作者:
Yutong Wang1, Chaoyang Jiang1, Xieyuanli Chen2
导读: 本篇提出了一种新的视觉目标里程计和建图框架VOOM,以由粗到精的方式将高级目标和低级特征点作为分层路标,并且验证了相比于面向目标的SLAM和特征点SLAM系统的定位性能。©️【深蓝AI】编译
1. 摘要
近年来,面向目标的同时定位和建图(SLAM)由于在维持计算效率的同时发挥了高级语义信息的能力,而获得广泛关注。一些研究者尝试通过将建模的目标残差集成到捆集约束(BA)中,以提高定位精度。然而,很少有面向目标的SLAM系统比基于特征的视觉SLAM系统获得更好的定位结果,这是因为通用的粗略目标模型(例如长方体或者椭球体)不如特征点精确。本文提出了一种视觉目标里程计和建图框架VOOM,它以由粗到精的方式使用高级目标和低级特征点作为分层路标,而非直接在BA中使用目标残差。首先,本文引入了一种改进的观测模型和一种新的二次曲面数据关联方法,用于表示物理目标,它有助于构建密切反映现实的3D地图。接着,本文使用目标信息来增强特征点的数据关联,以便更新地图。在视觉目标里程计后端中,采用更新后的地图来进一步优化相机位姿和目标。同时,利用视觉目标建图过程中,基于目标和基于点的共视图来实现局部BA。实验结果表明,VOOM在定位方面优于面向目标的SLAM和特征点SLAM系统(如ORB-SLAM2)。
2. 介绍
精确定位和建图在各种应用中是至关重要的,包括自主导航、机器人操作和增强现实。相机成本较低且易于集成,同时提供了丰富的几何和语义信息,使其适用于现实世界场景。因此,视觉里程计或者同时定位和建图(SLAM)越来越受研究者关注。
然而,使用地图点作为路标的传统视觉里程计或SLAM框架缺少高级信息,从而导致鲁棒性和适用性有限,这一局限性恰好引起研究者对目标级里程计和建图算法的兴趣,特别是一些使用长方体或者二次曲面作为路标的轻量级方法。目前的算法主要着重于构建更精确的目标路标,以及使用目标信息来提高定位精度。尽管这些方法将目标残差集成到BA中,但是它们依赖于基于特征的技术(例如ORB-SLAM2)对相机位姿的初始估计。它们的定位结果与基于特征的方法相似,有时甚至更差。这表明当前基于目标的方法没有充分利用有价值的目标信息来提高定位精度。
本文提出了一种新的视觉目标里程计和建图框架(称为VOOM),它可将低级特征点和高级目标应用于整个里程计和建图过程,如图1所示。
图1|上图为真值地图,中间图为ORB-SLAM2建立的地图,下图为VOOM建立的地图©️【深蓝AI】编译
在里程计过程中,本文将基于Wasserstein距离的二次曲面残差模型与基于归一化Wasserstein距离的目标数据关联方法相结合,以构建精确的目标级地图。通过利用目标级信息,当前帧的关键点能够与先前的地图点更好地匹配,这提高了当前帧位姿估计的精度。在视觉目标建图方面,本文基于关键帧和目标之间的观测关系来建立一个基于目标的共视图。通过更新与共视图中当前相邻帧对应的地图点,更新了基于点的共视图和局部地图。此外,通过BA来优化局部关键帧的位姿和地图点的位置。在实验中,本文证明了所提出的仅有里程计和建图模块的VOOM在大多数数据集序列上超越了带有回环的ORB-SLAM2。这是首篇实现并且证明使用二次曲面和特征点的面向目标的SLAM系统比最先进的基于特征的视觉SLAM系统能够实现更好定位精度的论文。
本文的主要贡献为如下三方面:
1)本文开发了一种新的视觉目标里程计和建图框架,其使用特征点和二次曲面作为路标;
2)本文设计了有效的算法,用于目标优化、目标关联和基于目标的地图点关联,以构建基于分层路标的地图;
3)大量的实验验证表明,与最先进的方法相比,本文所提出的方法具有优越性。
3. VOOM
3.1 系统概述
本文所提出的VOOM将RGB-D图像作为输入,输出为由地图点和3D目标组成的3D地图。整个过程分为两个主要部分:视觉目标里程计和视觉目标建图,如图2所示。
图2|视觉目标里程计和视觉目标建图©️【深蓝AI】编译
在里程计部分,前端处理来自YOLOv8实现的实例分割结果的特征点和信息。本文使用ORB-SLAM2中的方法来处理ORB特征点和位姿预测。在目标级前端中,本文使用直接最小二乘方法,根据从实例分割获得的一组计数点来估计椭圆。本文基于该估计的椭圆与3D椭球体在图像平面的投影之间的Wasserstein距离来确定目标是否相关联。在里程计后端中,本文使用关联的目标来更新基于优化的帧位姿的地图点数据关联,一旦该帧被确定为关键帧,则系统将该关键帧传给视觉目标建图线程。
3.2 目标的观测模型
本文执行实例分割来检测每张输入图像中的目标。QISO-SLAM中已经证明,使用实例分割的轮廓可以在面向目标的建图和定位中实现比使用边界框更高的精度。本文通过最小化每个分割轮廓点与椭圆轮廓之间的距离和来估计第f帧中第k个目标的观测椭圆EfkobsE^{obs}_{f_k}Efkobs。
目标可以表示为一个具有约束的二次曲面Qk∗∈R4×4Q^{*}_k \in \mathbb{R}^{4 \times 4}Qk∗∈R4×4,它被投影到第f帧的图像平面上作为一条二次曲线:
Cfk∗=PfQk∗PfT(1)C^{*}_{f_k} = P_f Q^{*}_k P^T_f \tag{1}Cfk∗=PfQk∗PfT(1)
其中,Pf=Kf[Rf∣tfT]∈R3×4P_f = K_f[R_f|t^T_f] \in \mathbb{R}^{3 \times 4}Pf=Kf[Rf∣tfT]∈R3×4为相机投影矩阵,其中包含相机内参矩阵Kf∈R3×3K_f \in \mathbb{R}^{3 \times 3}Kf∈R3×3、旋转矩阵Rf∈R3×3R_f \in \mathbb{R}^{3 \times 3}Rf∈R3×3和平移向量tfT∈R3×1t^T_f \in \mathbb{R}^{3 \times 1}tfT∈R3×1;Cfk∗C^{*}_{f_k}Cfk∗表示一个估计的椭圆EfkestE^{est}_{f_k}Efkest。
受到OA-SLAM的启发,本文还利用两维高斯分布N(μ,Σ−1)\mathcal{N}(\mu, \Sigma^{-1})N(μ,Σ−1)来解释椭圆:
μ=(pxpy),Σ−1=RT(θ)(1α2 00 1β2)R(θ)(2)\mu = \left( \begin{matrix} p_x \\ p_y \end{matrix} \right), \Sigma^{-1}=R^T(\theta) \left( \begin{matrix} \frac{1}{\alpha^2} \ 0 \\ 0 \ \frac{1}{\beta^2} \end{matrix}\right)R(\theta) \tag{2}μ=(pxpy),Σ−1=RT(θ)(α21 00 β21)R(θ)(2)
其中,[px,py]T[p_x, p_y]^T[px,py]T、[α,β]T[\alpha, \beta]^T[α,β]T和θ\thetaθ分别描述了中心点、轴长和椭圆的旋转角度。
EfkobsE^{obs}_{f_k}Efkobs和EfkestE^{est}_{f_k}Efkest之间的误差由两个高斯分布Nfkobs(μ1,Σ1−1)\mathcal{N}^{obs}_{f_k}(\mu_1, \Sigma_1^{-1})Nfkobs(μ1,Σ1−1)和Nfkest(μ2,Σ2−1)\mathcal{N}^{est}_{f_k}(\mu_2, \Sigma_2^{-1})Nfkest(μ2,Σ2−1)之间的两阶Wasserstein距离来计算:
W22(Nfkobs,Nfkest)=∥μ1−μ2∥22+∥Σ112−Σ212∥F2(3)W^2_2(\mathcal{N}^{obs}_{f_k},\mathcal{N}^{est}_{f_k}) = \lVert \mu_1 - \mu_2 \rVert^2_2 + \lVert \Sigma^{\frac{1}{2}}_1 - \Sigma^{\frac{1}{2}}_2 \rVert^2_F \tag{3}W22(Nfkobs,Nfkest)=∥μ1−μ2∥22+∥Σ121−Σ221∥F2(3)
其中,∥⋅∥F\lVert \cdot \rVert_F∥⋅∥F为Frobenius范式。当第k个目标被一组帧FL\mathcal{F}_LFL观测到时,相应椭球体的参数通过最小化下式来估计:
J=∑f∈FLW22(Nfkobs,Nfkest)(4)J=\sum_{f \in \mathcal{F}_L} W^2_2(\mathcal{N}^{obs}_{f_k}, \mathcal{N}^{est}_{f_k}) \tag{4}J=f∈FL∑W22(Nfkobs,Nfkest)(4)
3.3 目标级数据关联
在此前「基于二次曲面的面向目标的SLAM」工作中,重投影边界框和检测到的边界框之间的交并比(IoU)被用作目标数据关联的标准。然而,使用这样的标准存在多个问题。首先,包围椭圆的边界框比椭圆自身面积更大,这增加了不相关目标之间的重叠区域。其次,本文观察到小目标的数据关联性会受到相机位姿误差的严重影响,这是因为基于IoU的指标对其高度敏感。由于本文采用Wasserstein距离来构建残差模型,因此它也可以作为目标数据关联的测量值。归一化的Wasserstein距离可以用于小目标检测。根据公式(3),可以计算归一化的Wasserstein距离:
Wn(Nfkest,Nfkobs)=exp(−W22(Nfkest,Nfkobs)C)(5)W_n(\mathcal{N}^{est}_{f_k}, \mathcal{N}^{obs}_{f_k}) = exp(-\frac{\sqrt{W^2_2(\mathcal{N}^{est}_{f_k}, \mathcal{N}^{obs}_{f_k})}}{C}) \tag{5}Wn(Nfkest,Nfkobs)=exp(−CW22(Nfkest,Nfkobs))(5)
这里,CCC为一个常数。该指标加入了椭圆的中心点、轴长和朝向信息,比IoU更全面。
3.4 由粗到精的里程计和建图
本文以由粗到精的方式提出了视觉目标里程计和建图方法。其主要的思想为使用3D目标级路标的鲁棒性来提高基于特征的地图点的效率和精度,从而改进里程计和建图性能。
1)由粗到精的视觉目标里程计后端: 给定由特征级前端的运动模型预测的粗略位姿和来自目标级前端的相关联的目标,搜索对应于每个目标的所有地图点之间的匹配关系(如图3a中标记为每个椭球体内的彩色点),并且通过ORB描述子的距离来提取属于相关联实例的特征关键点(如图3b中标记为每个边界框内的彩色矩形)。
图3|基于相关联的目标实现地图点关联©️【深蓝AI】编译
因此,这能通过缩小搜索区域来实现更高效且更精确的地图点关联,并且从历史帧中检索更多的地图点。利用3D地图点和关键点之间的匹配关系,可以通过最小化重投影误差来首次优化该帧位姿。然后,通过搜索观测到相关联地图点的历史关键帧以及与这些关键帧相关联的所有地图点来匹配当前关键点,从而更新当前帧的局部地图。然后,第二次进行更精细的位姿优化来获取当前帧位姿。使用与ORB-SLAM2中相同的指标来决定是否构建关键帧,并且传递给视觉目标建图线程。
2)由粗到精的视觉目标建图: 在获得当前帧的可靠位姿估计和地图点关联后,基于视觉目标建图中的目标共视图来更新局部地图。该目标共视图记录了不同关键帧中不同目标之间的共视关系,如图4a所示。它有助于选取与当前帧最相关的关键帧子集。与传统的基于地图点的共视图(如图4b所示)相比,本文所提出的目标共视图具有更小的数据规模和更强的鲁棒性。
图4|基于目标的共视图和基于特征点的共视图©️【深蓝AI】编译
通过基于目标的共视图,可以检索更早的关键帧来构建局部地图,用于局部BA。由于目标具有鲁棒性,即使只通过局部建图,它也隐式地实现了一些回环的效果。在局部BA中使用检索的关键帧和对应的地图点。目标的残差不参与BA优化,这是因为目标模型自身没有基于特征点的方式精确。在进行BA之后,关键帧位姿和地图点位置经过了优化,并且异常值得以处理。每个目标的参数分别根据其观测到的关键帧位姿进行优化。
4. 实验结果
本文提出的系统使用YOLOv8的实例分割结果作为输入,由Python离线处理。在实验中,仅保留置信度大于0.2的检测结果。本文展示了定位性能、目标数据关联结果和在TUM RGB-D数据集和LM-Data上的消融研究。
4.1 定位
本文在两个数据集上进行实验,将提出的方法与若干种最先进方法的定位精度进行比较。为了量化定位精度,本文使用均方根误差(RMSE)作为评估指标。本文将VOOM与ORB-SLAM2、没有回环的OBR-SLAM2、Fusion++、QuadricSLAM、RGB-D目标SLAM和QISO-SLAM在TUM RGB-D数据集上进行比较,而在LM-Data上仅与ORB-SLAM2和没有回环的ORB-SLAM2进行比较。
表格1显示了在五个数据序列上的定位性能:Fr1_desk1、Fr1_desk2、Fr2_desk、Fr2_person和Fr3_office。第一列列出了序列的名称,第二列显示了序列的总长度,随后的列给出了每个算法获得的RMSE值。
表1|在TUM序列上的定位RMSE比较©️【深蓝AI】编译
该表格显示,本文算法优于其它算法(特别是在三个较长序列上),并且在所有序列上持续改进了没有回环的ORB-SLAM2。其它三种面向目标的方法依赖于带有回环的ORB-SLAM2。此外,在有多个动态目标的Fr2_person序列上,本文的定位结果比没有回环的ORB-SLAM2实现了92.8%的误差降低。这进一步证明了本文工作对动态SLAM做出的贡献。
表格2给出了四个LM-Data Diamond序列的结果:Ground、Walk Head、Walk和MAV。
表2|在LM-Data Diamond序列上的定位RMSE比较©️【深蓝AI】编译
该表格显示,VOOM在所有序列上超过了ORB-SLAM2和没有回环的ORB-SLAM2。实验结果表明,所提出的方法可以在没有回环检测的情况下有效地减少里程计漂移,这是因为它利用了目标的鲁棒性和特征的精确性。此外,由于VOOM在整个过程中更新并且优化局部地图,而不像回环仅在检测到闭环时才优化,因此其甚至超过了带有回环的ORB-SLAM2。
通过图5所示的Diamond Ground序列上的定性建图结果,能够更好地理解VOOM是如何提高性能的。
图5|在Diamond Ground序列上的定性建图结果©️【深蓝AI】编译
如图所示,由于地面机器人的视野范围受限,因此ORB-SLAM2无法回环,导致点云地图冗余且带有畸变。尽管如此,当相机再次观测到特定目标时,本文系统能够校正畸变并且构建更结构化的地图。
4.2 目标数据关联结果
观测模型和目标关联均会影响目标关联结果。因此,本文评估并且比较了四种目标关联方法和两种观测模型。所使用的指标为重建目标的总数,反映了目标级地图的精度。本文使用来自两个数据集的三个序列:来自TUM RGB-D数据集的Fr2_desk,以及来自LM-Data的Diamond Walk(D_Walk)和Diamond MAV(D_MAV)。
表3|目标数据关联结果©️【深蓝AI】编译
本文比较了四种目标数据关联方法:DA1、DA2、DA3和DA4。其中,DA1是OA-SLAM中使用的方法,DA2使用IoU作为指标,DA3是QISO-SLAM2中使用的方法,DA4是本文所提出的方法。此外,本文还比较了两种不同的观测模型:M1和M2。M1是OA-SLAM中使用的模型,M2是本文所提出的模型。由表可知,本文所提出的DA4在大多数情况下均优于其它方法。通常而言,本文所提出的DA4和M2的组合适用于大多数情况,而在某些情况下,使用DA4和M1也能实现足够的效果。
4.3 消融研究
本文进行了消融研究来评估VOOM不同部分的贡献。除了完整的VOOM(F),本文还展示了三种变体的结果:VOOM(O)、VOOM(M)和VOOM(A)。VOOM(O)表示仅在里程计中使用目标,而VOOM(M)表示仅对建图有贡献的目标。在VOOM(A)中,将所提出的数据关联方法和观测模型替换为OA-SLAM中使用的数据关联方法和观测模型,以证明它们对定位性能的影响。
表4|消融研究的RMSE©️【深蓝AI】编译
由表可知,所有的变体均超过了原始不带回环的ORB-SLAM2,这证明了本文框架的有效性。此外,结果表明,完整的VOOM算法实现了最好的性能,其次是VOOM(M),这说明基于目标的局部BA的贡献略大于里程计中的位姿估计。此外,VOOM(A)比完整的VOOM更差,这说明本文提出的数据关联方法和观测模型能够提高定位精度。
5. 总结
通过结合目标信息,VOOM能够实现比最先进的基于特征的视觉SLAM方法更好的定位性能。该系统具有里程计和地图模块,主要着重于短期和中期性能。在今后的工作中,将计划在此基础上引入回环和重定位算法来提高SLAM的长期性能。
编译|auto_driver
审核|Los
移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态。