角点检测方法研究

2024-10-23

角点检测方法研究(共7篇)

角点检测方法研究 篇1

0 引言

任何一个物体都包含有很多特征,其主要特征有交汇特征、钝度、内角、方向、锐化度、对比度,通过它们能提取该物体的大量有用信息。对物体的图像进行处理时,各种特征的像素点总数要少得多,它们在保留了图像中物体的重要特征信息的同时有效地减少了信息的数据量,使得对图像处理时运算量大大减少。角点是二维图像亮度变化剧烈的点或图像边缘曲线上曲率极大值的点[1]。角点是图像的一个重要局部特征,它集中了图像上的很多重要的形状信息来反映图像的局部特征,能够更可靠地匹配图像。角点具有如此丰富的特征信息,使其在保留图像图形重要特征的同时有效地减少信息的数据量,提高了计算的运算速度,有利于图像的可靠匹配,使得实时处理成为可能。由于角点具有旋转不变性,因此角点几乎不受光照条件的影响,其在三位场景重建、运动估计、目标跟踪、目标识别、图像配准与匹配等计算机视觉领域起着非常重要的作用。

角点检测的方法多种多样,但大致上可以分为4类:基于边缘特征的角点检测、基于灰度图像的角点检测、基于二值图像的角点检测和数学形态学。在本文中,详细阐述了这4种角点检测方法,并对不同方法逐一进行归纳分析,针对这些角点检测算法存在的问题,指出了今后角点检测技术的研究方向和发展趋势。

1 角点检测的评价准则

因为角点本身的含义就比较模糊,所以在有关的文献中,涌现出很多种角点检测方法。但是至今还没有一种定量的评价准则来评价这些方法的优劣,导致没有很好的依据来选择和改进这些角点检测方法。

文献[2]总结出一套评价角点检测方法定性的和定量的4条准则:①稳定性准则:假设在摄像机不动的前提下,任意采集两帧图像并提取其中的角点,如果检测到的角点位置都不变,称算法是“绝对”稳定的;②可靠性准则:改变算法中用到的所有可变参数,如果不影响生成角点的质量,只影响生成角点的数目,称算法是“绝对”可靠的;③抗噪性能准则:用抗噪声系数来衡量;④复杂性准则:就是算法的运行速度、复杂性要满足实时任务的需要。

在实际应用中,还经常使用的度量参数有:成功率、时间复杂度(对一幅图像完成角点检测所需要的时间)和定位的准确性(通过比较已知的准确角点位置与实际测得的角点位置)。

2 角点检测法研究现状

2.1 基于边缘特征的角点检测

2.1.1 基于边界链码的角点检测

这一类方法需要对图像进行预处理,主要分为3个步骤:首先,对图像进行预分割;然后对预分割后得到的图像的边界轮廓点进行顺序编码,得到边缘轮廓链码;最后,根据边缘轮廓链码对图像中的角点进行描述和提取。如Cooper[3]利用链码处像素坐标估计最大曲率值来寻找角点;Ponce and Brady[4]利用图像对x、y的偏导数来寻求角点;Hsin-teng and Hu[5]则使用多边形近似边界链,然后把两边的交点作为角点。这类方法由于依赖于图像分割及边缘检测的效果,而且图像分割复杂,计算量大,不适于实时处理。

2.1.2 基于小波变换的角点检测

小波变换的角点检测算法的大致过程是:先用边缘检测提取出目标边缘,将计算目标在不同尺度下进行小波变换,并将在多尺度都出现模极大值的角点选择为候选角点,然后通过设定的相应的阈值剔除伪角点,从而留下真正的角点[6]。

2.1.3 基于尺度空间的角点检测

Witkin[7]和Koenderink[8]提出基于尺度空间的图像分析,Mokhtarian和Suomela基于尺度空间(Curvature Seale Space,CSS)描述提出一种新的角点检测算法。他们使用carmy检测器从原始图像中检测边缘,先使用高尺度得到候选角点,然后逐步减少尺度,在多个低尺度处跟踪改善角点位置的方法提高角点检测的精度。为了降低角点检测过程中对噪声的敏感性,Bital和Ray提出了一种基于多尺度滤波的角点检测方法[9],其思想是使用大小不同的高斯窗口对边界进行卷积运算,然后计算各边界点曲率值,并查询极值点,从而确定角点的位置。针对图像中相同特征点由于离场景的距离不同而具有不同的尺度,Olson提出使用立体相机来估计场景距离,并根据不同的距离对各个特征采用不同的尺度进行滤波来进行角点检测。

2.2 基于灰度图像的角点检测

2.2.1 基于模板的角点检测算法[10]

基于模板的角点检测,一般首先建立一系列具有不同角度的角点模板,然后在一定的窗口内比较待检测图像与标准模板之间的类似程度,以此来检测图像中的角点。在图像处理中模板匹配算法是一种比较成熟的技术,其角点检测的原理是确定一个给定的n×n模板与图像的所有n×n区域的相关性和相似性。理想情况下,这套模板能够检测出所有角点,但是因为角点结构的复杂性,模板不可能覆盖所有方向的角点,此外,这一类角点检测方法计算量大且比较复杂。

2.2.2 基于几何特征的角点检测算法

2.2.2.1 基于像素微分几何特征的角点检测算法

Kitchen和Rosenfeld[11]提出了基于局部梯度幅值和边界上梯度方向改变率的角点检测算法,但他们的角点检测算法使用了图像亮度二阶导数,对噪声敏感,并且不能用于类似x、y和T类型的二维特征。Smith和Brady[12]提出了一种基于表面曲率的角点检测算法。为了改善角点检测的稳定性,首先将图像与高斯滤波器卷积,然后计算整个图像的表面曲率,当曲率高于一定阀值,并为局部最大值的点时被认为是候选角点,这种算法性能满足实时算法的需求,可用于运动估计的实时角点检测。Beaudet[13]基于Hessian矩阵提出了一种循环不变量的角点检测算法,称为DET算法,他认为可以门限化这个算子的极大值进行角点检测,但这种算法不能精确定位角点位置。

2.2.2.2 自相关角点检测算法

这类算子不同于一般角点的直观定义,认为与领域有较大的亮度差,或者其局部自相关亮度值较大的像素点为角点。

Harris[14]角点检测算法由Chris Harris和Stepthens在1988年提出,这种算法首先要研究Moravec角点检测算子。Moravec角点检测算子是研究图像中的一个局部窗口在不同方向进行少量的偏移后,窗口内的图像亮度值的平均变化。需要考虑如下3种情况:①假如窗口内的图像块的亮度值是恒定的,那么所有不同方向的偏移仅导致一个小的变化;②假如窗口跨越一条边,那么沿着边的偏移将导致一个小的变化,但是与边垂直的偏移将导致一个大的变化;③假如窗口块包含角点或者是一个孤立的点,那么所有不同方向的偏移将导致一个大的变化。因此,定义由任意方向的偏移而引起的最小变化值大于某一个特定值的那个点是角点。

1997年英国牛津大学的Smith[12]等人提出了一种低层次图像处理小核值相似区的方法(即Small Univalue Segment Assimilating Nucleus,简称SUSAN算法)。这种检测方法有一个突出的优点就是对局部噪声不敏感,抗噪能力强。这是由于特征检测原则不依赖于前期图像分割的结果,并避免了梯度计算,另外,区域是由模板内与模板中心像素灰度具有相似灰度的像素累加而得,这实际上是一个积分的过程,对于高斯噪声有很好的抑制作用。通过大量的实验证明,该算法对低层次图像处理有较好的适用性和可靠性。

