浙江大学学报(工学版), 2026, 60(2): 322-331 doi: 10.3785/j.issn.1008-973X.2026.02.010

计算机技术与控制工程

低纹理环境下融合点线面特征的双目视觉SLAM算法

汪泽,, 饶蕾,, 范光宇, 陈年生, 程松林, 杨定裕, 姜楚乔

1. 上海电机学院 电子信息学院,上海 201306

2. 浙江大学 区块链与数据安全全国重点实验室,浙江 杭州 310058

Stereo visual SLAM algorithm for fusing point-line-plane features in low texture environments

WANG Ze,, RAO Lei,, FAN Guangyu, CHEN Niansheng, CHENG Songlin, YANG Dingyu, JIANG Chuqiao

1. School of Electronic Information Engineering, Shanghai Dianji University, Shanghai 201306, China

2. State Key Laboratory of Blockchain and Data Security, Zhejiang University, Hangzhou 310058, China

通讯作者: 饶蕾,女,副教授. orcid.org/0000-0001-7399-3224. E-mail:raol@sdju.edu.cn

收稿日期: 2025-02-15  

基金资助: 国家自然科学基金资助项目(61702320);上海市晨光计划(15CG62).

Received: 2025-02-15  

Fund supported: 国家自然科学基金资助项目(61702320);上海市晨光计划(15CG62).

作者简介 About authors

汪泽(1997—),男,硕士生,从事视觉SLAM算法研究.orcid.org/0009-0007-2603-3803.E-mail:949795713@qq.com , E-mail:949795713@qq.com

摘要

针对机器人在低纹理场景下基于点特征的ORB-SLAM2存在定位精度低、轨迹漂移误差较大的问题,提出融合点线面特征的双目视觉SLAM算法. 在ORB-SLAM2中设计并引入改进的EDLines线特征提取算法,通过短线抑制和相似直线合并策略,降低计算时间并提高线特征提取的质量. 提出基于相交直线的平面特征提取方法,基于所提取面特征的几何约束优化位姿估计,减少重投影误差. 提出点线面特征的联合优化方法,融合多种特征的几何关系,减少由单一特征带来的误差累积. 在KITTI、EuRoC和UMA-VI数据集下测试所提算法的有效性. 实验结果表明,相较于ORB-SLAM2、点线特征SLAM以及点面特征SLAM算法,所提算法在定位精度与鲁棒性方面更优.

关键词: 低纹理环境 ; 视觉SLAM ; 线特征 ; 面特征 ; 联合优化

Abstract

To address the issues of low positioning accuracy and significant trajectory drift errors in ORB-SLAM2 based on point features under low-texture scenes, a stereo visual SLAM algorithm integrating point, line, and plane features was proposed. An improved EDLines line feature extraction algorithm was designed and introduced into ORB-SLAM2. By employing short-line suppression and similar-line merging strategies, computational time was reduced while enhancing the quality of line feature extraction. A plane features extraction method based on intersecting lines was proposed. Geometric constraints derived from extracted plane features were used to optimize pose estimation, and reprojection errors were reduced. A joint optimization method for point, line, and plane features was introduced, integrating geometric relationships across multiple features to mitigate cumulative errors from single-feature reliance. The proposed algorithm’s effectiveness was validated on KITTI, EuRoC, and UMA-VI datasets. Experimental results demonstrate that compared to ORB-SLAM2, point-line feature-based SLAM, and point-plane feature-based SLAM algorithms, the proposed method achieves superior positioning accuracy and robustness.

Keywords: low-texture environment ; visual SLAM ; line features ; plane features ; joint optimization

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

本文引用格式

汪泽, 饶蕾, 范光宇, 陈年生, 程松林, 杨定裕, 姜楚乔. 低纹理环境下融合点线面特征的双目视觉SLAM算法. 浙江大学学报(工学版)[J], 2026, 60(2): 322-331 doi:10.3785/j.issn.1008-973X.2026.02.010

WANG Ze, RAO Lei, FAN Guangyu, CHEN Niansheng, CHENG Songlin, YANG Dingyu, JIANG Chuqiao. Stereo visual SLAM algorithm for fusing point-line-plane features in low texture environments. Journal of Zhejiang University(Engineering Science)[J], 2026, 60(2): 322-331 doi:10.3785/j.issn.1008-973X.2026.02.010

随着机器人导航、无人驾驶汽车和增强现实等人工智能技术的兴起,同步定位与建图(simultaneous localization and mapping,SLAM)技术得到迅速发展[1]. 在众多SLAM方法中,视觉SLAM因其能够通过图像获取丰富的环境信息而成为研究重点. 通过摄像头获取环境中的大量特征信息,视觉SLAM能够精准地估计相机的位姿,实现机器人的定位与导航.

