利用Gabor方向导数相关矩阵的角点检测

时间:2022-07-24 12:35:30

利用Gabor方向导数相关矩阵的角点检测

摘 要:为了提高角点检测的准确率,提出了一种使用图像的Gabor方向导数构建相关矩阵来进行图像角点检测的算法。算法首先通过Canny边缘检测算法提取检测图像的边缘轮廓;然后使用Gabor滤波器对图像进行平滑,利用每一个边缘像素和其邻近像素的Gabor方向导数构建相关矩阵,若相关矩阵的归一化特征值的和大于预定阈值并且是局部极大值,则标记该像素为角点。算法利用邻近像素Gabor方向导数之间的相关信息提取角点,与传统的基于轮廓的角点检测算法相比,检测性能更加稳健。实验结果表明:在含噪声和无噪声情况下,提出的算法检测到的真实角点更多,而错误角点更少,整体性能有明显提升。

关键词:边缘提取;Gabor滤波器;角点检测;自相关矩阵

0 引言

角点一直是计算机视觉、图像处理和模式识别领域研究的热点,好的角点检测算法在很多计算机视觉任务中得到应用,比如目标识别、运动跟踪、图像配准等。已有的角点检测算法可以分为三类:基于灰度的[1-4]、基于模型的[5-6]和基于边缘轮廓的[7-11]。基于强度的角点检测算法直接利用图像灰度变换信息构建角点测度。文献[1]利用微分算子提取图像水平和垂直两个方向的强度变化,然后构建图像的局部自相关矩阵,提出了经典的Plessey角点检测算法,但该算法对噪声敏感、角点定位性较差;文献[2]则利用高斯―拉普拉斯 (Laplacian of Gaussian, LoG)函数改进了Plessey算法的定位准确性。随后,Gabor函数[3]和LogGabor[4]函数被融合到Plessey算法里,通过在不同尺度下提取图像各个方向的灰度变化信息来构建角点测度,从而提高了角点检测准确率和噪声稳健性。基于模板的角点检测算法主要是通过定义的角点模型与图像局部区域进行匹配,根据它们之间的相似系数进行角点的检测。SUSAN算法[5]和Fast算法[6]就属于这类算法。基于轮廓的角点检测算法主要是利用图像轮廓的几何特征(如曲率)来检测角点。Mokhtarian等通过计算边缘轮廓在不同尺度下的曲率绝对值,采用从大到小的高斯尺度对候选角点进行跟踪筛选,提出了一种基于曲率尺度空间(Curvature Scale Space, CSS)的角点检测算法[7]。该算法可以获得很好的检测效果,但是它仍存在以下缺点:算法对边缘局部噪声十分敏感,很难决定合适的高斯核尺度进行边缘平滑,角点判决的阈值难选择[8]。众多学者在此基础上提出了改进[8-11],洪明坚等[8]提出了基于B样条轮廓方向变化率多尺度表示的角点检测算法,孙君顶等[9]提出了多尺度多项式的角点检测算法,Awrangjeb等[10]提出了一种基于弦到点距离累加(ChordtoPoint Distance Accumulation, CPDA)的新角点检测器,这些算法部分克服了CSS算法存在的前两个缺点;He等[11]引入局部自适应阈值方法改进了CSS检测器,克服了CSS算法的第三个缺点。

基于边缘轮廓的角点检测算法对于边缘曲线上的微小变化比较敏感[11]。文献[11]通过引入局部自适应阈值来减少由于边缘上微小变化产生的错误角点。但该算法只停留在利用边缘轮廓的曲率来检测角点,而且对边缘轮廓进行高斯平滑降低了角点定位精度。实际上,角点的确定与其周围各个方向的像素灰度值密切相关。而二维Gabor函数能够同时取得空域和频域联合测不准原理的下限,具有很好的空间局部性和方向选择性,能够更好地描述图像局部区域内的强度变化信息[8]。

为了克服基于边缘轮廓的角点检测算法的不足,本文结合图像边缘轮廓像素及其周围像素的Gabor方向导数,提出一种新的角点检测器。该算法包括边缘轮廓提取和自相关矩阵构建两部分。不同于基于轮廓的角点检测算法需要对轮廓进行高斯平滑,本文算法直接利用不同方向的Gabor滤波器对图像进行平滑,充分利用了像素周围强度的各向异性变化特性,提高角点检测的准确性和噪声稳健性。通过与Plessey[1]、He&Yung[11]、CPDA[10]角点检测器进行对比实验,结果表明提出的角点检测算法在含噪声和无噪声情况下能检测出更多的真实角点和更少的伪角点。

