APP下载

基于融合Shi-Tomasi 算法的单目视觉里程计研究

2021-08-28孙蔚

农业装备与车辆工程 2021年8期
关键词:里程计角点像素点

孙蔚

(200093 上海市 上海理工大学 光电信息与计算机工程学院)

0 引言

近年来,随着人工智能领域的高速发展,融合SLAM(时定位与建图)技术的自动驾驶辅助系统成为热门研究方向之一。经典的视觉SLAM系统会包含5 个模块,分别是传感器数据提取、前端视觉里程计、后端非线性优化、建图以及贯穿其中的回环检测,如图1 所示。

图1 视觉SLAM 结构组成Fig.1 Visual SLAM structure composition

其中,最为关键的视觉里程计部分,通过相机传感器获取周围环境的图像数据,提取图像间的共同特征信息并进行运动估计[1]。视觉里程计不同于人类的感知系统,能对周遭环境进行具象描述,而是通过对传入图像进行特征标注的操作以获得供后续处理的信息摄入。为了得到更为精确的位姿估算结果,特征提取与匹配的重要性自然不言而喻。国内外众多学者都对其进行了大量研究,提出了多种算法。Moravec[2]通过计算各个像素沿着水平、垂直、对角线以及反对角线的灰度变化量来提取特征点,进而提出了最早的角点检测算法之一:Moravec 算子;Harris 和Stephens[3]在灰度变化的基础上加入微分思想并定义了角点响应函数的数学公式,从而得出了不易受旋转、光照等影响且更为优异的Harris 算子;Shi 和Tomasi[4]在前者的基础上去掉了影响检测稳定性的经验常数,提出了提取效果更好的Shi-Tomasi 算子;David Lowe[5]提出并完善了尺度不变特征转换SIFT 算法,建立尺度空间利用高斯差分函数进行查找,检测到的特征点在面对光照变化、图像旋转、尺度变化等情况下仍然有较好的提取效果。

在SIFT 算法的基础上,为了解决其计算复杂度较高的问题,Bay[6]等提出了SUFR 算法,引入积分图像和盒子滤波器,对前者进行优化改进使计算速度提高了近3 倍;Rosten 和Drummond[7]提出了ORB 算法,根据周围连续多个像素点的灰度差判定进行特征点检测,是速度最快的特征点检测算法之一。此外,随着深度学习的快速发展,也出现了不少融合神经网络的特征检测算法。例如,在SIFT 基础上对关键点检测、方向赋值、描述子向量进行网络训练整合的LIFT 算法,但由于实时性和CPU 占用率的考究,本文暂不做展开讨论研究。

在各类特征点提取算法中,Shi-Tomasi 算法既拥有前者所诉算法的优良特性,如运行稳定性好、不易受到运动变化和外界环境噪声的影响,又能使特征点的分布更加均匀而不是聚簇在某定区域,适合应用于前端图像提取与匹配过程中。本文在经典特征提取算法ORB 上进行修改,将Shi-tomaisi 算子与其ORB 算子结合,在不过大影响运行效率的前提下,改善其特征点分布容易聚簇影响后续运动估计精确度的问题。主体结构如图2 所示。

图2 本文算法结构Fig.2 Algorithm structure of this article

1 融合Shi-Tomasi 算法的特征提取与匹配

1.1 ORB 特征提取——FAST 算法

ORB 算法是在FAST 算法的基础上进行改进所得来的,它包含FAST 角点法和BRIEF 描述子两部分,后者在匹配过程中提供关键点附近的像素信息,而其中的FAST 算法作为最快速的特征提取算法之一,创造性地采用机器学习的方法对角点检测过程进行加速。检测示意图如图3 所示,具体实现原理为:首先,在图像中选择一点p,以该点为圆心构造一个半径为3 像素值的圆形区域。再给定一灰度经验阈值t,如果在圆形区域的边界上有连续12 个像素点与p 点的灰度差绝对值大于或小于阈值t,则认为p 点为特征点。为加快提取速度,可先与1,5,9,19 位置上的像素点进行灰度比对。若这4 个位置存在2 个及以上不满足条件的像素点,则可直接排除p 为特征点的可能;接着,将上述粗提取特征点周围的16 个像素点输入到经过机器学习训练的决策树中,进而筛选出最优ORB 特征点。