Trajkovic[15]等人提出了最小亮度变化(Minimum Intensity Change,简称MIC)快速角点检测算法。该算法借用了SUSAN中的USAN的定义。假设通过核心点的任意一条直线,它与该圆形窗口有2个交点P和P′,定义如下的角点响应函数:

RN=min((fP-fN)2+(fP′+fN′)2) 。 (1)

其中:N为核心点;fP为图像在P点处的灰度值;fN为图像在N点处的灰度值;fP′为图像在P′点处的灰度值;fN′为图像在N′处的灰度值。因此,MIC角点检测算法检测角点的基本原理就是在规定的圆形窗口内寻找最小的亮度变化,也就是RN值。如果这个值大于某一个门限值,则认为它是角点,否则不是角点。这种算法精度高、稳定性好、对噪声具有鲁棒性且计算迅速。但仍有不足,如图像的量化结果、插值不能达到很好的效果,致使有些边缘点和角点区分不出来;不用大的模板进行角点响应函数运算会遗漏很多角点,但对于对比度比较明显的边缘,使用大的模板又会造成角点定位的不够准确。

2.3 基于二值图像的角点检测

刘文予等人[16]提出一种基于形态骨架的角点检测方法。该方法将原始图像看作一个多边形,则多边形的角点一定在骨架的延长线上,且角点所对应的骨架点的最大圆盘半径应该趋于0,检测骨架中的最大圆盘为0的点,即为角点。因为在二值图像阶段处理,计算量并不是很大,所以保证了计算的实时性。应该指出的是,虽然将二值图像作为一个单独的检测目标列出来,但是基于灰度图像的各种处理方法对此仍然有效。二值图像处于灰度和边缘轮廓图像的中间步骤,所以专门针对此类图像的角点检测方法并不多见。

2.4 数学形态学

数学形态学是一门新兴的、以形态为基础对图像进行分析的科学,以严格的数学和几何学为基础,着重研究图像的几何性质和相互关系,它算法简单、可并行处理、速度快、易于硬件实现,已得到了人们的广泛关注,并用于解决边缘检测、噪声抑制、特征提取等问题。它的主要内容是设计一整套变换(运算)、概念和算法,用以描述图像的基本特征。Noble[17]建议了一种数学形态学的角点检测方法,针对图像A和B,利用形态运算A-AoB来检测凸型角点,利用AgB-A来检测凹型角点(其中AoB为开运算,AgB为闭运算)。但这种方法检测的角点不仅包括角点本身还包括角点附近的点,所以定位精度差。

3 结论

本文对现有的角点检测方法进行了分类概述,重点讨论了自相关的角点检测算法。但经过以上分析,不难看出这些算法还存在很多不足之处:有些是定位精度差,有些是抗噪声能力不强,有些是可靠性差。这些算法往往只考虑角点的位置特征而忽视了角点的其它特征,这是造成角点检测算法中对角点误检、漏检、多检的重要原因之一。正是因为角点具有如此丰富的特征信息,因此在今后的研究中,不但考虑角点的位置特征、同时考虑角点其它特征的角点检测方法是其研究趋势和发展方向。

摘要:角点是图像的一个重要局部特征,它决定了图像中目标的形状,因此在图像匹配、目标描述与识别及运动估计、目标跟踪等领域,角点提取都具有重要的意义。根据实现方法的不同可将角点检测分为基于边缘特征的角点检测、基于灰度图像的角点检测、基于二值图像的角点检测和数学形态学4类。详细阐述了这几种角点检测方法,并对不同方法逐一进行归纳分析,在最后指出了今后角点检测技术的研究方向和发展趋势。

关键词:角点检测,特征提取,边缘特征,灰度图像

角点检测方法研究 篇2

关键词:角点检测,多尺度,非极大值抑制

0 引 言

在计算机视觉、图像处理和机器视觉中, 特征提取都是一个重要的方向, 而角点又是图像的一个局部特征, 它决定了图像中目标的形状。因此在图像匹配、目标描述与识别、运动估计、目标跟踪等领域, 角点提取都具有重要的意义。在计算机视觉和图像处理中, 对角点的定义有不同的描述, 如:图像边界上曲率足够高的点;图像边界上曲率变化明显的点;图像边界方向变化不连续的点;图像中梯度值和梯度变化都很明显的点等等。由于定义的不同, 角点检测的方法也多种多样, 大致可以将它们分为两类:一类是首先进行边缘提取, 然后再进行角点提取, 如Kitchen法[1];另一类是直接在灰度图像中提取角点特征, 如Susan法[2]、Harris法[3]等。

C.Schmid等[4]报道, Harris角点提取方法是目前效果最好的, 它不受摄像机姿态及光照的影响。然而, 实际图像中的特征角点常常发生在不同的尺度范围上, 并且每一角点的尺度信息是未知的。一般认为在较大尺度下能较可靠地消除误检和检测到真正的角点, 但角点不易准确定位。相反, 在较小尺度下对真正的特征角点的定位比较准确, 但误检的比例会增加。

因此, 作者提出一种将多尺度思想与经典Harris角点检测算子相结合的多尺度角点检测方法, 该方法利用多尺度技术检测角点, 通过有效组合在多个不同尺度下检测到的角点信息, 剔除伪角点, 提高角点定位精度。

1Harris 角点检测原理及多尺度角点检测算法

1.1 Harris 角点检测原理

Harris算子是C.Harris和M.J.Stephens在1988年提出的一种基于信号的点特征提取算子。这种算子受信号处理中自相关函数的启发, 给出与自相关系数相联系的矩阵M, M矩阵的特征值是自相关函数的一阶曲率, 如果两个曲率值都高, 那么认为该点是角点。

Μ=G (σ) [ (Ιx) 2 (Ιx) (Ιy) (Ιx) (Ιy) (Ιx) 2] (1)

式中, Ιxx方向的一阶导数, Ιyy方向的一阶导数, G (σ) 为高斯函数。为了避免特征值计算, 实际的角点响应函数为:fresp (x, y) =Det (M) -k·Trace2 (M) , 其中Det为矩阵的行列式, Trace为矩阵的迹, k为参数, Plessey建议取k=0.04-0.06。当某点的Harris算子角点响应函数fresp值大于设定阈值T时, 该点为角点。

Harris算子是一种有效的点特征提取算子, 其优点总结起来有几个方面[5]: (1) 计算简单:Haris算子中只用到灰度的一阶差分以及滤波, 操作简单; (2) 提取的点特征均匀而且合理:Haris算子对图像中的每个点都计算其兴趣值, 然后在邻域中选择最优点。实验表明, 在纹理信息丰富的区域, Haris算子可以提取出大量有用的特征点, 而在纹理信息少的区域, 提取的特征点则较少; (3) 可以定量地提取特征点:Haris算子最后一步是对所有的局部极值点进行排序, 所以可以根据需要提取一定数量的最优点; (4) 稳定:Harris算子即使存在有图像的旋转、灰度的变化、噪音影响和视点的变换, 它也是最稳定的一种点特征提取算子, 因为它的计算公式中只涉及到一阶导数。

