APP下载

基于灰度均值的自适应FAST角点检测优化算法

2024-02-26李一桐

电光与控制 2024年2期
关键词:角点中心点像素点

刘 艳, 李一桐

(大连大学,a.信息工程学院; b.大连市环境感知与智能控制重点实验室,辽宁 大连 116000)

0 引言

目标识别技术逐渐在军事和民用领域被广泛应用,在军事领域,通过识别技术对军事目标进行观察和勘测,可在战场上对目标定位起到至关重要的作用。在民用领域,如人脸识别、自动驾驶、视觉定位等都离不开识别技术。为从图像中获取特征信息,通常使用特征点的提取方式实现,相较于图像边缘检测算法,特征点提取算法速度快、识别率高,并且保留了图像中绝大部分特征信息。

角点属于特征点中的一类,可以代表图像中的局部特征,其不仅简化了图像信息数据,而且保留了图像的重要信息,是进一步图像数据处理的基础[1-2]。因此,角点检测贯穿于图像分割、目标识别和跟踪、3D目标重建等众多领域。

基于灰度图像的角点检测算法目前较常见,该类算法不但对边缘响应有抑制作用,而且计算复杂度低[3-4],如Moravec算法[5]、Harris算法[6]和SUSAN检测算法[7]。其中,Harris算子表现效果较优,应用广泛,但该算子在噪声较大的图像中很难找到确切的角点数量。基于此,许多学者提出了相应的改进算法。文献[8]为提高图像匹配速度对图像用最大类间方差法进行分割,提取目标轮廓的HU不变矩特征进行粗匹配后再通过改进的Harris提取角点,但分割后的图像中存在椒盐噪声,易影响检测精度。文献[9]针对遥感影像建筑物边界不规则的问题,将Harris与SUSAN算法结合,对预处理后的图像进行边界点排序和规则化拟合,得到规则的建筑物边界,该方法可以提高角点检测准确率。但上述改进方法都存在计算量大、阈值设置影响检测效果的问题。FAST[10]检测算法计算量小、速度快,相较于其他角点检测算法在实时性要求较高的场景中更具优势,但仍对阈值依赖程度较大,存在固定阈值不能适应全局图像角点检测的问题,并且检测出的角点中包含大量伪角点和边缘响应点[11-13]。为此,文献[14]提出了一种改进提取周边像素点方式的角点检测算法,判别角点时,在中心点的搜索范围上扩大FAST搜索半径,利用图像像素点灰度值的延展性对其周边的像素点进行二次比较,减少噪点干扰,但该方式不适用于图像对比度复杂的场景。

针对上述问题,本文提出一种基于图像灰度均值的阈值自适应FAST-9-12模板检测算法。采用一种小面积双重检测模板,由16个点缩减为12个点,在提高角点检测速度的同时增强局部搜索准确性,减少噪点和伪角点的出现。在阈值设置阶段,依据局部区域灰度均值变化自适应调整阈值,降低错检或误检概率,提高区域正检率,避免在灰度不均图像检测中固定阈值的局限性。在角点提纯阶段,设置边缘点筛选原则去除边缘响应点,采用柔性非极大值抑制思想设计角点半径抑制原则,滤除不稳定伪角点,提高检测准确率。

1 FAST角点检测算法

FAST算法是一种快速、便捷的角点检测算法,角点的判定原则是,中心像素点圆周上至少有12个点与中心点灰度值差的绝对值大于设置的阈值,则中心点是个角点。检测模板可以描述为一个以候选像素点为圆心的离散的 Bresenham圆。检测模板如图1所示,从半径为3像素的圆上取16个像素点[15-17]。

图1 角点检测模板Fig.1 Corner detection template

圆周上像素点与中心像素点的灰度值大小根据

(1)

进行判断。式中:Ii为圆上每个点的灰度值,i=1,2,…,16;Ip为中心点的灰度值;T为设置的阈值,一般为中心点灰度值的20%。于是,可以把整幅图像像素点分为3类[18]:

1)Ip+T≤Ii,表示当前像素点灰度值比中心像素点灰度值大,属于b(brighter);

2)Ip-T

3)Ip-T≥Ii,表示当前像素点灰度值比中心像素点灰度值小,属于d(darker)。

为提高检测速度,不需要对每个像素进行逐一比较,只需比较垂直和水平方向上4个点灰度值与中心点灰度值大小,根据灰度值,如果4个点中有3个及以上为同类点,就可以判断中心点是候选角点,否则不是,这种方式可以快速剔除大部分非角点[19-20]。传统的FAST算法采用FAST-12-16检测模板来判断,但现有研究已证明FAST-9-16检测模板效果更好、速度更快[21-22]。

2 改进的FAST算法

