角点检测

2024-10-30

角点检测(共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类。详细阐述了这几种角点检测方法,并对不同方法逐一进行归纳分析,在最后指出了今后角点检测技术的研究方向和发展趋势。

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

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

关键词:特征提取,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.

角点检测 篇3

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

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.

角点检测 篇4

Harris算子是一种有效的点特征提取算子, 其优点有两个方面[2]: (1) 计算简单, Haris算子中只用到灰度的一阶差分以及滤波, 操作简单; (2) 提取的点特征均匀而且合理Haris算子对图像中的每个点都计算其兴趣值, 然后在邻域中选择最优点。Harris角点提取方法是目前效果最好的, 它不受摄像机姿态及光照的影响[3]。

1 检测原理

Harris角点检测算法基本原理描述如下:建立下面矩阵M

其中I (x, y) 是亮度值, 这里用灰度表示;Ix为图像I的x方向的梯度;Iy为y方向的梯度。通过分析上面矩阵可以看出如果在一点上矩阵M的两个特征值很大, 则在该点向任意方向上的一个很小的移动都会引起灰度值的较大变化, 这也就说明该点是一个角点。

在矩阵M基础上, 角点响应函数CRF定义为:

其中det为矩阵M的行列式;trace为矩阵M的迹 (矩阵对角线元素的和) ;k为常数, 一般取0.04[1]。CRF的局部极大值所在的点即为角点。

该算法易受噪声的影响。为了减小噪声的干扰, 在对图像进行偏导计算以后用高斯滤波器对数据进行平滑。于是 (1) 式矩阵M重新定义为如下 (3) 式:

其中G为高斯模板;<.>表示高斯模板与函数卷积:

按此方法求出的角点数量很多。为了减少匹配计算量, 可以对想要获得的角点数量进行限制。限制方法是确定一个阈值, 仅仅选取CRF值大于这个阈值的点作为角点。这个阈值根据需要的检点数量来确定。

2 编程步骤

harris角点检测算法的具体编程步骤:

(1) 对灰度图像I的每一点, 计算其在x和y方向上的一阶导数, 以及二者的乘积。具体操作时, 采取类似卷积的方式, 分别使用 (5) 式中的模板wx (x方向) 和模板wy (y方向) 在图像上移动, 并在每个位置计算对应中心像素的梯度值, 得到x方向和y方向的两幅梯度图像。计算每个像素位置对应的x方向和y方向梯度的乘积, 得到1幅新的图像。三幅图像中的每个像素对应的属性值分别代表Ix, Iy和IxIy。

核心代码如下:

(2) 对步骤1所得到的三幅图像分别进行高斯滤波 (标准差为σ) 。即采用高斯模板分别与这三幅图像进行卷积, 得到 (3) 式矩阵M。这里离散二维零均值高斯函数为:

核心代码如下:

(3) 计算原图像上对应每个像素的角点响应函数值。角点对应于CRF的局部极大值点。在这里使用了一种改进的计算cim (R) 的方法。该方法由Nobel提出[4], 即:

核心代码如下:

(4) 设置CRF的门限, 对提取的角点个数进行限制。局部极值点的数目往往很多, 通过设置CRF的门限, 根据实际需要提取一定数量的最优点作为最后的结果。在矩阵cim中, 同时满足“cim大于阈值thresh和cim是某邻域内的局部极大值”这两个条件的点被认为是角点。提高阈值, 则提取的角点数目变少;降低阈值, 则提取的角点数目变多。核心代码如下:

3 程序调试

在VS2005中建立Windows组件解决方案, 在软件开发中, 充分考虑到影响Harris角点检测算法的各种参数, 程序运行界面图如图1所示。Harris角点检测, 可以通过设置高斯窗口宽度、高斯函数方差、非极大抑制领域和阀值, 来改变提取点角点的范围和数目。图2显示不同阈值角点提取效果图, 可以看出角点提取的效果依赖于阈值的设定, 阈值大会丢失角点信息, 阈值小又会提取出伪角点。另外, 求局部极大值的邻域大小也将会影响提取角点的数目和容忍度。

Harris角点检测虽然采用了可调的高斯平滑窗口, 但实际运用中高斯窗口的大小不易控制。若选用较小高斯平滑窗口, 则会因为边缘细节的影响导致众多伪角点的出现;若用较大的高斯平滑窗口, 则会因为卷积的圆角效应使得角点的位置产生较大的偏移, 而且增加了算法的计算量。

摘要:用C#语言实现了Harris角点检测算法实现程序, 并结合图例分析了该算法各种参数的设置。

关键词:角点检测,harris角点检测

参考文献

[1]C.G.Harris, M.J.Stephens.A combined corner and edge detec-tor.In:Proceedings Fourth Alvey Vision Conference.Manch-ester, U.K.1988:147-151.

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

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

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

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.

角点检测 篇6

关键词:掌纹,三角点,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 结语

角点检测 篇7

特征提取是影像分析和影像匹配的基础,也是单张相片处理的最重要任务。数字图像中的特征可分为点特征、线特征和面特征。点特征主要指明显点,如角点、圆点等。

1 角点检测

角点是图像的重要局部特征,它决定了图像中目标的形状,所以在图像匹配、目标描述与识别、运动估计以及目标跟踪等领域,角点提取具有十分重要的意义。在计算机视觉和图像处理中,对于角点的定义有不同的表述,如:图像边界上曲率足够高的点;图像边界上曲率变化明显的点;图像边界方向变化不连续的点;图像中梯度值和梯度变化率都很高的点等。由这些不同的意义可以看出,角点检测的方法也是不尽相同的,如利用方向导数来检测角点、直接以灰度信息来检测角点等。目前检测角点的方法可分为两类:①基于图像边缘特征,该方法有3个步骤,即图像预分割、轮廓链码提取和角点检测;②直接利用图像的灰度信息进行角点检测,该方法主要通过计算曲率及梯度来达到检测角点的目的,它通过计算边缘的曲率来判断角点的存在性。角点计算数值的大小与边缘强度有关,而且与边缘方向的变化率有关。

2 Harris角点检测

Harris角点检测算法是在Moravec算法的基础上提出的。Moravec角点检测算法的思想是:在图像中设计一个局部检测窗口,当该窗口沿各个方向作微小移动时,考查窗口的平均能量变化,当该能量变化值超过设定的阈值时,就将窗口的中心像素点提取为角点。记像素点(x,y)的灰度为f(x,y),图像的每个像素点(x,y)移动(u,v)的灰度强度变化表示为:

undefined。 (1)

其中:Wu,v是高斯窗口在位置(u,v)处的系数;像素的移动(u,v)取值为(1,0),(1,1),(0,1),(-1,1),(-1,0),(-1,-1),(0,-1),(1,-1)。显然,Moravec算法只检测了窗口函数在8个基本方向上移动的强度变化,不能准确提取出全部角点,而且对孤立像素点、噪声和边缘都较为敏感。算法中定义角点响应函数C(x,y)=min(Eu,v(x,y)),也因此不具有旋转不变性。为改进Moravec算法,Harris通过微分运算和自相关矩阵来检测角点。微分算子能反映像素点任意方向上的灰度强度变化,因而能够有效地区分角点和边缘,所以用微分算子重新定义了灰度强度变化的公式,这样使角点检测算子具有旋转不变性。同时Harris检测算法选取高斯函数为检测窗口,对图像进行平滑滤波再提取角点,对噪声有一定的抑制作用。其灰度强度变化表示为:

undefined。 (2)

其中:undefined;undefined。

虽然Harris角点检测算法具有旋转和仿射不变性,但仍然存在以下不足:①Harris角点检测定位精度较差,同时还可能漏掉一些实际的角点;②Harris角点检测虽然采用了可调的高斯平滑窗口,但在实际运用中高斯窗口的大小不易控制。若选用较小的高斯平滑窗口,则会因为边缘细节的影响导致众多伪角点的出现;若采用较大的高斯平滑窗口,则会因为卷积的圆角效应使得角点的位置产生较大的偏移,而且增加了算法的计算量。

3 改进的Harris角点检测算法

3.1 Forstner检测算法

Forstner检测算法是摄影测量中的著名点定位算子,特点是速度快、精度较高。其基本思想是:对于角点,对最佳窗口内通过每个像元的边缘直线(垂直于梯度方向)进行加权中心化,得到角点的定位坐标;对于圆点,对最佳窗口内通过每个像元的梯度直线进行加权中心化,得到圆心的坐标。

3.2 改进的Harris角点检测算法

从上面的两种方法的特点可以看出,Harris角点检测算法只用到一阶差分,其计算简单,稳定性好,且不受阈值影响,可以最大限度地提出局部特征点,唯一不足的是精度不高。而Forstner检测算法通过在最优窗口内进行加权中心化的操作,可以将定位精度提高到子像素,但它的缺点是要确定阈值,因此受图像灰度、对比度变化的影响。我们希望能集中两种常用方法的优点,提高点特征的提取效果。

改进的思路是:首先利用Harris 角点检测算法提取出一定数量的特征点,这些特征点都是图像局部范围内最优的点特征,每个特征点对应于一个具体的像素,因为它的精度只能达到一个像素;然后用Harris角点检测算法将提出的特征点作为Forstner的最佳窗口的中心点,在窗口内进行加权中心化操作,精确定位特征点的位置,将精度提高到子像素级别。

在实验中这种方法效果很好,因为Harris检测算法编程实现起来简单,只需对图像进行一阶差分和卷积运算,这些都是图像处理中的基础算法。Harris角点检测算法提取的特征点准确,分布合理,用来作为Forstner的最佳窗口点很合适。但由于Harris角点检测算法需要对整幅影像进行差分和滤波处理,所以程序运行时花费的时间较多。为了提高执行的速度,可以在处理大图像时,首先将图像分成若干块,在每一块中分别提取一定数量的特征点,这样处理不但可以提高速度,还可以使特征点的分布较均匀。在利用Forstner检测算法时,由于不需要定位初始点,省去了设定阈值的工作,可直接建立误差方程进行加权中心化,编程容易实现。

在Visual C++ 6.0平台上编程并比较单纯使用Harris和改进后的效果。首先使用Harris算子来提取点特征,点数设定为50,高斯模板方差为0.7;然后运用新的方法来对同样的影像进行处理。

将图1的Miss原始图像分别进行Harris算法和改进后的Harris算法提取边缘,提取结果见图2、图3。

使用新的方法,特征点的提取效果有了明显的提高。将图像放大几倍后,可以清晰地看到特征点比使用Harris提取的点会更加准确地贴近其最佳位置。

4 结束语

Harris角点检测算法是计算机视觉领域中使用很广泛的一种特征点提取算法,它计算简单,稳定性强。Forstner检测算法则是摄影测量界著名的定位算法,特点是速度快,精度较高。本文在两种方法的融合方面作了一些尝试,并在实际的应用中取得了较好的效果。

参考文献

[1]Sheu H T,Hu W C.A rotationally invariant two-phasescheme for corner detection[J].Patter Recognion,1996,29(5):819-828.

[2]Harris C G,Stephes M J.A combined corner and edgedetector[G].Proceedings Fourth Alvey VisionConference.Manchester,1988:147-151.

[3]张祖勋,张剑清.数字摄影测量[M].武汉:武汉测绘科技大学出版社,1996.

[4]吴晓良.数字影像明显目标的精确定位[D].武汉:武汉测绘科技大学,1989:27-29.

上一篇:英语教学案例简析下一篇:金刚石合成