根据所采集的图像特征不同,视觉SLAM可以分为直接法和特征点法[2]. 直接法如DSO[3],依赖灰度不变假设,对光线的影响较为敏感. 基于特征点的方法,如ORB-SLAM[4-6],能够在纹理丰富的场景下提取具有尺度不变性和旋转不变性的特征点,实现有效的位姿估计. 在低纹理环境(如白墙、走廊、地板等场景)中,基于点特征的视觉SLAM通常只能提取较少的点特征,容易出现定位丢失的情况[7]. 除了点特征提取之外,相关研究还探索了通过提取线段和平面[8]特征来提高视觉SLAM性能的方法. 与点特征相比,线特征和面特征的几何信息更丰富,能够更好地应对环境纹理和光照的变化,提高视觉SLAM在低纹理环境下的鲁棒性. Pumarola等[9]提出基于点线特征融合的PL-SLAM算法,该方法结合ORB特征点和LSD[10]线特征,使用点特征和线特征进行融合的SLAM系统,在相机位姿局部优化时考虑点、线2种特征约束,提高了算法的精度和鲁棒性. 由于线特征数量的增加以及部分短线特征的不稳定性,线特征提取和匹配的计算时间增加,导致PL-SLAM系统的实时性较差. Qian等[11]在PL-SLAM的基础上提出Line-SLAM算法,该方法融入点线词袋(BoPLW)回环检测模块,存在过度提取线特征以及线特征质量不高的问题,导致特征匹配误差增加,并且计算时间显著提高. 平面特征通常提取自点云[12],点云从RGB-D相机[13]或激光雷达传感器[14]中获取. 由于3D信息有限,单目相机的平面特征提取非常困难. 相比之下,双目相机可以通过立体匹配获得点云提取平面特征,但过程耗时较长[15]. 黄宁生等[16]提出基于平面约束的RGB-D SLAM系统,它在关键帧中提取平面特征,通过构建平面特征之间的约束关系来优化相机位姿. Zhang等[17]提出SP-SLAM算法,该方法同时提取平面和平面边缘,以增加平面观测和约束. 以上方法仅对单一的平面特征进行优化,未进行点特征与面特征的联合优化,导致无法充分利用点特征和面特征之间的几何约束. Wang等[18]提出基于点面联合约束的RS-SLAM算法,通过设计具有严格离群点剔除机制的新型平面提取算法,结合Sobel算子优化支持点分布,实现鲁棒的平面特征检测. Yan等[19]提出基于点线面特征自适应融合的PLPF-VSLAM系统,通过多特征耦合优化框架与动态融合策略,在纹理变化场景中自适应选择最优特征组合进行位姿估计. Shu等[20]提出PLP-SLAM系统,紧密地结合语义信息和几何特征(点线面特征)以提高前端位姿跟踪和后端地图优化.

为了提高在低纹理环境下视觉SLAM的定位精度,本研究提出融合点线面特征的双目视觉SLAM算法. 1)考虑到高质量的线特征能改善SLAM系统在低纹理环境中的性能,对EDLines[21]线特征提取算法进行改进,通过引入短线抑制和相似直线合并策略提高线段提取的质量. 2)提出基于相交直线的平面特征提取方法,通过筛选可靠的线特征以增强平面计算的稳定性,有效提取平面特征. 3)提出点线面特征的联合优化方法,通过融合点线面特征的几何约束,提高位姿估计的准确性,从而提高视觉机器人在低纹理环境下定位与建图的精度和鲁棒性.

1. 算法框架

融合点线面特征的双目视觉SLAM算法在ORB-SLAM2结构的基础上增加了线、面特征信息,使线特征和面特征在特征跟踪、局部地图构建中发挥作用. 如图1所示,该算法框架主要由帧处理线程、跟踪线程和局部建图线程3个部分组成. 1)在帧处理线程中,利用ORB算法从左右目图像中提取点特征,使用特征描述子对提取的点特征进行匹配. 与此同时,使用改进的EDLines算法提取线特征,获取场景中的显著直线信息. 为了进一步丰富几何信息,通过对提取的线特征进行筛选,识别出相交的线对,进而构建平面特征. 线特征与平面特征为系统提供了更加全面的几何约束,有效地解决了低纹理环境中点特征稀缺的问题. 同时,线面特征的结合增强了特征匹配过程中几何约束的稳定性,确保了特征跟踪的稳定性. 2)跟踪线程的主要任务是特征匹配、关键帧跟踪、局部地图跟踪以及关键帧判定,以确保系统能够稳定、准确地估计相机位姿. 特征匹配通过对图像中的点线面特征进行匹配来获得相机位姿的初步估计. 关键帧跟踪将当前帧与之前的关键帧进行比对,以优化相机位姿的连续性,并通过局部地图中的已知特征进一步调整位姿估计. 在局部地图跟踪阶段,系统通过与局部地图中存储的点线面特征进行匹配来提升跟踪过程的鲁棒性. 关键帧判定基于当前帧与前一帧之间的位姿变化和跟踪质量,决定何时插入新的关键帧,以保证系统在长时间运行中的精度和效率. 3)在局部建图线程中,点线面特征被有效地融合并存储在局部地图中. 局部地图由关键帧及其对应的地图点线面特征组成. 该线程的主要任务是维护局部地图的信息,包括关键帧的插入、删除及其特征的管理. 通过光束平差法,结合重投影误差进行局部位姿优化,实现更精确的姿态估计. 为了避免地图冗余,系统根据新旧关键帧之间的相似性,决定是否删除重复率过高的关键帧. 最终,优化得到的局部地图特征会返回跟踪线程,支持实时的相机位姿更新以及对新图像帧的重新跟踪.

图 1

图 1   融合点线面特征的双目视觉SLAM算法框架

Fig.1   Framework of stereo visual SLAM algorithm for fusing point-line-plane features


2. 算法原理

2.1. 基于改进的EDLines线特征提取算法

EDLines线段提取算法是无参数的线段提取算法,因其在提取过程中具有较低的计算耗时和误提取率,广泛应用于线段检测. EDLines算法在一些特定场景下存在局限性. 1)该算法提取过程中常常产生大量无效线特征,尤其是较短线段,这不仅增加了后续特征匹配和提取的计算成本,还可能影响系统的整体效率. 2)低质量的线特征缺乏足够的几何信息(如短小或噪声干扰的线段难以稳定跟踪),导致在动态场景中的位姿估计误差增大. 直接将EDLines算法应用于视觉SLAM系统中,会面临效率低下和准确性不足的问题. 本研究提出改进的EDLines线特征提取算法. 该算法通过抑制短线段的产生来有效减少无效线特征的数量,从而提升线特征的整体质量. 具体而言,抑制短线段的产生通过设定线段长度阈值实现. 当提取的线段长度小于该阈值时,这些线段会被舍弃,避免了短线段对特征匹配的干扰. 此外,通过判断相似线段是否满足合并条件,进行线段合并,减少线特征的数量,加速匹配过程,降低定位过程中的漂移误差.

图2所示为线段合并原理图. 假设LABLCD是需要合并的2条线段. 判断它们是否可以合并的3个条件如下. 1)在图像坐标系下,LABLCD的夹角小于设定的角度阈值θ(实验中设置θ=5°):

