浙江大学学报(工学版), 2022, 56(6): 1062-1070 doi: 10.3785/j.issn.1008-973X.2022.06.002

智能机器人

基于重投影深度差累积图与静态概率的动态RGB-D SLAM算法

林凯,, 梁新武,, 蔡纪源

上海交通大学 航空航天学院,上海 200240

Dynamic RGB-D SLAM algorithm based on reprojection depth difference cumulative map and static probability

LIN Kai,, LIANG Xin-wu,, CAI Ji-yuan

School of Aeronautics and Astronautics, Shanghai Jiao Tong University, Shanghai 200240, China

通讯作者: 梁新武,男,副教授. orcid.org/0000-0002-8246-6546. E-mail: xinwuliang@sjtu.edu.cn

收稿日期: 2021-04-28  

基金资助: 国家自然科学基金资助项目(62173230)

Received: 2021-04-28  

Fund supported: 国家自然科学基金资助项目(62173230)

作者简介 About authors

林凯(1995—),男,硕士生,从事计算机视觉研究.orcid.org/0000-0003-2401-4354.E-mail:link013@sjtu.edu.cn , E-mail:link013@sjtu.edu.cn

摘要

为了提高同时定位与建图(SLAM)系统在动态场景下的定位精度和鲁棒性,提出新的RGB-D SLAM算法. 建立基于重投影深度差值的累积模型,分割图像的动静态区域;为了避免动态区域过分割,先剔除与匹配地图点欧氏距离过大的动态区域特征点,再根据t分布估计其余特征点的静态概率;将静态区域特征点和动态区域的疑似静态点以不同权重加入位姿优化,得到提纯后的位姿. 在公开数据集上的实验结果表明,所提算法在动态场景下较改进前的RGB-D ORB-SLAM2算法的定位精度提升96.1%,较其他动态SLAM算法提升31.2%,有效提高了视觉SLAM系统在动态环境下的定位精度和鲁棒性.

关键词: 动态环境 ; 视觉SLAM ; RGB-D相机 ; 重投影深度差累积图 ; 静态概率

Abstract

To improve the localization accuracy and the robustness of simultaneous localization and mapping (SLAM) in dynamic scenes, a new RGB-D SLAM algorithm was proposed. Firstly, a cumulative model based on the reprojection depth difference was built to segment the dynamic and static region in the image. Secondly, to avoid over-segmentation, the feature points in the dynamic region whose Euclidean distances were too large from the matching map point were eliminated. The static probabilities of other feature points were estimated according to the t-distribution. Finally, the feature points in the static region and the suspected static points in the dynamic region were added into the pose optimization with different weights to refine the pose. Experiments with public datasets showed that in dynamic scenes, the localization accuracy of the proposed method was improved by 96.1% compared with RGB-D ORB-SLAM2 and 31.2% compared with other dynamic SLAM algorithms. The localization accuracy and robustness of the visual SLAM system in dynamic scenes were effectively improved.

Keywords: dynamic environment ; visual SLAM ; RGB-D camera ; reprojection depth difference cumulative map ; static probability

PDF (1535KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

林凯, 梁新武, 蔡纪源. 基于重投影深度差累积图与静态概率的动态RGB-D SLAM算法. 浙江大学学报(工学版)[J], 2022, 56(6): 1062-1070 doi:10.3785/j.issn.1008-973X.2022.06.002

LIN Kai, LIANG Xin-wu, CAI Ji-yuan. Dynamic RGB-D SLAM algorithm based on reprojection depth difference cumulative map and static probability. Journal of Zhejiang University(Engineering Science)[J], 2022, 56(6): 1062-1070 doi:10.3785/j.issn.1008-973X.2022.06.002

视觉同步定位与建图(simultaneous localization and mapping,SLAM)作为智能机器人的底层技术之一被广泛关注.传统视觉SLAM系统无法区分动静态像素点,错误利用动态像素点将导致估计的相机位姿与真实位姿产生较大偏差. 当动态像素点较少时,系统可利用随机抽样一致性 [ 1] 、光束平差法 [ 2] 减小动态点的干扰;当动态像素点占图像中大部分区域时,上述方法失效.

根据对动态区域的处理方式不同,动态场景下的SLAM算法主要分为2类. 1)对图像进行动静态区域分割,仅利用静态区域信息进行定位估计. 高成强等 [ 3] 构建基于图像块灰度值的双单高斯模型,根据方差变化分割动态目标. Sun等 [ 4] 利用帧间的像素强度差检测动态目标像素点,通过矢量量化深度图分割动态目标. 魏彤等 [ 5] 利用光流法和极线方程检测动态点,并通过超像素分割方法分割前景场景的动态目标. 上述方法基于图像几何算法分割动静态区域,分割结果不够准确,影响SLAM系统定位的准确性. 与传统图像几何方法检测动态目标相比,深度神经网络检测的动态目标更完整,SLAM系统的定位精度更高 [ 6- 9] . 但深度神经网络只能检测特定动态目标,具有局限性,并且可能错误检测静止目标,导致静态特征点过少,降低SLAM系统定位的准确性. 2)考虑特征对相机位姿估计的影响,动静态建模分析图像特征. Zhang等 [ 10] 将图像强度和深度残差结合,通过最小化聚类的平均残差计算3D地图点簇的静态概率. 该方法涉及稠密光流计算,计算量较大,受光照影响较大. 艾青林等 [ 11] 利用几何和运动约束,将特征点分为多种状态,以不同权重进行相机位姿估计. 该方法静态点几何约束的阈值设置容易将微小运动识别为静态,使相机位姿估计不够准确. Dai等 [ 12] 提出基于点运动相关性的分割方法,将动态目标与静态场景分离,利用静态连通点及其关联边求解相机位姿. 该方法需要动态目标满足运动一致性假设,对非刚体动态目标的检测效果较差.使用RGB-D传感的导航任务,稠密的深度信息包含环境结构信息,不易受环境光照影响,有利于完整识别动态目标. Li等 [ 13] 提出基于关键帧深度边缘点的动态SLAM算法,利用迭代最近点算法计算当前帧地图点与目标地图点的欧氏距离,估计地图点的静态概率,减少动态地图点对位姿估计的影响. 该方法仅利用深度边缘点进行位姿估计,受深度传感器误差影响较大,位姿估计精度较低. Kim等 [ 14] 对相邻帧的深度差进行累积建模检测动态目标,剔除动态目标后利用DVO算法估计位姿. 该方法利用初步估计的位姿进行深度重投影,在相机快速运动和深度复杂场景中的动静态分割结果不准确,直接剔除动态目标信息将导致SLAM系统的精度和鲁棒性较差.