文献[14]在判断角点时,以点p为圆心,在原检测模板的基础上,以半径为5像素画同心圆进行搜索,如图2所示。

图2 同心圆搜索示意图Fig.2 Concentric circle search schematic

根据周边像素点在灰度上保持对应的连贯性来判断像素点A和W的分类是否为同一类。若p为一个角点,当点A为暗点类(d)时,则外圈对应像素点W也为暗点,同理,当点A为亮点类(b)时,则外圈对应像素点W也为亮点。

该方式通过扩大搜索半径,利用特征点的延展性,精准地判别出中心像素点的属性。但检测半径增大易导致噪点数多,且阈值固定,无法适应整体图像的灰度。传统的FAST检测模板会检测到部分伪角点,且光照强度发生变化时,图像的灰度也会变化,固定阈值的检测模板因无法适应灰度变化易出现错检或误检。因此,需要一种适应图像不同区域间灰度的方法来检测角点,为此,本文从检索方式、阈值选取和伪角点剔除3个方面对FAST算法进行改进,旨在提高FAST算法的检测速度和检测准确率。算法具体步骤为:

1) 从图像中选取像素点p,以p为中心构建FAST-9-12角点检测模板;

2) 基于灰度均值在检测模板内自适应调整阈值,根据角点响应函数判断候选角点;

3) 设置边缘点筛选原则去除候选角点中的边缘响应点;

4) 设置角点半径抑制原则剔除伪角点,避免角点连接、重叠的问题。

2.1 FAST-9-12检测模板

传统的FAST检测是将中心像素点与检测模板上其余16个点进行比较。因像素点较多,检测时间较长,本文提出一种改进的FAST-9-12算法。改进的检测模板如图3所示。

图3 改进的检测模板Fig.3 The improved detection template

将FAST算法中心点检测模板内像素点个数由16减少为12,再进行灰度值的判别,其中至少9个点符合判别要求,即可将中心点判断为候选角点,简称为FAST-9-12检测模板。快速角点检测判别条件为:比较圆上点1,7或者点4,10与中心像素点的灰度值,若其中任一组中都存在至少一个点与中心像素点的灰度差绝对值大于设定阈值,则将圆上另外一组中的点与中心像素点的灰度值进行对比,如果另一组中两点与中心像素点灰度差绝对值大于阈值,则认为该点为一个候选角点。

文献[14]利用扩大半径的方式检测同心圆上8个像素点灰度值,相对于原始检测模板效率大大提高。本文基于同样原理,检测圆形模板水平和垂直4个点之后,以点p为中心设置菱形检测邻域,判断菱形4个顶点W,X,Y和Z的灰度值。假设点p为特征点,则在检测模板中点p灰度值与其余像素点灰度值必然存在差异,而周边模板外,像素在灰度级上保持相应延展性,即当1点灰度值高于中心像素点时,则点W灰度值也要高于p点,若W低于p,则点p为噪点。当满足条件时,再根据圆形模板采用FAST-9-12检测模板来判断角点,相较于文献[14],优势在于利用像素点灰度连贯性的同时,采用小面积的双重检测模板减少了噪点存在机率,准确率更高、速度更快。

2.2 自适应阈值的FAST-9-12

2.2.1 自适应阈值的确定

光照强度存在随机性,易导致图像灰度值变化。根据经验可知,同一幅图像在不同光照强度和对比度情况下提取的特征点数目会有很大差异。在一些特殊场景中,需要人为设置阈值来达到所需的特征点数量,使获得的特征点质量较差,不利于后续的特征点匹配。灰度变化分为局部灰度改变和全局灰度改变两种情况。

1) 局部灰度变化。灰度受到影响的只有某个像素点或者部分像素点,无论中心点灰度是否变化,固定阈值的角点检测均会导致误判率变高。

2) 全局灰度变化。图像灰度整体发生变化,极端情况时,整幅图像像素点灰度几乎相等,此时采用中心点灰度值的百分比来设定阈值很难检测出中心点是否为角点。

因此,本文对FAST阈值选取方式进行改进,提出一种基于灰度均值的自适应阈值确定方法。首先,在检测模板内对圆周12个像素点求和,来反映局部区域的整体灰度情况。其次,确定该区域内受到光照影响的两类极值点,即灰度最大值和灰度最小值,去除这两类点,使其余像素点灰度值更符合光照变化前灰度方差。考虑像素点灰度值大范围变化时可能存在两个以上的最大和最小灰度值,该情况下只考虑单个点极值影响存在一定局限性,所以计算该区域灰度均值,克服多个极值存在情况。最后,依据灰度均值变化确定相应区域灰度阈值,得到阈值算式为

(2)

2.2.2 候选角点的选取