图3 FAST 算法检测示意图Fig.3 Schematic diagram of FAST algorithm detection

1.2 融合Shi-Tomasi 的特征提取改进算法

FAST 算法虽然运行速度十分高效,但只能检测单一类型的角点,容易使得提取出来的特征点分布较为集中而忽略了其他区域关键点。为了避免产生特征点聚簇的问题影响后续视觉里程计的信息摄取,可以在FAST 算法进行角点提取之后,将提取到的特征点用Shi-Tomasi 算法处理。

Shi-Tomasi 算法主要根据滑动窗口中像素点的灰度变化趋势来进行角点判断。理论上,作为两条边缘线的交叉点即角点,无论在哪个方向上进行移动,都会使得该点区域的梯度方向和大小发生明显改变。于是,我们定义滑动窗口在图像上平移[u,v]单位时,窗口在各个方向所产生的灰度变化为量E(u,v),则如式(1)所描述

式中:(x,y)——窗口中心位置的坐标;ω(x,y)——窗口函数代表像素的权重大小,当中心位置是角点时,移动窗口会造成较为剧烈的灰度变化,此时窗口函数会设置较大一点,而离中心位置较远的像素点,由于对灰度变化的影响不那么大,所以此时的窗口权重会设置得较小;I(x,y)——该点的像素灰度值,所以,I(x+u,y+v)-I(x,y)就是窗口移动所产生的灰度差值。对任意一个角点而言,所计算出来的E(u,v)值会非常大。为了提升计算效率,采用泰勒展开式对其灰度插值进行变化,如式(2)所示:

式中:Ix,Iy——I 的偏微分,显示在图像中就表示x 和y 方向上的梯度值。将偏微分带入式(1)可得式(3)。

将u 和v 拿出,可化简为式(4)

式中矩阵M 如式(5)所示展开

将式(5)实对称矩阵进行对角化处理,将2 个正交方向的变化分量提取出来,可得式(6),其中λ1、λ2为矩阵M 的特征值,决定了角点响应函数R 的大小。

由于角点稳定性受矩阵M 的较小特征值影响更大,于是我们定义角点响应函数的分数公式为R=min(λ1,λ2)diag,如果某点的分数大于设定的阈值,则认定为一个角点。

将ORB-ORB 与Shi-Tomasi 进行优化融合的特征提取算法包括如下几个步骤:首先,采用ORB-9 算法(周围至少有9 个点与中心点的像素差超过阈值)对整幅图像进行初步的特征提取操作;接着,对所得到的ORB 角点领域内的像素点灰度值进行处理进而求得对应的特征矩阵M;然后,根据矩阵M 中的特征值求得角点响应函数R 的值,选取R 值大于设定阈值且为局部极大值的点作为我们最终选取进行后续匹配的特征点。

1.3 特征描述与匹配

在特征点确定之后,需要进一步计算这些特征点属性的描述子以便于完成后续的匹配工作。ORB 算法采用BRIEF 特征向量描述器,用二进制串来描述特征,无论是在描述的建立还是后续的匹配过程中,运行速度都十分优异。BRIEF 特征描述子是对图像块二值字符串的描述,图像块由二值灰度比较的结果构成[8]。在特征点附近随机选取若干点对,将这些点对的灰度值大小组合成一个长为256 的二进制字串,并将这个二进制字串作为该特征点的特征描述子。其二值判断方法τ如式(7)所示,p(x)表示图像块在点x 处的灰度值。

本文采用暴力算法进行图像帧间的匹配,也就是当特征点的描述子的相似度大于一定阈值时,认为是相同特征点,也就是匹配点对成立。ORB 算法通过汉明距离的大小来表示特征点之间的相似度。汉明距离越小表示特征点之间的相似度越高。

图像匹配过程中,不论是前期特征点的检测还是之后的描述过程中,都会有误差存在,同时匹配结果也会由于设置的阈值不同而产生变化,再加上图片复杂程度和噪声等因素的影响,会存在一定的错误匹配,因此本文算法在融合Shi-Tomasi 的特征提取与匹配过程后加入随机采样一致性算法作进一步误差剔除。

2 单目里程计运动估计