1 二维方向Gabor滤波器

Shen和Bai[12]已证明Gabor滤波器是许多应用中用来提取局部特征的最优滤波器(比如人脸识别)。空域中,二维Gabor滤波器是一个被复正弦平面波调制的高斯函数,其归一化形式为,

其中:γ和η分别是主轴方向和与主轴正交方向的高斯尺度;f是滤波器的中心频率;θ是调制平面波和高斯主轴沿逆时针旋转的角度。图1给出了一个二维滤波器的例子。

Gabor滤波器具有平移不变性、伸缩不变性及旋转不变性[13],因此利用Gabor滤波器提取的信息更加稳健,而Pellegrino等[13]分析指出Gabor滤波器虚部用于边缘检测时,可以提供丰富的方向强度变化信息,检测性能高效并且稳健。因此,提出的算法利用Gabor滤波器虚部φ(x,y; f,θ)对图像I(x,y)进行平滑,而平滑后图像

实际计算中用到的图像信号是在离散二维网格中采样的标量信号或矢量信号,因此Gaboer滤波器也要使用离散形式。为了获得图像每一个像素周围丰富的灰度变化信息,充分利用Gabor滤波器的方向特性。通过对滤波器中的角度参数进行均匀量化,得到一组方向不同的Gabor滤波器组。在给定中心频率f,主轴方向尺度γ和与主轴正交方向尺度η后,结合式(1)、式(2)得到离散化的Gabor函数的虚部为

其中:K是方向的个数,而θk是第k个方向。图2画出了8个方向的Gabor滤波器的虚部,其中白色表示大于零,黑色表示小于零,而灰色表示等于零。

从图2中可以看出,每一个Gabor滤波器虚部都可以提取某一方向上的图像局部灰度变化信息。因此,利用一组方向均匀分布的Gabor滤波器就可以充分提取图像像素周围各个方向上的灰度变化信息。离散Gabor滤波器虚部平滑图像后的响应则表示为

2 新的角点检测算法

2.1 Gabor滤波器的选择

与基于强度的角点检测方法相比,基于轮廓的角点检测方法主要有两个特点:首先,不同于基于轮廓的角点检测算法需要对轮廓进行高斯平滑,计算复杂度较低;其次,根据高斯平滑后曲线的几何特征(如曲率)构建角点测度,检测性能较好。但此类算法中对边缘轮廓进行高斯平滑使得角点定位精度下降,而且对于边缘轮廓上局部细微变化比较敏感。本文提出的算法中直接利用图像像素的Gabor滤波器响应作为角点测度避免了平滑轮廓带来的定位精度下降。

实际上,图像中角点的判定除了角点像素本身外,和角点周围像素也有密切关系。本文算法利用边缘像素和其周围像素的Gabor方向导数来构建新的角点测度,充分利用了像素及其周围像素灰度变化信息,而图像的边缘轮廓则是由Canny边缘检测器[15]得到。

2.2 基于Gabor方向导数相关矩阵的新的角点测度

经典的Plessey算法[1]利用微分算子平滑图像得到像素附近的灰度变化信息,并以此构建大小2×2的局部自相关矩阵,然后将自相关矩阵的特征值作为角点测度。如果两个特征值都比较小,说明此像素属于同质区;如果一个特征值很大而另一个比较小,则认为该像素是边缘点;如果两个特征值都比较大,就认为该像素是角点。此算法对于仿射变换具有很好的鲁棒性,但是在构建自相关矩阵时只利用到了图像水平

与垂直两个方向的灰度变化信息。实际上,角点周围的灰度变化是各向异性的,为了充分利用角点周围各个方向上的灰度变化信息,提出的算法利用图像边缘像素及其周围共9个像素的K个方向的Gabor方向导数构建大小9×K的矩阵M(n):

He&Yung算法在计算曲率时利用高斯函数对边缘轮廓进行了平滑,导致部分角点处的曲率比较小,如图3(d)中的圆圈1、2处真实角点的曲率值就很小,容易丢失;而边缘上的细微变化也会产生伪角点,如图3(d)中圆圈3处真实角点附近像素的曲率值很大,容易产生错误角点。相比之下,本文算法利用了像素邻域内像素各个方向上的灰度变化信息,其在角点处的测度值很大,偏离角点后测度值迅速减小。在边缘像素处的测度值虽然有起伏,但相比角点处的测度值小得多,只要给出合适的检测阈值,测试图像中的所有角点都可以被检测到。