根据阈值将检测模板上每个像素点按照式(1)进行分类,统计12个像素点中属于同一类暗点或亮点的连续像素点数量N,若N≥9,则判定为候选角点。N由响应函数

(3)

确定。式中,circle(p)表示以p为圆心的圆。

2.3 去除边缘点

在对图像进行滤波时,图像边缘处的响应值会被放大,使角点检测时误检测出边缘响应点和非极大值点。因此,设置约束条件对候选角点进行处理,剔除边缘响应点。筛选原则是:由式(3)中响应函数筛选出候选角点,再由

(4)

剔除候选角点中的边缘点。

剔除边缘响应点的侯选角点检测如图4所示。

图4 候选角点检测图Fig.4 Candidate corner detection diagram

判别条件如下:选取候选角点所在模板上垂直和水平方向上4个点作为点q,分别记为q1,q2,q3和q4,ql和qr为圆上关于q和p所在直线对称的左、右两点,n为圆上满足条件的点q的个数。若圆周上像素点的分类为亮点,则判断ql和qr两点的灰度值是否大于中心点灰度值,暗点类同理。如果满足式(4)的点q的个数n小于3,则将该候选角点视为边缘点,予以剔除。

2.4 角点半径抑制

剔除边缘点之后,筛选非极大值点。由于分段测试不计算角点响应函数,非极大值抑制不能直接应用于得到的FAST角点。因此,对每一个检测到的角点计算一个评分函数V,并对其进行非极大值抑制,去除得分不是最高的点。在以特征点p所在中心的邻域内,统计每个特征点的V值大小,如果点p的得分值是邻域中所有特征点的最大值,则保留;否则,剔除。计算方法为

(5)

式中:V表示得分;Ii为模板上点的灰度值;Ip为点p的灰度值;b为亮点类;d为暗点类;T为阈值。

由式(5)可以筛选出邻域范围内响应值最大的点,但该筛选方式过于绝对,当邻域面积过大时,容易导致筛选后角点数量直线减少。为此,基于柔性非极大值抑制思想,提出一种角点半径抑制方法,即在抑制半径内保留部分角点,剔除半径外角点。例如角点m1,首先将m1的响应值V1与其余角点响应值Vi进行比较,挑选出全部响应值大于m1的点,首先以m1为原点建立直角坐标系,根据角点坐标依次计算二者之间的欧氏距离并进行大小排列;其次根据所需角点数量,在数组中选取合适的欧氏距离对每一个角点设置抑制半径。根据需求动态控制角点数量,不会出现过多或者过少情况,使角点分布更加均匀,减少聚集现象。抑制半径算式为

(6)

式中:(x1,y1)为m1坐标;(xi,yi)为响应值大于m1的任意角点的坐标。角点半径抑制原理如图5所示。

图5 角点半径抑制原理图Fig.5 corner radius suppression principle

在图5所示5×5(单位为像素,下同)的邻域内,p0,p1,p2,p3为各自检测模板内角点,根据非极大值抑制思想,在5×5邻域范围内比较这4个点的得分值,若p0得分值大于p1,p2和p3,则保留p0点,对其余点进行剔除。这样判断的结果过于绝对,容易导致角点检测数量不足,从而导致图像信息提取不够完整。因此,根据柔性非极大值思想,采用欧氏距离对角点半径进行抑制。由图5可知,p1和p2两点与p0的欧氏距离相等,根据该值确定抑制半径,排除抑制半径外的角点p3。可在检索范围内得到更多角点,使图像信息更完整。

进行角点筛选后,通过灰度质心法为FAST角点增加主方向,具体方法如下:

1) 在局部图像块区域内任取特征点O为中心,建立二维坐标系;

2) 在此邻域内计算质心位置C;

计算过程如下。

在图像块中定义图像块的矩为

(7)

式中,I(x,y)为点O处的灰度值。

通过图像块的灰度矩可以得到图像块的质心为

(8)

(9)

式中,R为圆形图像块半径。

特征点的主方向为质心与角点的夹角

(10)

3 实验与分析

为检验改进算法在不同尺寸图像中的适应性,本文选用Inria遥感影像公开数据集进行测试,图像覆盖了人口密集区、高山城镇、小目标建筑物等不同区域。截取尺寸为400×420(单位为像素,下同)和2000×1000的航空遥感图像,从角点检测速度、角点检测效果、角点聚集度3个方面进行算法性能评估。本文实验环境如下:CPU为AMD Ryzen 5 5600H with Radeon Graphics,主频3.30 GHz,内存4 GiB,操作系统为Windows 10。

3.1 固定阈值检测速度和效果对比实验

为对比改进的检测模板和原始模板的检测速度和检测效果,选用同一幅图像利用FAST-12-16,FAST-9-16和FAST-9-12模板对角点进行检测,试验次数为100,统计运行的平均时间。阈值为20条件下实验数据对比和检测效果分别如表1和图6所示。