本研究基于ORB-SLAM2开源算法 [ 15] ,利用重投影深度差累积图 [ 14] 分割场景动静态区域.类似于深度边缘点静态概率方法 [ 13] ,计算动态区域特征点与匹配地图点的欧氏距离,以此对特征点进行剔除和静态概率估计.将静态区域特征点和动态区域特征点以不同权重加入位姿优化.

1. 算法流程

图1所示为本研究算法的框架图. 1)根据初步相机位姿和相邻深度图,对场景的深度值变化累积建模,实现连续图像的动静态区域分割.2)根据分割结果,对ORB提取的特征点划分动静态属性,计算动态区域特征点与匹配地图点的欧氏距离,剔除距离较大的外点,并根据t分布的鲁棒核函数计算其余特征点的静态概率. 3)将动态区域特征点与静态区域特征点以不同权重加入相机位姿优化,提升整个SLAM系统的准确性和鲁棒性.

图 1

图 1   基于重投影深度差累积图与静态概率的动态RGB-D SLAM算法框架图

Fig.1   Algorithm framework of dynamic RGB-D SLAM based on reprojection depth difference cumulative map and static probability


2. 基于重投影深度差累积图与静态概率的动态RGB-D SLAM算法

2.1. 基于重投影深度差累积模型的动态目标检测

深度相机采集的场景深度具有丰富信息且不受光照影响,能够帮助检测动态目标. 本研究利用重投影深度累积图 [ 14] 对图像进行动静态分割:补全深度图缺失部分,计算相邻帧的深度差值,进行累积建模,预测图像中新场景的深度差累积值,并根据整体累积图分割图像的动静态区域.

受制于物理硬件的限制,深度相机输出的深度图在近距离的物体边缘由于视差,常会出现深度缺失,须利用上一帧深度图和帧间位姿关系对当前深度图进行深度补偿:

$ {Z}_{i}\left(\stackrel-{\boldsymbol{u}}\right)={Z}_{i-1}\left(w\left(\stackrel-{\boldsymbol{u}},{\boldsymbol\xi }_{i}^{i-1}\right)\right), $

$ w\left(\stackrel-{\boldsymbol{u}},{\boldsymbol{\xi} }_{i}^{i-1}\right)={\boldsymbol{T}}\left(\mathrm{exp}\;\left({\boldsymbol{\xi} }_{i}^{i-1}\right){\boldsymbol{T}}^{-1}\left(\stackrel-{\boldsymbol{u}},{Z}_{i}\left(\stackrel-{\boldsymbol{u}}\right)\right)\right). $

式中: $ \stackrel{-}{\boldsymbol{u}} $为深度值缺失的像素, ${Z}_{i}(\stackrel{-}{\boldsymbol{u}})$为像素 $ \stackrel{-}{\boldsymbol{u}} $的深度, $ {\boldsymbol{\xi }}_{i}^{i-1}\in {\mathbf{R}}^{6} $为帧间的六自由度相机位姿变换, $w(\boldsymbol{u},{\boldsymbol{\xi }}_{i}^{i-1})$为相邻帧的重投影关系, ${ \boldsymbol T}$为投影方程.

通常,场景深度发生变化主要有2种情况:相机自身运动和场景中有运动物体. 当物体在场景中移动时,物体沿自身移动方向会遮挡场景背景,导致深度值变小;物体移走后,原本由物体遮挡的背景部分重现,导致深度值变大. 完成深度图缺失补偿后,相邻帧的深度遮挡差值为

$ \mathrm{\Delta }{Z}_{i-1}\left(\boldsymbol{u},{\boldsymbol\xi }_{i-1}^{i}\right)={Z}_{i-1}\left(w\left(\stackrel-{\boldsymbol{u}},{\boldsymbol\xi }_{i-1}^{i}\right)\right)-{Z}_{i}\left(\boldsymbol{u}\right). $

式中: $ \mathrm{\Delta }{Z}_{i-1}\left(\boldsymbol{u},{\boldsymbol{\xi }}_{i-1}^{i}\right) $为相邻帧的深度差. 假设动态物体平行于相机平面运动,当深度差值 $ \mathrm{\Delta }{Z}_{i-1} \gt 0 $时,表示物体运动遮挡背景,深度值变小;当 $ \mathrm{\Delta }{Z}_{i-1} \lt 0 $,表示深度值变大,即被遮挡的背景重现;当 $ \mathrm{\Delta }{Z}_{i-1}=0 $时,表示深度值无变化,像素 $ \boldsymbol{u} $既可能是静态背景,也可能是做平行运动的动态物体.

