图像局部信息的角点分类描述

2019-04-12 07:01唐雪松黄文成
现代计算机 2019年7期
关键词:角点对角灰度

唐雪松,黄文成

(西华大学计算机与软件工程学院,成都610093)

0 引言

数字图像处理中,图像特征匹配是计算机视觉中一个关键问题,在三维重建、目标识别、目标跟踪等应用中有这重要意义。角点作为图像中信息含量较高的特征点,在图像匹配中被广泛使用。现有角点检查算法大致可分为两类:基于图像灰度信息的角点检测算法、基于图像边缘的角点检测算法。

基于灰度信息的角点检测主要通过定义一个CRF函数判断像素点是否是角点。最著名的算法有:Moravec[1]、Harris[2]、SUSAN[3]、FAST[4]等。这 类 算 法 的CRF 函数通过图像灰度、灰度一阶导数、二阶导数来获取,对图像细节和噪声比较敏感。基于边缘轮廓的方法主要是通过分析图像边缘形状来检测角点。CSS[5]在大尺度下检测角点,并用从大到小的尺度来提高角点定位精度。该算法获得良好的角点检测效果,存在的问题在于如何选择合适的高斯尺度以及角点的阈值。在CSS 基础上,He 和Yung[6]提出了一种使用自适应曲率阈值和动态支撑区域的检测器。Mohannad 和Lu 提出了利用弦到点的距离累加算法CPDA[7],CPDA 具有较高的可重复性和较低的定位误差,之后又提出了CP⁃DA 的快速算法[8]。但CPDA 有一个缺点是估计拐角的曲率值与角度可能不成正比。JRyu[9]在基于Harris 算法检测角点的基础上对角点进行分类,将角点划分为简单角和高级角。Shui 和Zhang[10]等人在检测角点同时,根据角点的归一化各向异性方向倒数对角点进行分类,将角点分为简单角,Y 型角和星型角。Gao[11]引入了边缘方向描述,对角点边缘方向进行二进制编码,填充了角点信息,但未包含角内信息。

现有的角点检测算法大多数都只关注角点位置,而忽略角邻域局部信息,因此,针对角点分类是势在必行的。文献[9-11]虽对角点进行分类,但分类简单,只有几种角点类型,且同类型的角点差异角大,此外,并未包含角点邻域信息。本文在此基础上进行改进,根据边缘方向对角点进行分区,从而避免了文献中同类型角差异较大的问题;在每个角的局部范围中提取信息,根据边缘方向标记获取角标记,提取每个标记角中像素点灰度,丰富角点描述,弥补文献中约束不足。

1 CSS角点检测算法

Mokhtarian 和Suomela 提取出CSS 基于曲率尺度空间的角点检测算法。该算法定义边缘轮廓上曲率极大值点为角点。算法主要步骤如下:

(1)使用Canny 算子检测图像边缘。

(2)计算不同尺度下边缘曲线的曲率。

(3)在高尺度下选取局部曲率极值点作为候选点。

(4)逐渐减小尺度,在多个低尺度上跟踪定位角点。

通常曲率极大值位于边缘轮廓的交叉处,因此,CSS 算法提取的角点位于边缘轮廓交点,具有良好的定位性,可为角点分类提供先前条件,因此,本文使用CSS 算法检测角点。

2 角点分区与角点语义描述

2.1 边缘方向计算

基于边缘的角点检测首先是获取图像边缘轮廓,Canny 边缘检测获取图像轮廓时,可用Sobel 算子与图像做卷积,产生梯度水平分量Gx和垂直分量Gy,由此可获得边缘方向。如边缘像素点p,水平分量Gx,垂直分量Gy,则p 点边缘方向为:

2.2 角度与灰度分区

为克服文献[9-11]中角点分类过于简单的问题,提取角点分区的概率。绕角点一圈是360 度,为更准确地描述角点方向,将角点一圈均分为36 份,形成36 个分区,每个分区为10 度,如图1。为保持边缘方向与分区的近似性,便于计算各个边缘角的大小,以水平方向为分区起始方向,逆时针排序。

分区后,根据角点边缘分布情况,对边缘方向进行标记,边缘位于第几个分区,边缘方向标记数为几(如图2 中,第二分区中存在一条边缘,边缘标记为2)。边缘标记不仅可以描述边缘方向,还为计算边缘角提供先前条件,以最小边缘标记数为起点,找到第二小的边缘标记数,以此边缘形成第一个标记角,角标记数为两个边缘标记数差的绝对值(如第一标记角的标记数为12-2=10)。以第二小的边缘标记数为起点寻找第二个标记角(如第二标记角的标记数为12),直到最大边缘标记数。当边缘标记最大值为起点时,确定最后标记角的标记数,此角可看成最小标记边缘与最大标记边缘逆时针形成的角的补角,因此最后标记角的标记数为[36-(最大标记边的标记数-最小标记边的标记数)](如第四标记角的标记数5)。

图2 边缘、角点标记图

类似边缘分区,可对灰度进行分区,将256 个灰度值分为64 个分区,每个分区占4 个灰度值。为获取角内灰度,取角内包含完整的每个分区中角点邻域离角点最近的10 个像素点灰度分区数,取边缘所在分区角内侧方向角点邻域离角点最佳的5 个像素灰度分区数,所有像素灰度分区数的均值作为标记角的灰度分区数值(如图2 中,第一标记角包含2~12 分区,角内灰度由3~11 分区各自提供10 个像素灰度,第2 和第12分区内侧各自提供5 个像素灰度,其灰度分区为包含分区总和的均值)。

2.3 角点分类的语义描述

经过分区的分类,对角点有了清晰认识,即可对角点进行语义描述。

图3 角点语义描述图

角点的语义描述包含角点附近边缘信息,角度信息,角内灰度信息,360 度全方位数字化描述角点,增强了角点约束,具有高度的定位性和区分性。

3 实验结果分析

本文先使用CSS 算法提取角点,获取角点后,对角点进行筛选,排除包含弱边缘的角点,保留强边缘的角点。图4 中,图(a)为CSS 算法提取的角点图像,其他包含85 个角点,图(b)为保留的强角点其中包含44 个角点。

图(c)为两幅图在不同尺度下的强角点使用本文描述子的匹配图,其中强角点匹配完全正确,实验结果证明了本文方法的有效性与准确性。

4 结语

对角点进行分区,更好地利用了图像边缘信息,克服了文献[9-11]中同类型角有所差异却不能识别的问题。引入角点局部信息包含角点边缘信息、角自身信息、角内信息,对角点有更加全面的认识,并进行语义描述,把复杂的信息转化为简单的数字信息,强约束条件并简化了表达方式,使得同类型的角点可以准确快速地匹配。

图4 角点与匹配

猜你喜欢
角点对角灰度
航空滤光片阵列多光谱图像条带灰度调整算法
一种改进的自适应FAST 角点检测算法
采用改进导重法的拓扑结构灰度单元过滤技术
广义α-双链对角占优矩阵线性互补问题误差界的最优值
多支撑区域模式化融合角点检测算法仿真
基于点云聚类的垛型角点检测方法
天津港智慧工作平台灰度发布系统和流程设计
Arduino小车巡线程序的灰度阈值优化方案
角点检测技术综述①
会变形的忍者飞镖