图 2

图 2   相似线段合并

Fig.2   Merging of similar line segments


$ \arccos \frac{\left| {\boldsymbol{L}}_{\text{}AB}\cdot {\boldsymbol{L}}_{\text{}CD}\right| }{\left|\left|{\boldsymbol{L}}_{\text{}AB}\right|\right|\cdot \left|\left|{\boldsymbol{L}}_{\text{}CD}\right|\right|}\leqslant \theta . $

2)LAB的中点到LCD的距离小于设定的垂直距离阈值LEF(实验中设置LEF=10 pixel):

$ \text{mid }({\boldsymbol{L}}_{AB},{\boldsymbol{L}}_{CD})\leqslant {\boldsymbol{L}}_{EF}. $

3)LABLCD端点之间的距离小于设定的端点距离阈值LAD(实验中设置LAD=40 pixel):

$ {d}\;({\boldsymbol{L}}_{AB},{\boldsymbol{L}}_{CD})\leqslant {\boldsymbol{L}}_{AD}. $

式中:mid(·)为线段中点到另一条线段的垂直距离,d(·)为两线段端点的最短距离. 基于改进的EDLines线特征提取算法如算法1所示.

算法1 基于改进的EDLines线特征提取算法

输入:图像I,阈值T

输出:线特征集合

1.对输入图像应用高斯平滑,降低噪声影响.

2.在图像的每个像素处利用Sobel算子计算梯度幅度和方向.

3.细化边缘点并通过梯度方向进行边缘跟踪,生成初步边缘.

4.对每条边缘线段进行直线拟合,将长的边缘线段分割为多个直线段.

5.输出满足误检数量小于1的线段.

6.遍历图像中的每个直线段:

a.计算每条线段的长度.

b.若直线段的长度大于T(实验中设置为15 pixel):

c.若直线段满足式(1)~(3),则与相邻的直线段合并继续循环,否则丢弃该线段.

7.返回符合条件的直线段.

对比改进EDLines线特征提取算法与原始EDLines算法的线特征提取效果,结果如图3所示. 可以看出,原始EDLines算法提取的线段数量较多,大部分线段较短且缺乏明显的梯度,导致算法几何信息较为贫乏,难以提供有效的几何约束. 采用改进的EDLines算法后,提取的线段质量显著提高,主要集中为明显的水平和竖直线段.实验结果表明,改进的EDLines算法在线特征提取效率与匹配精度上均有显著提升. 具体而言,原始算法提取783条线特征,正确匹配436条,用时35 ms;改进后算法仅提取107条线特征,即实现105条正确匹配,用时3 ms. 由此可见,改进方法在特征数量减少约86%的情况下,匹配正确率从约55.7%提升至98.1%,同时处理速度提升了约11.7倍. 尽管提取的线特征数量有所减少,但改进后的算法更加注重线段的质量,优先保留具有较长长度、直线度高、几何稳定性强的线段,这些线段为后续的位姿估计和特征跟踪过程提供了更精炼的几何信息. 线特征匹配率的提升使得估计相机位姿的约束更加准确,从而降低了匹配误差对位姿计算的影响,提高了SLAM系统的精度和鲁棒性.

图 3

图 3   不同算法的线特征提取效果对比

Fig.3   Performance comparison of line feature extraction between two algorithms


2.2. 基于相交直线的平面特征提取方法

虽然系统中已经加入线特征,这些特征能够在一定程度上弥补低纹理环境中点特征的稀缺性,但是在某些场景下,尤其是在具有大面积平面或几何结构较简单的环境中,线特征的数量和分布可能不足以提供足够的几何约束. 为了进一步提高系统的鲁棒性和定位精度,本研究提出基于相交直线的平面特征提取方法,利用相交直线构成的平面特征,进一步增强系统的几何约束能力. 从双目相机的左右图像中提取线段,通过匹配线段及其端点,计算线段的方向向量nl和端点$ ({\boldsymbol{p}}_{{\mathrm{s}}},{\boldsymbol{p}}_{{\mathrm{e}}}) $的三维位置p,之后检查线段的位置以找到相交线. 最后计算得到平面特征$ \boldsymbol{\pi }={({{\boldsymbol{n}}^{{\mathrm{T}} }},d)}^{{\mathrm{T}} } $,其中以$ \boldsymbol{n}={[{{n}_{x}},{{n}_{y}},{{n}_{z}}]}^{{\mathrm{T}}} $为平面方向的单位法向量,d为世界坐标系下的原点到平面的距离.

双目相机的帧图像由左图像IL和右图像IR组成. 利用改进的EDLines算法从ILIR中提取线段,并通过LBD描述符[22]进行匹配. 在某帧双目图像中,线条匹配足够精确和鲁棒. 如图4所示,线段用不同的颜色绘制,匹配的线段在ILIR中颜色相同. 使用平行双目相机,左侧图像IL中每个匹配线段都可以在右侧图像IR中找到端点的对应点,匹配的端点通过横线连接. 通过端点的双目匹配,视差Δu可以计算出它们的三维位置p,直线的方向向量nl也由2个端点计算得出.

图 4

图 4   线段及端点匹配

Fig.4   Matching of line segments and endpoints


$ \Delta {u}={u}_{{\mathrm{l}}}-{u}_{{\mathrm{r}}}, $

$ z=\frac{f\cdot B}{\Delta {u}}, $

$ {{{\boldsymbol{p}}}}={\left[\frac{({u}_{{\mathrm{l}}}-{c}_{u})\cdot z}{f},\frac{({v}_{{\mathrm{l}}}-{c}_{v})\cdot z}{f},z\right]}^{{\mathrm{T}}}, $

$ {\boldsymbol{n}}_{{\mathrm{l}}}={\boldsymbol{p}}_{{\mathrm{e}}}-{\boldsymbol{p}}_{{\mathrm{s}}}. $

