APP下载

亮度变化下室外场景图像特征点提取方法

2020-12-27杨弘凡陈凯阳李嘉琪王晓菲

关键词:角点像素点亮度

杨弘凡,李 航,陈凯阳,李嘉琪,王晓菲

(河南科技大学 机电工程学院,河南 洛阳 471003)

0 引言

移动机器人和无人机的关键技术之一是环境感知,寻找图像特征是基于视觉环境感知的重要组成部分。图像特征一般分为点特征、线特征和面特征,由于点特征具有在相机视角发生少许变化时能保持不变的独特优点而备受关注[1]。目前常用的特征点提取算法主要有尺度不变特征变换(scale-invariant feature transform,SIFT)、加速稳健特征(speeded-up robust features,SURF)和定向二进制简单描述符(oriented fast and rotated brief,ORB)等[2]。前两种算法发展较为成熟,但在运行速率和实时性方面不能满足要求较高的场合,而ORB算法适当降低了精度和健硕性,以提升计算速度,减少计算时间,是质量和性能较好的折中,但光照变化造成图像亮度变化,常会导致传统ORB算法出现一系列的不稳定性,使环境感知无法准确进行。因此,研究亮度变化场景下的ORB特征点提取具有非常重要的意义。

文献[3]提出了基于加速段测试的特征(features from accelerated segment test,FAST)检测和二值鲁棒独立元素特征(binary robust independent elementary features,BRIEF)描述算子的新算子ORB算法,FAST算法和BRIEF算法的组合能够达到很高的效率[4]。文献[5]提出了融合SURF算法的ORB和网格运动统计的特征点检测方法。文献[6]对SIFT特征点提取算法进行了改进,并用随机抽样一致性算法消除了误匹配点。然而,上述两种基于固定阈值的特征点提取在亮度变化下难以保持原有效果。文献[7]提出了一种具有旋转不变性的ORB特征点多级快速图像拼接算法,对于固定亮度的室内环境效果较好。文献[8]在室内环境采用FAST角点自适应阈值提取,设置感兴趣区域,采用非极大值抑制的方法抑制低阈值特征点的输出,但此方法对环境和硬件设备要求较高。

针对以上问题,本文基于原始ORB特征点提取算法提出了一种改进特征点提取算法。该算法采用自适应阈值的FAST特征检测算法,根据像素的亮度自动设计,计算阈值,从而改进了基于固定阈值的ORB特征点的识别方法,使得在室外亮度变化时的特征点提取更加稳定,减少了特征点的重叠聚集。以特征点数量、提取时间和重复率作为指标评价方法,改变图像亮度,在室外数据集上进行图像特征点提取的对比实验,对改进前后算法进行定量分析。尽管提取时间出现了略微增加,但仍大大优于SIFT和SURF等算法。

1 ORB特征点提取方法

1.1 ORB中的FAST关键点

由于FAST关键点不具备方向性,因此在ORB算法中添加了对旋转的描述,给FAST点分配一个方向,使其成为具有方向性的FAST点(oriented-FAST或o-FAST)。基于灰度质心法实现方向性的计算,实现步骤如下,在一个小的图像块S中,定义图像块的邻域矩如式(1)所示[9]:

(1)

其中:F(x,y)为图像中点(x,y)的亮度值。通过这个邻域矩可以找到图像的质心坐标,如式(2)所示:

(2)

其中:m00是零阶矩阵,m10,m01是一阶矩阵。在ORB中,这个图像区域为FAST关键点的邻域,即以O为圆心,以3个像素为半径的圆形区域,即x,y的取值是[-3,3]。连接图像的几何中心O与质心C,得到直线OC方向向量,于是可以用向量的方向来表示ORB特征点的方向角,如式(3)所示:

α=arctan (m01/m10)。

(3)

因此,ORB特征点的方向角可以由角点和质心的夹角表示。F(x,y)中x和y的范围控制在半径为r的圆形区域内,提取到的角点具有旋转不变性。ORB算法采用BRIEF描述子对特征点进行描述,在获取特征点方向后,计算BRIEF描述子,其核心思想是在特征点周围选取31 pixels×31 pixels的邻域窗口,并在这个邻域窗口选择5 pixels×5 pixels的点对进行像素比较,比较结果作为描述子。定义图像块的点对比较准则τ为:

(4)

其中:函数p为点x,y的灰度值。随机选择n对点(xi,yi),就可以生成一个二进制字符串,则BRIEF描述子的结果如式(5)所示:

(5)

为了使BRIEF描述子的方向具有旋转不变性,选取n个点对组成的特征集合,设定一个2×n的矩阵Q:

(6)

由图像像素邻域的方向可以计算出旋转矩阵Rθ:

(7)

矩阵Q经旋转矩阵Rθ,得到一个新的特征集合,定义为Sθ:

Sθ=RθQ。

(8)

这时,得到矫正后具有方向的ORB特征描述符,如式(9)所示:

