【论文笔记】显著性信息辅助的视觉SLAM系统 SBAS: Salient Bundle Adjustment for Visual SLAM

重庆大学, 汽车工程专业, 重庆大学机械传动重点实验室

本文并不是第一个 利用显著性预测结果改进SLAM系统的工作,但是之前的工作都没有意识到显著性检测模型存在中心偏差的问题,这导致在没有显著性区域的场景中,显著性模型会将注意力集中在图像的中心区域,造成轨迹追踪失败。本文首先用语义分割模型SDC-Net对kitti数据集进行语义分割,得到包含静态目标的真值标签,然后根据此salient-kitti数据集对显著性模型进行训练,克服了中心偏差,在室内室外均取得了SOTA的精度。

Abstract

传统的视觉SLAM系统在优化阶段, 将所有的特征点看作是等权重的。然而,作者认为显著性特征点应当在优化阶段扮演更重要的角色。

论文提出了显著性检测模型,其预测的显著性图能够同时捕获场景语义信息以及几何信息。然后,基于显著性的BA用于替换传统的BA优化,其利用显著性图作为特征点的权重进行优化。

在KITTI、EuRoc数据集上的测试表明论文方法在室内室外场景中均超越了现有方法,代码即将开源

Introduction

SLAM技术在自动驾驶、医疗机器人、增强现实、虚拟现实等领域具有非常重要的作用。SLAM主要可以分为基于几何结构的方法以及基于深度学习的方法。其中,基于几何结构的方法在精度和速度方面取得了非常大的进展(如orb-slam2)。但是,这些方法缺少的一个最重要的特征是从大规模数据集中自动学习知识的能力。因此,这些方法很难从现有的大规模数据中获益。这就引出了基于深度学习的SLAM方法以及VO方法。基于此,本文方法利用两种方法较好的互补性,在SLAM系统中同时纳入几何方法和深度学习方法。

现有的深度学习方法尝试将语义先验信息结合到slam系统中来抑制动态物体, 然而即使是动态物体也有静止的时候。这些方法将选择的特征点都当做是同等重要来看待。

人类在陌生环境中进行定位时,首先关注的是显著目标或者特征,然后对这些目标给予不同的权重。这种方法能够主动发现并观察那些对于特定任务有用的特征,比如地标建筑等。受此启发,一些结合了显著性和注意力机制的SLAM方法被提出: Salient-DSO利用显著性模型来定性的模仿人类视觉,从显著性区域中选择特征点。然而,这个显著性模型并没有完全描述SLAM系统应该关注的所有事情,这使得它无法在户外环境中工作,这主要是由于人类注视数据集的单焦点和中心偏差造成的。

因此,本文首先提出了一个开源的显著性数据集,Salient-kitti(基于kitti数据集)。不同于只关注人类注意力,本文提出的数据集还考虑了几何和语义信息。基于Salient-kitti, 作者使用DI-Net作为显著性检测模型来预测SLAM系统应当关注的区域。

DI-Net: Yang S , Lin G , Jiang Q , et al. A Dilated Inception Network for Visual Saliency Prediction[J]. IEEE Transactions on Multimedia, 2019, PP(99):1-1.
最后,基于预测的显著性区域,作者在BA优化环节给显著性特征点赋予更高的权重,即 Salient Bundle Adjustment,(SBA)

本文贡献:

  1. 提出了室内机室外可用的显著性SLAM系统,可用于多种场景
  2. 提出了一种生成 Salient 数据集的方法,其生成的Salient-kitti也即将开源。
  3. 提出了一种基于显著性的BA优化方法,来模仿人类的视觉系统

Related Works

显著性检测
非常多,代表性的有: DeepNet [45], SALICON-Net [46], SalGAN[31], DeepVS [40], ACL-Net [26], and DeepFix [41]
在自动驾驶领域,有工作专注于驾驶员显着性预测,以分析驾驶员的注意力行为以及道路场景,以预测潜在的不安全行为。
[28]则采集了驾驶场景中的人眼跟踪数据,提出了一种基于卷积反卷积神经网络的驾驶场景显著性预测方法。[30]提出了一种语义增强显著性检测方法,通过考虑深度,车速和行人穿越意图来预测显着区域。然而,这些模型更多地集中在车辆、行人和道路等方面。由于静态环境的假设,这些区域的特征点在SLAM、VO任务中是不稳定的。我们希望显着性模型更多地关注纹理丰富且稳定的区域,例如道路标线,交通信号灯,交通标志,并忽略动态物体。为此,我们提出了一种结合几何和语义信息的显著性预测模型来解决这一问题
SLAM
主流的SLAM方法可以分为特征点法和直接法。基于特征的方法通过从图像中提取和匹配兴趣点来估计相机姿态,而直接方法则直接使用图像中的像素强度,通过最小化光度误差来估计相机姿态。特征点法代表工作有Mono-SLAM , PTAM , orb-slam等。直接法代表工作有DTAM,SVO,LSD-SLAM,DSO等。