受深度投影误差和场景动态物体运动情况影响,仅利用深度差值无法检测动态目标,为了获得真实动态目标,须对深度遮挡差值进行累积建模:

$ \begin{split} {A}_{i}\left({\boldsymbol{u}}\right)=&\Delta {Z}_{i-1}\left(\boldsymbol{u},{\boldsymbol{\xi }}_{i-1}^{i}\right)+{\tilde{A}}_{i-1}\left(w\left(\boldsymbol{u},{\boldsymbol{\xi }}_{i-1}^{i}\right)\right)\approx \\ &\Delta {Z}_{i-1}\left(\boldsymbol{u},{\boldsymbol{\xi }}_{i-1}^{i}\right)+\sum _{k=1}^{i-1}\mathrm{\Delta }{Z}_{k}\left(w\left(\boldsymbol{u},{\boldsymbol{\xi }}_{k+1}^{i-1}\right),{\boldsymbol{\xi }}_{k}^{k+1}\right).\end{split} $

式中: $ A_i ({\boldsymbol{u}}) $为图像序列第 i帧的深度差累积图, $ {A}_{1}\left(\boldsymbol{u}\right) $为初始深度差累积图, $ \boldsymbol{u} $为图像像素, $(\forall \boldsymbol{u}\in \boldsymbol{\varOmega } )\; {A}_{1}\left(\boldsymbol{u}\right)=0,$ $ \boldsymbol{\varOmega } $为图像全局, ${\tilde{A}}_{i-1}{({\boldsymbol{u}})}$${A}_{i-1}{{(\boldsymbol{u})}}$的截断值, $ k $为第1个观察到像素 $ \boldsymbol{u} $的帧的索引值. 动态物体引起的深度差,可以通过深度差累积模型进行累积. 由于深度测量值存在误差,该误差与深度值呈二次增长关系 [ 16] . 为了避免深度测量误差累积影响深度遮挡结果,设置误差阈值

$ {\tau }_{\alpha }\left(\boldsymbol{u}\right)=\alpha \cdot Z(\boldsymbol{u}{)}^{2}. $

并对深度差累积图进行截断:

$ {\tilde{A}}_{i}\left(\boldsymbol{u}\right)=0,\;{A}_{i}\left(\boldsymbol{u}\right)\leqslant {\tau }_{\alpha }\left(\boldsymbol{u}\right). $

随着物体运动,被遮挡的背景重现, $ {A}_{i}\left(\boldsymbol{u}\right) $值超过误差阈值,仍将被视为动态点,因此须根据 $ \mathrm{\Delta }{Z}_{i} $截断 $ {A}_{i}\left(\boldsymbol{u}\right) $. 考虑到存在深度测量误差,检测背景重现情况的截断步骤为

$ {\tilde{A}}_{i}\left(\boldsymbol{u}\right)=0,\; \Delta {Z}_{i}\left(\boldsymbol{u},{\boldsymbol{\xi }}_{i-1}^{i}\right)\leqslant {-\tau }_{\beta }\left(\boldsymbol{u}\right). $

式中: $ \alpha $为深度测量误差阈值系数, $ \;\beta $为静态点重现误差阈值系数. 本研究取 $ \alpha =0.15,\beta =0.225 $.

随着相机运动,相机拍摄的图像区域中沿着相机的运动方向将出现新场景:

$ \tilde{{{\boldsymbol{\varOmega}} }}=\left\{\tilde{\boldsymbol{u}}\left|w\right(\tilde{\boldsymbol{u}},{\boldsymbol{\xi }}_{i}^{i-1})\notin {{\boldsymbol{\varOmega}} }\right\}. $

新场景没有深度遮挡累积结果,无法判断动静态,因此须对其进行深度遮挡累积预测:

$ {A}_{i}\left(\tilde{\boldsymbol{u}}\right)=\frac{{\displaystyle\sum }_{\text{δ} \boldsymbol{u}\notin \tilde{{\varOmega }}}\left\{{A}_{i}\left(\text{δ} \boldsymbol{u}\right)+{\nabla }_{\text{δ} \boldsymbol{u}}{Z}_{i}\left(\tilde{\boldsymbol{u}}\right)\right\}}{{\displaystyle\sum }_{\text{δ} \boldsymbol{u}\notin \tilde{{\varOmega }}}1}, $

$ {\nabla }_{\text{δ} \boldsymbol{u}}{Z}_{i}\left(\tilde{\boldsymbol{u}}\right)={Z}_{i}\left(\tilde{\boldsymbol{u}}\right)-{Z}_{i}\left(\text{δ} \boldsymbol{u}\right). $

式中: $ \tilde {\boldsymbol{u}} $为新场景像素点, $\text{δ} \boldsymbol{u}$为邻近 $ \tilde {\boldsymbol{u}} $,且有 $A\left(\text{δ} \boldsymbol{u}\right)$的像素点, $ {\nabla }_{\delta \boldsymbol{u}}{z}_{i}\left(\tilde {\boldsymbol{u}}\right) $$ \tilde {\boldsymbol{u}} $$ \delta \boldsymbol{u} $的深度梯度. 用式(9)反复迭代更新最新出现场景区域 $\tilde {{{\boldsymbol{\varOmega}} }}$中的像素深度差累积结果直到 $\tilde {{{\boldsymbol{\varOmega}} }}$为空集.完成新场景的深度差累积结果预测后,根据深度累积图 $ {A}_{i}\left(\boldsymbol{u}\right) $对图像进行动态目标与静态背景分割:

$ {B}_{i}\left(\boldsymbol{u}\right)=\left\{\begin{array}{l}1,\;{A}_{i}\left(\boldsymbol{u}\right) \gt {\tau }_{\alpha }\left(\boldsymbol{u}\right);\\ 0,\;\mathrm{其}\mathrm{他}.\end{array}\right. $

2.2. 基于动态点剔除的相机位姿优化

利用深度累积图方法可以分割出图像中的动静态区域. 在完成动静态分割的基础上,文献[ 14]利用DVO算法进行位姿估计. 由于特征点法更加鲁棒,适用性更广,本研究将上述动静态区域分割方法与ORB-SLAM2结合.

为了消除场景中动态目标引入的外点对相机位姿优化估计的影响,剔除当前图像中落入动态区域内的特征点,得到静态特征点 $ {\boldsymbol {x}}_{i} $和匹配地图点 $ {\boldsymbol{X}}_{i} $,通过最小化重投影误差优化相机位姿:

$ {{\xi }}^*=\mathop{\mathrm{arg\;min}}\limits_{\xi }{\sum }_{i=1}^{n}\;\rho \left({\left\|{{{\boldsymbol{x}}}}_{i}-{{\boldsymbol{T}}}\left(\mathrm{e}\mathrm{x}\mathrm{p}\;\left({{{\boldsymbol{\xi}}^ \wedge }}\right){{{\boldsymbol{X}}}}_{i}\right)\right\|}^{2}\right). $

式中: $ {\boldsymbol{\xi }}^{*} $为最优位姿估计, $ \;\rho $为鲁棒核函数, $\mathrm{e}\mathrm{x}\mathrm{p}\left({{\boldsymbol{\xi }}^ \wedge}\right)$为地图点从世界坐标系到图像坐标系的指数映射关系.

2.3. 基于静态概率的相机位姿优化

由于特征点法初步估计的相机位姿不准以及深度测量误差,重投影深度差累积方法在复杂深度场景下易出现误检,比如将场景中静置的桌椅误检为动态物体. 鉴于直接剔除动态点可能导致静态特征点被误剔除,使最小化重投影误差得到的位姿不够精确,也容易导致特征点过少,使算法跟踪失败,本研究对动态区域中的特征点进一步处理.

图2所示,在相机位姿估计准确的情况下,静态特征点和匹配地图点的投影点距离较近,甚至重合,如点 $ {\boldsymbol{x}}_{3} $;动态特征点和匹配地图点的投影点距离较大,如点 ${\boldsymbol{x}}_{1}$. 利用这一特性,通过计算特征点和匹配地图点的欧氏距离 $ {d}_{i} $来区分检测动态区域中的动态点和静态点.

图 2

图 2   匹配点对的欧氏距离

Fig.2   Euclidean distance of matched points


$ {d}_{i}={\left\|{\boldsymbol{x}}_{i}-\boldsymbol{T}\left(\mathrm{e}\mathrm{x}\mathrm{p}\;\left({\boldsymbol{\xi }}^ \wedge\right){\boldsymbol{X}}_{i}\right)\right\|}_{2} . $

式中: $ {d}_{i} $为匹配点对的欧氏距离. 图像中特征点与匹配地图点的欧氏距离符合t分布 [ 17] . 不同于文献[ 13]的方法中点云的欧氏距离,本研究通过PnP(perspective-n-point)计算匹配点对的欧氏距离,估计动态区域特征点的静态概率:

$ {{w}_{i}}'=\frac{{\nu }_{0}+1}{{v}_{0}+{\left(\left({d}_{i}-{\mu }_{D}\right)/{\sigma }_{D}\right)}^{2}}, $

$ {\sigma }_{D}=1.482\;6\;\mathrm{m}\mathrm{e}\mathrm{d}\mathrm{i}\mathrm{a}\mathrm{n}{\left\{\left|{d}_{i}-{\mu }_{D}\right|\right\}}_{{d}_{i}\ne D}. $

式中: $ {\nu }_{0} $为t分布的自由度, $ {\mu }_{D} $为特征点欧氏距离集合的均值, $ {\sigma }_{D} $为方差. 本研究取 $ {v}_{0}=5 $$ {\mu }_{D}=0 $.

误检动态区域中的静态特征点同静态区域中的特征点一样,本质上都是场景中的静态点,符合静态区域特征点的t分布,真动态点随 $ {d}_{i} $增加更靠近t分布的尾部. 为了避免动态点过多对静态概率估计造成干扰,本研究算法先计算静态区域特征点与匹配地图点欧氏距离的集合{ $ {d}_{\mathrm{s}\mathrm{t}\mathrm{a}} $},找到方差 $ {\sigma }_{D} $,再计算动态区域特征点与匹配地图点欧氏距离的集合{ $ {d}_{\mathrm{d}\mathrm{y}\mathrm{n}} $}. 剔除欧式距离大于4的部分外点,直接剔除明显动态点,根据式(14)计算检测的动态区域中剩余特征点的静态概率 $ {w}_{i}' $. 最后,为了保证动态区域特征点的静态概率与静态区域特征点的静态概率与“1”等比例,算法对动态区域特征点的静态概率按最大值为“1”进行等比缩放:

$ {w}_{i}={{w}_{i}}'/{w}'_{\mathrm{m}\mathrm{a}\mathrm{x}}. $

式中: ${w}'_{\mathrm{m}\mathrm{a}\mathrm{x}}$为动态区域疑似静态点的静态概率最大值. 静态概率估计算法流程图如 图3所示.

图 3

图 3   静态概率估计算法流程图

Fig.3   Flow chart of static probability estimation algorithm


将计算得到的动态区域特征点的静态概率,与静态区域特征点以不同权重加入相机位姿最优估计,每个重投影误差项都有不同静态权重:

$ {\boldsymbol{\xi }}^{*}=\mathop{\mathrm{arg\;min}}\limits_{\xi }{\sum }_{i=1}^{n}{w}_{i}\;\rho \left({‖{\boldsymbol{x}}_{i}-\boldsymbol{T}\left(\mathrm{e}\mathrm{x}\mathrm{p}\;\left({\boldsymbol{\xi }}^ \wedge \right){\boldsymbol{X}}_{i}\right)‖}^{2}\right). $

式中: $ {w}_{i} $为特征点的静态概率. 式(17)用列文伯格−马夸尔特法求解 [ 18] .

3. 实验与分析

本研究算法运行环境:计算机硬件为戴尔台式电脑,CPU为Intel i5-4460,8 G内存,主频最高为3.2 GHz. 软件平台为Ubuntu 16.04系统,算法基于C++、OpenCV库和Eigen库编写.

3.1. 实验数据集

选用LARR RGB-D动态数据集 [ 14] 和TUM RGB-D动态数据集 [ 19] 进行测试实验. LARR动态场景数据集按相机运动状态分为2类:“dynamic”序列中相机自运动、“static”序列中相机静止. 该数据集中的动态目标为board、man、constructed building,分别代表大尺寸纹理板、行人、建筑物模型,这些目标都占据场景的主要部分,为高度动态环境.

TUM动态场景数据集按动态目标运动状态分为2类:“walking”序列中动态目标为行人,占据场景的主要部分,为高度动态环境;“sitting”序列中只有一些肢体运动和小物体运动,为低度动态环境. 该数据集包含4种相机运动状态:static、xyz、halfsphere、rpy,分别代表相机基本固定、相机沿 x- y- z 轴运动、相机沿半球轨迹运动、相机沿横滚-俯仰-偏转轴旋转.

3.2. 动态检测及静态概率计算实验

图4所示为本研究算法在2个数据集中具有代表性的实验结果. 图4(a)为原始图像,场景运动状态为实验员持有纹理板移动(左)以及实验员推动椅子从工位上站起来行走(右). 图4(b)为动态区域分割结果,深度差累积图方法能够较好检测场景中的运动目标:行人、纹理板和椅子.由于部分物体边缘深度梯度变化较大,以及初步估计的位姿存在误差,使深度累积误差超过动态分割阈值,导致一部分静态区域被错误检测为动态区域:将静止的部分桌椅检测为动态区域.

图 4

图 4   动态区域检测结果

Fig.4   Results of dynamic region detection


在动静态分割的基础上,对动态区域特征点进行静态概率估计. 图5为本研究算法的静态概率估计结果,图中动态区域中的疑似静态特征点带有静态概率值下标. 由于 图5(a)为动静态分割结果,比较准确,图中只有静态区域特征点; 图5(b)为动静态分割结果,存在误检,直接剔除误检区域的特征点将影响位姿估计的准确性. 经过静态概率估计步骤,误检区域的特征点被保留下来,帮助提高位姿估计精度.

图 5

图 5   动态区域的静态概率估计结果

Fig.5   Results of static probability estimation for dynamic region


3.3. 视觉里程计评估

为了比较本研究算法相较于参考方法的定位精度提升效果,使用相对位姿误差(relative pose error,RPE) [ 19] 评估各自方法视觉里程计的定位精度. 利用LARR和TUM fr3数据集对基于深度遮挡累积动态点剔除的DVO [ 14] (eDVO)、ORB-SLAM2的视觉里程计(ORB-VO)、基于深度累积图动态点剔除的ORB-VO(eORB-VO)以及本研究特征点静态概率估计的视觉里程计进行对比实验.

表1所示,本研究算法在大多数实验序列上均取得较好结果,所取得的平移RPE( $ R_{\rm{t}} $)和旋转RPE( $ R_{\rm{r}} $)普遍低于对比方法. 在对比实验中,eDVO的定位精度整体较eORB-VO更差,表明选择特征点法进行位姿估计具有明显优势. ORB-VO利用光束法平差估计位姿,可以将少量动态点判断为误匹配,因此在低动态的“sitting”图像序列估计位姿较准确,但在高动态图像序列中,该算法无法剔除大量动态点,导致估计位姿与真实位姿偏差较大,甚至在“dynamic_board”序列中受动态目标影响而导致跟踪失败,用“X”表示. 与ORB-VO相比,本研究算法能够剔除动态点的影响,将平移RPE精度提升91.0%,旋转RPE精度提升15.0%,位姿估计精度提升效果明显.

表 1   LARR和TUM RGB-D数据集上不同算法的相对位姿误差(均方根误差)对比

Tab.1  Comparison of RPE(RMSE) among different methods on LARR and TUM RGB-D datasets

序列 $R_{\rm{t}}$/(m·s −1) $R_{\rm{r}}$/((°)·s −1)
eDVO [ 14] ORB-VO eORB-VO 本研究 eDVO [ 14] ORB-VO eORB-VO 本研究
static_board 0.292 0.034 0.022 0.024 4.839 0.018 0.009 0.010
static_construct 0.153 0.033 0.003 0.003 3.821 0.017 0.001 0.001
dynamic_board 0.111 X 0.027 0.028 1.939 X 0.031 0.031
dynamic_man1 0.157 0.039 0.025 0.023 4.108 0.053 0.053 0.053
fr3/sitting_xyz 0.073 0.008 0.010 0.009 1.860 0.008 0.008 0.008
fr3/walking_static 0.217 0.016 0.013 0.012 0.197 0.008 0.006 0.006
fr3/walking_xyz 0.259 0.028 0.020 0.015 4.069 0.016 0.012 0.010

新窗口打开| 下载CSV


与eORB-VO相比,为了避免错误剔除特征点,本研究算法估计了动态区域特征点的静态概率. 在场景简单的LARR数据集中,动静态区域分割准确,直接剔除动态区域特征点有利于位姿估计,因此本研究算法较eORB-VO,平移RPE精度降低1.3%,旋转RPE精度降低1.1%. 在场景复杂的TUM/fr3数据集中,动静态区域分割不准确,本研究算法有效避免了错误剔除静态特征点,较动态点剔除方法,平移RPE精度提升16.3%,旋转RPE精度提升7.7%. 可见,本研究算法的鲁棒性更好.

图6所示为本研究算法和ORB-VO在“dynamic_board”和“walking_xyz”序列上的相对位姿误差曲线对比结果. 可以看出本研究算法的相对位姿误差整体较ORB-VO更低、更平稳. 在“dynamic_board” 序列中, 由于场景中的动态纹理板旋转,导致ORB-VO跟踪失败,只在20~27 s有相对位姿估计结果. 本研究算法能够较好地消除动态目标影响,准确跟踪,相对位姿误差较小,可见本研究算法定位的准确性和鲁棒性较好.

图 6

图 6   本研究算法与ORB-VO相对位姿误差曲线对比图

Fig.6   Comparison of RPE curves between proposed methods and ORB-VO


3.4. 视觉SLAM系统评估

使用相机估计轨迹和真实轨迹间的绝对轨迹误差(absolute trajectory error,ATE) [ 19] ,评估视觉SLAM系统的性能. 为了探究本研究算法较经典ORB-SLAM2方法和ORB-SLAM2框架下剔除动态点方法(eORB-SLAM2)的定位效果的提升情况,如 表2所示为各个方法在LARR和TUM fr3数据集中的ATE均方根值的对比结果. 可见,在低动态场景序列 “sitting”中,ORB-SLAM2算法利用光束法平差,将少量动态点判断为外点,得到较准确的运动轨迹. 但在LARR数据集和“walking”序列等高动态场景中,ORB-SLAM2受到动态目标影响,得到运动轨迹的ATE较大. 相比于ORB-SLAM2算法,本研究算法加入动态分割和特征点静态概率估计,显著提高算法在动态环境下的定位精度,整体绝对轨迹精度提升96.1%,精度提升效果明显. 在场景深度复杂的图像序列“fr3/walking”和“fr3/sitting”中,动态分割容易出现误检,直接剔除动态区域特征点导致定位精度较差. 本研究算法估计动态区域特征点静态概率,避免剔除静态特征点,提高了本研究算法的定位精度,较动态点剔除方法绝对轨迹精度提升74.4%,可见本研究算法更鲁棒.

表 2   LARR和TUM RGB-D数据集上本研究算法与ORB-SLAM2的绝对轨迹误差(均方根)对比

Tab.2  Comparison of ATE(RMSE) between proposed method and ORB-SLAM2 on LARR and TUM RGB-D datasets

m
序列 ATE
ORB-SLAM2 eORB-SLAM2 本研究
static_board 1.442 6 0.056 4 0.077 4
static_construct 1.114 7 0.004 6 0.004 7
dynamic_board 1.151 0 0.021 3 0.021 6
dynamic_man1 0.297 7 0.035 1 0.034 2
fr3/sitting_xyz 0.009 2 0.017 2 0.010 5
fr3/walking_static 0.393 1 0.021 0 0.012 7
fr3/walking_xyz 0.676 8 0.426 6 0.054 4
fr3/walking_halfsphere 0.648 3 0.119 4 0.047 4
fr3/walking_rpy 0.787 1 0.050 9 0.033 1
平均 0.724 5 0.111 7 0.028 6

新窗口打开| 下载CSV


图7所示为在TUM/fr3/walking序列上,本研究算法与ORB-SLAM2的估计轨迹对比图. 可见,本研究算法得到的绝对轨迹与真实轨迹重合度较高, ORB-SLAM2受动态目标影响,估计的绝对轨迹与真实轨迹偏差较大.

图 7

图 7   本研究算法与ORB-SLAM2估计轨迹对比图

Fig.7   Comparison of estimated trajectories between proposed method and ORB-SLAM2


表3所示,对本研究算法与先进的动态SLAM算法进行ATE对比. 表中,半直接法 [ 3] 为基于双单高斯模型动态检测的SLAM算法,Static-weight [ 13] 为基于深度边缘点静态概率的SLAM方法,Detect-SLAM [ 6] 、DS-SLAM [ 8] 为基于深度学习动态检测的SLAM方法,改进几何与运动约束 [ 11] 、DSLAM [ 12] 利用运动一致性检测动态特征点. 除本研究算法外,表中结果均来自相关参考文献. 可知,带运动检测的SLAM算法都能适应动态场景问题,在低动态环境数据集“sitting”中,针对动态场景设计的各个算法都能有较好的轨迹估计结果. 在高度动态环境序列“walking_static”中,相机运动较小,RGB图像序列清晰,因此表中的对比方法在该序列中都能较好运行,得到的绝对轨迹误差相对较小. 在高度动态环境序列“walking_xyz”、“walking_halfsphere”和“walking_rpy”中,相机运动过快,图像运动模糊,导致特征点匹配困难,并且动态物体经常占据画面主要区域,使表中的算法出现较大的误差. 在“walking_rpy”序列中,半直接法甚至因图像运动模糊而造成跟踪失败,用“X”表示. 在“walking_xyz”序列中,由于动态目标比较完整,基于深度学习动态检测的Detect-SLAM [ 6] 、DS-SLAM [ 8] 都能够准确分割动态目标,得到的绝对轨迹误差较低. 在“walking_halfsphere”序列中,动态目标经常占据图像大量区域,改进几何与运动约束方法 [ 11] 可以通过跟踪动态物体计算相机位姿,获得较低的绝对轨迹误差. 在“walking_rpy”序列中,场景中的物体离相机较远,图像的深度梯度变化明显,动静态区域分割结果较准. 得益于特征点静态概率估计算法,保留了足够静态特征点用于位姿估计,使得本研究算法的定位精度优于其他方法,较次最优方法的位姿精度提升65.7%. 虽然有时由于特征点匹配不足导致跟踪丢失,但算法在地图中保留静态点,也能迅速重定位并继续跟踪,整体鲁棒性较好. 本研究算法的鲁棒性较好,在表中的定位结果都比较准确,相比于对比算法中定位精度最高的改进几何与运动约束方法 [ 11] ,本研究算法的整体ATE精度提升31.2%,提升效果比较明显.

表 3   TUM RGB-D数据集上不同算法的绝对轨迹误差(均方根误差)对比

Tab.3  Comparison of ATE(RMSE) among different methods on TUM RGB-D datasets m

TUM_fr3序列 ATE
半直接法 [ 3] Detect-SLAM [ 6] DS-SLAM [ 8] 改进几何与运动约束 [ 11] DSLAM [ 12] Static-weight [ 13] 本研究
sitting_static 0.006 4 0.044 6 0.009 6 0.006 9
sitting_xyz 0.011 3 0.020 1 0.018 6 0.009 1 0.039 7 0.010 5
sitting_halfsphere 0.062 0 0.023 1 0.027 1 0.023 5 0.043 2 0.017 0
sitting_rpy 0.038 5 0.022 5 0.026 1
walking_static 0.008 0 0.008 1 0.013 1 0.010 8 0.026 1 0.012 7
walking_xyz 0.037 1 0.024 1 0.024 7 0.035 4 0.087 4 0.060 1 0.054 4
walking_halfsphere 0.040 9 0.051 4 0.030 3 0.028 5 0.035 4 0.048 9 0.047 4
walking_rpy X 0.295 9 0.444 2 0.096 6 0.160 8 0.179 1 0.033 1
平均 X 0.082 9 0.102 7 0.037 8 0.044 9 0.066 2 0.026 0

新窗口打开| 下载CSV


3.5. 系统时间效率评估

表4所示,为了衡量本研究算法的时间效率,分别测试低度动态“sitting_static”序列和高度动态“walking_static” 序列进行测试,对比本研究算法与ORB-SLAM2处理每帧图像的平均耗时 t ave. 可见,本研究算法的跟踪整体耗时较ORB-SLAM2更长,主要原因是动静态分割算法为稠密运算,耗费较多时间,导致实时性较差. 综合整体性能考虑,虽然本研究算方法的实时性表现较差,但在动态场景中的定位精度和鲁棒性较ORB-SLAM2更强.

表 4   本研究算法与ORB-SLAM2的时间效率对比

Tab.4  Comparison of time efficiency between proposed method and ORB-SLAM2

ms
算法 操作 t ave
sitting_static walking_static
ORB-SLAM2 跟踪 26.98 39.76
本研究 跟踪 379.66 412.07
动静态分割 350.97 372.18
静态概率估计 1.00 1.03

新窗口打开| 下载CSV


4. 结 论

(1)提出基于深度信息动静态区域分割与特征点静态概率估计相结合的RGB-D视觉SLAM算法. 该算法根据深度遮挡差累积图对图像进行动静态区域分割,通过计算动态区域特征点和匹配地图点的欧氏距离,估计特征点的静态概率,利用静态区域特征点和动态区域疑似静态点进行位姿最优化估计,获得准确的SLAM定位结果.

(2)在LARR和TUM数据集中验证本研究算法. 相比于经典ORB-SLAM2和基于动态点剔除的算法,在动态场景下,本研究算法的精度和鲁棒性提升较大. 相比于其他动态SLAM算法,本研究算法定位精度高、鲁棒性更强.

(3)在下一步工作中,将针对本研究算法的实时性能,对稠密深度遮挡累积进行稀疏化处理以加速运算过程,实现同步定位与建图;为了减少动态区域误检,将尝试对深度测量值进行不确定性分析,进一步提升动静态区域分割方法的精度和鲁棒性.

参考文献

FISCHLER M A, BOLLES R C

Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography

[J]. Communications of the ACM, 1981, 24 (6): 381- 395

DOI:10.1145/358669.358692      [本文引用: 1]

TRIGGS B, MCLAUCHLAN P F, HARTLEY R I, et al. Bundle adjustment: a modern synthesis [M]// TRIGGS B, ZISSERMAN A, SZELISKI R. Vision algorithms: theory and practice. [S. l.]: Springer, 1999: 298-372.

[本文引用: 1]

高成强, 张云洲, 王晓哲, 等

面向室内动态环境的半直接法RGB-D SLAM算法

[J]. 机器人, 2019, 41 (3): 372- 383

[本文引用: 3]

GAO Cheng-qiang, ZHANG Yun-zhou, WANG Xiao-zhe, et al

Semi-direct RGB-D SLAM algorithm for dynamic indoor environments

[J]. Robot, 2019, 41 (3): 372- 383

[本文引用: 3]

SUN Y, LIU M, MENG M Q H

Improving RGB-D SLAM in dynamic environments: a motion removal approach

[J]. Robotics and Autonomous Systems, 2017, 89: 110- 122

DOI:10.1016/j.robot.2016.11.012      [本文引用: 1]

魏彤, 李绪

动态环境下基于动态区域剔除的双目视觉SLAM算法

[J]. 机器人, 2020, 42 (3): 336- 345

[本文引用: 1]

WEI Tong, LI Xu

Binocular vision SLAM algorithm based on dynamic region elimination in dynamic environment

[J]. Robot, 2020, 42 (3): 336- 345

[本文引用: 1]

ZHONG F, WANG S, ZHANG Z, et al. Detect-SLAM: making object detection and SLAM mutually beneficial [C]// 2018 IEEE Winter Conference on Applications of Computer Vision. Lake Tahoe: IEEE, 2018: 1001-1010.

[本文引用: 4]

BESCOS B, FACIL J M, CIVERA J, et al

DynaSLAM: tracking, mapping, and inpainting in dynamic scenes

[J]. IEEE Robotics and Automation Letters, 2018, 3 (4): 4076- 4083

DOI:10.1109/LRA.2018.2860039     

YU C, LIU Z, LIU X, et al. DS-SLAM: a semantic visual SLAM towards dynamic environments [C]// 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems. Madrid: IEEE, 2018: 1168-1174.

[本文引用: 3]

YUAN X, CHEN S. SaD-SLAM: a visual SLAM based on semantic and depth information [C]// 2020 IEEE/RSJ International Conference on Intelligent Robots and Systems. Las Vegas: IEEE, 2020: 4930-4935.

[本文引用: 1]

ZHANG T, ZHANG H, NAKAMURA Y, et al. FlowFusion: dynamic dense RGB-D SLAM based on optical flow [C]// 2020 IEEE International Conference on Robotics and Automation. Paris: IEEE, 2020: 7322-7328.

[本文引用: 1]

艾青林, 刘刚江, 徐巧宁

动态环境下基于改进几何与运动约束的机器人RGB-D SLAM算法

[J]. 机器人, 2021, 43 (2): 167- 176

[本文引用: 5]

AI Qing-lin, LIU Gang-jiang, XU Qiao-ning

An RGB-D SLAM algorithm for robot based on the improved geometric and motion constraints in dynamic environment

[J]. Robot, 2021, 43 (2): 167- 176

[本文引用: 5]

DAI W, ZHANG Y, LI P, et al

RGB-D SLAM in dynamic environments using point correlations

[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 44 (1): 373- 389

[本文引用: 3]

LI S, LEE D

RGB-D SLAM in dynamic environments using static point weighting

[J]. IEEE Robotics and Automation Letters, 2017, 2 (4): 2263- 2270

DOI:10.1109/LRA.2017.2724759      [本文引用: 5]

KIM H, KIM P, KIM H J. Moving object detection for visual odometry in a dynamic environment based on occlusion accumulation [C]// 2020 IEEE International Conference on Robotics and Automation. Paris: IEEE, 2020: 8658-8664.

[本文引用: 8]

MUR-ARTAL R, TARDOS J D

ORB-SLAM2: an open-source SLAM system for monocular, stereo, and RGB-D cameras

[J]. IEEE Transactions on Robotics, 2017, 33 (5): 1255- 1262

DOI:10.1109/TRO.2017.2705103      [本文引用: 1]

胡泽周

Kinect深度传感器深度误差分析和修正方法的研究

[J]. 测绘通报, 2019, (Suppl.2): 239- 241

[本文引用: 1]

HU Ze-zhou

Research on depth error analysis and correction method of Kinect depth sensor

[J]. Bulletin of Surveying and Mapping, 2019, (Suppl.2): 239- 241

[本文引用: 1]

KERL C, STURM J, CREMERS D. Dense visual SLAM for RGB-D cameras [C]// 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems. Tokyo: IEEE, 2014: 2100-2106.

[本文引用: 1]

KUMMERLE R, GRISETTI G, STRASDAT H, et al. g2o: a general framework for graph optimization [C]// 2011 IEEE International Conference on Robotics and Automation. Shanghai: IEEE, 2011: 3607-3013.

[本文引用: 1]

STURM J, ENGELHARD N, ENDRES F, et al. A benchmark for the evaluation of RGB-D SLAM systems [C]// 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems. Vilamoura-Algarve: IEEE, 2012: 573-580.

[本文引用: 3]

/