gn(p,q)=fn(p)|(xi,yi)∈Qθ,

(9)

其中:n一般取256,即256个点对。利用贪婪搜索算法,找到256个点对使其相关性最低,得到带有方向的特征描述子rBRIEF[10-12]。

1.2 改进FAST算法的ORB特征点提取

FAST关键点检测示意图如图1所示,FAST关键点是一种角点。角点是指图像中处于角落的像素点,这些点附近的像素值变化剧烈,因而容易被检测出,具体需要对图像上所有像素点进行检测。图1a为图像上一处具有代表性的候选角点,因为直观来看该候选角点位于一棱角处,其曲率足够高且曲率变化明显,因此选择该像素点进行分析说明,但并不意味着该点就是真实角点。候选角点放大后的附近圆形窗口如图1b所示,p是图1b中的中心像素点,其亮度是IP,主要分析以p为圆心,以3个像素为半径的圆周上的16个像素点。

(a) 候选角点 (b) 像素点附近圆形窗口图1 FAST关键点检测示意图

FAST关键点检测如式(10)所示:

(10)

图2 第1,5,13像素属于明类或暗类时FAST特征点检测示意图

其中:Ipn是16个像素中第n个像素的亮度;t是固定阈值。当Spn=d时,该像素被归类至暗类;当Spn=s时,归类至相似类;当Spn=b时,归类至明类。如果有9个连续的像素属于暗类或者明类时,p可以被认为是特征点(即FAST-9,也有FAST-12)[13],此方法需要至少连续检测9个像素点的亮度。在实际运算中,为了检测出连续9个符合条件的像素,需要从像素1至9,2至10,…,8至16范围内检测,最理想情况也需要计算9个像素亮度,最差情况需要计算54个像素亮度,计算量巨大。

为了减少计算量,直接检测圆周上第1,5,9,13个像素点的亮度(也可以选取2,6,10,14等,需间隔3个像素)。当有3个像素同时属于暗类或者明类,则该像素点可能是候选特征点,否则直接排除。

判断3个像素为候选点后,检测此3个像素包围环内的剩余6个像素亮度,若剩余6个像素点的亮度均属于暗类或者明类,则该p是正确特征点。第1,5,13像素属于明类或暗类时,FAST特征点检测示意图如图2所示,当第1,5,13像素的亮度属于暗类或者明类时,继续检测1-5-13包络的剩余6个像素点,即像素2,3,4,14,15,16,若这些1-5-13包络的像素点都属于暗类或明类,则p为特征点。

图3 改进FAST算法的特征点检测流程图

原FAST检测中的阈值是人为设定的,设置为亮度I的一定百分比。随着室外环境光照、对比度的变化,一幅图像的特征点将出现误提取和误排除的现象,导致特征点分布不均匀,出现重叠。如果用固定全局阈值或固定局部阈值难以达到理想效果,可以采用动态局部阈值法:采用自应阈值分割,在对图像中每个像素进行FAST特征点检测时,都设置有各自不同的阈值。选取准则是对每个像素p定义阈值t,如式(11)所示:

(11)

其中:Imax为圆周上亮度最高的像素点的亮度;Imin为圆周上亮度最低的像素点的亮度;Ia为14个像素点亮度的平均值。δ为自适应参数,等于经验阈值所占中心像素亮度的百分比。经实验,δ取20%时特征点数量变化更加稳定。

改进FAST算法的特征点检测流程如图3所示,具体步骤如下:

步骤1 选取像素点p,计算Ip1,Ip5,Ip9,Ip13。

步骤2 判断Ip1>Ip+t或Ip1Ip+t或Ip5Ip+t或Ip9Ip+t或Ip13

步骤3 逐个检测剩余6个点的Ipn。

步骤4 判断对于步骤3所检测的Ipn是否都存在Ipn>Ip+t或Ipn

2 ORB特征点提取实验

为了验证本文算法的有效性,在卡尔斯鲁厄理工学院与丰田工业大学数据集(Karlsruher institut für technologie and Toyota technological institute,KITTI)上进行仿真测试。该数据集用于测试立体图像、光流、视觉测距、3D物体检测和3D跟踪等[14]。本文采用路径为raw data city下的2011_09_28_drive_0001数据,图像分辨率为1 392 pixels×512 pixels,长度为164帧(时长16 min),实验选择第6帧灰度图像进行测试。测试硬件为Windows 7、Intel i3-4170,内存为4 GB随机存取存储器(random access memory,RAM),软件为MATLAB R2014a。

设置原FAST算法程序中阈值threshold=40,改进FAST算法程序中自适应参数δ=20%。为了使对比效果明显,不进行非极大值抑制[15]。在同一幅实验原图上改进前后算法的提取效果如图4所示。

(a) 原FAST算法提取效果

(b) 改进FAST算法提取效果

图4 实验原图上改进前后算法的ORB特征点提取效果