此外,基于深度学习的SLAM、VO工作也取得了较大的进展。PoseNet是第一个端到端预测相机位姿的深度网络模型。之后,DeepVO, ESP-VO等等。
将深度学习和几何方法结合也是SLAM研究的热点。 DynaSLAM[65],[66]利用深度学习和多视图几何来分割动态对象。DS-SLAM[25]将语义分割和运动一致性检查相结合,减少动态对象的影响,提高动态环境下的准确性。Salient-DSO [29]利用视觉显着和注意力机制提取了显着区域的特征点。 该方法提高了DSO的性能。但是,此框架只能在室内环境中工作。 因此,作者通过使用论文提出的显着性模型和显著性BA将该方法扩展到室外环境。

本文方法:SBAS

【论文笔记】显著性信息辅助的视觉SLAM系统  SBAS:  Salient Bundle Adjustment for Visual SLAM

使用orb-slam3作为backbone, 显著性预测模块的输出辅助SLAM系统选择显著性特征点,进而提高精度和鲁棒性。上图红色部分是论文改进的地方。

1. Saliency prediction

现有很多关于显著性检测的方法,但是这些显着性预测方法不能完全描述VO / SLAM系统应注意的所有方面,这主要是由于训练数据集存在中心偏差:这些方法只使用原始的人类注视信息,而人类的注视将停留在车辆前方的道路上,因为这是车辆行驶的地方。但是这还不够,因为SLAM/VO还需要聚焦在远离图像中心的区域,仅仅依靠人眼跟踪器获得的图像数据并不能帮助捕捉所有这些重要的线索。

为了解决这一问题,作者采用了与[30]相似的策略,将几何信息和语义信息相结合,制作了一个显著数据集来训练显著性检测模型,它用语义注视代替人类注视真值。该数据集基于KITTI目标检测数据集。首先提取每幅图像的几何信息,如特征点、线和平面。这是因为经典的SLAM/VO方法通常关注具有丰富几何信息的区域。然后使用SDC Net[67]生成感兴趣对象的语义分割mask。

SDC Net: Zhu Y , Sapra K , Reda F A , et al. Improving Semantic Segmentation via Video Propagation and Label Relaxation[C]// 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2020.

作者选取了13个类别(交通灯、交通标志、道路、建筑物、人行道、停车场、轨道、栅栏、桥梁、杆、杆组、植被、地面)来过滤几何信息,这些类别的区域通常包含显著、稳定和健壮的特征。因此,动态区域中的特征不会出现在数据集中,例如移动的车辆,人,骑手等。
【论文笔记】显著性信息辅助的视觉SLAM系统  SBAS:  Salient Bundle Adjustment for Visual SLAM

根据Salience-kitti数据集,就可以训练出显著性检测模型DI-Net, 得到初始的显著性图。(后面会用深度对初始得限制性值进行放缩)
此外,驾驶员会对距离更近的目标赋予更多的注意力,因为可能会发生碰撞。因此作者使用了单目深度估计网络MonoDepth 来生成深度图,保证预测的显著性图的正确性。此外,如果有激光雷达数据,可以用depth completion network来生成质量更高的深度图。
显著性图预测算法步骤:
【论文笔记】显著性信息辅助的视觉SLAM系统  SBAS:  Salient Bundle Adjustment for Visual SLAM

【论文笔记】显著性信息辅助的视觉SLAM系统  SBAS:  Salient Bundle Adjustment for Visual SLAM

2. Salient Bundle Adjustment