2.3 本文算法的基本步骤

利用新的角点测度,结合基于轮廓的角点检测算法的框架,提出了一种新的计算复杂度低、检测准确度高的角点检测新方法。下面给出算法的基本设计步骤:

1)利用经典的Canny边缘检测器[15]进行边缘检测,得到检测图像的边缘轮廓。

2)对于边缘轮廓上的每一个边缘像素,计算该像素和其周围像素的不同方向上的Gabor方向导数,以此构建自相关矩阵T(n),计算其特征值λk并进行归一化处理得到归一化特征值k,最后获得该像素处的角点测度ξ(n)。

3)若ξ(n)大于预定阈值,则判定该点为候选角点。

4)使用大小5×5的窗对经过3)处理后的候选角点进行非极大值抑制[4]。具体方法是:对每一个候选角点,如果在以该候选角点为中心的5×5大小的窗口内,该候选角点的角点测度值是局部极大值,则该候选角点被保留并标记为最终角点;如果不是局部极大值,该候选角点被剔除。

3 参数的选择

本文所使用的Gabor滤波器包含四个参数:中心频率f,尺度因子γ和η,方向角度θ。Shen等[12]指出为了满足Nyquist采样定理,二维图像的中心频率的上限不能大于0.5,实验中当中心频率取值在[0.2,0.3]内时都能得到很好的检测效果,本文实验中设置中心频率为0.25。而Gabor滤波器沿正交方向的尺度λ和η决定了高斯型包络的形状:当λ=η时,包络形状是圆形;而当λ≠η时,包络形状是椭圆。为了利用角点附近灰度的各向异性变化信息,实验中需要使用椭圆包络的Gabor滤波器。Daugman[14]指出了椭圆包络的Gabor滤波器的纵横比η/λ范围为1.5到2,本文实验中设置其纵横比为2,即η=2λ。尺度因子λ越小,角点检测定位精度越高;而λ越大,抑制噪声的能力越强。为了得到最佳的尺度因子,对尺度因子在区间[0.5, 1.0]以0.05为间隔采样,并对飞机、积木和实验室图像在无噪声和含噪声σ2=100情况下检测角点匹配率,如图4所示。当λ=0.75时,无噪声和含噪声情况下的角点匹配率都最好,因此本实验中取λ=0.75。为了利用Gabor滤波器的方向特性,本文实验中使用8个方向的离散Gabor滤波器,即θk=kπ/8(k=1,2,…,8)。

4 实验结果与性能分析

分别对积木、实验室图像,采用本文算法、Plessey算法、He&Yung算法、CPDA算法进行角点检测,并对实验结果进行对比分析,来验证本文算法的可行性和噪声稳健性。其中Plessey算法的程序来自http://www. csse.Uwa.edu.au/~pk/Research/Ma tlMatla。而He&Yung算法和CPDA算法的程序和参数分别由文献[11]和文献[10]的作者提供和设定。两幅测试图像的参考角点图如图5所示,其中小方格标识的像素为参考真实角点。

为了从不同方面进行算法性能分析,分别在有噪声和无噪声情况下对四种算法进行了对比实验。同时为了客观地反映在含噪声情况下本文算法的稳健性,4种算法的最终检测结果都是分别做了100次实验后的平均结果。图8和图9给出了其中一组含噪声σ2=100时图像的角点检测结果。

从表1和表2中得知,与经典的Plessey算法相比,其他三种算法在配准角点数和错误角点数上都取得了更为满意的结果,其检测性能更好。而与He&Yung算法和CPDA算法相比,本文算法在含噪声和无噪声情况下的配准角点数最多,错误角点数仅多于CPDA算法。利用不同方向的Gabor滤波器可以充分提取角点附近不同方向上的灰度变化信息,其检测准确度比仅仅利用曲率作为角点测度的He&Yung算法更为准确。相比CPDA算法,本文算法利用角点像素及其局部范围较小的像素灰度信息,具有较小的支撑区间,检测性能更加稳健。综合性能上,本文提出的算法性能最优。

