光学仪器  2021, Vol. 43 Issue (4): 19-27   PDF    
基于点线特征融合的立体视觉里程计
高翀, 黄影平, 赵柏淦, 胡兴     
上海理工大学光电信息与计算机工程学院,上海 200093
摘要: 大多数视觉里程计通过跟踪图像序列中点特征几何位置的变化实现对相机位姿的估计。线是点的集合,相对于离散的点,帧间线特征的位置变化更具有显著性,因而有利于提高特征检测跟踪的鲁棒性。另外,在一些弱纹理场景中,点特征不够丰富,作为对点特征的补充,提出了一种融合点线特征的立体视觉里程计算法。构建新颖的点线重投影误差模型作为目标函数求解旋转矩阵和平移向量。模型中,使用Huber核函数减小特征误匹配对优化过程的影响。选取ORB算子检测点特征,LSD算子检测线特征,匹配时施加恒速约束、环形匹配、Bucketing约束和外观几何约束,提高特征匹配的速度及精度。采用公共数据集KITTI和EuRoC对算法进行评测,实验结果表明,该算法在多种场景中的鲁棒性能,相较于其他具有代表性的视觉里程计算法,在精度方面有提升。
关键词: 视觉里程计    位姿估计    点线特征    重投影误差    
Stereo visual odometer using point and line features
GAO Chong, HUANG Yingping, ZHAO Bogan, HU Xing     
School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China
Abstract: Majority of existing visual odometers estimate the pose of camera through tracking point features and examining changes of their geometric position between consecutive frames. Comparing to discrete points, position of a line changes more significantly over frames. Therefore, detection and tracking of lines is more robust than that of points. In addition, line features are more abundant in low-textured scenes. As a complementation of point features, this paper proposes a novel stereo visual odometry that combines point and line features. A point-line re-projection error model is constructed as the objective function to estimate the rotation matrix and the translation vector. Huber kernel function is used in the model to reduce the impact of mismatching features on the optimization computation. ORB is used here to detect points and LSD is used to detect line segments. Speed smoothness constraint, loop matching, bucketing constraint and geometrical constraint are imposed on feature matching process to improve the matching speed and accuracy. Experiments have been conducted on public KITTI and EuRoC datasets, and the results demonstrate that our algorithm can work robustly in a variety of scenarios and has better performances in comparison with other representative visual odometry.
Key words: visual odometer    pose estimation    point-line features    re-projection error    
引 言

