基于运动预测的改进ORB-SLAM算法
Improved ORB-SLAM algorithm based on motion prediction
收稿日期: 2022-05-9
基金资助: |
|
Received: 2022-05-9
Fund supported: | 国家自然科学基金青年基金资助项目(51702266);成都市科技资助项目(2022-YF05-00157-SN) |
作者简介 About authors
蒋林(1974—),男,副教授,从事智能控制、电机控制和新能源发电与并网研究.orcid.org/0000-0002-0650-2568.E-mail:
针对不同运动场景下以固定的点特征提取与匹配策略的ORB-SLAM算法存在系统跟踪定位误差较大的问题,考虑相机自身运动对视觉SLAM系统的影响,提出基于运动预测的改进ORB-SLAM算法. 该方法利用上一帧的点特征利用率和匀速运动模型,预测出相邻2帧之间的共视范围,实时动态调整不同运动状态下的点特征提取阈值,在保证系统稳定性的情况下,提高系统的准确性. 提出基于运动预测的点特征匹配优化策略,基于匀速运动模型快速确定出共视范围内的有效待匹配点,结合图像金字塔缩小匹配搜索范围,减少大量的无效匹配过程. 在TUM数据集上进行对比实验,结果表明,提出的算法不仅实时性好,而且提高了系统的精度.
关键词:
An improved ORB-SLAM algorithm based on motion prediction was proposed by considering the influence of the camera’s own motion on the visual SLAM system aiming at the problem that the ORB-SLAM algorithm with fixed point feature extraction and matching strategy has large tracking and positioning error in different motion scenes. The point feature utilization rate of the previous frame and the uniform motion model were used to predict the mutually visual zone between two adjacent frames. The threshold of point feature extraction under different motion states was dynamically adjusted in real time. Then the accuracy of the system was improved while ensuring the stability of the system. A point feature matching optimization strategy based on motion prediction was proposed. The effective matching points within the mutually visual zone were quickly determined based on the uniform motion model. The matching search range was narrowed by combining the image pyramid in order to reduce many invalid matching processes. The comparison experiments were conducted on the TUM data set. Results show that the proposed algorithm not only has good real-time performance, but also improves the accuracy of the system.
Keywords:
本文引用格式
蒋林, 刘林锐, 周安娜, 韩璐, 李平原.
JIANG Lin, LIU Lin-rui, ZHOU An-na, HAN Lu, LI Ping-yuan.
Mur-Artal等[4]提出基于点特征的视觉SLAM算法,构建具有代表意义的完整SLAM系统,在此基础上,有不少学者提出了改进算法. 李国竣等[5]依据图像灰度调节点特征的提取阈值,平衡系统在不同光照场景下的点特征数量,提高了系统的建图成功率. Li等[6]根据相邻2帧图像的像素均值与标准差,调整点特征提取阈值,基于网格运动统计(grid-based motion statistics, GMS)算法进行匹配筛选,提升了系统的鲁棒性与实时性. 胡山山等[7]通过构建Hessian矩阵优化点特征的提取过程,使得点特征具有更好的跟踪特征,有效提高了系统的准确性. 张一等[8]提出基于亚像素均衡化的点特征提取方法,使得点特征的分布更加均匀、准确,提升了系统的准确性与实时性.
为了提高ORB-SLAM算法在动态场景中的系统精度与鲁棒性,Gan等[9]提出基于目标检测的改进算法,通过剔除场景中动态对象上的点特征,有效提高了系统在动态场景下的准确性与鲁棒性. Ai等[10]通过新增动态目标的概率模型,增强了目标识别效率,提高了系统在动态环境下的准确性与实时性. 视觉SLAM系统的性能与相机特性、机器人运动性能息息相关. 曹力科等[11]提出基于卷帘快门相机的改进SLAM算法,通过控制特征的速度对卷帘快门效应进行校正,提高了系统的准确性. 刘贵涛等[12]使用多个相机紧耦合的改进SLAM方法,增强了系统的稳定性与鲁棒性. Yang等[13]通过控制运动平台的运动特性,将匀速运动状态作为已知量引入SLAM系统中,有效缩短了系统的初始化时间. 在绝大多数的工程实际中,系统无法预知相机特性与机器人的运动性能. 本文考虑相机自身运动对系统的影响,提出基于运动预测的改进ORB-SLAM算法,解决运动场景下固定点特征提取与匹配策略失效的问题,在保证系统实时性和漂移量的情况下,提升系统的准确性.
1. 基于运动预测的点特征提取方法
在基于点特征的视觉SLAM系统中,点特征提取的好坏直接关系到系统定位和建图的准确性和鲁棒性[14]. 若点特征数量较少,则容易出现跟踪丢失的情况;若无限增加点特征数量,则会产生较多的错误匹配信息,影响系统的实时性与准确性.
1.1. 基于点特征利用率的阈值调整
在相邻2帧图像整体纹理与对比度不发生突变的前提下,提出基于点特征利用率的检测阈值调整方法. 点特征利用率为
式中:Nall为上一帧图像提取出来的所有点特征数量之和,Neffect为上一帧图像中的有效点特征数量之和. 一个有效点特征应该具有以下条件.
1)该点特征具有正深度. 当使用深度相机时,该特征点在深度图上对应的深度为正. 当使用双目相机时,通过双目立体视觉匹配[15]后计算出的深度为正.
2)该点特征具有良好的匹配信息. 该匹配关系包括与上一帧及参考关键帧建立的匹配关系,在进行局部地图位姿优化时,可以与局部地图点建立匹配关系.
3)该点特征不为离群点. 在进行位姿估计时,该点特征的重投影误差[16]小于误差阈值.
基于点特征利用率的阈值调整可以描述为
式中:ξ*、ξ分别为当前帧和上一帧的图像点特征检测阈值;Re'与Re分别为上一帧图像的点特征利用率与当前帧图像的期望点特征利用率;e(k)为当前帧的期望点特征利用率与上一帧的点特征利用率差值;ρ(r)为转换函数,将点特征利用率的差值转换为点特征检测阈值;kp、kd为表达式的控制参数.
当点特征利用率较低时,表示无效点特征偏多,此时需要提高检测阈值,保证系统的实时性及准确性. 当点特征利用率过高时,表示可用的跟踪点偏少,容易出现追踪丢失的情况,此时应该降低检测阈值,保证系统的准确性与稳定性.
1.2. 共视范围内的点特征提取优化方法
通常相邻2帧图像存在一定的共视范围,可以用于建立帧与帧之间的匹配关系. 构建t−2时刻到t−1时刻的相机匀速运动模型,预测出t−1时刻与当前t时刻的共视范围,优化点特征的提取. 不同位姿变化下图像的共视范围示意图如图1所示. 图中,O、O'分别为上一帧与当前帧的相机光心,实线为上一帧的视角范围,虚线为当前帧的视角范围,阴影部分为2帧之间的共视范围.
图 1
图 1 不同位姿变化下图像的共视范围示意图
Fig.1 Schematic diagram of common view range of images under different pose changes
为了直观地描述不同位姿变化下图像的共视范围,采用欧拉角[17]和平移向量的方式来表述三维空间的连续运动. 欧拉角与旋转矩阵之间的变换关系如下:
式中:θ为俯仰角,ϕ为翻滚角,ψ为偏航角,rij为旋转矩阵中对应行列上的元素.
由于将三维空间的连续运动逐一分解来求取共视范围是十分复杂的,提出不同位姿变化情况下的共视范围求取方法. 下面将讨论共视范围的求取过程.
假设已知t−2到t−1时刻的位姿变换矩阵[18]为
式中:R'、t'分别为t−2时刻到t−1时刻的旋转矩阵与平移向量.
根据相机投影模型[19],可以得到t−1时刻图像上的某一像素坐标在t时刻图像上的像素坐标:
式中:K为相机内参矩阵,pi'为t−1时刻的某一像素坐标,pi为当前t时刻的对应投影像素坐标.
若将相邻2帧的图像顶点坐标转换到同一坐标系下,则将问题转换为:已知2个多边形的顶点集为C1={p1,p2,···,pm}和C2={q1,q2,···,qn},求解这2个多边形的交集. 算法的整体思想如下. 1)将2个多边形的顶点及交点放入集合S中. 2)遍历集合S,保留同时属于这2个多边形范围内的点,将无序点集整理成有序点集. 3)根据有序点集,确定共视范围与比例.
1.2.1. 求取多边形的交点
求取多边形的交点,即求取多边形之间每条边的交点,求取任意2条线段之间的交点.
假设线段l1的两端点坐标以向量形式表示为p=[x,y]T与p+r=[x',y']T,线段l2的端点坐标为q = [z,w]T与q + s = [z',w']T,则线段上任意一点的坐标可以描述为
若2条线段相交,则有
同理,可得
当s×r≠0且t、u ∈[0,1.0]时,有且仅有一个交点,该交点用p+tr或者q+us表示. 当s×r=0且(p−q)×s=0或(p−q)×r=0时,线段重叠,存在无数个交点. 结合运用场景,取共线4个顶点中的倒数第2个顶点作为最终的共视交点.
1.2.2. 确定共视范围与共视比例
图 2
图2中,点p1、p2、p3、p4、p5、p6为无序点集中的点,点o'为点集的重心,坐标为
以点集重心o'做一条平行于x轴的向量
下面以图像共视面积比来表征共视比例,根据相邻2帧之间的共视比例确定优化程度. 基于叉乘的快速面积计算方法描述为
式中:S为多边形的面积,xi、yi为多边形上某一顶点的二维坐标值. 式(10)的证明过程详见附录1.
综上所述,基于运动预测的点特征提取算法的检测阈值可以描述为
式中:h(s)为共视范围内的检测阈值优化函数,
其中Smut和s分别为当前帧的共视面积、当前帧的共视比例,sset为共视比例阈值.
2. 基于运动预测的点特征匹配优化策略
针对不同运动场景下以固定的匹配策略导致的匹配运算量大及误匹配多的问题,提出基于运动预测的点特征匹配优化策略. 该方法通过匀速运动模型,快速确定出共视范围内的有效待匹配点,推算出相机的运动情况,结合图像金字塔[4]缩小匹配搜索范围,减少大量的无效匹配过程,改善误匹配问题.
2.1. 根据匀速运动预模型确定待匹配点
假设已知t−2时刻到t−1时刻的位姿变换阵T'以及t−1时刻的相机位姿矩阵Tlw,则可以通过匀速运动模型推算出当前位姿矩阵Tcw. 将t−1时刻的点特征投影到当前帧中,则有
式中:Rwl、twl分别为t−1时刻相机坐标系转换到世界坐标系的旋转矩阵与平移向量,Rcw、tcw分别为世界坐标系转换到当前t时刻相机坐标系的旋转矩阵和平移向量,[ui′,vi′]T为t−1时刻下的某一点特征像素坐标,Pwi为该点特征在世界坐标系下的三维空间坐标,Pci为该点特征在当前t时刻相机观察下的三维空间坐标,fx、fy、cx、cy分别为相机的内参参数.
通过判断pi是否在当前t时刻的图像范围内,可以确定是否为共视范围内的有效待匹配点.
2.2. 根据匀速运动预模型确定待匹配范围
利用匀速运动模型,推算得到t−1时刻到当前t时刻的相机平移量tlc为
式中:twc为相机坐标系转换到当前t时刻世界坐标系的平移向量,
根据匀速运动模型推算出的tlc判断相机的运动状态,通过图像金字塔缩小匹配搜索范围. 图像金字塔在点特征匹配中的原理示意图如图3所示.
图 3
图 3 图像金字塔在点特征匹配中的应用
Fig.3 Application of image pyramid to point feature matching
图3所示的黑色圆点为图像金字塔第n层(灰色部分表示)中具有一定像素面积的点特征. 当相机向前运动时,黑色点特征在原图层中所占的面积增大,需要在更高层级的图像金字塔中才能保持面积不变,实现该点特征的搜索与匹配. 当相机向后运动时,需要在更低层级的图像金字塔中实现该点特征的搜索与匹配.
根据匀速运动模型,可以推算出相机的运动情况,缩小匹配搜索范围. 若向前运动,则在待匹配点所在层至图像金字塔最高层中进行搜索与匹配. 若向后运动,则在图像金字塔最低层至有效待匹配点所在层中进行搜索与匹配.
2.3. 利用点特征信息进行匹配筛选
为了提高匹配准确率,利用最近邻匹配法[22]进行匹配筛选,该方法的判别表达式为
式中:d、d'分别为最佳与次佳匹配距离,L为比例阈值. 比例阈值越高,匹配数量越多,但匹配正确率越低;反之,比例阈值越低,匹配正确率越高,匹配数量越少.
当图像整体发生旋转时,待匹配点特征之间会存在角度变化值,称为主旋转方向. 利用匹配点特征之间的主旋转方向,可以筛选掉一些旋转异常的匹配对. 具体流程如下.
1)建立旋转角度直方图,12°每簇,共30簇.
2)计算每个匹配对中的点特征旋转角度,按点特征旋转角度归入对应簇内,记录下该匹配点对并增加对应簇的计数量.
3)统计得到旋转角度直方图中计数量最多的前3簇,作为主旋方向,剔除不属于主旋方向中的错误匹配对.
3. 实验与分析
表 1 实验数据序列及主要参数设置
Tab.1
数据序列 | Dn/s | Tr/m | vd/(m·s−1) | ωa/((°)·s−1) | 帧数 | kp | kd | Re | sset |
fr1/xyz | 30.09 | 7.112 | 0.244 | 8.920 | 798 | 2.75 | 1.12 | 0.45 | 0.96 |
fr1/rpy | 27.67 | 1.664 | 0.062 | 50.147 | 723 | 2.80 | 1.14 | 0.45 | 0.90 |
fr1/desk | 23.40 | 9.263 | 0.413 | 23.327 | 613 | 2.80 | 1.15 | 0.45 | 0.81 |
fr1/room | 48.90 | 15.989 | 0.334 | 13.425 | 1362 | 2.35 | 1.02 | 0.45 | 0.92 |
fr1/desk2 | 24.86 | 10.161 | 0.426 | 29.882 | 640 | 2.75 | 1.13 | 0.45 | 0.85 |
fr1/floor | 49.87 | 12.569 | 0.258 | 15.071 | 1242 | 2.75 | 1.12 | 0.45 | 0.78 |
为了避免实验结果的不确定性,所有实验均在Intel Core i5-8300H@2.30 GHz、内存为16 GB的计算机上开展,每个数据序列运行30次,与出现频次最多的运行结果进行对比分析.
3.1. 算法准确性与漂移量分析
利用绝对轨迹误差(absolute trajectory error, ATE)评估轨迹的一致性,比较系统估计轨迹与真实轨迹之间的绝对距离差值. 使用相对位姿误差(relative pose error, RPE)评估系统的漂移量,即比较一段时间间隔内的位姿变换量差值[23].
表 2 绝对轨迹误差的对比结果
Tab.2
数据序列 | ATE1/m | ATE2/m | η/% | |||||||||||
RMSE | Mean | Median | Std | RMSE | Mean | Median | Std | RMSE | Mean | Median | Std | |||
fr1/xyz | 0.010345 | 0.008583 | 0.007183 | 0.005775 | 0.009001 | 0.007539 | 0.006632 | 0.004917 | 13.12 | 12.16 | 7.67 | 14.80 | ||
fr1/desk | 0.020537 | 0.014287 | 0.010356 | 0.014754 | 0.014302 | 0.011750 | 0.009703 | 0.008155 | 30.35 | 17.75 | 6.30 | 44.72 | ||
fr1/floor | 0.019249 | 0.014258 | 0.011476 | 0.012933 | 0.012215 | 0.010794 | 0.010750 | 0.005720 | 36.54 | 24.29 | 6.32 | 55.77 | ||
fr1/desk2 | 0.030504 | 0.023948 | 0.018388 | 0.018893 | 0.021122 | 0.018105 | 0.016830 | 0.010880 | 30.75 | 24.39 | 8.47 | 42.41 | ||
fr1/rpy | 0.029052 | 0.021588 | 0.016343 | 0.019442 | 0.019263 | 0.015731 | 0.012500 | 0.011117 | 33.69 | 27.13 | 13.51 | 42.81 | ||
fr1/room | 0.081456 | 0.076147 | 0.074225 | 0.028925 | 0.036980 | 0.031801 | 0.028675 | 0.018874 | 54.60 | 58.23 | 60.36 | 34.74 |
表 3 相对位姿误差的对比结果
Tab.3
数据序列 | RPE1/m | RPE2/m | η/% | |||||||||||
RMSE | Mean | Median | Std | RMSE | Mean | Median | Std | RMSE | Mean | Median | Std | |||
fr1/xyz | 0.005922 | 0.004971 | 0.004163 | 0.003219 | 0.005761 | 0.004795 | 0.004056 | 0.003194 | 2.71 | 3.54 | 2.57 | 0.77 | ||
fr1/desk | 0.011885 | 0.008027 | 0.005570 | 0.008765 | 0.008962 | 0.007158 | 0.005742 | 0.005392 | 24.59 | 10.82 | −3.08 | 38.4 | ||
fr1/floor | 0.004036 | 0.003215 | 0.002749 | 0.002441 | 0.003847 | 0.003132 | 0.002694 | 0.002233 | 4.68 | 2.58 | 2.00 | 8.51 | ||
fr1/desk2 | 0.010667 | 0.008624 | 0.007375 | 0.006278 | 0.010499 | 0.008516 | 0.006999 | 0.006140 | 1.57 | 1.25 | 5.22 | 2.19 | ||
fr1/rpy | 0.010811 | 0.007523 | 0.005508 | 0.007764 | 0.009191 | 0.007171 | 0.005645 | 0.005750 | 14.99 | 4.67 | −2.40 | 25.94 | ||
fr1/room | 0.014180 | 0.008613 | 0.006216 | 0.011264 | 0.011528 | 0.008074 | 0.005892 | 0.008229 | 18.70 | 6.25 | 5.21 | 26.94 |
对比2种算法的绝对轨迹误差RMSE可知,本文算法的RMSE均远低于原算法的RMSE,其中本文算法的平均RMSE约为0.018 79 m,ORB-SLAM2算法的平均RMSE约为0.029 75 m,说明本文算法的估计轨迹更加准确. 结合表3可知,本文算法在改善系统精度的同时,减少了一定的系统漂移量.
图 4
图 4 在fr1/room数据集下2种算法运行的ATE结果图
Fig.4 ATE results of two algorithms running in fr1 /room sequence
从图4可知,系统在长时间运动状态下,存在一定的误差波动,利用本文算法可以有效地减小误差波动范围,保证总体误差处于可接受范围内,使得估计轨迹更贴合真实轨迹. 轨迹误差均值、误差中值及标准差等都明显减小,其中均方根误差减小了约46%,误差最小值约为3.522 mm.
3.2. 算法实时性分析
系统的实时性是评价SLAM系统的关键指标. 如表4所示为本文算法与ORB-SLAM2算法对于每帧处理时间的对比情况. 表中,t1、t2分别为ORB-SLAM2算法和本文算法对于每帧的处理时间. 本文算法相比于ORB-SLAM2算法在每帧的处理时间上更快,平均处理每帧的时间约为25 ms,具有更好的实时性,可以较好地应用于真实场景之中.
表 4 每帧处理时间的对比情况
Tab.4
数据序列 | t1/ms | t2/ms | |||
Mean | Median | Mean | Median | ||
fr1/xyz | 26.3672 | 26.4735 | 25.2066 | 25.4335 | |
fr1/desk | 24.7731 | 25.4751 | 27.8914 | 26.8529 | |
fr1/floor | 21.2646 | 20.9751 | 20.4787 | 19.5910 | |
fr1/desk2 | 31.1467 | 30.5623 | 29.4175 | 28.6211 | |
fr1/rpy | 26.8241 | 26.6784 | 24.0751 | 24.2393 | |
fr1/room | 25.4631 | 22.5552 | 24.2438 | 21.6065 |
4. 结 语
针对不同运动场景下以固定的点特征提取与匹配策略的ORB-SLAM算法存在系统跟踪误差较大的问题,通过考虑相机自身运动的影响,提出基于运动预测的改进ORB-SLAM算法. 在公开的TUM数据集上,将本文算法与标准的ORB-SLAM2算法进行对比实验. 实验结果表明,所提算法不仅实时性好,而且提高了系统的精度. 本文算法的思路可以应用于其他的视觉SLAM系统中,为视觉SLAM的改进方向提供了新思路.
参考文献
移动机器人视觉惯性SLAM研究进展
[J]. ,DOI:10.13973/j.cnki.robot.190685 [本文引用: 1]
Progress in visual inertial SLAM for mobile robots
[J]. ,DOI:10.13973/j.cnki.robot.190685 [本文引用: 1]
Optimization-based legged odometry and sensor fusion for legged robot continuous localization
[J]. ,DOI:10.1016/j.robot.2018.10.013 [本文引用: 1]
视觉SLAM技术的进展与应用
[J]. ,DOI:10.11947/j.AGCS.2018.20170652 [本文引用: 1]
Progress and application of visual SLAM
[J]. ,DOI:10.11947/j.AGCS.2018.20170652 [本文引用: 1]
ORB-SLAM2: a versatile and accurate monocular SLAM system
[J]. ,
利用局部自适应阈值方法提取ORB-SLAM特征点
[J]. ,DOI:10.13474/j.cnki.11-2246.2021.0269 [本文引用: 1]
Feature points extraction for ORB-SLAM using local adaptive threshold method
[J]. ,DOI:10.13474/j.cnki.11-2246.2021.0269 [本文引用: 1]
Improved ORB matching algorithm based on adaptive threshold
[J]. ,
基于改进ORB特征点的LK光流算法
[J]. ,DOI:10.3969/j.issn.1004-1699.2021.01.004 [本文引用: 1]
A LK optical flow algorithm based on improved ORB feature points
[J]. ,DOI:10.3969/j.issn.1004-1699.2021.01.004 [本文引用: 1]
适用于高精度同时定位与地图构建的均衡化亚像素ORB特征提取方法
[J]. ,DOI:10.3788/OPE.20182610.2575 [本文引用: 1]
An equalization subpixel ORB feature extraction method for high precision simultaneous localization and map construction
[J]. ,DOI:10.3788/OPE.20182610.2575 [本文引用: 1]
A dynamic detection method to improve SLAM performance
[J]. ,DOI:10.1007/s11801-021-1022-5 [本文引用: 1]
Visual SLAM in dynamic environments based on object detection
[J]. ,DOI:10.1016/j.dt.2020.09.012 [本文引用: 1]
基于卷帘快门RGB-D相机的视觉惯性SLAM方法
[J]. ,DOI:10.13973/j.cnki.robot.200245 [本文引用: 1]
A visual-inertial SLAM method based on rolling shutter RGB-D cameras
[J]. ,DOI:10.13973/j.cnki.robot.200245 [本文引用: 1]
面向局部弱纹理环境的多双目视觉SLAM
[J]. ,DOI:10.13462/j.cnki.mmtamt.2022.03.028 [本文引用: 1]
Multi stereo vision SLAM for local weak texture environment
[J]. ,DOI:10.13462/j.cnki.mmtamt.2022.03.028 [本文引用: 1]
Passive initialization method based on motion characteristics for monocular SLAM
[J]. ,
Research on image feature matching algorithm based on feature optical flow and corner feature
[J]. ,
Binocular vision object positioning method for robots based on coarse-fine stereo matching
[J]. ,DOI:10.1007/s11633-020-1226-3 [本文引用: 1]
Predictive driving in an unstructured scenario using the bundle adjustment algorithm
[J]. ,DOI:10.1109/TCST.2020.2977306 [本文引用: 1]
Associating uncertainty with three-dimensional poses for use in estimation problems
[J]. ,
General hand–eye calibration based on reprojection error minimization
[J]. ,DOI:10.1109/LRA.2019.2893612 [本文引用: 1]
The unidirectional edge method: a new approach for solving point enclosure problem for arbitrary polygon
[J]. ,
Convex polygon maximization-based hyperspectral endmember extraction algorithm
[J]. ,
/
〈 | 〉 |