图5 亮度减少60%后原FAST算法的ORB特征点提取效果

从图4a可以看出:原FAST算法在提取ORB特征点时有大量特征点重叠,特征点聚集严重。从图4b可以看出:改进FAST算法提取的特征点数量明显减少,几乎没有特征点重叠,特征点分布均匀,一定程度上抑制了特征点的聚集。

为了进一步验证改进前后FAST算法对不同亮度的适应能力,改变图像亮度进行实验。在原图亮度基础上减少60%亮度后,原FAST算法提取结果如图5所示,在原图亮度基础上减少20%或减少60%,或增加20%亮度后,改进FAST算法提取结果如图6所示。

从图5可以看到:在亮度减少60%后,原FAST算法提取的ORB特征点数量剧烈减少且含有大量重叠。而对应图6a中改进FAST算法的特征点提取数量并未急剧下降,同时也没有大量重叠。结合初始亮度的提取效果(见图4b),以及亮度增加20%和减少20%后的提取效果(见图6b和图6c),可以得出:在亮度增加20%或减少20%后,改进FAST算法提取的ORB特征点数量不仅未减少,反而出现了轻微增加,说明改进后的算法在小幅度亮度变化下检测范围扩大,特征点分布均匀、无重叠。

在原图亮度基础上分别逐渐增加和减少20%、40%、60%后,两种算法提取的特征点数量如图7所示。由图7可以看出:改进FAST算法提取的特征点数量最多为358个,最少为278个,极差为80个,仅占原始亮度特征点数量的25%;而原FAST算法提取到的特征点数量最大达到了363个,最小为50个,极差为313个,占原始亮度特征点数量的87%。改进FAST算法提取的特征点数量总体低于原FAST算法。原因是原FAST算法提取到的特征点有大量聚集和重叠,特征点数量随着亮度变化出现了剧烈减少,而改进FAST算法提取的特征点数量没有出现急剧变化,说明对亮度的变化适应性更强。

图7 不同亮度下两种算法提取的特征点数量对比

特征点数量并不能很好地检验算法的效果,因为相较于固定阈值出现的误提取、误排除,自适应阈值并不能在特征点数量上看出明显变化。为了进一步检测改进算法的效果,选取提取时间和重复率作为指标来量化评价,其中,重复率是改变亮度之后图像与实验原图重合的特征点[16]占实验原图特征点数量的百分数:

(12)

其中:Nr为改进前后两幅图像中重复的特征点数量;Nf为原图中的特征点数量。

图8是不同亮度下两种算法重复率对比。由图8可以看到:两种算法在原始亮度的图像上重复率都是100%,但随着亮度减少60%和增加60%后,原FAST算法的重复率急剧下降到了38%和55%,这说明原始图像上提取到的特征点已经无法准确体现到亮度变化后的图像上。改进FAST算法尽管在亮度减少和增加后重复率出现了下降,但降幅只有20%,重复率依旧保持在80%以上,相较于原FAST算法,改进FAST算法的重复率稳定性好,对于亮度变化有着良好的适应能力。

图9是图像亮度变化下提取时间对比。改进FAST算法的ORB特征点提取时间为280~290 ms,整体高于原FAST算法的提取时间,但增幅稳定在20~30 ms,相较于原提取时间只增加了10%。通常SIFT和SURF算法提取时间分别高于1 500 ms和500 ms,因此,改进FAST算法提取时间仍远低于SURF、SIFT等算法,能够满足系统实时性的要求。

由于改进FAST算法对特征点数量、重复率都做出了优化,所以即使改进提取特征点算法的耗时略微增加,但在后续特征点匹配环节能够有效减少冗余和重复特征点所导致的误匹配点对的出现,再加上合理的匹配方法,能够使特征点对的匹配线程时间减少。

图8 不同亮度下两种算法重复率对比

图9 不同亮度下两种算法提取时间对比

3 结束语

本文提出了一种改进的ORB特征点提取算法,相较于原始算法有以下优势:(1)特征点数量、重复率随亮度变化波动小;(2)检测范围扩大,且随亮度变化未发生剧烈减少;(3)特征点分布均匀无重叠。下一阶段工作重点应围绕在特征点对匹配阶段有效利用改进ORB特征点提取算法的优点,进一步缩短特征点对提取和匹配的总时间,使其出现更少的误匹配和欠匹配。

猜你喜欢

角点像素点亮度
用于遥感影像亮度均衡的亮度补偿方法
图像二值化处理硬件加速引擎的设计
多支撑区域模式化融合角点检测算法仿真
远不止DCI色域,轻量级机身中更蕴含强悍的亮度表现 光峰(Appptronics)C800
基于局部相似性的特征匹配筛选算法
角点检测技术综述①
基于灰度差预处理的改进Harris角点检测算法
亮度调色多面手
基于像素点筛选的舰船湍流尾迹检测算法
基于FAST角点检测算法上对Y型与X型角点的检测