视觉里程计(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为本文所提基于点线特征融合的立体视觉里程计算法框图,分为特征提取和运动估计两个部分。系统输入为 $k - 1$ 帧( ${\boldsymbol{I}}_{k - 1}^{\rm l}$ ${\boldsymbol{I}}_{k - 1}^{\boldsymbol r}$ )和 $k$ 帧( ${\boldsymbol{I}}_k^{\rm l}$ ${\boldsymbol{I}}_k^{\rm r}$ )图像, ${\rm{l}}$ ${\rm{r}}$ 分别代表左右帧图像,输出为 $k - 1$ 帧与 $k$ 帧间的旋转矩阵 ${\boldsymbol{R}}_{k - 1}^k$ 和平移向量 ${\boldsymbol{t}}_{k - 1}^k$

图 2 方法总体框图 Figure 2 The overall framework of the method

首先对获取的第 $k$ 帧左右两帧图像同时提取ORB和LSD(line segment detection)特征并进行匹配,在此阶段,对ORB施加恒速、点环形匹配及Bucketing约束,对LSD进行外观几何约束及线环形匹配约束以提高特征匹配的精度及速度。然后在连续图像序列中分别跟踪点线两种特征,计算点特征及线特征端点的空间位置,将所得到的空间位置投影到下一帧图像中,构建点线重投影误差模型。最终由列文伯格-马夸尔特法求解所构建的点线误差模型得到旋转及平移参数,同时结合球形线性插值技术对旋转参数进行优化。

2 点特征及其处理

选用ORB算子[14]检测点特征。对检测到的点作环形匹配,匹配的时候采用BRIEF描述子在一定的搜索范围内进行,过程如图3所示。在左右帧与前后帧间根据 ${\boldsymbol{I}}_{k - 1}^{\rm l} \to {\boldsymbol{I}}_{k - 1}^{\rm r} \to {\boldsymbol{I}}_k^{\rm r} \to $ $ {\boldsymbol{I}}_k^{\rm l} \to {\boldsymbol{I}}_{k - 1}^{\rm l}$ 的顺序进行环形匹配,匹配的终点与起点相同时匹配成功,这样的处理极大地提高了帧间匹配的精度。

图 3 环形匹配与恒速约束 Figure 3 Correspondence matching between left-right and consecutive images with a loop process (yellow part indicates the search area)

为了缩小特征匹配时的搜索范围以提高匹配速度,提出恒速约束模型。在相机帧率较高时其帧间运动变化较小,相机运动具有平滑性。假设相机在帧间匀速运动,通过重投影可以预测匹配点的粗略位置,进而以预测位置为中心进行匹配搜索。记空间点 ${\boldsymbol{P}}$ 在第 $k$ 帧上的投影点为 ${{\boldsymbol{p}}^k}$ ,它的预测位置 ${{\boldsymbol{p}}^{k - {\rm{pre}}}}$ 可以由下式计算:

${{\boldsymbol{p}}^{k - {\rm{pre}}}} = {\boldsymbol{K}}({\boldsymbol{T}}_{k - 2}^{k - 1} \cdot {{\boldsymbol{p}}^{k - 1}}),$ (1)

式中: ${{\boldsymbol{p}}^{k - 1}}$ 为点 ${\boldsymbol{P}}$ $k - 1$ 帧时的世界坐标; ${\boldsymbol{K}}( \cdot )$ 为相机投影矩阵; ${\boldsymbol{T}}_{k - 2}^{k - 1}$ $k - 1$ 帧的位姿变换矩阵。对于左右帧图像,在搜索区域为 ${\delta _u} \times {\delta _v}$ 的矩形框内进行搜索匹配;对于前后两帧图像,搜索区域为半径为 ${\delta _r}$ 的圆,圆心为特征点的预测位置。如图3所示,黄点为待匹配的点特征,黄色圆表示半径为 ${\delta _r}$ 的前后帧间搜索区域,黄色矩形框表示 ${\delta _u} \times {\delta _v}$ 大小的左右帧间搜索区域。

此外,采用Bucketing技术[6]将图像划分为 $50\;{\rm{pixel}} \times 50\;{\rm{pixel}}$ 大小的矩形框,并确保在每个矩形框中提取一定数目的点特征,使得所提取的ORB特征可以均匀分布在图像中。

3 线特征及其处理

选用LSD算子[15]提取线特征,可在线性时间内得到亚像素级精度的检测结果。对提取到的LSD线特征计算LBD描述子[16]并进行匹配,同时舍弃具有不同长度及方向的线特征对,确保得到最佳匹配对,这可以有效提高线特征的匹配精度。

为了进一步提高线特征匹配的精度,采用线特征环形匹配。对于 $k - 1$ 帧左图中某线特征 ${\boldsymbol{l}}_{k - 1}^{\rm l}$ ,线段两端点记作 ${\boldsymbol{A}}_{k - 1}^{\rm l}$ ${\boldsymbol{B}}_{k - 1}^{\rm l}$ ,类似于点特征环形匹配,同样根据 ${\boldsymbol{I}}_{k - 1}^{\rm l} \to {\boldsymbol{I}}_{k - 1}^{\rm r} \to {\boldsymbol{I}}_k^{\rm r} \to {\boldsymbol{I}}_k^{\rm l} \to {\boldsymbol{I}}_{k - 1}^{\rm l}$ 的顺序进行匹配,当匹配终点线段 ${{\boldsymbol{l}}'}_{k - 1}^{\rm l}$ 的两端点 ${{\boldsymbol{A}}'}_{k - 1}^{\rm l}$ ${{\boldsymbol{B}}'}_{k - 1}^{\rm l}$ 与起点 ${\boldsymbol{l}}_{k - 1}^{\rm l}$ 的两端点 ${\boldsymbol{A}}_{k - 1}^{\rm l}$ ${\boldsymbol{B}}_{k - 1}^{\rm l}$ 一致时,则认为其为正确匹配对。

4 点线重投影误差模型 4.1 空间直线的几何表示

对空间某线段 ${\boldsymbol{L}}$ ,使用两端点 ${{\boldsymbol{L}}_1} = ({X_1},{Y_1}, {Z_1}, $ $ {r_1})^{\rm{T}}$ ${{\boldsymbol{L}}_2} = {({X_2},{Y_2},{Z_2},{r_2})^{\rm{T}}}$ 表示此线段,记 ${\tilde {\boldsymbol{L}}_1}$ ${\tilde {\boldsymbol{L}}_2}$ 为其非齐次坐标。采用普吕克坐标表示此线段L

${\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)

式中: ${\boldsymbol{L}}$ $6 \times 1$ 维向量; ${\boldsymbol{v}}$ ${\boldsymbol{L}}$ 方向向量; ${\boldsymbol{n}}$ L与坐标原点构成平面的法向量,且通过坐标原点。

${\boldsymbol{L}}$ 投影到图像平面,记作 ${\boldsymbol{l}}$

$\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)

式中: ${{\boldsymbol{K}}_l}$ 表示线段的投影矩阵; $f$ 为相机焦距; ${c_x}$ ${c_y}$ 是像素坐标相对于图像坐标的偏移量; ${\boldsymbol{Q}}$ 表示线段的变换矩阵,包含旋转矩阵R和平移向量 ${\boldsymbol{t}}$ ${[ \cdot ]_{1:3}}$ 表示取前三维向量; ${\left[ \cdot \right]_ \times }$ 表示向量的反对称矩阵。

4.2 线特征的重投影误差

图4所示,记空间某线段 ${\boldsymbol{L}}$ 的端点为 ${{\boldsymbol{L}}_{\rm s}}$ ${{\boldsymbol{L}}_{\rm e}}$ 。根据相机模型将 ${\boldsymbol{L}}$ 投影到图像,并且经位姿参数重投影到下一帧,得到线段 ${\boldsymbol{l}} = {\left[ {{l_1},{l_2},{l_3}} \right]^{\rm T}}$ ,记点 ${{\boldsymbol{l}}_{\rm s}}$ ${{\boldsymbol{l}}_{\rm e}}$ ${\boldsymbol{l}}$ 的两端点。 ${\boldsymbol{L}}$ 的投影线段通过匹配得到的其在下一帧的线段记为 ${{\boldsymbol{l}}'}$ ,点 ${{\boldsymbol{l}}_{{{\rm s}'}}}$ ${{\boldsymbol{l}}_{{{\rm e}'}}}$ ${{\boldsymbol{l}}'}$ 的两端点。使用 ${{\boldsymbol{l}}_{{{\rm s}'}}}$ ${{\boldsymbol{l}}_{{{\rm e}'}}}$ ${\boldsymbol{l}}$ 的距离表示线段 ${\boldsymbol{L}}$ 的重投影误差 ${{\boldsymbol{E}}_L}$

${{\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)

式中: $d\left( {{{\boldsymbol{l}}'},{\boldsymbol{l}}} \right)$ 代表直线 ${{\boldsymbol{l}}'}$ ${\boldsymbol{l}}$ 间的距离。

图 4 线特征重投影误差模型 Figure 4 The re-projection error model of line features
4.3 点线重投影误差模型

设第 $k$ 帧所在时刻相机位姿为 ${\boldsymbol{T}}_{k - 1}^k$ ,包含旋转矩阵 ${\boldsymbol{R}}_{k - 1}^k$ 和平移向量 ${\boldsymbol{t}}_{k - 1}^k$ 。该帧观测到的第 $i$ 个空间点 ${{\boldsymbol{P}}_i}$ 和第 $j$ 条空间线 ${{\boldsymbol{L}}_j}$ 的重投影误差分别定义如下:

${{\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)

式中: ${\boldsymbol{K}}$ 是点的投影矩阵; ${{\boldsymbol{K}}_l}$ 为线段的投影矩阵; ${\boldsymbol{p}}_i'$ ${\boldsymbol{l}}_j'$ 分别为匹配算法得到的点和线段; ${\boldsymbol{Q}}_{k - 1}^k$ 是当前相机位姿 ${\boldsymbol{T}}_{k - 1}^k$ 下的直线变换矩阵。

构建点线误差模型时,通常直接将重投影误差的二范数平方和作为求解的目标函数。但由于匹配过程存在误匹配,这会导致在目标函数中二范数增长速度过快,此时优化求解算法会主要集中调整错误的误差项的值,进而忽略正确的误差项的影响。通过在目标函数中增加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)

式中: ${{\boldsymbol{\varOmega}} _p}$ ${{\boldsymbol{\varOmega}} _l}$ 分别为点线的协方差矩阵; ${H_p}$ ${H_l}$ 代表Huber核函数; ${\boldsymbol{R}}_{k - 1}^k$ ${\boldsymbol{t}}_{k - 1}^k$ 为待优化的变量即相机位姿。Huber核函数如下:

$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)

当误差 $e$ 大于阈值 $\delta $ 时,目标函数的增长由二次函数降为一次,从而可以抑制误匹配对的影响,使得整个优化求解过程更加稳定。

利用列文伯格-马夸尔特(LM)算法求解式(7)得到第 $k$ 帧的旋转矩阵 ${\boldsymbol{R}}_{k - 1}^k$ 及平移向量 ${\boldsymbol{t}}_{k - 1}^k$ 。将由式(7)计算得到的第 $k$ 帧的旋转矩阵记作 ${\boldsymbol{R}}_{k - 1}^{{k_*}}$ 。另外,第 $k$ 帧的旋转矩阵也可以借助前两帧的旋转矩阵得到,记为 ${\boldsymbol{R}}_{k - 1}^{{k'}}$ ,有

${\boldsymbol{R}}_{k - 1}^{{k'}} = {\left( {{\boldsymbol{R}}_{k - 2}^{k - 1}} \right)^{ - 1}}{\boldsymbol{R}}_{k - 2}^k$ (9)

将这两种通过不同计算方法得到的第 $k$ 帧的旋转矩阵使用球形线性插值[17]进行融合,作为第 $k$ 帧的旋转矩阵 ${\boldsymbol{R}}_{k - 1}^k$ 。由下式计算:

${\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)

通过这样的处理,可以达到对旋转矩阵估计结果进行平滑处理的效果,消除粗大误差,得到优化的旋转矩阵 ${\boldsymbol{R}}_{k - 1}^k$ 和平移向量 ${\boldsymbol{t}}_{k - 1}^k$

5 实验与分析

选取公共数据集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为 $0.20{(^ \circ })/100\;{\rm{m}}$ ,ATE为0.69%。总体上,我们的算法相较于ORB-SLAM2和PLSVO在精度上有所提升,与SOFT2的精度值相近。我们的算法全面优于PLSVO算法,证实了本系统所采用的点线误差模型以及特征匹配机制的有效性。图7所示为使用本文算法对KITTI 00和06序列的轨迹构建(蓝色实线)以及与真实轨迹(黑色虚线)的对比图。

表 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
5.2 EuRoC数据集

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
6 结 论

本文提出一种可在多种场景下稳定工作、基于点线特征融合的立体视觉里程计方法。在特征提取与匹配阶段,采用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