虽然Harris角点检测是一种经典的角点检测算法, 但仍然存在以下不足[6]:算法只能在单一尺度下检测角点, 这样在对角点度量执行非极大值抑制, 确定局部极大值时, 角点提取的效果就完全依赖于阈值的设定。阈值大会丢失角点信息, 阈值小又会提取出伪角点。因而, 尺度功能的缺乏使Harris角点检测定位精度较差。同时还可能漏掉一些实际的角点, 对噪声也比较敏感。

鉴于Harris角点检测算法存在的不足, 本文把多尺度理论的思想引入到该算法中, 使得Harris算法具有多尺度检测角点的特性。我们设置了一个从小到大的尺度范围, 便于将图像转换到不同尺度空间, 在小尺度能够获得图像的详细特征信息, 产生的角点定位精确, 在大的尺度, 能够获得图像粗略的结构信息, 能产生大量角点, 但定位精度不高, 易受噪声影响。因此本方法能够提取不同尺度下的角点信息, 同时因为提取的是不同尺度下的角点, 所以可以根据高斯核的尺寸来设置非极大值抑制窗口的尺寸。

1.2 多尺度角点检测算法

本算法用图像中可能存在的角点数n0来代替各个尺度下的阈值T, 这样就不必在每一尺度下手动调整阈值, 多尺度Harris角点检测的具体步骤如下:

Step1 计算不同尺度处的角点度量, 尺度的变化按照高斯窗的标准偏差σi=0.5:5, 步长为0.5, 也即i=1:10, 计算以下公式, 形成不同尺度下的M矩阵:

Lx2 (σi) =G (σi) ⨂ (Ix) 2

Ly2 (σi) =G (σi) ⨂ (Iy) 2 (2)

Lxy (σi) =G (σi) ⨂ (Ix·Iy)

Μ (σi) =[Lx2 (σi) Lxy (σi) Lxy (σi) Ly2 (σi) ] (3)

其中, Ix, Iy分别是图像在x, y方向的一阶偏导, G (σi) 是高斯函数, M (σi) 是尺度σi处的M矩阵, 然后用下式计算在尺度σi处的Hariss角点响应函数R (σi) :

R (σi) =Lx2 (σi) Ly2 (σi) - (Lxy (σi) ) 2Lx2 (σi) +Ly2 (σi) (4)

当分母趋于0时, 取其极限值。

Step2 在每一尺度, 采用非极大抑制法抑制多响应的影响, 非极大抑制窗的尺寸和高斯核的一致, 将R (σi) 的值按照降序排列, 将每一尺度下的第一组n0个值作为候选角点。

Step3 从第二个尺度开始到最大尺度, 查找是否有当前尺度下的候选点在前一尺度中出现, 如果没有, 保留此点;如果有, 剔除。这一步保证了在尽量小的尺度下提取角点, 提高了角点的定位精度。

Step4 累积从第三步得出的全部角点就是最后结果。

新的Harris多尺度角点检测方法获取了多个尺度下的角点信息, 不需要在每一尺度下手工设置阈值, 减小了阈值设定对角点提取的制约。通常, 小尺度参数的检测算子能够检测出灰度的细微变化, 反映更多的奇异点信息, 但对噪声较为敏感;而大尺度参数的检测算子能够检测出灰度的粗略变化, 反映变化剧烈的奇异点, 对噪声具有较强的抑制。因而多尺度Harris角点检测实现了小尺度下的精确定位和大尺度下的去伪存真。

2 实验结果与分析

在本试验中, 我们用Matlab 6.1 在奔腾Ⅳ 1.7GHz、256M内存、操作系统为Windows XP的微机上编程, 分别选用了Kitchen算法、SUSAN算法、Harris算法以及本文提出的MHCD算法对图1所示的两幅图像进行角点检测和评估, 评估方法采用文献[7]的方法, 结果见表1、表2。

图1中 (a) 为数码相机拍摄的国际象棋盘图像; (b) 为用计算机生成的合成图像。实验中各参数设置为:Harris算子中取高斯低通滤波器的模板的大小为4×4, 标准差1, 兴趣值阈值30000, 非极大值抑制邻域半径radius=2, SUSAN算子中取自适应阈值[8], 模板大小为7×7。在用MHCD算法检测图1中图像 (a) 、 (b) 中角点时为分别设n0=73和n0=30。

(a) 国际象棋盘图像 (b) 计算机生成的图像

表1、表2中, 包括正确检测到的角点个数、未检测到的角点个数、虚假检测到的角点个数、重复检测到的角点个数。如果检测到的角点与参考图像相应的角点之间的距离小于4个像素, 则认为是正确检测, 否则认为是未检测到;参考图像中无角点的像素附近检测出有角点, 被认为是虚假检测;对应参考图像某角点附近被检测到多个角点, 距离最小的 (且小于4个像素) 那个认为是正确检测, 其余的为重复检测。另外, 为了进一步比较, 我们用以下3个参数来评定算法:

1) 总误差:未检测到的角点数、虚假检测到的角点数、重复检测到的角点数各项之和;

2) 错误率:总误差与总角点数之比;

3) 匹配程度:匹配的角点数 (即正确检测到的角点数) 与参考图像中总角点数之比。

从表1、表2可以看出, MHCD算法检测的总误差最小、错误率最低, 且匹配程度比原Harris算子显著提高。

3 结 论

利用多尺度思想将Harris角点函数变换成多尺度的表示形式, 从而检测出多个尺度水平上的特征点, 且不必手工设置每一尺度下的阈值, 减小了阈值设定对角点提取的制约, 因而多尺度Harris角点检测实现了小尺度下的精确定位和大尺度下的去伪存真, 克服了单一尺度的Harris角点检测可能存在的角点信息丢失、位置偏移和易受噪而提取出伪角点等问题。实验证明了本方法的正确性和有效性。

参考文献

[1]Kitchen L, Rosenfeld A.Gray Level Comer Detection[J].Pattern Recognition Letters, 1982, 3 (1) :95-102.

[2]Smith S M, Brady M.SUSAN-ANewApproach to LowLevel Image Process-ing[J].International Journal of Computer Vision, 1997, 23 (1) :45-78.

[3]Harris C, Stephens M.A Combined Comer and Edge Detector[C].Manchester:Proceedings of the4th Alvey Vision Conference.1988:147-152.

[4]Schmid C, Mohr R, Bauckhage C.Evaluation of Interest Point Detec-tors[J].International Journal of Computer Vision, 2000, 37 (2) :151-172.

[5]刘玉斌.一种分阶段的高精度亚像素特征点提取方法[J].南华大学学报:自然科学版, 2006, 20 (2) :54-57.

[6]Babaud J, Witkin AP, Baudin M, et a1.Uniqueness of the Gaussian Kernel for Scale-space Filtering[J].IEEE Transactions on Pattern A-nalysis and Machine Intelligence, 1986, 8 (1) :26-33.

[7]李玲玲, 李印清.图像配准中角点检测算法的研究与比较[J].郑州航空工业管理学院学报:社会科学版, 2006, 25 (2) :190-192.

基于图像轮廓的一种角点检测方法 篇3

1 角点测度和算法步骤

与基于梯度的方法不同, 基于轮廓的方法是在离散平面曲线上操作的, 不需要考虑其他灰度信息, 以避免过多灰度变化产生的干扰。

从图像的边缘映射提取完整的轮廓, 定义为:

其中, PN=[xN, yN]T表示第N个轮廓上的像素。每条轮廓上的像素点有8 个领域, 对应8 个方向。采用8 个方向的Gabor滤波器虚部与图像卷积得到图像8 个方向的梯度幅值响应:

则每个像素点对应的最大梯度方向及主方向定义如下:

轮廓线上边缘点的角点测度定义为沿轮廓线, 位于该边缘像素点两侧最近的两个边缘像素点的主方向角度差。

将该角度差作为提取候选角点的测度, 与预先设定的门限比较, 大于门限则判定为候选角点, 否则不予处理。

基于以上内容, 下面给出算法的基本步骤:

(1) Canny边缘轮廓检测器提取图像边缘映射。

(2) 利用多边形近似来改善边缘并填充边缘空隙得到封闭的轮廓。

(3) 利用Gabor滤波器平滑轮廓, 通过计算像素主方向与相邻像素方向角度之差。

(4) 将差值与预先设定的阈值比较, 得到候选角点。

(5) 在5×5 领域内, 对候选角点采取非极大值抑制, 提取角点。

2 实验结果与性能评估

为了验证所提算法的可行性, 采用以下15 幅图像 (如图1 所示) , 分别用CSS、CPDA、He&Yung与本文算法进行比较评估。

为了对提出的算法和其他检测算法做性能比较, 采用基于在旋转变换和高斯噪声下的平均重复率和定位误差评价角点的检测性能。当检测到原图像与变换后的图像的角点距离小于等于4 个像素时, 认为它们是重复的, 否则不重复。平均重复率定义为:

其中, Nt和N0分别表示算法对经旋转变换后图像和初始图像的检测角点数, Nr表示两者的重复角点数。定位误差定义为:

其中, 为重复点之间的距离。图2 给出了本文算法与其他三种算法的比较结果。从图中可以看出, 本文算法在检测准确率和定位性能方面优于其他三种方法。

3 结语

本算法结合图像的边缘映射与主方向角度差, 提高了基于边缘提取交点算法的噪声鲁棒性, 且利用Gabor滤波器获取多个方向丰富的灰度强度变化信息, 利用边缘映射上像素及其周围像素最大梯度方向对应的信息熵提取角点, 提高了角点检测的定位准确性。

参考文献

[1]C.Harris, M.Stephens.A Combined Corner and Edge Detector[C].Proceedings of the 4th Alvey Vision Conference, 1988:147-151.

[2]J.A.Noble.Finding Corners[J].Image&Vision Computing, 1988 (2) :121-128.

[3]X.Gao, F.Sattar, R.Venkateswarlu.Multiscale Corner Detection of Gray Level Images Based on Log-Gabor Wavelet Transform[J].Circuits Syst.Video Technol, 2007 (7) :868-875.

[4]F.Mokhtarian, R.Suomela.Robust Image Corner Detection Through Curvature Scale Space[J].Pattern Analysis&Machine Intelligence, 1998 (12) :1376-1381.

角点检测方法研究 篇4

目前角点检测方法通常基于图像灰度信息, 这种方法主要通过测算点的曲率及梯度来检测角点。此类方法应用最广泛的是Harris算法[4], 通过计算像素点所在位置的梯度来检测角点。实验结果表明, Harris角点检测法具有良好的检测效果, 但该算法对图像中的每个点都计算其响应值, 然后在邻域中选择最优点, 计算量大, 难以满足实时性要求。而Edward Rosten and Tom Drummond提出的FAST角点检测法实时性好, 但对边缘易产生伪响应。同时传统的检测算法处理不同图片, 需要人为给出一个经验阈值才能得到较理想的角点。

本文结合Harris算法和FAST算法的优势, 提出了一种快速自适应Harris角点检测算法。该方法能有效地自适应提取角点, 并满足实时性要求。

1 Harris算法原理

Harris角点检测算法[5,6,7,8]是C.Harris和MJ.Stephens提出的, 是Moravec算法的改进。Moravec算法将像素点周边的一个邻域作为一个图像块, 并检测这个图像块经过少量偏移和原图像块的相关性。如图1所示, 假设像素点 (x, y) 的灰度值为f (x, y) , 则图像中每个像素点 (x, y) 移动 (a, b) 后, 灰度变化强度表示为

式中: (a, b) 可以取 (0, 1) , (-1, 1) , (-1, 0) , (-1, -1) , (0, -1) , (1, -1) , (1, 0) , (1, 1) 这8个基本方向。于是可以得到8个灰度变化强度值。将8个值中最小的值作为该像素点的角点像素变化值。求出每一个像素点的角点像素变化值, 在局部图像块中, 该值最大的点为角点。

可以发现, Moravec角点检测算法有几个很明显的缺陷:

1) 由于窗口是方形, 并且是二元的, 因此响应函数会有噪声;

2) 自相关强度值的计算, 只有离散的8个45°方向。

Harris角点检测算法针对些缺陷做出以下改进:

1) 用像素的变化梯度代替像素值相减, 并引入高斯窗函数 (见图2) 代替二值窗口函数, 对离中心点越近的像素赋于越大的权重, 以减少噪声影响。

2) Moravec算子只考虑了每隔45°方向的共计8个固定的方向。Harris算子用Taylor展开去近似任意方向, 可以计算任意方向上的像素值变化。于是对于局部微小的移动量[u, v], 可以近似得到下面的表达

写成矩阵形式

式中:Ix为x方向的差分;Iy为y方向的差分;w (x, y) 为高斯函数。

在完善了Moravec算法的缺陷后, Harris定义角点响应函数R=det M-k (trace M) 2来确定像素点是否角点。其中det M=λ1×λ2, trace M=λ1+λ2, k取 (0.04~0.06) 。

在图像中, 像素点可分为3种类型:平坦区域的像素点, 物体边缘的像素点, 角点。它们分别有着不同的特性, 如图3所示。

结合R=det M-k (trace M) 2, 可知:1) 平坦区域, λ1, λ2都很小;2) 边缘的点, λ1, λ2中一个值大, 另外一个值小;3) 角点:λ1, λ2都比较大 (见图4) 。

显而易见, Harris算法将遍历图像中的每一个像素点, 求其角点响应函数R, R的值越大, 对应的2个特征值λ1, λ2都应该很大, 最后对整幅图像得到的R做一个非极大抑制。通过设置R的阈值, 在w×w范围内寻找极大值点, 对提取的角点个数进行限制。则在图像中, 同时满足像素点R值大于阈值T和其R值在w×w邻城内是局部极大值这两个条件的点被视为是角点。

2 Harris角点检测算法的局限

Harris角点检测法具有良好的检测效果, 但是依然存在以下不足:

1) Harris角点检测算法采用7×7的矩形高斯窗口, 且对图像中的每个点都计算其角点响应R值, 然后在邻域中选择最优点。一张w×h图像, 共需进行w×h次角点响应R值计算和阈值比较。在处理大分辨率图像时, 该算法检测时间将会大幅上升, 难以满足实时性要求。

2) Harris算法虽然利用非极大值抑制, 但角点提取的效果完全依赖于阈值的设定。当阈值过大的时候, 两个像素点灰度值相差很大才能成为角点, 从而丢失了很多应有的角点;而当阈值过小的时候, 灰度值相差较小的两个区域点也可满足阈值条件, 就产生了大量的伪角点。在处理不同图像时, 需要人为改变阈值, Harris角点检测算法才能得到较理想的角点。

3 基于预筛选及自适应阈值的Harris角点检测算法