式中:$ {u}_{{\mathrm{l}}} $$ {u}_{{\mathrm{r}}} $分别为左图像和右图像中匹配的端点的水平像素坐标,$ {v}_{{\mathrm{l}}} $为左图像中端点的垂直像素坐标,z为端点的深度,f为相机内参焦距,B为双目相机的基线,$ ({c}_{u},{c}_{v}) $为相机的光心坐标. 在计算平面特征之前,须检查直线之间的关系. 在三维空间中,2条相交的直线位于同一平面上. 快速找到相交的直线须符合以下3个条件约束. 1)夹角约束:2条直线之间的夹角θ应大于阈值$ {\theta }_{\text{th}} $(实验中设置为15°),避免接近共线的直线对生成不稳定平面.

$ \theta =\arccos \left({\hat{\boldsymbol{n}}}_{i}\cdot {\hat{\boldsymbol{n}}}_{j}\right) > {\theta }_{\text{th}}. $

2)中点距离约束:2条直线的中点间距小于直线的长度.

$ \| {\boldsymbol{p}}_{{\mathrm{c}}}^{(1)}-{\boldsymbol{p}}_{{\mathrm{c}}}^{(2)}\| < \min\; (\mathrm{len}\;({L}_{1}),\mathrm{len}\;({L}_{2})), $

$ \text{len}\;(L)=\parallel {\boldsymbol{p}}_{{\mathrm{e}}}-{\boldsymbol{p}}_{{\mathrm{s}}}\parallel . $

3)共面性约束:2条直线的4个端点在同个平面上. 直线的中点pc由直线的端点pspe计算得到. 通过前2个条件约束,就可以找到相符合的相交直线. 由2条直线的方向向量$ {\boldsymbol{n}}_{{{\mathrm{l}}i}} $$ {\boldsymbol{n}}_{{{\mathrm{l}}j}} $的叉积来计算平面的法向量,计算式为

$ {\boldsymbol{n}}_{\text{}\pi }={\boldsymbol{n}}_{{{\mathrm{l}}i}}\times {\boldsymbol{n}}_{{{\mathrm{l}}j}}. $

使用平面的法向量$ {\boldsymbol{n}}_{\text{}\pi } $和4个端点pkk=1,2,3,4),计算4个不同的平面系数dkdk为点$ {{\boldsymbol{p}}}_{k} $到平面的距离,计算式为

$ {d}_{k}=-{\boldsymbol{n}}_{\text{}\pi }\cdot {[{{p}_{kx}},{{p}_{ky}},{{p}_{kz}}]}^{{\mathrm{T}} }. $

平面系数的范围计算式为

$ D={\mathrm{Max}}\;({d}_{k})-{\mathrm{Min}}\;({d}_{k}). $

如果D小于阈值(实验中设置阈值为2 cm),则这2条直线满足共面性条件约束,并且可以计算出平面特征$ \boldsymbol{\pi }={[{\boldsymbol{n}_{\text{}\pi }^{\rm{T}}},{{\overline{d}}_{k}}]}^{\rm{T}} $$ {\overline{d}}_{k} $$ {d}_{k} $的算术平均数. 平面特征提取效果如图5所示.

图 5

图 5   平面特征提取

Fig.5   Plane features extraction


2.3. 点线面特征的联合优化方法

为了提高视觉SLAM系统在低纹理环境中的鲁棒性和定位精度,本研究提出点线面特征的联合优化方法,通过融合多种特征的几何关系来减少由单一特征带来的误差累积. 在SLAM系统中,若C={ci},P={pj},L={lk},Π={πm}分别为相机姿态、点特征、线特征和平面特征的集合,则优化问题可以表示为

$ \begin{split}\left\{{C}^{*},{P}^{*},\right. &\left.{L}^{*},{\varPi }^{*}\right\}=\underset{\{C,P,L,\varPi \}}{\arg \min }\sum\limits_{{c}_{i},{p}_{j}}\left|\left|e\left({c}_{i},{p}_{j}\right)\right|\right|_{{\varSigma }_{ij}}^{2}+\\& \sum\limits_{{c}_{i},{l}_{k}}\left|\left|e\left({c}_{i},{l}_{k}\right)\right|\right|_{{\varSigma }_{ik}}^{2}+\sum\limits_{{c}_{i},{\pi }_{m}}\left|\left|e\left({c}_{i},{\pi }_{m}\right)\right|\right|_{{\varSigma }_{im}}^{2}.\end{split} $

式中:C*,P*,L*,Π*分别为优化后的相机姿态、点特征、线特征和平面特征的位置,ecp)、ecl),ecπ)为相机到点、相机到线和相机到面的测量误差,$ \| {\boldsymbol{x}}\| _{{\boldsymbol{\varSigma}} }^{2} $=$ {{\boldsymbol{x}}}^{\rm{T}}{{\boldsymbol{\varSigma}} }^{-1}{\boldsymbol{x}} $为马氏距离[5]Σ为与各测量误差对应的协方差矩阵. 本研究SLAM系统使用标准的重投影误差来表示相机到点线面的测量误差. 在位姿估计过程中,将来自先前帧检测到的三维点线面投影到当前帧上,使用2个帧之间的估计位姿变换来完成该投影,通过投影这些特征可以估计它们在当前帧中的位置,通过将投影特征与在当前帧中检测到的对应特征进行比较来计算重投影误差. 在特征联合优化过程中,重投影差将被进一步最小化,以获得最佳的位姿估计. 对于点特征,相机到点的测量误差可以表示为

$ {e}_{{\mathrm{cp}}}({\boldsymbol{T}}_{{\mathrm{cw}}},{\boldsymbol{p}}_{{\mathrm{w}}})={\boldsymbol{u}}_{{\mathrm{c}}}-\rho ({\boldsymbol{T}}_{{\mathrm{cw}}}{\boldsymbol{p}}_{{\mathrm{w}}}). $

式中:TCW为从世界坐标系到相机坐标系的变换矩阵,Pw为世界坐标系中的三维点,uc为相机图像中的二维观测点,ρ为将三维点投影到图像平面的投影模型. 在优化过程中,TCW被映射到李代数$ \xi \in \text{se }(3) $中,以避免额外的约束. TCWPw对应的雅可比矩阵计算式分别为

