视觉里程计(visual odometer, VO)利用单个或多个相机获取的图像流来估计相机的位姿参数[1],进而推算相机的运动轨迹。目前,VO广泛应用于智能汽车、移动机器人、无人机等智能体,是智能体实现自主定位导航的一个重要方法。
根据利用的图像信息不同,可分为直接法和特征法视觉里程计。直接法[2-3]利用图像或某个子区域中所有像素的灰度信息计算相机的运动,基于帧间像素灰度不变假设,这一假设在光照改变时容易遭到破坏。特征法匹配跟踪连续图像序列中的一些显著特征,依据特征信息在帧间的位置变化来估计位姿。相对而言,使用特征法的VO系统运行稳定,计算成本低,对光照、图像噪声等不敏感。特征法VO[4-6]大多选取点作为特征进行位姿估计,典型的算法有ORB-SLAM2[5]和SOFT2[6]。ORB-SLAM2是著名的开源系统,提取ORB(oriented FAST and rotated BRIEF)点特征进行帧间匹配,由跟踪、建图及回环检测三个并行线程组成;SOFT2使用类角点作为点特征,分开求解相机旋转和平移参数,在KITTI算法排行榜中靠前。
然而,在一些弱纹理场景中,如图1所示,图像中的点特征并不丰富,存在无法提取到足够多的点特征,或者点特征分布不均的情况,这就会导致系统性能的下降乃至失效。另外,线是点的集合,相对于离散的点,帧间线特征的位置变化更具有显著性,有利于提高特征检测跟踪的鲁棒性。因此,一些基于线特征的VO系统被提出[7-9]。文献[7]率先提出在扩展卡尔曼滤波视觉定位与地图构建系统中使用线特征,他们采用了一种假设-检验的方法检测直线。文献[9]中将迭代最近点(ICP)算法调整应用于线特征中,在非线性优化过程中考虑一对多的线段匹配,提出迭代最近多条线(ICML)视觉里程计方法。该方法针对高速运动的视频序列,在相机旋转度较小时可以得到精度良好的位姿估计值。但是单纯使用线特征有其局限性,尤其在纹理度较高的场景中,检测到的线段数量减少或质量减弱时,单纯使用线特征的算法精度下降。文献[10]提出采用点线组合特征可以给算法提供更好的几何约束,有效提高系统鲁棒性,他们从RGB-D图像中提取3D点和线段,使用最大似然估计计算相机位姿。文献[11]同样将点线特征结合,通过计算线段端点的亚像素视差进行线特征匹配。文献[12]采用点线组合特征建立重投影误差模型,并且根据点线特征的检测误差协方差矩阵对点线特征的重投影误差加权,通过非线性最小化此重投影误差来估计相机位姿。文献[13]在ORB-SLAM2的基础上增加线特征,提出基于线的地图初始化方法,在帧间旋转幅度较小的假设条件下,根据连续3帧图像中的5条线间的对应关系估计相机位姿。
|
图 1 弱纹理场景 Figure 1 The low-textured scene |
本文采用点线结合作为特征,提出了一种基于点线特征融合的立体视觉里程计算法,在算法设计上有如下创新。1)构建新颖的点线重投影误差模型作为目标函数,模型中,使用Huber核函数减小误匹配特征对优化过程的影响。使用列文伯格-马夸尔特法求解所构建的点线误差模型,得到旋转矩阵和平移向量,再利用球形线性插值技术对旋转参数进行进一步优化。2)在特征的提取与匹配阶段,对点特征施加环形匹配和Bucketing技术,对线特征施加外观几何约束及环形匹配,有效提高特征匹配的精度。进行匹配的时候施加恒速约束缩小搜索范围,匹配质量的提高增加了内点的比例,从而减少位姿估计时的迭代次数,有效提高了运行速度,实现了鲁棒性与实时性间的平衡。3)在公共数据集KITTI和EuRoC中进行实验验证,证明了本文算法在多种场景中的鲁棒性能,相较于其他点线特征的VO以及具有代表性的点特征VO,本文算法在精度方面有所提升。
1 方法总体框架图2为本文所提基于点线特征融合的立体视觉里程计算法框图,分为特征提取和运动估计两个部分。系统输入为
|
图 2 方法总体框图 Figure 2 The overall framework of the method |
首先对获取的第
选用ORB算子[14]检测点特征。对检测到的点作环形匹配,匹配的时候采用BRIEF描述子在一定的搜索范围内进行,过程如图3所示。在左右帧与前后帧间根据
|
图 3 环形匹配与恒速约束 Figure 3 Correspondence matching between left-right and consecutive images with a loop process (yellow part indicates the search area) |
为了缩小特征匹配时的搜索范围以提高匹配速度,提出恒速约束模型。在相机帧率较高时其帧间运动变化较小,相机运动具有平滑性。假设相机在帧间匀速运动,通过重投影可以预测匹配点的粗略位置,进而以预测位置为中心进行匹配搜索。记空间点
| ${{\boldsymbol{p}}^{k - {\rm{pre}}}} = {\boldsymbol{K}}({\boldsymbol{T}}_{k - 2}^{k - 1} \cdot {{\boldsymbol{p}}^{k - 1}}),$ | (1) |
式中:
此外,采用Bucketing技术[6]将图像划分为
选用LSD算子[15]提取线特征,可在线性时间内得到亚像素级精度的检测结果。对提取到的LSD线特征计算LBD描述子[16]并进行匹配,同时舍弃具有不同长度及方向的线特征对,确保得到最佳匹配对,这可以有效提高线特征的匹配精度。
为了进一步提高线特征匹配的精度,采用线特征环形匹配。对于
对空间某线段
| ${\boldsymbol{L}} = \left[ {\begin{array}{*{20}{c}} {{{\tilde {\boldsymbol{L}}}_1} \times {{\tilde {\boldsymbol{L}}}_2}} \\ {{r_2}{{\tilde {\boldsymbol{L}}}_1} - {r_1}{{\tilde {\boldsymbol{L}}}_2}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\boldsymbol{n}} \\ {\boldsymbol{v}} \end{array}} \right]$ | (2) |
式中:
将
| $\begin{split} & {\boldsymbol{l}} = {{\boldsymbol{K}}_l}{\left[ {{\boldsymbol{QL}}} \right]_{1:3}} = \left[ {\begin{array}{*{20}{c}} f&0&0 \\ 0&f&0 \\ { - f{c_x}}&{f{c_y}}&{{f^2}} \end{array}} \right] \\ & {\left[ {\left[ {\begin{array}{*{20}{c}} {\boldsymbol{R}}&{{{\left[ {\boldsymbol{t}} \right]}_ \times }{\boldsymbol{R}}} \\ {{0_{3 \times 3}}}&{\boldsymbol{R}} \end{array}} \right]{\boldsymbol{L}}} \right]_{1:3}} = \left[ {\begin{array}{*{20}{c}} {{l_1}} \\ {{l_2}} \\ {{l_3}} \end{array}} \right] \end{split}$ | (3) |
式中:
如图4所示,记空间某线段
| ${{\boldsymbol{E}}_L} = d\left( {{{\boldsymbol{l}}'},{\boldsymbol{l}}} \right) = \left[ {\frac{{{\boldsymbol{l}}_{{{\rm{s}}'}}^{\rm{T}}{\boldsymbol{l}}}}{{\sqrt {{{{l}}_1}^2 + {{{l}}_2}^2} }},\frac{{{\boldsymbol{l}}_{{{\rm{e}}'}}^{\rm{T}}{\boldsymbol{l}}}}{{\sqrt {{l_1}^2 + {l_2}^2} }}} \right]$ | (4) |
式中:
|
图 4 线特征重投影误差模型 Figure 4 The re-projection error model of line features |
设第
| ${{\boldsymbol{E}}_{{p_{k,i}}}} = {\boldsymbol{p}}_i' - {\boldsymbol{K}}\left( {{\boldsymbol{T}}_{k - 1}^k{{\boldsymbol{P}}_i}} \right) = {\boldsymbol{p}}_i' - {\boldsymbol{K}}\left( {{\boldsymbol{R}}_{k - 1}^k{{\boldsymbol{P}}_i} + {\boldsymbol{t}}_{k - 1}^k} \right)$ | (5) |
| $\begin{split} &{{\boldsymbol{E}}_{{L_{k,j}}}} = d\left( {{\boldsymbol{l}}_j',{{\boldsymbol{K}}_l}{{\left[ {{\boldsymbol{Q}}_{k - 1}^k{{\boldsymbol{L}}_j}} \right]}_{1:3}}} \right) =\\ &d\left( {{\boldsymbol{l}}_j',{{\boldsymbol{K}}_l}{{\left[ {\left[ {\begin{array}{*{20}{c}} {{\boldsymbol{R}}_{k - 1}^k}&{{{\left[ {{\boldsymbol{t}}_{k - 1}^k} \right]}_ \times }{\boldsymbol{R}}_{k - 1}^k} \\ {{0_{3 \times 3}}}&{{\boldsymbol{R}}_{k - 1}^k} \end{array}} \right]{{\boldsymbol{L}}_j}} \right]}_{1:3}}} \right) \end{split}$ | (6) |
式中:
构建点线误差模型时,通常直接将重投影误差的二范数平方和作为求解的目标函数。但由于匹配过程存在误匹配,这会导致在目标函数中二范数增长速度过快,此时优化求解算法会主要集中调整错误的误差项的值,进而忽略正确的误差项的影响。通过在目标函数中增加Huber核函数,可以平衡每个误差项对优化过程的影响。因此,构建点线重投影误差模型如下:
| $\begin{split} &{\boldsymbol{T}}_{k - 1}^k =\arg \mathop {\min }\limits_{{\boldsymbol{R}}_{k - 1}^k,{\boldsymbol{t}}_{k - 1}^k} \left\{ {\sum\limits_{k,i} {{H_p}\left( {{{\boldsymbol{E}}_{{p_{k,i}}}}^{\rm{T}}{{\boldsymbol{\varOmega}} _{{p_{k,i}}}}{{\boldsymbol{E}}_{{p_{k,i}}}}} \right)} +}\right. \\ \\ &\left.{\sum\limits_{k,j} {{H_l}\left( {{{\boldsymbol{E}}_{{L_{k,i}}}}^{\rm{T}}{{\boldsymbol{\varOmega}} _{{l_{k,i}}}}{{\boldsymbol{E}}_{{L_{k,j}}}}} \right)} } \right\} \end{split}$ | (7) |
式中:
| $H\left( e \right) = \left\{ {\begin{array}{l} {0.5{e^2}\qquad \qquad \!\! \left| e \right| \leqslant \delta } \\ {\delta \left( {\left| e \right| - 0.5\delta } \right)\quad \; {\rm{else}}} \end{array}} \right.$ | (8) |
当误差
利用列文伯格-马夸尔特(LM)算法求解式(7)得到第
| ${\boldsymbol{R}}_{k - 1}^{{k'}} = {\left( {{\boldsymbol{R}}_{k - 2}^{k - 1}} \right)^{ - 1}}{\boldsymbol{R}}_{k - 2}^k$ | (9) |
将这两种通过不同计算方法得到的第
| ${\boldsymbol{R}}_{k - 1}^k = {\boldsymbol{R}}_{k - 1}^{{k_*}}{\left( {{{\left( {{\boldsymbol{R}}_{k - 1}^{{k_*}}} \right)}^{ - 1}}{\boldsymbol{R}}_{k - 1}^{{k'}}} \right)^{\frac{1}{2}}}$ | (10) |
通过这样的处理,可以达到对旋转矩阵估计结果进行平滑处理的效果,消除粗大误差,得到优化的旋转矩阵
选取公共数据集KITTI和EuRoC对本文所提算法进行精度、鲁棒性的实验论证。采用业内普遍使用的两种评判标准来评估算法的准确性:1)平均旋转误差(average relative rotational Error, ARE)和平均平移误差(Average Relative Translation Error, ATE),如文献[18]所定义;2)绝对轨迹误差(Absolute Trajectory Root-Mean-Square Error, AT-RMSE),如文献[19]所定义。
实验采用Intel(R)Core(TM)i5-7200U(2.5 GHz)4核处理器。算法在Ubuntu16.04系统中实现,基于C++和OpenCV库编写。
5.1 KITTI数据集KITTI数据集[18]共包含22个立体图像序列,序列00~10给定了真实运动位姿,包含市区、乡村和高速公路等实际运动场景,行驶距离从500 m至5000 m不等,帧率为10 frame/s,图像大小为1241 pixel × 376 pixel。
使用KITTI数据集的00-10序列对本文所提算法进行测试,并与ORB-SLAM2[5]、SOFT2[6]和PLSVO[12]进行精度及实时性的对比。ORB-SLAM2是著名的开源系统,采用ORB点特征;SOFT2在KITTI排行榜上基于视觉方法的里程计中排行第一,选用类角点作为特征;PLSVO是Ruben等人提出的一个结合概率方法与点线特征的视觉里程计系统。实验分别对00-10序列进行5次测试,取平均值作为最终结果。
图5为KITTI下的点线特征提取结果。黄色小点表示提取到的ORB点特征,红色线段为提取到的LSD线特征。图6展示了这四种算法对00-10序列测试得到的ARE、ATE及AT-RMSE的对比结果。与PLSVO相比,本文算法在所有序列上表现更佳,误差值更小。与ORB-SLAM2和SOFT2相比,本文算法总体上与它们相近,在多个序列表现更佳,如序列00和序列06,这些表现效果更佳的序列多为城镇场景,富含结构化特征明显的建筑物,存在较多易于提取的线特征,此种场景下,更为明显地体现了线特征的优势。
|
图 5 KITTI数据集点线特征提取结果 Figure 5 Point and line feature extracting results of KITTI |
|
图 6 KITTI 00~10序列的ARE、ATE与AT-RMSE Figure 6 The ARE, ATE and AT-RMSE of KITTI 00-10 |
表1展示了这四种算法对KITTI 00~10序列综合评估的ARE和ATE,本文算法的ARE为
|
|
表 1 KITTI 00~10序列的综合评估ARE和ATE对比结果 Table 1 The comparison of ARE and ATE on KITTI 00-10 |
|
图 7 KITTI 00与06序列的轨迹重构图 Figure 7 Trajectory reconstruction of KITTI sequences 00 and 06 |
表2对比了四个系统的每帧图像的平均消耗时间。可以看到,本文算法略慢于ORB-SLAM2和SOFT2,快于PLSVO。这是因为我们同时提取点线特征,而ORB-SLAM2和SOFT2仅需提取点特征,所以本文算法略慢是合理的。但是,在特征提取与匹配阶段,施加了恒速约束限制搜索范围,施加外观几何约束和环形匹配约束提高匹配精度,有效提高了内点比例,减少优化过程中的迭代次数,因此我们的算法速度快于PLSVO。
|
|
表 2 平均每帧时耗对比 Table 2 The comparison result of consuming time per frame |
EuRoC数据集[20]是由微小型飞行器(Micro Air Vehicle, MAV)在三个不同场景中采集得到的11个图像序列。根据MAV的速度、场景光照条件及纹理信息,将这11个序列分为三个难度等级,即容易、中等和困难。表3为本文算法在EuRoC数据集所有序列上的绝对轨迹误差值,并与ORB-SLAM2和SOFT2进行对比。由于PLSVO文献作者并未进行EuRoC数据集下的实验,所以这里未与之进行比对。从结果可以看出,本文所提点线误差模型在此数据集下具有良好的表现,误差控制在厘米级别。EuRoC数据集都为室内场景,室内人造场景下,存在更多易于提取的线特征,其中序列V1_01_easy、V1_03_difficult中线特征丰富,点特征数量较少且存在分布不均的情况,场景中纹理信息较弱,综合点线特征的系统比ORB-SLAM2和SOFT2表现更佳。图8为EuRoC数据集中图像的点线特征提取结果。图9为V1_01_easy和V1_03_difficult的轨迹构建以及与真实轨迹的对比。
|
|
表 3 EuRoC数据集11个序列的绝对轨迹误差(AT-RMSE)对比结果 Table 3 Comparison of AT-RMSE on EuRoC dataset |
|
图 8 EuRoC数据集点线特征提取结果 Figure 8 Point and line feature extracting results of EuRoC |
|
图 9 EuRoC V1_01_easy与V1_03_difficult的轨迹重构图 Figure 9 Trajectory reconstruction of EuRoC V1_01_easy and V1_03_difficult |
本文提出一种可在多种场景下稳定工作、基于点线特征融合的立体视觉里程计方法。在特征提取与匹配阶段,采用ORB算子提取点特征,采用LSD算子提取线特征。对ORB特征匹配采用环形匹配和Bucketing技术;对LSD线特征施加外观几何约束及环形匹配策略提高匹配的精度;匹配的时候施加恒速约束缩小搜索范围,提高匹配速度。在位姿估计阶段,提出了一种新颖的融合点线特征的点线重投影误差模型,使用Huber核函数减小误匹配特征对优化过程的影响,由此模型结合球形线性插值得到相机位姿参数。采用公共数据集KITTI及EuRoC对算法进行实验验证,并与代表性的点特征VO以及点线特征VO进行比较。实验结果证明我们的算法性能表现良好,可在多种场景下应用。
| [1] | 慈文彦, 黄影平, 胡兴. 视觉里程计算法研究综述[J]. 计算机应用研究, 2019, 36(9): 2561–2568. |
| [2] | 林志林, 张国良, 姚二亮, 等. 动态场景下基于运动物体检测的立体视觉里程计[J]. 光学学报, 2017, 37(11): 1115001. |
| [3] | LABBÉ M, MICHAUD F. RTAB-Map as an open-source lidar and visual simultaneous localization and mapping library for large-scale and long-term online operation[J]. Journal of Field Robotics, 2019, 36(2): 416–446. DOI:10.1002/rob.21831 |
| [4] | 张易, 项志宇, 陈舒雅, 等. 弱纹理环境下视觉里程计优化算法研究[J]. 光学学报, 2018, 38(6): 0615001. |
| [5] | MUR-ARTAL R, TARDÓS 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 |
| [6] | CVIŠIĆ I, ĆESIĆ J, MARKOVIĆ I, et al. SOFT-SLAM: computationally efficient stereo visual SLAM for autonomous unmanned aerial vehicles[J]. Journal of Field Robotics, 2018, 35(4): 578–595. DOI:10.1002/rob.21762 |
| [7] | SMITH P, REID I, DAVISON A J. Real-time monocular SLAM with straight lines[C]//Proceedings of the British Machine Vision Conference. Edinburgh: BMVA Press, 2006. |
| [8] | ZHANG G X, LEE J H, LIM J, et al. Building a 3-D line-based map using stereo SLAM[J]. IEEE Transactions on Robotics, 2015, 31(6): 1364–1377. DOI:10.1109/TRO.2015.2489498 |
| [9] | WITT J, WELTIN U. Robust stereo visual odometry using iterative closest multiple lines[C]//Proceedings of 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems. Tokyo: IEEE, 2013: 4164 − 4171. |
| [10] | LU Y, SONG D Z. Robust RGB-D odometry using point and line features[C]//Proceedings of 2015 IEEE International Conference on Computer Vision. Santiago: IEEE, 2015: 3934 − 3942. |
| [11] | KOLETSCHKA T, PUIG L, DANIILIDIS L. MEVO: multi-environment stereo visual odometry[C]//Proceedings of 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems. Chicago: IEEE, 2014: 4981 − 4988. |
| [12] | GOMEZ-OJEDA R, GONZALEZ-JIMENEZ J. Robust stereo visual odometry through a probabilistic combination of points and line segments[C]//Proceedings of 2016 IEEE International Conference on Robotics and Automation. Stockholm: IEEE, 2016: 2521 − 2526. |
| [13] | PUMAROLA A, VAKHITOV A, AGUDO A, et al. PL-SLAM: real-time monocular visual SLAM with points and lines[C]//Proceedings of 2017 IEEE International Conference on Robotics and Automation. Singapore: IEEE, 2017: 4503 − 4508. |
| [14] | RUBLEE E, RABAUD V, KONOLIGE K, et al. ORB: an efficient alternative to SIFT or SURF[C]//Proceedings of 2011 International Conference on Computer Vision. Barcelona: IEEE, 2011: 2564 − 2571. |
| [15] | VON GIOI R G, JAKUBOWICZ J, MOREL J M, et al. LSD: a fast line segment detector with a false detection control[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(4): 722–732. DOI:10.1109/TPAMI.2008.300 |
| [16] | ZHANG L L, KOCH R. An efficient and robust line segment matching approach based on LBD descriptor and pairwise geometric consistency[J]. Journal of Visual Communication and Image Representation, 2013, 24(7): 794–805. DOI:10.1016/j.jvcir.2013.05.006 |
| [17] | 刘世蔷, 黄影平, 胡兴, 等. 基于自适应外点剔除与解耦算法的视觉里程计[J]. 信息与控制, 2019, 48(2): 172–178. |
| [18] | GEIGER A, LENZ P, URTASUN R. Are we ready for autonomous driving? The KITTI vision benchmark suite[C]//Proceedings of 2012 IEEE Conference on Computer Vision and Pattern Recognition. Providence: IEEE, 2012: 3354 − 3361. |
| [19] | STURM J, ENGELHARD N, ENDRES F, et al. A benchmark for the evaluation of RGB-D SLAM systems[C]//Proceedings of 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems. Vilamoura-Algarve: IEEE, 2012: 573 − 580. |
| [20] | BURRI M, NIKOLIC J, GOHL P, et al. The EuRoC micro aerial vehicle datasets[J]. The International Journal of Robotics Research, 2016, 35(10): 1157–1163. DOI:10.1177/0278364915620033 |
2021, Vol. 43
Issue (4): 19-27