针对以上两个问题, 本文引入预筛选以及自适应阈值的概念, 具体流程图如图5所示。

3.1 预筛选

在处理图片时先提取一批初选角点, 然后再对提取出的初选角点进行Harris角点检测。根据流程图, 虽然在计算角点响应值前增加了预筛选的过程, 但预筛选后, 留下来的待处理像素点数目远远小于图像的所有像素点数目, 如此将大幅缩短运算时间, 提高角点检测的效率。

改进的算法思想是利用像素点的相似度来提取初选角点。像素点的相似度将指检测窗口中心点灰度值与其周围n邻域内其他像素点灰度值的相似程度, 这种相似程度是用两者灰度值之差来描述。如果邻域内点的灰度值与中心点Point (i, j) 的灰度值之差的绝对值在一个阈值t范围内, 则认为这个点与中心点是相似的。同时, 计数器Counter开始计数。在中心点Point (i, j) 点的n邻域点全部被遍历一边之后, 根据计数器Counter的大小, 就可以判断这个中心点是否是初选角点。

改进的算法将使用FAST角点检测算法来考量像素点的相似度。FAST角点检测算法是Edward Rosten和Tom Drummond在2006年提出的一种简单快速的角点探测算法。该算法将角点定义为在角点的周围邻域内有足够多的像素点的灰度值大于该点的灰度值或者小于该点的灰度值。

图6中p点附近半径为3的圆环上有16个点, 若其中有连续的12个点的灰度值与p点的灰度值差别超过某一阈值, 则可以认为p点为角点。通过预筛选的过程, 可以得到初选角点。然后再对这些初选角点进行Harris运算去除伪角点, 避免了对整幅图像进行扫描, 提高了角点检测的效率。

3.2 自适应阈值

对于某一幅特定的图片采用某个阈值会得到比较好的角点检测效果, 但将这个特定的阈值应用到其他图片上未必是最佳阈值。这就要求算法本身有能力计算出适合不同图片的阈值。

考虑到阈值是在提取角点时才会使用, 本文通过记录角点响应函数值R, 得出R的最大值Rmax, 不同图像的Rmax也不同。本文通过统计大量图片, 其中图片来源为创意素材库网 (http://sc.52design.com/) , 涵括人物、动物、风景、建筑等, 基本能代表现实中的各种图片。通过记录素材库中每张图片Rmax, 可以得到Rmax统计分布如图7所示。

分析得出:Rmax=p×108, 其中p>0, 定义阈值T=k×Rmax, 选取素材库中图片进行实验。发现当05时, 灰度值变化较大, k取经验值0.01。如此, 基本可以检测出所有角点, 并且伪角点比较少。可以得到

式中:p=Rmax/108。

4 实验结果及性能分析

选取若干分辨率不同的图像进行MATLAB仿真实验, 如图8所示。

1) 将利用FAST算法预筛选与原始Harris算法相比较, 结果如表1所示。

由表1可以发现:对于所采集的图像, 预筛选后, 后续需要遍历的像素点只占原算法像素点的10%左右, 遍历时间一般都能降低一半。从表中可以看出改进算法在处理大分辨率图像时, 优势更加明显。大大缩短了角点检测时间, 有利于在实时处理中的应用。

2) 为了对比采用自适应阈值算法与原算法的实际效果。选取两张不同的图片, 阈值T分别为2×106和5×106, 实际角点检测情况如图9和图10所示。

从图9和图10可以发现:同一个阈值在处理不同图片时, 检测效果差异很大。对于示例中左边图像, 灰度变化差异小, 需要选择相对小的阈值。示例中右边图像则相反。如果实践中发现检测效果不佳, 则需要人为设置阈值, 效率低下。采用自适应阈值算法后, 其阈值T是图像角点响应函数最大值的一个比值。这对于任意图像都设定了阈值比较基准, 可以得到较好的检测效果。

实际效果如图11所示。

通过计算初选角点的角点响应R值, 其中R=det M-k (trace M) 2, 可以得到Rmax。则图11中左边图例得到Rmax=0.402 5×108, 然后依据自适应阈值分段处理函数, 其中p=Rmax/108, 可以自动算出阈值T=1.61×106, 同理, 右边图例根据算法, Rmax=4.12×108, 自动给出阈值T=8.24×106, 实现了根据图像灰度变化强度算出阈值。

通过实验可以发现:基于Harris的快速自适应角点检测算法相比基于Harris角点检测算法能得到更多的正确角点, 同时抑制了伪角点的数目。避免了阈值选取不当导致的角点检测不准确, 且减少了大量校调阈值的工作。

5 结论

文中对Harris角点检测算法进行了分析, 并在此基础上改进了算法。通过使用FAST算法对图像进行预筛选, 提高算法的运行效率, 并采用了自适应阈值使算法能根据图像具体情况自动给出合理的阈值。对比改进的算法与原始算法, 新算法避免了阈值的选择, 有效地克服了阈值选择不当造成的角点冗余或丢失, 并大幅缩短运算时间。

参考文献

[1]SZELISKI R.Image alignment and stitching[EB/OL].[2013-01-20].http://research.microsoft.com/apps/pubs/default.aspxid=75695.

[2]SZELISKI R, KANG S B.Direct methods for visual scene reconstruction[C]//Proc.IEEE Workshop on Presentation of Visual Scenes.[S.l.]:IEEE Press, 1995:25-33.

[3]CANNY J.A computational approach to edge detection[C]//Proc.IEEE Trans.PAMI, 1996, 8 (6) :679-697.

[4]陈白帆.基于尺度空间理论的Harris角点检测[J].中南大学学报:自然科学版, 2005, 36 (5) :751-754.

[5]朱建尚.基于GPU的实时亚像素Harris角点检测[J].计算机工程, 2010, 36 (12) :213-215.

[6]蔡耀仪, 林海军.基于Harris角点检测的嵌入式稳像系统设计[J].电视技术, 2012, 36 (13) :12-16.

[7]倪乐真, 李玉山, 刘洋, 等.一种基于角点配对的稳像算法[J].电视技术, 2009, 33 (S2) :71-74.

改进的SUSAN角点检测算法 篇5

关键词:特征提取,SUSAN算法,能量分布,像素投影

0 引 言

在计算机视觉和图像处理中角点还没有明确的数学定义,存在多种数学描述方法。一般的角点定义为图像中灰度的剧烈变化点或是曲线曲率的极大值点[1,2]。角点包含了大量图像信息,但却减小了计算量[3,4],因而被广泛运用于图像识别、目标匹配、图像融合以及三维重建之中[5,6]。SUSAN (Smallest Univalue Segment Assimilating Nucleus)算法[7,8]是由Smith等人提出的一种底层图像处理方法。此算法简单,定位精度高,运算速度快,其不需要梯度运算的特点,使该算法有很好的抗噪声性能[9,10]。但SUSAN算法也存在一些不足,例如,当模板增大时,其运算量显著增加,同时它不能很好地去除伪角点。基于以上两点,这里提出一种变换模板的方法,解决在大模板下耗时的缺点;然后使用能量分布和像素投影的方法去除伪角点。

1 SUSAN算法及改进算法

1.1 传统SUSAN算法的基本原理