在时间复杂度方面,本文算法是在Matlab上实现的,为了提高算法的效率,程序中利用Matlab提供的计算卷积函数和求特征值函数分别计算不同方向的Gabor滤波器对图像的滤波结果和边缘像素上相关矩阵的特征值。在软件环境为Windows 7,硬件环境为主频2.1GHz,内存为2.0GB的PC机上,分别对飞机、积木和实验室三幅测试图像利用四种算法进行100次检测实验,记录并计算出一次检测所需的平均时间,结果如表3。

表3本文算法一栏中,分别列出单次检测总时间和单次检测中计算图像的不同方向Gabor方向导数所需的时间,分别占到了算法总时间的39.6%(飞机)、40.3%(积木)和25.2%。本文算法相比其他算法更加耗时,其主要原因就是在计算图像多个方向Gabor方向导数时花费了大量时间。由于不同方向的Gabor方向导数的计算之间相互独立,所以可以通过设计快速的并行算法来同时计算图像不同方向的Gabor方向导数,从而可以大大减少本文算法时间,这将是今后进一步的研究方向。

5 结语

本文提出了一种使用图像的Gabor方向导数构建相关矩阵并进行图像角点检测的新算法,该方法利用不同方向的Gabor滤波器对图像平滑,既避免了基于轮廓的角点检测算法中高斯平滑带来的角点定位精度降低的缺点,又保留了像素各个方向上的灰度变化信息。算法既保持了高的角点位置分辨率和方向分辨率,又具有很好的噪声稳健性。

参考文献:

[1] HARRIS C G, STEPHENS M J. A combine corner and edge detector[C] // Proceedings of the 4th Alvey Vision Conference. Sheffield: University of Sheffield Printing Office, 1988:147-151

[2] RYU J B, PARK H H. Loglog scaled Harris corner detector [J]. Electronic Letters, 2011, 47(3): 180-181.

[3] GAO X T, SATTAR F, VENKATESWARLU R. Corner detection of gray level images using gabor wavelets[C]// 2004 International Conference on Image Processing. Piscataway:IEEE, 2004:2669-2672.

[4] GAO X T,SATTAR F, VENKATESWARLU R. Multiscale corner detection of gray level images based on logGabor wavelet transform[J].IEEE Transactions on Circuits and Systems for Video Technology, 2007, 17(7):868-875.

[5] SMITH S M, BRAND J M. SUSAN: A new approach to low level image processing [J]. International Journal of Computer Visuion, 1997, 23(1): 45-78.

[6] ROSTEN E, POTER R, DRUMMOND T. Faster and better: a machine learning approach to corner detection [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1998, 20(12): 1376-1381.

[7] MOKHTARIAN F, SUOMELA R. Robust image corner detection through curvature scale space[J] .IEEE Transactions on Pattern Analysis and Machine Intelligence, 1998,20(12):1376-1381.

[8] 洪明坚,张小洪,杨丹. 基于B样条轮廓方向变化率多尺度表示的角点检测[J]. 计算机应用,2009,29 (3) :725-728.

[9] 孙君顶,郭启强,张兆生. 基于曲率尺度空间的轮廓角点检测[J].光电工程,2009,36(7):78-82.

[10] AWRANGJEB M, LU G J. Robust image corner detection based on the chordtopoint distance accumulation technique[J]. IEEE Transactions on Multiedia,2008,10(6):1059-1072.

[11] HE X C, YUNG H C.Corner detector based on global local curvature properties[J]. Optical Engineering, 2008,47(5): 057008.

[12] SHEN L L, BAI L. Information theory for Gabor feature selection for face recognition[J]. EURASIP Journal on Applied Signal Processing,2006,2006: Artical ID 30274.

[13] PELLEGRINO F A,VANZELLA W,TORRE V. Edge detection revisited[J].IEEE Transactions on Systems, Man, Cybernetics,2004, 34(3):1500-1518.

[14] DAUGMAN G. Uncertainty relation for resolution in space, spatial frequency, and orientation optimized by two dimensional visual cortical filters[J]. Optical Society of America,1985,2(7):1160-1169.

[15] CANNY J. A computational approach to edge detection[J]. IEEE Transactions on Pattern, Analysis,and Machine Intelligence, 1986, 8(6):679-698.

上一篇:基于查询的无线传感器网络多源单汇路由算法 下一篇:小学美术教学中信息技术的运用