角点是图像的一个重要局部特征,包含物体重要的特征信息,可表现为灰度值突然变化的像素点或物体轮廓边缘线的相交点。角点具有算法适应性强、过程简单、结果稳定等优点,检测到的角点精度和稳定性更是对后续的图像匹配、图像拼接、物体识别等视觉处理任务有直接的影响[1],因此角点检测在图像处理和模式识别中具有非常重要的作用。
目前的角点检测算法主要可以分为以下两种:基于边缘的角点检测算法和基于灰度变化的角点检测算法。第1类首先对图像进行边缘链码的提取,依据相邻码值之间的差别来确定是否为角点,这种算法存在计算量大、过程不稳定等缺点[2]。第2类是由曲率和梯度的计算来提取角点,典型的代表算法有:Moravec算法、Harris算法、SUSAN算法等[3]。其中Harris算法以计算简单、检测角点理想、稳定性较高等优点被广泛应用,但是如果对特定目标进行检测时,Harris算法提取到的角点遍布于整个图像,不能准确提取目标物体,且对于尺度变化的图像,检测结果差异很大等问题[4]。
文献[5-6]将尺度不变特征理论引入到Harris特征检测算法中,实现尺度不变的 Harris 特征点检测,但是这种算法检测到的特征点并不稳定。文献[7]通过研究Harris尺度不变性的关键点检测子,纠正了Harris尺度不变性检测子是不稳定的错误结论。文献[8]将尺度空间与Harris算子相结合,通过设定阈值TH来获得较稳定的角点,但阈值TH的设定是固定的,对不同图像不具有通用性。文献[9]通过结合尺度空间和自适应阈值的方法,检测到的伪角点较少,但提取的角点遍布整个图像,不利于对目标物体的检测。本文在文献[9]的基础上应用一种区域检测的方法优化多尺度Harris检测算法,与传统的Harris算法作对比实验,验证本文算法的合理性。
1 Harris角点检测算法1988年,C.Harris 和M.J.Stephens提出了Harris特征点提取算子,是运用微分运算和自相关矩阵来检测图像的角点[3]。假设一幅图像,高斯窗口以像素点(x,y)为中心,在x方向和y方向分别移动(u,v)后,产生的灰度强度变化平均能量计算公式:
| ${{E}_{u,v}}\left( x,y \right)=\sum\limits_{u,v}{{{w}_{u,v}}}{{\left[ I\left( x+u,y+v \right)-I\left( x,y \right) \right]}^{2}}$ | (1) |
式(1) 由泰勒公式展开并忽略高阶项得
| $\sum\limits_{u,v}{{{w}_{u,v}}}\left[ u,v \right]\left[ \begin{matrix} I_{x}^{2} & {{I}_{xy}} \\ {{I}_{xy}} & I_{y}^{2} \\ \end{matrix} \right]\left[ \begin{matrix} u \\ v \\ \end{matrix} \right]$ | (2) |
设
| ${{w}_{u,v}}=\frac{1}{2\pi {{\delta }^{2}}}{{\text{e}}^{\frac{-\left( {{u}^{2}}+{{v}^{2}} \right)}{2{{\delta }^{2}}}}}$ |
通过计算矩阵M,可以得到 Harris算子的角点响应函数CRF为
| $\begin{align} & \det M=AC-{{B}^{2}} \\ & \text{tr}M=A+C \\ \end{align}$ | (2) |
| $\begin{align} & CRF=\det M-k{{\left( \text{tr}M \right)}^{2}}= \\ & {{\left( AC-{{B}^{2}} \right)}^{2}}-k{{\left( A+C \right)}^{2}} \\ \end{align}$ | (3) |
式中:detM表示矩阵M的行列式,trM为矩阵的迹,k是一个经验值,一般取0.04~0.06。
当某点计算的CRF值在局部区域内为极大值并大于设定阈值TH时,则该点是需要提取的角点。
由以上方法检测出的角点图如图 1所示。通过结果图可以知道,实际应用中,Harris算子是一种简单稳定的角点检测算子,但图 1(b)检测到的角点存在于整个图像,并不利于对特定目标的分析和提取;并且Harris算子对尺度变化敏感,如在不改变任何参数下,对于图像旋转一定角度,图 1(c)检测的结果相对图 1(b)而言,角点密集度降低,背景区域角点检测结果差异更明显。
|
| 图1 传统Harris角点检测算法检测结果图 Figure 1 Detection results of traditional Harris corner detection algorithm |
针对Harris上述问题,本文提出了优化的区域检测算法和改进的多尺度Harris角点检测算法。有效的实现目标物体的提取和检测,提高图像的自动处理能力。
2.1 区域检测算法从信息理论角度,图像的信息可以分为冗余和变化两个部分。由于人类的视觉对变化区域的敏感性,区域检测就是保留图像中的变换部分,去除冗余部分,获得图像的显著图。本文应用一种图像视觉显著性的简单计算模型,通过计算对数残差谱来提取显著性区域[10-11]。对于一幅自然图像I(x,y),检测的区域就是利用逆傅里叶变换计算得到在空间域的显著图。为获得更好的视觉效果,使用高斯滤波器wx,y,显著图可由式(4) ~(7) 计算:
| $A\left( I \right)R\left( F\left[ I\left( x,y \right) \right] \right)$ | (4) |
| $P\left( I \right)S\left( F\left[ I\left( x,y \right) \right] \right)$ | (5) |
| $\begin{align} & R\left( I \right)=\log A\left( I \right)-{{h}_{n}}\left( I \right)*\left( \log A\left( I \right) \right) \\ & {{h}_{n}}\left( I \right)=\frac{1}{{{n}^{2}}}\left| \begin{matrix} 1 & 1 & \cdots & 1 \\ 1 & 1 & \cdots & 1 \\ \vdots & \vdots & \vdots & \vdots \\ 1 & 1 & \cdots & 1 \\ \end{matrix} \right| \\ \end{align}$ | (6) |
| $S\left( x,y \right)={{w}_{x,y}}*{{F}^{-1}}{{\left[ \exp \left( R\left( I \right)+P\left( I \right) \right) \right]}^{2}}$ | (7) |
式中:A(I)为图像的幅度谱,P(I)为图像的相位谱,R(I)为图像残差谱,hn(I)是一个n×n的均值滤波的卷积核,本文n取3,S(x,y)表示最终获得的显著图。
为了得到图像的目标区域,需要对显著图进行二值化处理,就需要阈值对背景和目标两类进行分割,获得二值图像表示为
| $\begin{align} & O\left( x,y \right)=\left\{ \begin{matrix} 1,S\left( x,y \right)>\text{Th} \\ 0,其他 \\ \end{matrix} \right. \\ & \text{Th}=E\left( S\left( x,y \right) \right)\times 3 \\ \end{align}$ |
式中:Th为分割的阈值,E(S(x,y))表示显著图灰度的平均值。
2.2 优化的区域检测算法Th的值对图像目标和背景的分割效果有直接影响,本文中采用一种自适应阈值方法[12]。由图 2(a)可以知道,显著图中白色代表前景部分,黑色代表背景部分,使得两部分的信息熵之和最大的灰度值就是图像的最佳分割阈值Th:
| $\text{Th}={{\arg }_{t}}\max \left( -\sum\limits_{i=1}^{t}{{{p}_{i}}*\text{lb}{{p}_{i}}-\sum\limits_{i=t+1}^{L}{{{p}_{i}}*\text{lb}{{p}_{i}}}} \right)$ |
式中:pi表示显著图中灰度值i出现的概率,L是显著图中像素灰度值的最大值。
由图 2(b)可以发现,生成的二值图在背景部分仍然会有许多分散的、小的显著区域,干扰目标部分的选择,使生成的目标图不够明确。
|
| 图2 显著性区域检测分割图 Figure 2 Significant region detection segmentation figures |
因此,本文在阈值分割之后,对生成的二值图像进行先腐蚀再膨胀的形态学操作,消除背景部分小的白色区域,填充目标部分细小的黑色空洞,与邻近部分融为一体,平滑目标物体的边界。这种方法可有效形成目标部分的目标图,同时并不会改变原来物体的面积,分割效果更佳准确。A(x)代表操作时选择的结构元素,对空间E中的每一点x,开运算的过程即先腐蚀再膨胀的操作可以定义为
| $\begin{align} & X=E\odot A=\left\{ x:A\left( x \right)\subset E \right\} \\ & Y=E\oplus A=\left\{ x:A\left( x \right)\bigcap E\ne \varnothing \right\} \\ & \text{PIEN}\left( x \right)=Y\left( X\left( x \right) \right) \\ \end{align}$ |
通过此方法获得的显著性区域检测分割结果如图 2(c)。
2.3 改进的多尺度Harris角点检测算子尺度空间是引入尺度变化的核函数,与原图像卷积获得图像在多尺度空间下的空间序列。本文改进的多尺度Harris角点检测算子的计算步骤为:
1) 引入尺度空间因子,计算自相关矩阵。设尺度空间积分因子为δD,尺度空间微分因子为sδD,自相关矩阵计算公式为[13]:
| $I\left( x,y;s{{\delta }_{D}} \right)=I\otimes w\left( x,y;s{{\delta }_{D}} \right)$ | (8) |
| $\begin{align} & M=s{{\delta }_{D}}^{2}w\left( x,y;s{{\delta }_{D}} \right)\otimes \\ & \left[ \begin{matrix} I_{x}^{2}\left( x,y;s{{\delta }_{D}} \right) & {{I}_{x}}\left( x,y;s{{\delta }_{D}} \right){{I}_{y}}\left( x,y;s{{\delta }_{D}} \right) \\ {{I}_{x}}\left( x,y;s{{\delta }_{D}} \right){{I}_{y}}\left( x,y;s{{\delta }_{D}} \right) & I_{x}^{2}\left( x,y;s{{\delta }_{D}} \right) \\ \end{matrix} \right] \\ \end{align}$ | (9) |
式中:s为常数,s<1。
2) 计算角点响应函数。为了避免k值选取的随机性影响图像的角点检测效果,使结果不令人满意,本文中,对Harris算法的角点响应函数进行了如下改进[14],定义为
| $\text{CRF}=\frac{\det M}{\text{tr}M}=\frac{AC-{{B}^{2}}}{A+C}$ | (10) |
3) 局部非极大值抑制。为了实现Harris算子对旋转图像的适应性,提高算法的自动处理能力,选取半径为2的圆形模板。根据圆的性质,图像旋转时能保证非极大值抑制中心点不变,在模板区域获得极大值点,模板的数学表达式描述和图形如下
| $\begin{align} & R\left( i,j \right)>0.01{{R}_{\max }}\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right)>R\left( i-1,j \right)\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right) \\ & >R\left( i-2,j \right)\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right)>R\left( i+1,j \right)\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right)> \\ & R\left( i+2,j \right)\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right)>R\left( i,J-1 \right)\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right)> \\ & R\left( i,J-2 \right)\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right)>R\left( i,j+1 \right)\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right)> \\ & R\left( i,J+2 \right)\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right)>R\left( i-1,J-1 \right)\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right)> \\ & R\left( i+1,J-1 \right)\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right)>R\left( i-1,J+1 \right)\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right)> \\ & R\left( i+1,J+1 \right)\text{ }\!\!\And\!\!\text{ }\!\!\And\!\!\text{ }R\left( i,j \right) \\ \end{align}$ |
获得的最大值R(i,j)的点就为角点,记录其位置(i,j),对角点进行标记。
|
| 图3 半径为2的圆形模板 Figure 3 Circular template with a radius of 2 |
通过以上分析,对Harris角点检测算法进行改进,本文算法的流程图如图 4所示。
|
| 图4 本文算法的流程图 Figure 4 Flow chart of algorithm in this paper |
通过此方法获得的角点数目较少,并且多集中于目标区域内,滤除背景的角点干扰,提高角点检测性能。
3 实验结果与分析为了验证该算法的有效性,利用同一幅图像进行仿真分析。本文算法中利用区域检测算法结合多尺度Harris算法,应用本文算法和文献[9]的算法对原图像及旋转后的图像进行角点检测,结果如图 5所示;传统Harris算法和本文算法检测角点的数目和时间如表 1所示。
| 参数 | 传统Harris算法 | 本文算法 | 旋转后图像应用传统Harris算法 | 旋转后图像应用本文算法 |
| 检测角点数目 | 691 | 296 | 584 | 287 |
| 检测时间 | 0.467 39 | 0.321 65 | 0.402 17 | 0.356 14 |
由实验得到结果图 5和表 1的数据,和图 1中的检测结果作对比可知,应用本文算法检测到的角点多集中于目标物体上,滤除背景上的大部分角点,提高了角点检测的精度,减小了后续的角点匹配与重建的计算量;同时相对于传统的Harris算法对于旋转图像检测角点结果差异大的缺点,本文算法能够有效的抑制Harris算子的旋转差异性,提高算法的多尺度性。
|
| 图5 两种算法实验结果 Figure 5 Experimental results of two algorithms |
本文结合已有算法的一些优点,针对Harris角点检测算法存在的一些缺点进行了研究。该方法利用优化的区域检测算法,更加准确的检测出目标区域;然后对多尺度Harris角点检测算法进行改进,引入微分和积分尺度因子,去除影响因子k,采用圆形模板进行非极大值抑制,克服尺度敏感性,具有一定自适应能力。通过实验对本文提出的算法与传统的Harris算法做比较,仿真结果表明:
1) 传统的Harris角点检测算法检测到的角点多且分散,对于旋转后的图像,检测结果存在较大的差异性;
2) 本文算法检测到的角点数目相对较少,而且一定程度上缩短了检测时间;
3) 对于旋转后的图像应用本算法检测误差较小,具有良好的稳定性和可靠性。
本文算法虽然提高了角点检测效率,但却未能真正达到对目标的精确检测,在以后的工作中将继续研究。
| [1] |
徐贤锋, 檀结庆. 一种改进的多尺度Harris特征点检测方法[J].
计算机工程, 2012, 38(17): 174–177.
XU Xianfeng, TAN Jieqing. An improved multi-scale Harris feature point detection method[J]. Computer engineering, 2012, 38(17): 174–177. |
| [2] | QUDDUS A, FAHMY M M. An improved wavelet-based corner detection technique[C]//Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing. Phoenix, USA:IEEE, 1999, 6:3213-3216. |
| [3] | HARRIS C, STEPHENS M. A combined corner and edge detector[C]//Proceedings of the 4th Alvey Vision Conference. Manchester, UK:Blackwel, 1988:147-151. |
| [4] | SCHMID C, MOHR R, BAUCKHAGE C. Evaluation of interest point detectors[J]. International journal of computer vision, 2000, 37(2): 151–172. |
| [5] |
高晶, 吴育峰, 吴昆, 等. 基于角点检测的图像匹配算法[J].
仪器仪表学报, 2013, 34(8): 1717–1725.
GAO Jing, WU Yufeng, WU Kun, et al. Image matching method based on corner detection[J]. Chinese journal of scientific instrument, 2013, 34(8): 1717–1725. |
| [6] | MIKOLAJCZYK K, SCHMID C. Scale & affine invariant interest point detectors[J]. International journal of computer vision, 2004, 60(1): 63–86. |
| [7] |
程邦胜, 唐孝威. Harris尺度不变性关键点检测子的研究[J].
浙江大学学报:工学版, 2009, 43(5): 855–859.
CHENG Bangsheng, TANG Xiaowei. Study of Harris scale invariant keypoint detector[J]. Journal of Zhejiang university:engineering science, 2009, 43(5): 855–859. |
| [8] |
黄帅. 基于Harris尺度不变特征的图像匹配算法研究[D]. 合肥:合肥工业大学, 2010.
HUANG Shuai. Research on image matching algorithm based on scale invariant feature[D]. Hefei:Hefei University of Technology, 2010. |
| [9] |
温文雅. 一种改进的Harris多尺度角点检测算法[J].
重庆理工大学学报:自然科学, 2012, 26(8): 94–97.
WEN Wenya. An improved algorithm for Harris multi-scale corner detection[J]. Journal of Chongqing university of technology:natural science, 2012, 26(8): 94–97. |
| [10] | HOU Xiaodi, ZHANG Liqing. Saliency detection:a spectral residual approach[C]//Proceedings of 2007 IEEE Conference on Computer Vision and Pattern Recognition. Minneapolis, MN:IEEE, 2007:1-8. |
| [11] |
李海洋, 文永革, 何红洲. 一种改进的SIFT特征点检测方法[J].
计算机应用与软件, 2013, 30(9): 147–150.
LI Haiyang, WEN Yongge, HE Hongzhou. An improved SIFT feature point detection method[J]. Computer applications and software, 2013, 30(9): 147–150. |
| [12] |
张巧荣, 景丽, 肖会敏, 等. 利用视觉显著性的图像分割方法[J].
中国图像图形学报, 2011, 16(5): 767–772.
ZHANG Qiaorong, JING Li, XIAO Huimin, et al. Image segmentation based on visual saliency[J]. Journal of image and graphics, 2011, 16(5): 767–772. |
| [13] |
汪华琴, 谈国新, 钱小红, 等. 一种基于曲率尺度空间的自适应角点检测方法[J].
计算技术与自动化, 2007, 26(2): 123–127.
WANG Huaqin, TAN Guoxin, QIAN Xiaohong, et al. An adaptive corner detector based on curvature scale space[J]. Computing technology and automation, 2007, 26(2): 123–127. |
| [14] | NOBLE J A. Finding corners[J]. Image and vision computing, 1988, 6(2): 121–128. |