图1是传统SUSAN算法的原理图,a,b,c,d是圆形模板所在的四个位置,模板中心点称为“核”,在模板内把所有与核值相同或相似的像素所构成的区域叫作核值相似区(USAN)。当模板位于平坦区域a时,USAN面积最大;当模板位于角点b时,USAN面积最小;当模板位于边缘c时,USAN面积为模板总面积50%;当模板位于d时,USAN面积大于总面积的50%,由此可根据USAN面积大小来判断角点位置。

c(r,r0)={1|Ιi-Ι0|tp0|Ιi-Ι0|>tp(1)

检测时,模板在图上移动,在每个位置,用式(1)比较模板内各像素与核值的灰度。式(1)中:r0是模板核的位置;r是模板内其他点的位置;I0是模板核的灰度值;Ii是模板内其他像素的灰度值;tp是灰度阈值;c(r,r0)是灰度比较的结果。

t0=1Νi=0Νabs(Ιi-Ι0)(2)

式(1)中的灰度阈值tp决定了所能检测到的最低对比度以及去除噪声的能力,这里采用一种迭代的方法实现自动选取阈值。如式(2)所示,首先计算模板内各点与核的差值,再取这些差值的平均值t0作为迭代的初始值,其中N是模板内的像素个数。

ti+1=12[d=0ti[dn(d)]d=0tin(d)+d=ti+1cmax[dn(d)]d=ti+1cmaxn(d)](3)

按式(3)进行迭代。式(3)中,ti是迭代初值;ti+1是迭代值;d是模板内各点与核的灰度差;cmax是这些差值中的最大值;n(d)是模板内与核值的灰度差为d的点个数。

Farea(r0)=r=1Νc(r,r0)(4)

USAN的面积由式(4)给出,Farea(r0)是USAN的面积大小。通过判断Farea(r0)的值,便可判断此点是否是角点。

SUSAN检测算法中模板大小是固定的。实验表明,模板尺寸与检测结果密切相关。图2是不同尺寸方形模板检测结果对比,图2中加入了部分随机噪声。从图2可看出,模板越小,检测灵敏度越高;耗时越短,误检率越高;相反,大尺寸模板的检测准确度高,误检率低,但耗时更长。因此有必要寻找检测准确度高且耗时短的检测方法。

1.2 改进的SUSAN角点检测算法

变换模板检测方法结合了小模板检测灵敏度高,耗时短和大模板检测准确度高,误检率低的优势,从而可以满足上面的要求。变换模板方法的检测过程如下:首先用3×3的模板进行初检测,并记录下此时检测到的角点位置,然后再用9×9的模板对刚才记录下的初测角点位置进行精检测。这些初测角点只有在9×9模板下满足角点条件的才会被判定为特征点,这样就可以减少9×9模板检测的像素个数,减少了计算量, 从而缩减了检测时间。然而,实际中由于噪声的存在,经常会检测出伪角点,这需要去除。

首先分析一下伪角点产生的原因。图3是伪角点产生及能量分布法的原理图,图中颜色相同的方块表示其像素灰度相似。从图中可知,USAN的面积,即浅色方格的个数是20,其中不包括核。在文中判定是否是角点的条件:USAN的值介于模板总像素个数(不包括核)的1/4~1/2之间,因此图3中的核满足角点条件。产生误检的原因是USAN的像素分布不集中。

从图3抽象出如下方法,模板内与核值灰度相似的像素组成模板内的一高能量区,即USAN高能量区;相反,模板内与核值灰度差大于灰度阈值tp的像素,则组成模板内的另一个相对的低能量区。模板内每个与核值灰度相似的像素都对USAN高能量区产生各自的贡献。因为角点的USAN分布应相对集中,即它只应集中分布于模板四个角中的一个角,而不可能较均匀地散布在模板内,如图3所示。

以核所在的行、列为界,将模板分成四个能量区,核的左上方为能量Ⅰ区,右上方为Ⅱ区,同理左、右下方分别是Ⅲ、Ⅳ区,其中每个区都包含核所在的行列。因此可以分别计算出图3中四个能量区的能量大小,也即USAN面积。如果模板的能量集中分布于某一区域,即模板的四个能量区中只有一个高能量区,并且这一高能量区的大小满足文中提到的角点条件,那么这就是一个角点。

图4是变换模板方法下用能量分布法去除伪角点的检测图。从图4看出,能量分布法能较好地去除伪角点,但图4中由两条直线相交而成的那些角点却没有被检测到,如图4中用圆圈标识出的,这是因为它们在模板内的分布本来就不集中。结合这类角点的特性,可采用像素投影法来检测。

图5为像素投影法的原理图,如图5中虚线箭头所示,模板中与核值灰度相似的像素在垂直方向向下做投影,同时各列相应像素投影区计数加1,最后通过判断各列像素投影区的值就可判断出该模板中心是否是角点。在此过程中,核不参与投影,核所在列的像素投影区位置最终也不予考虑。综合实际中存在的噪声,并考虑到常见的线型有“十”型和“X”型两种,若各列投影区均有值,且不大于2,就认为该模板中心为角点。

1.3 实验结果及分析

图6是变换模板方法结合能量分布法与像素投影法提取一幅图像的特征点。图像分辨率是640×480,图中加有部分随机噪声,角点数为56个,包含了各类型角点。

对比图6和图2可看出,由于能量分布法的使用,许多伪角点都被去除掉。对比图6和图4可看出,由直线相交而成的角点在图4中没有被检测到,而在图6中,因为像素投影法的使用,它们被检测到了。表1是检测结果对照表。从表1得出的模板越小,检测出的伪角点越多,但耗时越短,大模板则有相反检测效果。在结合了大小尺寸模板后,就可得到较好的结果。从图6和表1可看出,改进算法的准确度最高,它提取出所有角点,且耗时最短。

2 结 语

提出一种改进的SUSAN角点检测算法,充分利用不同尺寸模板的优点,使检测速度和准确度都得到很大程度的提高,最后运用能量分布和像素投影的方法很好地去除了伪角点。结果显示,该方法可以快速准确地提取出图像的特征点。

参考文献

[1]Smith S M,Brady M J.SUSAN-A New Approach to LowLevel Image Processing[J].International Journal of Compu-ter Vision,1997,23(1):45-48.

[2]杨莉,张弘,李玉山.一种快速自适应RSUSAN角点检测算法[J].计算机科学,2004,31(5):198-200.

[3]Shen F,Wnag H.Real Time Gray Level Corner Detector[J].Pattern Rectionition Letters,2003,23(8):1-6.

[4]Trajkovic M,Hedley M.Fast Corner Detection[J].ImageVision Comput.,1998,16(2):75-87.

[5]陆宏伟,于起峰.最小核值相似区低层次图像处理算法的改进及应用[J].应用光学,2000,21(1):32-36.

[6]Zhou Dongxiang,Liu Yunhui,Cai Xuanping.An Efficientand Robust Corner Detection Algorithm[A].Proceedings ofthe 5th World Congress on Intelligent Control and Automa-tion[C].Hangzhou,2004:4 020-4 023.

[7]张坤华,王敬儒,张启衡.多特征复合的角点提取方法[J].中国图像图形学报(A辑),2004,7(4):319-324.

[8]Weng Muyun,He Mingyi.Image Feature Detection andMatching Based on Susan Method[A].2006 InternationalConference on Innovative Computing,Information and Con-trol[C].Beijing,2006:322-325.

[9]邹琼兵,周东翔,蔡宣平.基于边缘细化的角点检测方法[J].计算机应用与软件,2006,23(3):110-112.

角点检测方法研究 篇6

1 算法改进思想

通常情况下, Harris角点检测需要根据图像的特性 (如尺寸、纹理、灰度等) , 对其所涉及到的阈值 (Threshold Value) 、局部极大值的邻域大小 (Width) 、高斯窗口的大小 (GaussWidth) 和高斯方差 (σ2) 四个参数进行手动调整[1]。本文所研究处理的对象具有角点分布均匀, 个数确定的特点, 所以提取图像角点需要满足以下两个准则: (1) 每个角点的附近邻域内避免出现多个角点; (2) 角点数目和图像的长、宽有关, 据此得出角点区间。当角点不满足上述准则时, 采取分步方法对相应的参数进行调整。同时用二分法赋值的思想对Threshold Value和Width进行调整, 直到角点数位于规定的区间范围内。

2 算法改进描述

本文充分考虑了各个参数的相互作用和影响, 在此基础上提出一种自适应的Harris角点检测算法。具体算法处理过程描述如下。

(1) 对GaussWidth和σ2赋最大初值。

(2) 定义水平、垂直差分算子, 并利用其对图像进行滤波, 求得图像沿X、Y方向的灰度梯度Ix, Iy。

(3) 对Ix2, Iy2, Ixy进行高斯滤波处理;其中, Ix2=Ix×Ix, Iy2=Iy×Iy, Ix y=Ix×Iy。

(4) 根据公式

计算角点量c (i, j) 。

(5) 设置Threshold Value和Width。如果角点不满足两条准则时, 用二分法赋值的思想对Threshold Value和Width进行调整, 直到角点数位于规定的区间范围内, 转 (6) ;否则, 转 (1) 。

(1) min=5000, max=50000, 当min

(2) 当CornerNummax时, 结束循环。此时仍没满足准则, 调整其他参数。

(6) 结束。

3 结语

实验证明, 上述角点检测算法能够准确的检测出各目标区域轮廓线上的角点有效的避免了传统Harris角点检测算法所存在的角点聚簇和角点丢失等问题。

参考文献

角点检测方法研究 篇7

关键词:掌纹,三角点,Sobel梯度方向场

0 引言

掌纹是人体的一种生物特征,是人体体表的遗传因子,具有个体特异性和终身不变性。遗传学的研究表明:人体的遗传性病变会体现在手掌纹理上,所以在疾病预测上具有独特优势[1,2]。三角点作为掌纹最重要的细节特征之一,定义为3条不同纹线汇合形成的三角区域,ATD角定义为食指指根三角点(A点)、小指指根三角点(D点)与掌根三角点(T点)之间的夹角。现有研究表明:癌症[1]、精神分裂[3]、先天性弱智[4]等遗传学病人的ATD角与健康对照组存在明显差异,因此准确定位掌纹三角点并提取ATD角作为疾病的特异性特征,对无创的早期诊断具有重要意义。

但是目前的掌纹ATD角特征参数都是人工测量,精度、可靠性非常低,对掌纹三角点检测的自动检测研究较少。所幸三角点被广泛用于指纹匹配与识别领域,学者们提出了一些经典的指纹三角点定位算法[5,6,7,8,9,10],但是这些方法大多是对按压式指纹提取三角点,不能被直接用于掌纹三角点定位。因为相对于纹理较规则的指纹,掌纹图像包含大量噪声,而且这些方法在大幅图像中检测极少数的三角点时效率很低。张泽等[11]提出用改进的庞加莱指数算法对掌纹方向图处理来定位掌纹三角点。郑艳[12]提出动态聚类算法对特殊区域的方向图分割来定位三角点。这些方法适用于油墨捺印或扫描仪按捺采集的、纹路相对清晰的掌纹,处理数码相机采集的包含较多噪声的掌纹时精度较低。而捺印或按捺采样方法会引起掌纹纹路变形,并且会因油墨涂抹不均匀或用力不均匀,而使得部分区域的掌纹不全,导致检测到的三角点位置经常会出现很大偏差[11]。现有的检测数码相机采样的掌纹三角点算法极少。

为准确快速进行掌纹三角点检测,提出了一种基于Sobel梯度算子方向场的掌纹三角点检测算法。为准确采集掌纹沟嵴纹理信息,我们使用数码相机对自然伸张、涂抹炭黑的手掌图像进行采样。对手掌涂抹炭黑的目的是减弱光照影响以使掌纹的皮嵴以及皮沟更加清楚。算法首先对采集的掌纹图像进行去噪、巴特沃斯滤波增强、边缘提取及伪边删除预处理;然后对图像进行分块处理,计算每一子块的Sobel梯度方向场,基于方向场直方图统计子块内每一像素点的方向场数目,将子块内大多数点的方向确定为子块中心点的方向;对掌纹图像的方向场进行三色同质化后,用基于形态的方法进行掌纹三角点定位,并删除伪特征点。将算法用于数码相机采集的212幅掌纹图像进行测试,实验结果表明:提出算法能准确、可靠地检测出三角点,三角点的检测准确率为91.43%,验证了提出方法的有效性和鲁棒性。

本文的创新点在于:提出了对数码相机采样的掌纹图像提取三角点算法,提出了改进的Canny算子对原图像进行边缘提取算法,提出了梯度方向场掌纹三角点定位算法。

1 掌纹图像预处理

为避免掌纹纹理的畸变,使用数码相机对涂抹炭黑的掌纹进行采样。涂抹炭黑是为了增加掌纹凸凹纹理的对比度,减弱光照及肤色对纹理的影响。为了有效提取三角点,先对图像进行预处理。

1.1 图像增强

数字形态学处理结果的好坏最关键的是结构元素的选取,这里主要消除影响纹理提取的噪声,又不改变纹理的结构。通过实验对比发现,扁平的结构元素更接近一维结构,在去除噪声的同时对纹理的破坏性较小,其宽度小于两个条纹的宽度,避免对皮肤纹理的形状产生影响。因此首先对灰度图像进行形态学的灰度腐蚀运算,而后用扁平的结构元素进行膨胀得到处理后的图像,再从原图像中减去处理后的图像,对图像进行顶帽变换。形态学表达式为:

其中f为原始图像,F为顶帽变换后的图像。通过实验发现,在处理过程中,选取扁平的结构元素在去除噪声的同时对纹理的破坏性较小,可对图像进行整体的估计,极大地减轻了光照的影响,使皮肤纹理变得更加清晰。

1.2 改进的CANNY边缘提取

本文利用小波变换的边缘检测方法,构造改进型的Canny算子。传统的Canny算法是对输入图像先构造高斯滤波进行平滑处理,而后计算梯度。而小波变换利用高斯函数的一阶导数直接对图像进行梯度计算。本文结合两者的优点,采用二维高斯函数的一阶偏导数:

其中G为二维高斯的一阶偏导数,x、y为二维方向,σ为方差。构造的x方向滤波器(σ=1)为:

改进的Canny算法提取的边缘图像能很好地反映掌纹纹理的方向,但存在一个点有多个响应的现象,产生的部分边缘线达不到单像素级别,尤其在边缘拐点连接处,使后续求取方向场增加多余的计算量。为了获得单一像素的精细边缘,对图像进行二值化,而后进行细化处理。

本文使用Hilditch算法对获取的边缘进行细化。假设中心像素p的3×3邻域结构如图1所示。

对边缘检测后的图像按照从左到右、从上到下的顺序对每个点进行迭代运算,如果该点满足下列的6个条件,就把它作为背景,从前景中删掉。当迭代运算再也找不到满足6个条件的点时,该算法完结,将边缘检测后的图像进行二值化处理(边缘线的值为1,背景值为0)。

6个条件为:

(1)p为1,即为边缘线中的点,p不是背景。

(2)邻域中x1、x3、x5、x7位置的点像素值不全部为1。

(3)x1-x8中,至少有2个为1(若只有1个为1,则是线段的端点;若没有为1的,则为孤立点)。

(4)p的8连通联结数为1。连通联结数的定义为图像任一点p,其3×3邻域内和该点连接图形的个数,如图2所示。

图2中,左图的4连通联结数是2,8连通联结数是1,而右图的4联通联结数和8联通联结数都是2。

4连通联结数计算公式是:

8连通联结数计算公式是:

(5)如果x3已经标记删除,那么当x3为0时,p的8联通联结数为1。

(6)如果x5已经标记删除,那么当x5为0时,p的8联通联结数为1。

对边缘线进行图像二值化后,适当选取阈值使前景值即边缘线为1,背景值为0。

2 基于梯度方向场的掌纹三角点检测作

2.1 掌纹边缘图形的梯度方向场

因为掌纹的纹线不如指纹规则及清晰,所以现有的指纹方向场提取特征点方法不能直接用于提取掌纹特征点[13,14,15]。本文算法基于Sobel梯度求预处理后图像的方向场。由于预处理后的纹理图像无法避免存在裂痕、噪声点和不准确的纹路边缘线,直接计算出的方向图含有大量的噪声,会严重影响方向场图的使用。为了避免噪声,本文对图像进行分块处理。以每一个像素点为中心划取一个N×N的矩形,统计该矩形内每一个点的方向场,将该区域内大多数点的方向确定为该中心点的方向,以方向场直方图来确定。这种方法分块越大,对块中噪声越不敏感,得到的纹理方向越可靠,但在纹理曲率较大的地方不能求得精准的方向,同时计算量大;分块越小,对纹理方向的拟合程度高,但极易受到噪声纹理的干扰。经过多次实验,矩形块取值在40到60之间可以取得较好的效果,具体步骤如下:

计算纹理图像每一点X、Y方向的梯度x(i,j)和y(i,j),本文使用Sobel梯度算子,接着使用以下公式计算方向场。因处理后的掌纹图像包含干扰条纹,为避免噪声干扰,取矩形块大小为45×45,即w的取值为45。

其中,θ(x,y)即最后求得的方向场。上式所求的方向场在之间,为了在图像显示上保留更多的细节,本文将其归一化至0到1之间得到最终的方向场:

其中,θ(x,y)'为最终得到的方向场。

2.2 方向场同质化

受不可抑制的伪边缘影响,求得的方向场噪声较大。为了更精准求得三角点,将连续的方向场分块同质化,即将图像连续的色彩离散为个数单一色彩的色块,但是色块即同质区域的数量将影响特征点的定位。如果色块数量过小,无法确定特征点位置;若同质域个数过大,一方面计算量增加,另一方面方向场分割过于细致使得质量较差的纹理图的伪特征点数量过多,从而产生误检现象。经实验分析:本文将连续的方向场分为三个同质区域效果较好,既可以消除大量的噪声,又可以精准检测三角点异点。区分三个同质区域的阈值分别为:

2.3 三角点定位

求取掌纹图像的方向场后,传统的三角点检测方法主要是PI值检测方法[16],但是由于掌纹纹理图像噪声较大,验证PI值往往会误检、漏检。本文提出一种基于形态学的直接定位方法。

对同质化图像分析后可以得到以下结论:(1)特征点在形态图像上必满足三个同质域交点的特征;(2)特征点必在两块同质区域面的相交线上,如图3所示。

根据结论(2)可以完成从面到线的转换,从检测图像上所有的像素点到只检测分割块边缘线上的像素点是否满足条件(结论(1))即可。这样简化了算法,提高了检测的效率,以两个结论为原则来实现奇异点的精确定位。

首先检测色块与色块的边缘,因色块内的像素值是均匀的,边缘线易于提取。以同质域Ω(0,0.3)为例,阐述提取方法:

(1)从左到右、从上到下,遍历同质域Ω(0,0.3)所有的点,若像素点f(x,y)⊂Ω(0,0.3)且满足f(x+1,y)⊂Ω(0.3,0.5)或者f(x,y+1)⊂Ω(0.5,0.8)之一成立,则点f(x,y)为边缘点。

(2)重复上述步骤,分别检测同质域Ω(0.3,0.5)、Ω(0.5,0.8)的边缘线。

然后由结论(2)可知,在任一条边缘线上,且同时满足条件(结论(1))的点为特征点的候选点。遍历边缘图像像素值为0.9的点,即当前点f(x,y)⊂Edge(0.9),且该点在同质域图像上8邻域内不同像素值的种类为3种,每种像素值的像素个数为3个,则该点为特征点的候选点。

2.4 删除伪特征点

以候选特征点为中心,在一个w×w的窗口区域上,遍历区域的外缘封闭曲线。若其同质域图像上的像素值变化次数不足6次,且变化间距像素小于w/3个像素,则该点必为伪特征点。

特征点满足如下条件:

其中lchange表示像素变化次数,w为窗口大小。

3 仿真与测试

本文以MATLAB 7.1为开发平台,实验基于的掌纹库是用数码相机采集的来自96个人的212幅掌纹组成,掌纹大小为1200×1200,图像分辨率为600 dpi,彩色图像。展示实验结果皆为随机选择的掌纹图像。

3.1 预处理实现

首先将采集的彩色图像转换为灰度图像,使用扁平结构的形态学滤波器对图像进行增强,并用改进的Canny算子对图像进行边缘检测及细化,实现结果分别如图4(a)-(d)所示。

图4中(a)为原始的三角点区域图像,(b)为涂抹炭黑后采集的图像,与(a)相比,(b)中的凸凹纹理更清晰,减弱了肤色对掌纹纹路的影响。(c)为二值化后滤波增加的结果,增强后的掌纹纹理与背景有较高的分离度。(d)为改进的Canny算子提取边缘及细化结果,提取的主条纹线方向能够很好地表达掌纹的纹理方向,为下步求取方向场确定特征点做了很好的预处理。

3.2 三角点定位实现

在完成预处理后,对掌纹图像提取三角点。图5(a)为细化后的掌纹图像(图4(d))的梯度方向场,图5(b)为归一化后的三个同质区域,图5(c)为对同质区域边缘检测的结果。对同质区域边缘线进行特征点检测后,出现两个候选特征区域,即图5(d)和图5(e),其中前者为三角点,后者为伪特征点。因为图5(e)中同质域图像的像素值变化次数虽然是6次,但变化间距小于w/3个像素,因此被作为伪特征点删除。图5(f)为在原图上标识出来的三角点。

3.3 统计测试

在这一阶段的实验中,以采集的212幅掌纹图像为实验对象,在人工标记出的362个三角点中,本文算法成功地检测到了331个,准确率为91.43%。另外,在其中的9幅图像上检测到伪点18个,在11幅图像发生了漏检现象。相应统计结果如表1所示。

从表1的统计结果可以看出,本文算法可以有效检测出掌纹的三角点。

4 结语

上一篇:情境结合论文下一篇:体育课上批评的艺术