表1 固定阈值各模板检测对比Table 1 Fixed threshold comparison between templates

图6 固定阈值检测效果Fig.6 Fixed threshold detection effect

表1和图6表明,改进模板的角点检测速度分别比FAST-12-16和FAST-9-16两种检测模板高出22.6%和21.9%,FAST-9-16角点提取数量比FAST-12-16多,但角点密集,FAST-9-12提取的特征点数量和FAST-12-16相近,检测出的角点相对于FAST-9-16模板更加独立,局部区域性更强。

3.2 自适应阈值检测速度和效果对比实验

改进的自适应阈值提取方式中权重参数σ取值0.15(大量实验表明σ取值为0.15时角点数量均衡且均匀分布),同样对比3种不同检测模板在同一幅图像灰度不变情况下的提取效果与速度,实验数据对比和检测效果分别如表2和图7所示。

表2 自适应阈值各模板检测对比Table 2 Comparison of adaptive threshold detection between templates

图7 自适应阈值检测效果Fig.7 Adaptive threshold detection effect

根据表1和表2的实验数据可得,采用自适应阈值的检测方式相比于固定阈值的检测方式检测出的角点个数增加了20%以上,FAST-9-12检测模板比其他两种模板检测速度提高了22%左右,且不受阈值确定方式的影响。因此,改进的算法在保证收敛性的同时,实时性也有显著改善。

3.3 光照变化下检测效果对比实验

对原始图像增加不同程度的光照强度时,对比固定阈值和自适应阈值两种检测方式的实验效果,角点检测个数如表3所示,检测效果如图8所示。

表3 不同光照下检测数量对比Table 3 Comparison of detection quantity under different illumination

图8 不同光照对比效果Fig.8 Contrast effect of different illumination

表3和图8表明,当光照强度从30%增加到70%时,两种检测方式的角点保留率约为30%和60%。改进的检测方式总体检测效果没有发生显著变化,角点个数变化情况如图9所示。

图9 光强增加角点个数变化Fig.9 Light intensity versus the number of corners

3.4 角点半径抑制实验

为验证抑制半径的有效性,采用400×420的遥感图像进行实验,初始抑制半径设置为12像素,期望角点数为150。增大半径时不同抑制半径角点个数的增量如图10所示。

图10 不同抑制半径角点增量图Fig.10 Corner increment plot with different suppression radius

图10表明当角点抑制半径设置为12像素时,图像中的角点个数在40至50之间,角点个数随半径增大而增多。继续增大抑制半径时,角点增量会小幅度增长,但超过某个抑制半径时,角点个数会直线上升。当抑制半径为16像素时,角点累计个数为150左右,检测效果如图11所示。

图11 半径抑制前后对比效果Fig.11 Comparison effect before and after radius suppression

图11表明,经过半径抑制后的图像角点更加独立,连接聚集的现象大大减少。此外,可根据角点所需数量人为选取抑制半径,增强了算法的适应性。

为验证所提改进FAST算法检测的准确度,选取图10中曲线差值个数最大、抑制半径为14像素的情况进行对比实验。将聚集度定义为角点总数和提纯后角点数差值与角点总数之比。对比实验结果如表4所示。

表4 检测模板聚集度对比Table 4 Detection template aggregation comparison

表4表明改进的角点检测方式检测出的角点聚集度低、准确度高,准确率比FAST-12-16和FAST-9-16两种方式分别提高了4.16和3.11个百分点,算法鲁棒性增强。

4 结束语

针对FAST存在伪角点和固定阈值影响检测效果的问题,本文提出了一种基于灰度均值自适应阈值的FAST优化算法。设计的双重简化检测模板FAST-9-12加快了角点检测速度。依据灰度均值变化,在每个像素的检测模板内自适应调整阈值,提高了不同区域角点检测效果。依据边缘点筛选原则和角点半径抑制原则,有效减少了边缘响应点和伪角点,降低了角点聚集度、提高角点检测准确率。在Inria遥感影像数据集上与传统的FAST-9-16,FAST-12-16检测算法进行对比实验,结果表明,改进的角点检测算法有效地改善了FAST算法在光照变化下图像角点检测效果,缩短了检测时间,提高了角点检测准确率,为后续图像精准匹配奠定了基础。

猜你喜欢

角点中心点像素点
Scratch 3.9更新了什么?
如何设置造型中心点?
基于5×5邻域像素点相关性的划痕修复算法
基于FAST角点检测算法上对Y型与X型角点的检测
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
基于边缘的角点分类和描述算法
基于圆环模板的改进Harris角点检测算法
汉字艺术结构解析(二)中心点处笔画应紧奏
寻找视觉中心点