$ \frac{\partial {e}_{{\mathrm{cp}}}}{\partial \delta \xi }=\frac{\partial {e}_{{\mathrm{cp}}}}{\partial {{\boldsymbol{P}}}^{\prime}}\dfrac{\partial {{\boldsymbol{P}}}^{\prime}}{\partial \delta \xi }=\left[\begin{matrix}\dfrac{-{f}_{x}}{z} & 0 & \dfrac{{f}_{x}X}{{Z}^{2}}\\0 & \dfrac{-{f}_{y}}{z} & \dfrac{{f}_{y}Y}{{Z}^{2}}\end{matrix}\right][{\boldsymbol{I}}-{{\boldsymbol{P}}}^{'\wedge }], $

$ \frac{\partial {e}_{{\mathrm{cp}}}}{\partial {\boldsymbol{P}}_{{\mathrm{w}}}}=\frac{\partial {e}_{{\mathrm{cp}}}}{\partial {P}^{\prime}}\frac{\partial {{\boldsymbol{P}}}^{\prime}}{\partial {\boldsymbol{P}}_{{\mathrm{w}}}}=-\left[\begin{matrix}\dfrac{{f}_{x}}{{Z}^{\prime}} & 0 & -\dfrac{{f}_{x}{X}^{\prime}}{{Z}^{\prime}{}^{2}}\\0 & \dfrac{{f}_{y}}{{Z}^{\prime}} & -\dfrac{{f}_{y}{Y}^{\prime}}{{Z}^{\prime}{}^{2}}\end{matrix}\right]\boldsymbol{R}. $

式中:$ {{\boldsymbol{P}}}^{\prime} $Pw在相机坐标系中的坐标,R为从世界坐标系到相机坐标系的旋转矩阵. 对于线特征,使用关键帧中匹配的三维线的投影线段L与它本身2个端点的距离构造相机到线段的测量误差:

$ {e}_{{\mathrm{cl}}}={\boldsymbol{L}}^{\text{T}}k{\boldsymbol{T}}_{{\mathrm{cw}}}\boldsymbol{P} $

式中:k为相机的内部参数,TCW为从世界坐标系到相机坐标系的变换矩阵,P为3D线段的端点,L为二维直线方程的参数. TCWL对应的雅可比矩阵计算式分别为

$ \begin{split}\frac{\partial {e}_{{\mathrm{cl}}}}{\partial \delta \xi }&=\frac{\partial {e}_{{\mathrm{cl}}}}{\partial {{\boldsymbol{P}}}^{\prime}_{\mathrm{L}}}\frac{\partial {{\boldsymbol{P}}}^{\prime}_{\mathrm{L}}}{\partial \delta \xi } =\\& \left[\frac{{\boldsymbol{L}}{f}_{x}}{z}, \quad \frac{{\boldsymbol{L}}{f}_{y}}{z}, \quad -\frac{{\boldsymbol{L}}ax{f}_{x}+{\boldsymbol{L}}{f}_{y}y}{{z}^{2}}\right][{\boldsymbol{1}} -{{\boldsymbol{P}}^{'}_{\mathrm{L}}}^{\wedge }],\end{split} $

$ \begin{split}& \frac{\partial {e}_{{\mathrm{cl}}}}{\partial {\boldsymbol{P}}} =\frac{\partial {e}_{{\mathrm{cl}}}}{\partial {{\boldsymbol{P}}}^{\prime}_{\mathrm{L}}}\frac{\partial {{\boldsymbol{P}}}^{\prime}_{\mathrm{L}}}{\partial {\boldsymbol{P}}}=\\&\qquad \left[\begin{array}{lll}\dfrac{{\boldsymbol{L}}{f}_{x}}{z}, & \dfrac{{\boldsymbol{L}}{f}_{y}}{z}, & -\dfrac{{L}_{x}{f}_{x}+{L}_{y}{f}_{y}}{{z}^{2}}\end{array}\right]{{\boldsymbol{R}}}.\end{split} $

式中:$ {{\boldsymbol{P}}}^{\prime}_{\mathrm{L}} $为三维线段端点P在相机坐标系中的坐标. 对于平面特征,须将平面观测值与地图上的平面地标相关联. 如果它们之间的法向量差和点到平面的距离(平面地标上的支撑点到世界坐标系中平面观测的最小距离)小于一定的阈值,则采用SP-SLAM[17]中的方法将平面观测与地标相关联. 三维平面只有3个自由度,平面$ \boldsymbol{\pi }={[{{\boldsymbol{n}}^{\rm{T}}},d]}^{\rm{T}} $是过参数化的,需要额外的约束来保证优化过程中平面的法向量保持单位长度. 为了克服这个问题,本研究采用CPA-SLAM[13]中的方法,在优化中使用平面的最小参数化$ \boldsymbol{\tau }={[\phi ,\boldsymbol{\psi },d]}^{\mathrm{T}} $,其中ϕψ分别为法向量的方位角和仰角,

$ \begin{split} & \boldsymbol{\tau }=q(\boldsymbol{\pi })={\left[ \phi , \boldsymbol{\psi } , d\right]}^{\rm{T}},\\& \phi =\arctan \frac{{n}_{y}}{{n}_{x}},\;\;\boldsymbol{\psi }=\arcsin {{n}}_{z}.\end{split} $

使用最小参数化的重投影误差表示相机到平面的测量误差:

$ {e}_{{\mathrm{c}}\text{π} }({\boldsymbol{T}}_{{\mathrm{cw}}},{\boldsymbol{\pi }}_{{\mathrm{w}}})=q({\boldsymbol{\pi }}_{{\mathrm{c}}})-q(\boldsymbol{T}_{{\mathrm{cw}}}^{-{\mathrm{T}} }{\boldsymbol{\pi }}_{{\mathrm{w}}}). $

式中:πw为世界坐标系中的平面参数,πc为相机坐标系中的平面观测值. 相机-平面误差定义了在相机坐标系中平面地标与其对应观测点之间的差值,通过对相机到点线面的测量误差最小化实现定位精度的提升.

3. 实验结果与分析

实验选用EuRoC[23]、KITTI[24]和UMA-VI[25]数据集,涉及室内和室外场景. EuRoC数据集包含微型飞行器在3种不同的室内环境中飞行所记录的双目相机序列,其中包括1个工业机械大厅和2个Vicon房间. 根据速度、光照和场景纹理,将序列分为简单、中等和困难. 该数据集还提供来自激光跟踪系统和运动捕捉系统的地面真实情况. KITTI数据集中的立体序列由自动驾驶平台采集,场景覆盖城市与高速公路,地面真值由GPS和IMU定位单元给出. UMA-VI数据集是使用手持定制传感器装置收集的视觉-惯性立体序列,包含低纹理环境和动态光照场景. 所有实验都在搭载Ubuntu18.04系统的笔记本电脑中进行测试,该笔记本配备Intel i5-9300H CPU和NVIDIA GTX 1650 GPU. 在实验中估计不同数据集的轨迹和地图信息,并将所提算法与其他视觉SLAM算法进行比较. ORB-SLAM2[5]是基于点特征的视觉SLAM算法,PL-SLAM和Line-SLAM是基于点线特征的SLAM算法,RS-SLAM是基于点面特征的视觉SLAM算法,这3类算法均是常见的SLAM系统,具有较好的性能. 绝对位姿误差APE用于评估SLAM算法在估计单一位姿时的准确性,通过计算估计位姿与地面真值之间的差异来量化算法的精度,常用于分析长序列中的位姿估计误差,能够准确反映算法在室外场景以及低纹理环境下的定位精度. 在实验中,主要通过APE的均方根误差RMSE来比较不同SLAM算法的定位精度.

$ \text{RMSE}=\sqrt{\frac{1}{N}\sum\limits_{i=1}^{N}{\mathrm{APE}}_{i}^{2}}. $

本研究的SLAM算法主要集中在特征提取和局部优化阶段,因此实验关闭了回环检测来对比轨迹漂移误差.

3.1. 特征提取

选取UMA-VI数据集中典型的低纹理场景,包括走廊、大厅和楼梯,以分析不同特征(点、线、面)在低纹理环境下的提取情况,特征提取数量nf表1所示. 在走廊、大厅以及楼梯等场景下,由于四周存在大量单一纹理的白墙,点特征的提取数量较少且分布不均匀. 这种情况下,单独依赖点特征进行跟踪可能会导致位姿估计不稳定甚至丢失目标,线、面特征能够较好地提取,有效补充点特征的不足. 点线面特征提取如图6所示.

表 1   不同场景的点线面特征数量

Tab.1  Number of point, line and plane features across different scenes

场景nf
线
走廊199285
大厅305326
楼梯2123210

新窗口打开| 下载CSV


图 6

图 6   特征提取

Fig.6   Features extraction


3.2. KITTI数据集测试结果分析

表2所示为5种视觉SLAM算法在KITTI数据集00-10序列上的平移均方根误差,加粗数据表示每个序列的最小误差. 可以看出,除了00、03和04序列,本研究所提算法在其他序列中的表现均优于对比算法,11个序列上的最优结果为8项,证明了所提算法在提高姿态估计精度方面的有效性. 在03和04序列中,道路沿线存在大量杂乱的树木,导致错误的平面提取以及不准确的平面约束. 在其他序列中,线段和平面很容易从人造结构(如房屋墙面与道路)中提取出来,这也体现了所提算法的有效性. 为了更直观地展示所提算法在轨迹估计中的效果,在00和07序列上绘制对比算法的2D轨迹,不同算法在00和07序列上的位姿估计轨迹对比如图7所示. 可以看出,所提算法的结果比对比算法的更接近真实轨迹. 在纹理信息重复的场景下(如白墙),对比算法无法有效提取特征点,导致位姿估计误差较大,而所提算法能够有效提取线面特征,实现更稳定和准确的位姿估计,显著减小定位误差并提高系统的鲁棒性.

表 2   不同视觉SLAM算法在KITTI 数据集上的平移均方根误差比较

Tab.2  Comparison of translation root-mean-square error for different visual SLAM algorithms on KITTI dataset

序列RMSE/m
ORB-SLAM2Line-SLAMPL-SLAMRS-SLAM本研究
004.9583.9034.5653.7543.795
016.2109.0788.81610.5745.704
029.5529.8879.9469.7288.052
030.2610.2430.2550.6540.271
040.1720.1750.1920.1990.232
051.9571.9111.8562.0561.800
062.6952.4282.5532.1521.927
071.5771.4691.4281.3091.109
083.1373.1633.0893.6252.788
092.9012.8652.8753.2002.373
100.9890.9540.8181.0730.795
平均值3.1283.2793.3083.3952.622

新窗口打开| 下载CSV


图 7

图 7   不同视觉SLAM算法在KITTI数据集2种序列中的位姿估计轨迹对比

Fig.7   Pose-trajectory comparison of different visual SLAM algorithms on two KITTI-dataset sequences


3.3. EuRoC数据集测试结果分析

表3所示为5种视觉SLAM算法在EuRoC数据集2种不同类型序列上的平移均方根误差,加粗数据表示每个序列的最小误差. 可以看出,ORB-SLAM2算法在10个序列上均无最优表现,原因是EuRoC数据集包含大量低纹理和快速运动的场景,导致ORB-SLAM2无法有效提取和匹配足够的特征点,从而影响位姿估计精度. Line-SLAM算法在1个序列上取得最优结果,原因是点线特征的融合在一定程度上缓解了特征点不足的问题,提高了系统在低纹理环境下的鲁棒性. 相较而言,所提算法在10个序列中的最优结果达到8项. 这主要得益于本研究提出的点线面特征联合优化方法利用面特征提供的全局几何约束,使得系统在低纹理以及光照变化环境下仍能保持较高的定位精度和鲁棒性.

表 3   不同视觉SLAM算法在EuRoC数据集上的平移均方根误差比较

Tab.3  Comparison of translation root-mean-square error for different visual SLAM algorithms on EuRoC dataset

序列RMSE/m
ORB-SLAM2Line-SLAMPL-SLAMRS-SLAM本研究
MH_01_easy0.03610.03790.04540.03650.0354
MH_02_easy0.03850.04000.03620.03490.0378
MH_03_medium0.03710.04050.04170.03700.0348
MH_04_difficult0.05370.04800.05250.09180.0628
MH_05_difficult0.11880.09610.10680.04570.0451
V1_01_easy0.08740.08700.09100.08610.0858
V1_02_medium0.08180.13970.23740.06980.0647
V1_03_difficult0.19230.16930.19200.18510.1596
V2_01_easy0.08520.06860.06830.06770.0607
V2_02_medium0.09450.08900.07340.08240.0727
平均值0.08250.11760.12950.07370.0659

新窗口打开| 下载CSV


图8所示为所提算法与对比算法在V2_01_easy序列上的位姿估计轨迹. 可以看出,所提算法的位姿估计结果更接近真实轨迹. 原因是该区域出现了低纹理场景,相较于ORB-SLAM2无法提取足够多的特征点,所提算法能够有效提取并利用线面特征,实现更稳定和准确的位姿估计. 如图9所示为所提算法在V1_02_medium序列中生成的特征地图. 通过与真实场景进行比较可以发现,真实场景具有大量如白墙和软垫的单一、纹理重复环境,所提算法可以同时提取丰富的点线面特征,在清晰地反映真实场景结构的同时提升位姿估计精度.

图 8

图 8   不同视觉SLAM算法在序列V2_01_easy中的位姿估计轨迹对比

Fig.8   Pose-trajectory comparison of different visual SLAM algorithms on sequence V2_01_easy


图 9

图 9   序列V1_02_medium的特征地图

Fig.9   Feature map of sequence V1_02_medium


3.4. UMA-VI数据集测试结果分析

表4所示为4种SLAM算法在UMA-VI数据集7个序列上的平移均方根误差,加粗数据表示每个序列的最小误差. 这7个序列包含了大量低纹理的场景,如走廊、楼梯和大厅等. 可以看出,ORB-SLAM2算法在7个序列上均未取得最优,主要原因是这些序列都存在大量白墙场景,影响了系统的跟踪稳定性和定位精度,尤其在hall-eng和third-floor-eng这2个低纹理场景较多的序列中,ORB-SLAM2甚至出现跟踪失败的情况. Line-SLAM和PL-SLAM在一定程度上缓解了特征点不足的问题,提高了系统在低纹理环境下的鲁棒性. 由于它们对线特征的提取质量较低,并且线特征本身的几何约束能力有限,难以有效抑制累积误差,导致整体定位精度较差. 相较而言,所提算法在7个序列中的定位精度均优于其他SLAM算法. 这主要得益于所提算法在提取高质量线特征的同时引入面特征,补充了低纹理环境下的几何信息,使特征提取更加稳定和均匀;其次点线面特征的联合优化充分利用面特征的全局几何约束,有效减少了累积误差,使系统在低纹理环境下仍能保持较高的定位精度和鲁棒性.

表 4   不同视觉SLAM算法在UMA-VI数据集上的平移均方根误差比较

Tab.4  Comparison of translation root-mean-square error for different visual SLAM algorithms on UMA-VI dataset

序列RMSE/m
ORB-SLAM2Line-SLAMPL-SLAM本研究
corridor-eng1.46181.22271.18520.9728
class-csc10.33350.30440.31880.2565
class-csc20.45510.41810.43380.3812
parking-csc10.72130.45100.52150.3815
hall1-rev-eng0.10450.08240.08750.0639
hall1-eng0.03280.03450.0269
third-floor-eng0.05100.05260.0486
平均值0.43940.36600.37620.3044

新窗口打开| 下载CSV


图10所示为所提算法与对比算法在corridor-eng序列上的位姿估计轨迹. 可以看出,所提算法的结果比对比算法的更接近真实轨迹,进一步直观证明了所提算法在低纹理环境下具有更好的估计一致性与全局几何保持能力. 特别是在走廊这种结构化低纹理场景中,所提算法通过引入面特征增强了几何约束的完整性,从而有效抑制了轨迹漂移,提升了所提算法的定位精度与鲁棒性.

图 10

图 10   不同视觉SLAM算法在序列corridor-eng中的位姿估计轨迹比较

Fig.10   Pose-trajectory comparison of different visual SLAM algorithms on sequence corridor-eng


4. 结 语

本研究提出融合点线面特的双目视觉SLAM算法,将点线面特征约束结合并在后端进行联合优化,在3个公共数据集上的算法性能测试结果证明了所提算法的鲁棒性和有效性. 实验结果表明,所提算法可以在纹理欠缺的苛刻条件下,显著增加前端线面特征提取的数量,对定位过程中的漂移产生明显的抑制效果,在室内白墙的单一且纹理重复环境中仍然能够保持较高的定位精度与跟踪稳定性. 所提算法可以提取丰富的点线面特征以真实反映场景结构特征,实现高精度定位. 未来计划通过引入基于深度学习的线面特征提取网络,进一步提高线特征和平面特征的提取精度,在系统中加入基于线面特征的回环检测模块,以增强系统的鲁棒性.

参考文献

CADENA C, CARLONE L, CARRILO H, et al

Past, present, and future of simultaneous localization and mapping: toward the robust-perception age

[J]. IEEE Transactions on Robotics, 2016, 32 (6): 1309- 1332

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

TAKETOMI T, UCHIYAMA H, IKEDA S

Visual SLAM algorithms: a survey from 2010 to 2016

[J]. IPSJ Transactions on Computer Vision and Applications, 2017, 9: 16

DOI:10.1186/s41074-017-0027-2      [本文引用: 1]

ENGEL J, KOLTUN V, CREMERS D

Direct sparse odometry

[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018, 40 (3): 611- 625

DOI:10.1109/TPAMI.2017.2658577      [本文引用: 1]

MUR-ARTAL R, MONTIEL J, TARDÓS J

ORB-SLAM: a versatile and accurate monocular SLAM system

[J]. IEEE Transactions on Robotics, 2015, 31 (5): 1147- 1163

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

MUR-ARTAL R, TARDÓS J

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      [本文引用: 2]

CAMPOS C, ELVIRA R, RODRÍGUEZ J, et al

ORB-SLAM3: an accurate open-source library for visual, visual–inertial, and multimap SLAM

[J]. IEEE Transactions on Robotics, 2021, 37 (6): 1874- 1890

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

WEI H, TANG F, XU Z, et al

A point-line VIO system with novel feature hybrids and with novel line predicting-matching

[J]. IEEE Robotics and Automation Letters, 2021, 6 (4): 8681- 8688

DOI:10.1109/LRA.2021.3113987      [本文引用: 1]

KAESS M. Simultaneous localization and mapping with infinite planes [C]// Proceedings of the 2015 IEEE International Conference on Robotics and Automation. Seattle: IEEE, 2015: 4605–4611.

[本文引用: 1]

PUMAROLA A, VAKHITOV A, AGUDO A, et al. PL-SLAM: real-time monocular visual SLAM with points and lines [C]// Proceedings of the 2017 IEEE International Conference on Robotics and Automation. Singapore: IEEE, 2017: 4503–4508.

[本文引用: 1]

GIOI R, JAKUBOWICZ J, MOREL J, 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      [本文引用: 1]

QIAN K, ZHAO W, LI K, et al

Visual SLAM with BoPLW pairs using egocentric stereo camera for wearable-assisted substation inspection

[J]. IEEE Sensors Journal, 2020, 20 (3): 1630- 1641

DOI:10.1109/JSEN.2019.2947275      [本文引用: 1]

TREVOR A J B, GEDIKLI S, RUSU R B, et al

Efficient organized point cloud segmentation with connected components

[J]. Semantic Perception Mapping Exploration, 2013, 10 (6): 251- 257

[本文引用: 1]

MA L, KERL C, STÜCKLER J, et al. CPA-SLAM: consistent plane-model alignment for direct RGB-D SLAM [C]// Proceedings of the 2016 IEEE International Conference on Robotics and Automation. Stockholm: IEEE, 2016: 1285–1291.

[本文引用: 2]

ZHOU L, KOPPEL D, KAESS M

Lidar SLAM with plane adjustment for indoor environment

[J]. IEEE Robotics and Automation Letters, 2021, 6 (4): 7073- 7080

DOI:10.1109/LRA.2021.3092274      [本文引用: 1]

ZHANG X, WANG W, QI X, et al. Stereo plane SLAM based on intersecting lines [C]// Proceedings of the 2021 IEEE/RSJ International Conference on Intelligent Robots and Systems. Prague: IEEE, 2021: 6566–6572.

[本文引用: 1]

黄宁生, 陈靖, 缪远东

基于平面约束的RGB-D SLAM系统

[J]. 计算机应用研究, 2020, 37 (8): 2526- 2530

DOI:10.19734/j.issn.1001-3695.2019.03.0100      [本文引用: 1]

HUANG Ningsheng, CHEN Jing, MIAO Yuandong

RGB-D SLAM system based on plane constraint

[J]. Application Research of Computers, 2020, 37 (8): 2526- 2530

DOI:10.19734/j.issn.1001-3695.2019.03.0100      [本文引用: 1]

ZHANG X, WANG W, QI X, et al

Point-plane SLAM using supposed planes for indoor environments

[J]. Sensors, 2019, 19 (17): 3795

DOI:10.3390/s19173795      [本文引用: 2]

WANG H, WEI H, XU Z, et al

RSS: robust stereo SLAM with novel extraction and full exploitation of plane features

[J]. IEEE Robotics and Automation Letters, 2024, 9 (6): 5158- 5165

DOI:10.1109/LRA.2024.3388854      [本文引用: 1]

YAN J, ZHENG Y, YANG J, et al

PLPF-VSLAM: an indoor visual SLAM with adaptive fusion of point-line-plane features

[J]. Journal of Field Robotics, 2024, 41 (1): 50- 67

DOI:10.1002/rob.22242      [本文引用: 1]

SHU F, WANG J, PAGANI A, et al. Structure PLP-SLAM: efficient sparse mapping and localization using point, line and plane for monocular, RGB-D and stereo cameras [C]// Proceedings of the 2023 IEEE International Conference on Robotics and Automation. London: IEEE, 2023: 2105–2112.

[本文引用: 1]

AKINLAR C, TOPAL C

EDLines: a real-time line segment detector with a false detection control

[J]. Pattern Recognition Letters, 2011, 32 (13): 1633- 1642

DOI:10.1016/j.patrec.2011.06.001      [本文引用: 1]

ZHANG 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      [本文引用: 1]

BURRI M, NIKOLIC J, GOHL P, et al

The EuRoC micro aerial vehicle datasets

[J]. International Journal of Robotics Research, 2016, 35 (10): 1157- 1163

DOI:10.1177/0278364915620033      [本文引用: 1]

GEIGER A, LENZ P, STILLER C, et al

Vision meets robotics: the KITTI dataset

[J]. International Journal of Robotics Research, 2013, 32 (11): 1231- 1237

DOI:10.1177/0278364913491297      [本文引用: 1]

ZUÑIGA-NOËL D, JAENAL A, GOMEZ-OJEDA R, et al

The UMA-VI dataset: visual–inertial odometry in low-textured and dynamic illumination environments

[J]. International Journal of Robotics Research, 2020, 39 (9): 1052- 1060

DOI:10.1177/0278364920938439      [本文引用: 1]

/