基于自适应阈值的ORB特征提取与跟踪
2022-03-17宗泽华张海军张劲锋
宗泽华,张海军,张劲锋
(1.中国航空工业集团公司洛阳电光设备研究所,河南 洛阳 471000;2.光电控制技术重点实验室,河南 洛阳 471000)
0 引言
定位与跟踪涉及当今社会方方面面[1]:在民用生活方面有智能无人车、扫地机器人、四旋翼无人机等;在游戏娱乐中有VR,AR等技术的使用;在医学中也有应用;而在军事中也不缺少它的身影,如头盔显示系统中精准的定位与跟踪可以使飞行员在战斗中看哪即打哪。
由此可见定位与跟踪技术在当今的广泛运用,但是想要实现精准的定位并不容易,为了满足人们在各个方面的需求,多种定位方法被提出,而运用最广泛的定位方式应属于视觉定位[2]。视觉定位主要包括3个部分,即相机标定、位姿估计和物体识别。其中,相机标定的参数是固定的,完成一次标定后理论上就不需要再次标定;位姿估计需要依赖物体识别;物体识别一般是识别物体的特征,而特征又分为面、线和点3种,特征点因对于光照变化具有更高的稳定性[3]而在视觉定位中应用最广。
特征点提取算法经过多年发展已经具有多种方法,在国外最常用的方法有尺度不变特征变换[4-5](Scale-Invariant Feature Transform,SIFT),该方法可以在图像发生旋转以及尺度变换时仍然稳定地识别出特征点,但是由于描述子复杂,实时性很低。后来又有改进的加速稳健特征[6](Speeded Up Robust Features,SURF),该算法在SIFT的基础上简化了描述子的计算,提高了算法的实时性,但是上述两种算法还是难以满足当今人们对于实时性的需求。于是,FAST(Features from Accelerated Segment Test)算法被提出,FAST通过像素点周围的灰度大小确定特征点,极大简化了特征点识别过程,提高了实时性,但是单纯的FAST算法无法保证旋转以及尺度不变性,所以其改进算法ORB[7]又被提出。在ORB中,通过灰度质心法确定特征点方向,通过BRIEF(Binary Robust Independent Elementary Features)确定特征点的描述子,BRIEF是一种二进制描述子,远比SIFT和SURF简单,所以结合了一定稳定性和实时性的ORB算法逐渐成为特征点识别中的主流算法。
在国内也有相当多的对于特征点提取算法的研究,这些算法有基于神经网络的、三维重构的以及三维点云的,这些算法在稳定性上都有些许提升,但是都存在一个问题——难以兼顾实时性和稳定性。
1 问题描述
在视觉定位的实际运用中,很容易就受到光照变化的影响,因而一直都有大量学者在研究怎样在兼顾实时性的同时保证系统的光照不变性。本文中,参考ORB算法,在保证实时性的情况下,改进其在特征点提取中的阈值选择,使用局部自适应灰度阈值来选择特征点,使其能适应并提升相同特征点在不同光照环境下提取的重复性和有效性,提升系统的光照不变性,进而提升系统整体精度。
2 特征检测
2.1 ORB特征点提取
ORB特征点相比FAST特征点具有旋转不变性,解决了图像在发生旋转时仍然能识别出同一个特征点的问题,极大地提升了特征点的稳定性。
ORB特征点的计算步骤如下。
1) 计算灰度质心、获取方向。
为了给予特征点方向,需要首先计算灰度质心,灰度质心的计算依赖于图像的矩,图像矩算式为
mpq=∑x,y∈SxpyqF(x,y)p,q∈{0,1}
(1)
式中:S代表待检测的图像块;F(x,y)是点在(x,y)的灰度值;mpq是图像的矩。
而通过矩可以找到图像块的质心C,坐标为
(2)
α=arctan(m01/m10)
(3)
因此,每个ORB特征点的方向都可以用中心点和特征点之间的角度α来表示。
2) 计算描述子。
有了特征点的方向相当于知道了名字,但是特征点可能会重名,所以还需要知道特征点具体“长啥样”,在这个问题中ORB使用BRIEF描述子来描述特征点,当确定了每个特征点的方向之后便开始计算描述子。
BRIEF描述子是一种二进制描述子,其算式为
(4)
式中,p(x),p(y)是一对点分别在x,y处的灰度值。当以固定的规则在特征点周围选取n对测试点后,便可以确定一个二进制编码列表,即
(5)
但是式(5)并没有旋转不变性,为了克服这个问题,定义一个2×n矩阵
(6)
矩阵Q和α对应的旋转矩阵Rα的乘积可以获得具有旋转特性的测试点集,即
Sα=RαQ。
(7)
最终获得带有旋转的描述子为
gn(p,q)=fn(p)|(xi,yi)∈Sα。
(8)
2.2 基于改进FAST方法的ORB特征点提取
FAST特征点需要通过检测点周围半径为3的圆上的16个点的暗属性来确定,如图1所示。
图1 FAST特征点Fig.1 FAST feature points
FAST特征点检测器的数学模型为
(9)
式中:Ip是中心点p的灰度值;Ipn是点p周围半径为3的圆上编号为n的像素点的灰度值;t是一个固定阈值。若Ipn等于d,那么点n属于暗点;若Ipn等于s,那么点n属于近似点;若Ipn等于b,那么点n属于亮点。若有连续9个点同为亮点或者为暗点,那么点p可以视为特征点。在实际使用中,想要检测9个连续的特征点,最少的是检测1~9这9个点,最多的可能是8~16,总共54个点,所以在实际使用中,这种方法可能会需要较大计算量,导致实时性降低。
为了降低计算量,可以直接计算Ip1,Ip5,Ip9,Ip13,只要检测到这4个点中有连续的3个点属于暗点或者亮点,那么点p就有可能是特征点,若无连续亮点或者暗点,那么直接排除点p是特征点的可能。接着再检测被3个特征点包含的6个像素点,若同属于暗点或者亮点,那么p就可以确定为真正的特征点。
图2为快速FAST特征点检测示意图。若检测到点13,1,5为暗点或者亮点,继续检测其中的14,15,16,2,3,4这6个点,若同属于前面测得的相同类型,那么p就可以确定为真正的特征点。
图2 FAST特征点检测示意图Fig.2 Schematic diagram of FAST feature point detection
一般FAST特征点提取时用的阈值t是根据当前亮度的百分比手动设定的一个固定值,当处于一个灰度变化剧烈的环境时可能会在特征点提取时出现错误,所以一个固定的全局阈值t难以获得理想的特征点提取结果。为了解决该问题,本文提出了一个自适应特征点提取阈值,该阈值为
(10)
式中:Imax是16个像素中灰度最大值;Imin是灰度最小值;Ia是剩下的14个灰度的平均值;δ是自适应参数,虽然δ是全局固定的参数,但是自适应阈值t是根据Imax,Imin以及Ia自适应改变的。
3 双目特征点跟踪
3.1 水平双目相机模型
双目相机的数学模型可以看作是两个针孔相机模型,如图3所示。双目摄像机的摄像机坐标系定义如下:以左摄像机的光学中心OL为坐标系原点,水平向右建立X轴。左摄像机沿光轴建立Z轴,并垂直向下建立Y轴;B是双目相机的基线,即左右光学中心之间的物理距离。
图3 双目相机成像模型Fig.3 Imaging model of the binocular camera
世界坐标系是自定义虚拟坐标系,在双目系统中通常将左相机坐标系作为世界坐标系。
在该模型中,设在双目相机坐标系下有一个三维点P,其坐标为(xP,yP,zP),在左右相机下的成像点分别为PL和PR,对应的像素坐标分别为(uL,vL),(uR,vR)。通过相似三角形针孔模型原理,可得出
(11)
式中:f是相机焦距;d是点P在双目相机内成像的视差;(cx,cy)是光轴与成像平面的交点的像素坐标。
3.2 特征点跟踪方法
图像特征点跟踪是对图像序列中同一空间目标点对应的特征点在不同时刻的跟踪,它与特征点匹配密切相关。特征点匹配是两幅图像上特征点的匹配,而跟踪是多幅图像序列上特征点的匹配。进行特征点跟踪,是为下一步的运动参数估计做准备。一个特征点跟踪过程包括两个特征点匹配步骤:1) 双目摄像机捕获的第一帧左图像与第二帧左图像之间的特征点匹配;2) 第一帧左图像与右图像之间的特征点匹配。两个匹配过程中重叠的特征点就是可以进行跟踪定位的点。
4 实验仿真
4.1 实验条件
本文方法使用卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办的KITTI数据集进行测试。
4.2 特征点提取对比实验
在实验中选取δ为0.2(自适应提取阈值t主要受到所检测点周围点的灰度影响,在多次试验中得出δ选取0.2时,特征点数量更为均衡,均匀的分布,较多的点数)。首先使用KITTI数据集中某一路段进行实验,实验结果显示了本文提出的改进ORB方法(本文方法)与传统ORB方法在特征点提取性能上的差异,实验结果如图4所示。
图4 不同方法间特征点提取对比Fig.4 Feature extraction of different methods
实验结果表明传统ORB方法存在许多重叠的特征点,并且特征点有大量聚集现象。而改进的ORB特征点的数量显著减少,几乎不存在重叠的特征点,并且特征点均匀分布,很好地抑制了特征点的聚集现象,降低了错误追踪的可能性。
为了进一步评估改进ORB方法对亮度变化的适应性,取得了在亮度逐渐变化为原始亮度的20%,40%和60%情况下的检查提取结果,如图5所示。
图5 不同方法在不同亮度下的特征点提取Fig.5 Feature extraction of different methods at different brightness
实验结果表明,由传统ORB方法提取的ORB特征点的数量在光照变化时急剧减少并且有许多点重叠,而由图5(b)中的改进ORB方法提取的特征点的数量在光照变化时没有急剧减少,也没有许多重叠。结合初始亮度下的提取结果可以得出结论,在亮度增加或减少20%后,通过改进方法提取的ORB特征点数量略有增加。因此,该方法扩大了检测范围,特征点分布均匀,在亮度变化很小的情况下也不会出现重叠,提高了方法的稳定性。
接着在不同环境下检测改进ORB方法特征点提取的性能。观察图6中3个不同环境下的特征点提取效果,每一个场景中特征点分布都十分均匀。
图6 改进ORB方法在不同场景下的特征点提取Fig.6 Feature extraction of improved ORB method in different environment
为更进一步分析测试性能,将方法的提取时间t′与重复率r选为量化性能的因素,对比在同一场景下改进方法与其他几种方法的性能对比,结果如图7所示。其中,重复率r定义为光照改变后提取到的特征点与原始图像提取到的特征点的重复率。
对比图7(a)中本文方法与其他方法,当亮度变化大时,改进方法提取到的特征点数量变化更加平缓且稳定。通过图7(b)可以看出,本文方法的重复提取率更高,这更加有利于后面的特征点跟踪。而最后在提取时间上通过图7(c)可以看出,本文方法稍微慢于其他方法,但相较于当前的主流方法有更少的提取时间,有利于提升系统的实时性。
图7 相同条件下不同算法指标Fig.7 Index of different methods under the same condition
4.3 特征点提取对比实验
特征点提取后,为了检验跟踪效果,利用KITTI数据集,将本文方法与传统ORB方法以及经典的中位滤波+RANSAC方法进行比较,在不同的场景中进行测试,观察其轨迹图和真实轨迹间的误差(其中,X轴,Z轴可以分别看作东西、南北方向的位移)。
图8分别表示在数据集的住宅、公路和校园3个场景中跟踪的轨迹,每个场景包含100多帧图像。
图8 不同场景下不同算法的轨迹图Fig.8 Trajectories of different methods in different environment
以校园为例,观察改进算法与真实轨迹间每帧的误差,如表1所示。
表1 校园运行结果Table 1 Operation results of campus area m
根据每帧间的误差,对比其他方法,3个不同场景下不同方法的RMSE结果如表2所示。
表2 KITTI数据集中不同方法的比较Table 2 Comparison of different methods in the KITTI dataset m
表2数据结果表明,改进方法在3个场景中相对真实轨迹的RMSE均优于另外2种算法,且在住宅与校园区误差更是在1 m以下,体现出本文方法在具有稳定且快速的特征点识别的同时保持高精度的定位与跟踪。
5 结束语
通过与几种传统算法进行对比,本文提出的自适应ORB算法在特征点提取速度、准确率、重复率以及对于光的敏感度方面都有更好的效果,并且在轨迹实验对比中也表现更好。