有了显著性图,就可以用于预测位姿了。

  • 在tracking thread中,BA用于优化相机的自身运动((motion-only BA)
  • 在local mapping thread中,BA用于优化局部时间窗内所有关键帧以及地图点(Local BA )
  • 在loop closure thread中, BA用于优化所有关键帧以及地图点(full BA)

在传统的BA中,所有特征点都是同等重要的,这使得最突出的特征点不能起到更大的作用。因此,作者提出了Salient BA:

Motion-only BA:
该步骤通过最小化匹配的3D世界点 X ∈ R 3 X\in R^3 X∈R3和图像特征点 x ∈ R 2 x\in R^2 x∈R2之间的距离优化相机的朝向R和平移量T:
{ R , t } = arg ⁡ min ⁡ R , t ∑ i ∈ X ρ ( w i ∥ x ( ⋅ ) i − π ( ⋅ ) ( R X i + t ) ∥ Σ 2 ) \{\mathbf{R}, \mathbf{t}\}=\underset{\mathbf{R}, \mathbf{t}}{\arg \min } \sum_{i \in \mathcal{X}} \rho\left(w_{i}\left\|\mathbf{x}_{(\cdot)}^{i}-\pi_{(\cdot)}\left(\mathbf{R} \mathbf{X}^{i}+\mathbf{t}\right)\right\|_{\Sigma}^{2}\right) {R,t}=R,targmin​i∈X∑​ρ(wi​∥∥∥​x(⋅)i​−π(⋅)​(RXi+t)∥∥∥​Σ2​)

其中 ρ \rho ρ表示Huber 损失函数, ∑ \sum ∑表示与关键点规模有关的协方差矩阵, w i w_i wi​表示显著性权重,计算过程为:
w i = a S 2 ( x i , y i ) + b , S ( ⋅ ) 表 示 显 著 性 图 中 的 像 素 值 , a , b 为 常 数 w_{i}=a S^{2}\left(x_{i}, y_{i}\right)+b, \\ S(\cdot) 表示显著性图中的像素值,a,b为常数 wi​=aS2(xi​,yi​)+b,S(⋅)表示显著性图中的像素值,a,b为常数

π : R 3 − > R 2 \pi:R^3->R^2 π:R3−>R2表示重投影函数,具体的:
π m ( [ X Y Z ] ) = [ f x X Z + c x f y Y Z + c y ] π s ( [ X Y Z ] ) = [ f x X Z + c x f y Y Z + c y f x X − b Z + c x ] \begin{array}{c} \pi_{\mathrm{m}}\left(\left[\begin{array}{c} X \\ Y \\ Z \end{array}\right]\right)=\left[\begin{array}{c} f_{x} \frac{X}{Z}+c_{x} \\ f_{y} \frac{Y}{Z}+c_{y} \end{array}\right] \\ \pi_{s}\left(\left[\begin{array}{c} X \\ Y \\ Z \end{array}\right]\right)=\left[\begin{array}{c} f_{x} \frac{X}{Z}+c_{x} \\ f_{y} \frac{Y}{Z}+c_{y} \\ f_{x} \frac{X-b}{Z}+c_{x} \end{array}\right] \end{array} πm​⎝⎛​⎣⎡​XYZ​⎦⎤​⎠⎞​=[fx​ZX​+cx​fy​ZY​+cy​​]πs​⎝⎛​⎣⎡​XYZ​⎦⎤​⎠⎞​=⎣⎡​fx​ZX​+cx​fy​ZY​+cy​fx​ZX−b​+cx​​⎦⎤​​

其中 ( f x , f y ) (f_x,f_y) (fx​,fy​)表示焦距,b表示基线。
Local BA
指优化一组共同可见的关键帧 K L K_L KL​和这些关键帧中的所有地图点 P L P_L PL​。 定义 X k \mathcal{X}_{k} Xk​表示 P L P_L PL​中的地图点与关键帧 k k k中的关键点之间的匹配集,则优化问题可以表示为:
{ X i , R l , t l ∣ i ∈ P L , l ∈ K L } = arg ⁡ min ⁡ X i , R l , t l ∑ k ∈ K L ∪ K F ∑ j ∈ X k ρ ( E k , j ) E k , j = w i ∥ x ( ⋅ ) j − π ( ⋅ ) ( R k X j + t k ) ∥ Σ 2 \begin{array}{c} \left\{\mathbf{X}^{i}, \mathbf{R}_{l}, \mathbf{t}_{l} \mid i \in \mathcal{P}_{L}, l \in \mathcal{K}_{L}\right\}=\underset{\mathbf{X}^{i}, \mathbf{R}_{l}, \mathbf{t}_{l}}{\arg \min } \sum_{k \in \mathcal{K}_{L} \cup \mathcal{K}_{F}} \sum_{j \in \mathcal{X}_{k}} \rho\left(E_{k, j}\right) \\ E_{k, j}=w_{i}\left\|\mathbf{x}_{(\cdot)}^{j}-\pi_{(\cdot)}\left(\mathbf{R}_{k} \mathbf{X}^{j}+\mathbf{t}_{k}\right)\right\|_{\Sigma}^{2} \end{array} {Xi,Rl​,tl​∣i∈PL​,l∈KL​}=Xi,Rl​,tl​argmin​∑k∈KL​∪KF​​∑j∈Xk​​ρ(Ek,j​)Ek,j​=wi​∥∥∥​x(⋅)j​−π(⋅)​(Rk​Xj+tk​)∥∥∥​Σ2​​

实验评估

实验平台: GTX1650 GPU, AMD Ryzen 5-2600 CPU, and 8 GB memory in Linux

1. 评估了分别使用SALICON[69]和Salient-KITTI数据集训练的显著性模型的算法。

[69] Jiang M , Huang S , Duan J , et al. SALICON: Saliency in Context[C]// Computer Vision & Pattern Recognition. IEEE, 2015.
【论文笔记】显著性信息辅助的视觉SLAM系统  SBAS:  Salient Bundle Adjustment for Visual SLAM

这个图下面的标注感觉写错了, 这个实验是为了证明同样的显著性检测模型(DI-Net)在不同数据集下的训练结果, 以此证明所提出的数据集Salient-kitti的有效性。
结论: Salient KITTI 数据集上训练的模型能够防止中心偏差,且能够抑制动态目标,因此具有高显著性的点通常是稳定和鲁棒的点
然后将这两个显著性检测模型应用在提出的SLAM系统中(单目、双目),在kitti轨迹序列上的结果如下:
【论文笔记】显著性信息辅助的视觉SLAM系统  SBAS:  Salient Bundle Adjustment for Visual SLAM

作者分析了05序列上 SALICON dataset 上训练的模型跟丢的原因:“The reason is that the most frame has no salient objects leading the attention focused in the center of images. They cannot capture other important information insurrounding areas, and cannot reduce the influence of dynamicobjects.”

2. 在 KITTI 和 EuRoc数据集上分别进行了评估.

  • KITTI dataset: 包含从城市、农村和高速公路区域等场景收集的真实图像数据。每张图像最多包含15辆汽车和30名行人,具有不同程度的遮挡和截断。对于VO/SLAM,该数据集提供了22个自主车辆场景下的序列,总长度为39.2km,并提供了11个具有真值标签的序列(00-10序列)。
  • EuRoc dataset: 一个用于室内无人机的单目、立体和IMU数据集。它包含两个场景,一个是工业环境,另一个是普通的房间环境。 该数据集提供了11个具有真值标签的序列。 然后根据纹理质量,场景亮度和运动速度将这些序列分为三个难度级别。

Evaluation on KITTI dataset: validate the effectiveness of SBA in ORB-SLAM3
【论文笔记】显著性信息辅助的视觉SLAM系统  SBAS:  Salient Bundle Adjustment for Visual SLAM

在单目和双目的配置下,论文提出的SLAM系统比ORB-SLAM3更精确,因为基于显著性的BA使显著特征点充分地发挥了其价值。
此外,显著性模型推理一幅图像只需要8毫秒,整个系统在平台上仍然可以实时运行。
与Salient-DSO相比,其只能在室内和静态环境下工作,而本文方法则在多种场景中更加具有实用价值。

Evaluation on EuRoc dataset
即使在室内环境下,本文提出的算法也比大多数最先进的技术(见IV-D)具有更好的性能。
【论文笔记】显著性信息辅助的视觉SLAM系统  SBAS:  Salient Bundle Adjustment for Visual SLAM【论文笔记】显著性信息辅助的视觉SLAM系统  SBAS:  Salient Bundle Adjustment for Visual SLAM

上图中红色是真值
结论:将显着性模型与传统的单目SLAM或VO结合可以提高性能。
然而,在salient-DSO中使用的显著性模型存在中心偏差,该算法在室外环境中由于存在非局部显著性目标,无法很好地进行显著性预测。

存在的问题:

由于运动速度快、图像质量差,本文提出的算法在复杂序列上的性能较差。这是因为框架仍然采用了ORB-SLAM3的特征提取方法,没有利用显著性信息来改进特征点提取过程。此外, 本实验中使用的显著性预测模型只在salient-KITTI数据集上进行了训练,不包含室内场景,这也是造成结果不佳的可能原因。

上一篇:Linux中文本处理三剑客:grep, sed, awk


下一篇:2021.1.21 - 假期集体学习SLAM资料记录