以前后时刻两帧图像为基础,采取融合Shi-Tomasi 角点响应函数的ORB 算法获得特征匹配点后,对其运动展开合理的预估,其几何模型如图4 所示。由于前一帧图像I1到后一帧图像I2是刚体运动,那么观测点P 在图像I1坐标系的坐标就可以通过刚体转换变成图像I2坐标系下,如果匹配正确,p1,p2将会是同一个空间点在2 个成像平面上的投影。

图4 对极几何示意图Fig.4 Schematic diagram of epipolar geometry

假设空间点P 的坐标为[x,y,z],则两个像素点p1和p2的像素位置表达式分别为P1=KP,P2=K(RP+t)。其中,K 为相机的内参矩阵;R和t 分别表示旋转参量和平移参量用来描述不同图像坐标系下的相机运动。现取u1,v1为两像素点的归一化平面坐标,可以看成是一个二维的齐次坐标[x/z,y/z,1];则

代入P1,P2表达式可得

将P1,P2代入式(10)得

式(11)便被称为对极约束,它表示O1,P,O2三者共面。

将中间部分记作本质矩阵E,可进一步简化对极约束

至此,相机位姿估计问题可以分解为如下2个步骤,首先根据前后帧图像上匹配点的像素位置求出本质矩阵E,接着采用经典的八点法[9]将本质矩阵进行奇异值分解,求出相机运动的旋转矩阵R 和平移矩阵T,这样就初步完成了视觉里程计的两帧之间的运动估计推算。

3 实验结果及分析

为了评估融合Shi-Tomasi 特征检测算法的视觉里程计的匹配效果和轨迹精度结果,本文对室外环境做图片数据采集。相机移动过程中拍摄视频的图像序列采集帧率为10 fps,图像大小为1 024×720。轨迹比对真值为由RTK 器件采集的GPS 数据作为参考。算法运行的PC 平台配置为Intel Core i5-9300H CPU @2.40GHz,内存为8 GB,系统为 Ubuntu16.04。实验发现,本文算法与ORB 特征提取在简单外物场景下有着较为相似的特征提取及匹配效果,但当环境变量开始多样化时,本文算法有着明显更为优异的提取效果,而ORB 特征提取容易发生特征拥簇现象,特别是当存在一些纹理性较强的物体时,特征点都容易聚集在此处,例如下述场景中的树木区域总是能吸引大量特征点的注入,导致匹配效果也不够完善。具体实验结果分别如图5、图6 所示。

图5 场景1 的匹配效果对比Fig.5 Matching effect comparison of scenario 1

图6 场景2 的匹配效果对比Fig.6 Comparison of matching effects in scenario 2

结合表1,再从匹配数量和平均每帧匹配耗时两方面进行评估。可以看出,在同样提取250个特征点的情况下,本文算法有着更高成功率的匹配点数。虽然在时效性上舍弃了一些速度,但匹配耗时仍满足在相机提取数据帧率之下。

表1 特征匹配算法对比Tab.1 Comparison of feature matching algorithms

在两者算法运行过后,截取其中一段相同路径的位姿估计值,与RTK 器件所提取的GPS数据进行绝对轨迹误差计算。其均值、中值及标准差等参考指标如图7 所示。可知,在复杂环境路段所带来的不适应性致使ORB 算法作出的运动估计有着很大的偏差,而本文算法总体更为稳定。

图7 绝对轨迹误差Fig.7 Absolute trajectory error

4 结论

针对ORB-SLAM 算法特征检测模块容易发生特征点簇拥丢失图像信息的问题,本文在其原先基础上融合了Shi-Tomasi 检测算子对由ORB检测到的角点做二次筛选,在经过随机一致性算法进行误匹配删除后,达成了精确度更高的匹配点。由仿真实验可知,本文算法在特征匹配比例和后续的轨迹推算上都有着更为优秀的准确率展示。

猜你喜欢

里程计角点像素点
室内退化场景下UWB双基站辅助LiDAR里程计的定位方法
图像二值化处理硬件加速引擎的设计
多支撑区域模式化融合角点检测算法仿真
基于局部相似性的特征匹配筛选算法
角点检测技术综述①
基于灰度差预处理的改进Harris角点检测算法
里程计技术发展综述
基于像素点筛选的舰船湍流尾迹检测算法
基于FAST角点检测算法上对Y型与X型角点的检测
SINS/OD组合导航系统转弯误差补偿*