|
发布时间: 2016-11-25 |
图像分析和识别 |
|
|
收稿日期: 2016-05-24; 修回日期: 2016-07-05
基金项目: 国家自然科学基金项目(61401347);陕西省自然科学基础研究计划基金项目(2016JM6013);西安工程大学控制科学与工程学科群建设基金项目(107090811)
第一作者简介: 赵亚利(1992-), 男, 西安工程大学控制工程专业在读硕士研究生, 主要研究方向为图像处理与模式识别。E-mail:yali_zhao2016@163.com
中图法分类号: TP391.41
文献标识码: A
文章编号: 1006-8961(2016)11-1502-13
|
摘要
目的 基于边缘轮廓的角点检测算法的检测性能虽然相对比较稳定,但是它对边缘轮廓的局部变化敏感,并且只是给予一个经验门限去提取角点,为此提出一种对局部变化和噪声稳健的基于图像边缘轮廓自适应阈值的角点检测算法。 方法 该算法利用各向异性高斯方向导数滤波器对不同边缘和角点模型进行表征,提取表征边缘和角点的灰度及几何变化的不变属性,并通过正则化计算得到区别边缘和角点的自适应阈值。该算法首先利用Canny边缘检测器检测输入图像的边缘映射并从边缘映射中提取出边缘轮廓;然后利用各向异性高斯方向导数滤波器对所提取出的边缘曲线进行滤波平滑,计算出每一像素点的响应并与自适应阈值作比较,把响应大于阈值的点作为候选角点;最后,对候选角点进行非极大值抑制得到最终角点集。 结果 提出的算法分别与Harris算法,He & Yung算法,以及ANDDs算法在仿射变换和高斯噪声的实验环境下进行比较,其性能指标为平均重复率与定位误差;并且对每个角点检测算法在无噪声和有噪声的情况下进行了角点匹配比较。4种算法的两个指标的平均排名为Harris 3.375,He & Yung 2.625,ANDDs 2.625,本文算法1.375。本文算法在仿射变换以及高斯噪声的情况下有着良好的平均重复率和定位误差,优于其他3种算法。匹配实验中的错误点以及丢失点也少于其他3种算法。 结论 图像的特征检测在计算机视觉领域是一个重要的课题,在许多视觉系统中,检测特征往往作为复杂计算的第1步。因此,这一步的可靠性会极大地影响着视觉系统整体的结果。而角点作为图像的重要特征,对其研究具有重大意义。本文算法不同于传统的基于边缘的角点检测器仅利用边缘轮廓的信息,还利用到图像边缘像素的灰度信息。而且,本文算法还采用一个自适应全局阈值,避免了角点的误判。正则化的灰度变化有效减少了噪声或者光照对检测性能的影响。通过角点匹配实验、仿射变换实验以及高斯噪声实验,可以看出,本文的角点检测器拥有良好的检测性能,并且对噪声具有稳健性。
关键词
角点检测; 边缘轮廓; 各向异性高斯方向导数滤波器; 自适应阈值
Abstract
Objective Corner detection is a major research area in computer vision. Many algorithms of corner detection have been proposed in recent years. The existing methods can be divided into intensity-, contour-, and template-based approaches. The detection performance of contour-based corner detection is relatively stable, but this approach is sensitive to local variation and noise on the curve. Many contour-based image corner detectors provide only an empirical threshold to extract the corner. Thus, this paper proposes a novel contour-based corner detection with adaptive threshold, and this algorithm has a robust performance in local variation and noise on the curve. Method The proposed method is based on anisotropic Gaussian directional derivative (ANDD) representations, and searches the invariant property of geometry and gray level in edges and corners. The adaptive threshold of the difference between the edge and corner points is obtained by the regularization calculation. This corner detection finds the edge map using the Canny edge detector and extracts edges from the edge map first. The ANDD filter is then used to filter the extracted edge curves, and the response of each pixel is calculated and compared with the adaptive threshold value. Then, the point value that is higher than the threshold value is chosen as the candidate corner. Finally, the non-maximum suppression is applied to the candidate corner set and the final corners are obtained. Result The proposed detector is compared with three different detectors under affine transforms and Gaussian noise degradation. The evaluation criteria of performance are average repeatability and localization error. In simulation experiments, the average rankings of four algorithms are as follows: Harris (3.375), He and Yung (2.625), ANDDs (2.625), and the proposed method (1.375). The corner matching performance of the corner detection algorithms are compared under the noise-free and noisy environments. Experimental results show that the proposed method attains excellent performance on average repeatability and localization error under affine transforms and Gaussian noise degradation. The number of false and missed corners is less than that of the three other corner detectors in matching experiments. Conclusion The proposed corner detection is a contour-based method with an adaptive threshold. Similar to most contour-based algorithms, the proposed method detects the edge map of input image using the edge detector first and then extracts the edges from the edge map. However, the proposed algorithm is different from the traditional contour-based corner detection using only the edge information. The proposed algorithm also utilizes intensity variations of pixels on edges. Furthermore, the new method uses a global adaptive threshold to avoid erroneous judgment of corners. The sum of normalized intensity variations effectively reduces the influence of noise or illumination on detection performance. As obtained from experiments of corner matching, affine transforms, and Gaussian noise degradation, the proposed method shows excellent performance in terms of detection accuracy, average repeatability, localization error, and noise robustness.
Key words
corner detection; contour-based; anisotropic Gaussian directional derivatives; adaptive threshold
0 引言
图像的边缘轮廓上有着许多图像特征信息,例如角点、拐点。而角点是图像非常重要的特征,它往往被定义为图像边界曲线的曲率极大值点或者多个区域边界交汇点。图像的角点检测在机器视觉以及图像处理领域中有着极其重要的作用,它的应用已经遍及到许多领域。例如目标识别[1]、图像配准[2]、视觉跟踪[3]、模式匹配[4]等领域。现有的角点检测算法大致可以分为3类:基于灰度强度的角点检测、基于模型的角点检测、基于边缘轮廓的角点检测。基于灰度强度的最经典检测算法是Harris和Stephens[5]在1988年提出的Harris角点检测算法,后面的许多基于灰度强度的角点检测算法都是基于Harris角点检测器的框架。基于模型的角点检测算法通过对不同的角点进行表征,建立数学模型,然后对目标图像进行滤波,从而检测角点。
本文在文献[6]的基础之上,提出了一种基于图像边缘轮廓的自适应阈值的角点检测算法。基于边缘轮廓的角点检测算法首先利用一些边缘检测算法来检测图像的边缘映射,然后将边缘轮廓曲线提取出来,最后通过计算每个像素点的曲率值以及梯度变化,找出极大值点,从而提取出目标图像的角点。1998年,Mokhtarian和Suomela[7]提出了一种基于曲率尺度空间(CSS)的角点检测算法,该算法把图像边缘点的曲率绝对值极大值点定义为角点。CSS算法首先使用边缘检测器来提取图像的边缘轮廓,接着提取边缘轮廓并填充边缘之间的间隙,找到T型角点,然后在大尺度下计算边缘点的曲率值,如果边缘点的曲率值为极大值点且大于给定的阈值,那么就将其作为候选角点,最后通过在多个小尺度下追踪角点来提高定位。2001年,Han和Poston[8]先设定一个弦的长度,然后通过移动弦来获得弦到点的累加距离(CPDA),从而得到边缘点的离散曲率。随后,Awrangmad和Lu[9]在此基础上提出了CPDA角点检测算法。CPDA算法首先用一个小尺度高斯函数平滑提取后的边缘,以去除噪声的影响,接着通过CPDA来计算3个不同长度弦下的离散曲率,然后对3个不同的离散曲率值进行归一化相乘,使得强角点与弱角点更容易被区分开来,最后通过寻找曲率积的局部极大值点来获得候选角点,并通过曲率阈值和角度阈值来去除弱角点和假角点。CPDA角点检测算法没有使用任何的一阶与二阶导数信息,因此其对噪声以及局部变化有着非常好的稳健性。2007年, Zhang等人[10]在曲率尺度空间(CSS)的框架上提出了一个利用不同尺度乘积的多尺度算法来提高角点检测的性能,该算法利用尺度积作为角点测度,因而不需要用小的尺度来进行角点跟踪,减少了计算量,同时也有效地抑制了虚假角点的产生。2008年,He和Yung[11]提出基于全局与局部曲率特性的角点检测算法,并且使用自适应曲率阈值从候选角点集中去除圆角点以及在一个动态支撑区域内计算候选角点的角度来去除量化噪声以及琐碎细节产生的错误角点。2010年,Zhang等人[12]在图像边缘轮廓的动态支撑区域内,利用边缘的梯度特征分布构建梯度自相关矩阵来改善角点的检测与定位性能。2012年,Rimon和Robert[13]提出利用梯度方向变化信息来检测角点,值得一提的是该算法使用了两个边缘图像B和B+,其中B是通过阈值化处理得到的粗边缘,B+是通过对B进行非极大值抑制获得的细边缘。2013年Shui和Zhang[6]提出了利用各向异性高斯方向导数(ANDDs)对角点进行提取与分类。2014年,Zhang等人[14]利用Gabor滤波器平滑边缘像素来检测角点。2015年, Zhang等人[15]在一个连续的空间内用切尔雪夫多项式拟合来计算边缘像素的曲率,从而达到检测角点的目的。
虽然基于边缘轮廓的角点检测算法的检测性能相对比较稳定,但是它对边缘轮廓的局部变化敏感,并且不能给予一个确切的门限去提取角点。为了克服上述问题,文献[6]提出了各向异性高斯方向导数(ANDDs)角点检测器,该算法利用ANDDs对边缘和角点模型的表征并分析它们的特性,然后用边缘和角点响应减去一个理想的边缘响应得到响应残差,最后利用经验门限对残差的大小进行判决,残差大的判定为角点。该方法具有稳健的抗噪声性能,但是经验阈值的选取降低了检测性能的稳定性,大阈值减小了伪角点出现的概率但提高了漏检的概率,小阈值减小了漏检的概率但提高了误检的概率。
文献[11]提出了一种自适应阈值角点检测算法,很好地去除了错误角点,受到其启发,本文在文献[6]的基础上,对边缘和角点模型的表征作进一步的探讨,通过分析及推导得到区别边缘和角点的自适应阈值;在此基础上提出了一个新的角点测度和角点检测算法。该算法基于边缘和角点的特性分析,不仅利用了边缘的形状特性及边缘像素和周围像素之间的相关信息,而且具有自适应的全局阈值。与经典的角点检测算法相比(Harris和Stephens[5]、He & Yung[11]、ANDDs[6]),本文算法具有更好的平均重复率、定位误差以及噪声稳健性。
1 各向异性高斯核及其方向导数的性质
在图像处理中,高斯核函数应用得非常广泛,并且已经被证明在处理许多复杂问题上是非常有用的。近年来,许多学者对于各向异性高斯核产生了浓厚的兴趣,因为它可以对图像中每个像素的所有灰度变化进行检测,不再局限于传统的各向同性高斯核的有限个方向。并且,各向异性高斯核对噪声以及局部变化有着良好的稳健性。同时,各向异性高斯导数滤波器也已经被证明对于处理未知局部结构方向信息的图像是非常有效的[16]。
1.1 各向异性高斯核和各向异性高斯方向导数
首先,用I(
$\begin{align} & {{I}_{\sigma }}\left( \boldsymbol{x} \right)=I*{{G}_{\sigma }}\left( \boldsymbol{x} \right)=\iint{I\left( \boldsymbol{x}-\boldsymbol{v} \right){{G}_{\sigma }}\left( \boldsymbol{v} \right)\text{d}\boldsymbol{v}} \\ & {{G}_{\sigma }}\left( \boldsymbol{x} \right)=\frac{1}{2\text{ }\!\!\pi\!\!\text{ }{{\sigma }^{2}}}\exp \left( -\frac{{{\boldsymbol{x}}^{\text{T}}}\boldsymbol{x}}{2{{\sigma }^{2}}} \right),\sigma >0 \\ \end{align}$ | (1) |
式中,
$\begin{align} & {{G}_{\left[ \sigma ,p \right]}}\left( \boldsymbol{x} \right)=\frac{1}{2\text{ }\!\!\pi\!\!\text{ }{{\sigma }^{2}}}\exp \left( -\frac{1}{2{{\sigma }^{2}}}{{\boldsymbol{x}}^{\text{T}}}\boldsymbol{Mx} \right) \\ & \boldsymbol{M}=\left[ \begin{matrix} {{\rho }^{2}} & 0 \\ 0 & {{\rho }^{-2}} \\ \end{matrix} \right] \\ \end{align}$ | (2) |
式中,
$\begin{align} & {{G}_{\left[ \sigma ,p,\theta \right]}}\left( \boldsymbol{x} \right)= \\ & \frac{1}{2\text{ }\!\!\pi\!\!\text{ }{{\sigma }^{2}}}\exp \left( -\frac{1}{2{{\sigma }^{2}}}{{\boldsymbol{x}}^{\text{T}}}\boldsymbol{T}{{\boldsymbol{r}}_{\left( -\theta \right)}}\boldsymbol{MT}{{\boldsymbol{r}}_{\left( \theta \right)}}\boldsymbol{x} \right) \\ & \boldsymbol{T}{{\boldsymbol{r}}_{\left( \theta \right)}}=\left[ \begin{matrix} \cos \left( \theta \right) & \sin \left( \theta \right) \\ -\sin \left( \theta \right) & \cos \left( \theta \right) \\ \end{matrix} \right] \\ \end{align}$ | (3) |
式中,Tr(
下面来分析各向异性高斯核函数的导数形式。首先,前面所提到的扩展之后的2维高斯核函数在2维笛卡儿坐标系中的
$\\frac{\partial {{G}_{\left[ \sigma ,p \right]}}}{\partial x}\left( \boldsymbol{x} \right)=-\frac{{{\rho }^{2}}x}{{{\sigma }^{2}}}{{G}_{\left[ \sigma ,p \right]}}\left( \boldsymbol{x} \right)$ | (4) |
然后,通过旋转式(4)就可以得到各向异性高斯函数的方向导数,其表达形式为
$\begin{align} & {{\mathit{\Upsilon} }_{\left[ \sigma ,p,\theta \right]}}\left( \boldsymbol{x} \right)=\frac{\partial {{G}_{\sigma ,p}}}{\partial \theta }\left( \boldsymbol{T}{{\boldsymbol{r}}_{\left( \theta \right)}}\boldsymbol{x} \right)= \\ & -\frac{{{\rho }^{2}}\left[ \cos \left( \theta \right),\sin \left( \theta \right) \right]\boldsymbol{x}}{{{\sigma }^{2}}}{{G}_{\left[ \sigma ,p,\theta \right]}}\left( \boldsymbol{x} \right) \\ \end{align}$ | (5) |
图 1表示了各向异性高斯方向导数滤波器的8个方向。每个方向导数滤波器都可以提取输入图像相应方向的灰度变化信息,并且文献[19]已经证明各向异性高斯核函数具有一定的抑制高斯噪声的能力。
对于1幅输入图像I(
$\begin{align} & {{\nabla }_{\left[ \sigma ,p \right]}}I\left( \boldsymbol{x},\theta \right)=\frac{\partial }{\partial \theta }\left( I\left( \boldsymbol{x} \right)*{{G}_{\left[ \sigma ,p,\theta \right]}}\left( \boldsymbol{x} \right) \right)= \\ & I\left( \boldsymbol{x} \right)*\left( -\frac{{{\rho }^{2}}\left[ \cos \left( \theta \right),\sin \left( \theta \right) \right]\boldsymbol{x}}{{{\sigma }^{2}}}{{G}_{\left[ \sigma ,p,\theta \right]}}\left( \boldsymbol{x} \right) \right)= \\ & I\left( \boldsymbol{x} \right)*{{\mathit{\Upsilon} }_{\left[ \sigma ,p,\theta \right]}}\left( \boldsymbol{x} \right) \\ \end{align}$ | (6) |
该函数由各向异性高斯平滑滤波器的方向导数算子组成,并且在沿着
1.2 各向异性高斯方向导数的离散化
在实际的图像处理中,使用的都是离散化的2维图像信号。因此,在进行仿真实验时,应首先将各向异性高斯核函数与各向异性高斯方向导数进行离散。对于包含尺度
$\begin{align} & {{G}_{\left[ \sigma ,p,\theta \right]}}\left( \boldsymbol{n} \right)= \\ & \frac{1}{2\text{ }\!\!\pi\!\!\text{ }{{\sigma }^{2}}}\exp \left( -\frac{1}{2{{\sigma }^{2}}}{{\boldsymbol{n}}^{\text{T}}}\boldsymbol{T}{{\boldsymbol{r}}_{\left( -\theta \right)}}\boldsymbol{MT}{{\boldsymbol{r}}_{\left( \theta \right)}}\boldsymbol{n} \right) \\ \end{align}$ | (7) |
$\begin{align} & {{\mathit{\Upsilon} }_{\left[ \sigma ,p,\theta \right]}}\left( \boldsymbol{n} \right)=\frac{\partial {{G}_{\left[ \sigma ,p,\theta \right]}}}{\partial \theta }\left( \boldsymbol{T}{{\boldsymbol{r}}_{\left( \theta \right)}}\boldsymbol{n} \right)= \\ & -\frac{{{\rho }^{2}}\left[ \cos \left( {{\theta }_{d}} \right),\sin \left( {{\theta }_{d}} \right) \right]\boldsymbol{n}}{{{\sigma }^{2}}}{{G}_{\left[ \sigma ,p,\theta \right]}}\left( \boldsymbol{n} \right) \\ \end{align}$ | (8) |
式中,n=[n
${{\nabla }_{\left[ \sigma ,p,\theta \right]}}I\left( \boldsymbol{n},d \right)=\sum\limits_{{{a}_{x}}}{\sum\limits_{{{a}_{y}}}{I\left( \boldsymbol{n}-\boldsymbol{a} \right)}}{{\Upsilon }_{\left[ \sigma ,p,\theta \right]}}\left( \boldsymbol{a} \right)$ | (9) |
式中,
2 自适应阈值和新的角点检测算法
2.1 自适应阈值的获取
在极坐标系下,一个简单角点的模型可以定义为[6]
$\begin{array}{l} \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{F_{\left[ {{\beta _1},{\beta _2}} \right]}}\left( {r,\beta } \right) = \\ \left\{ \begin{array}{l} {T_1}\;\;0 \le r < \infty ,{\beta _1} \le \beta \le {\beta _2},{\beta _2} - {\beta _1} \ne {\rm{\pi }}\\ 0\;\;\;其他 \end{array} \right. \end{array}$ | (10) |
式中,r是极径,
ANDDs滤波器对简单角点的响应可以表示为
$\begin{align} & {{\varphi }_{{{\beta }_{1}},{{\beta }_{2}}}}\left( \theta \right)=\iint_{{{R}^{2}}}{F\left( r,\beta \right){{\mathit{\Upsilon} }_{\left[ \sigma ,p,\theta \right]}}\left( -r,-\beta \right)r\text{d}r\text{d}\beta =} \\ & \frac{\rho {{T}_{1}}}{2\sqrt{2\text{ }\!\!\pi\!\!\text{ }}\sigma }\left( \frac{\cos \left( \theta -{{\beta }_{1}} \right)}{\sqrt{{{\rho }^{4}}{{\sin }^{2}}\left( \theta -{{\beta }_{1}} \right)+{{\cos }^{2}}\left( \theta -{{\beta }_{1}} \right)}} \right)- \\ & \left( \frac{\cos \left( \theta -{{\beta }_{1}} \right)}{\sqrt{{{\rho }^{4}}{{\sin }^{2}}\left( \theta -{{\beta }_{2}} \right)+{{\cos }^{2}}\left( \theta -{{\beta }_{2}} \right)}} \right) \\ \end{align}$ | (11) |
不失一般性,Y-型,X-型与星型角点的模型可以通过简单角点的模型叠加得到。因此,通用角点模型可以定义为
$\psi \left( r,\beta \right)\equiv \sum\limits_{i=1}^{k}{{{T}_{i}}{{F}_{\left[ {{\beta }_{i}},{{\beta }_{i+1}} \right]}}\left( r,\beta \right)}$ | (12) |
那么通用角点模型与ANDDs滤波器的响应表达式为
$\begin{align} & {{\zeta }_{{{\beta }_{1}},{{\beta }_{2}}}}\left( \theta \right)=\iint_{{{R}^{2}}}{\psi \left( r,\beta \right){{\mathit{\Upsilon} }_{\left[ \sigma ,p,\theta \right]}}\left( -r,-\beta \right)r\text{d}r\text{d}\beta =} \\ & \frac{\rho }{2\sqrt{2\text{ }\!\!\pi\!\!\text{ }}\sigma }\sum\limits_{i=1}^{k}{\frac{\left( {{T}_{i}}-{{T}_{i-1}} \right)\cos \left( \theta -{{\beta }_{i}} \right)}{\sqrt{{{\rho }^{4}}{{\sin }^{2}}\left( \theta -{{\beta }_{i}} \right)+{{\cos }^{2}}\left( \theta -{{\beta }_{i}} \right)}}} \\ \end{align}$ | (13) |
式中,T0=Tk。
当
${{S}_{\left[ {{\beta }_{1}},{{\beta }_{2}} \right]}}\left( \theta \right)=\frac{\rho }{\sqrt{2\text{ }\!\!\pi\!\!\text{ }\sigma }}\frac{\left( {{T}_{1}}-{{T}_{2}} \right)\cos \left( \theta -{{\beta }_{1}} \right)}{\sqrt{{{\rho }^{4}}{{\sin }^{2}}\left( \theta -{{\beta }_{1}} \right)+{{\cos }^{2}}\left( \theta -{{\beta }_{1}} \right)}}$ | (14) |
从图 3(a)阶跃边缘的ANDDs响应可以看出,其在
$\xi =\underset{\theta }{\mathop{\max }}\,\left| {{S}_{\left[ {{\beta }_{1}},{{\beta }_{2}} \right]}}\left( \theta \right) \right|=\left| \frac{\rho \left( {{T}_{1}}-{{T}_{2}} \right)}{\sqrt{2\text{ }\!\!\pi\!\!\text{ }\sigma }} \right|$ | (15) |
从式(14)可以看出,阶跃边缘的响应ANDDs正比于边缘两侧的灰度差而与高斯尺度
$\begin{align} & {{T}_{h}}=\int_{0}^{\text{ }\!\!\pi\!\!\text{ }}{\frac{\left| {{S}_{\left[ {{\beta }_{1}},{{\beta }_{2}} \right]}}\left( \theta \right) \right|}{\underset{\theta }{\mathop{\max }}\,\left| {{S}_{\left[ {{\beta }_{1}},{{\beta }_{2}} \right]}}\left( \theta \right) \right|}}\text{d}\theta = \\ & \frac{4}{\sqrt{{{\rho }^{4}}-1}}\log \left( \sqrt{{{\rho }^{4}}-1}+{{\rho }^{2}} \right) \\ \end{align}$ | (16) |
式中,采用的旋转角度范围为[0,
2.2 新的角点测度
在2.1节中,通过对构建边缘以及不同的角点模型进行表征,分别得到它们的ANDDs响应,并对每个表征进行特性分析和演算,获得区别边缘与角点的自适应阈值,克服了经验阈值选取的不足之处。在此基础之上,提出新的角点测度以及新的角点检测算法。
许多基于边缘轮廓的角点检测器通常具有4个处理步骤,分别如下:
1) 使用Canny[17]或者其他的边缘检测器寻找输入图像的边缘映射;
2) 从第1)步中检测到的边缘映射中提取边缘轮廓,这一步中同时也包含有一些提高边缘质量的方法,例如在小的范围内填补曲线之间的间隙,以及去除一些非常短的边缘;
3) 用单尺度或者多尺度的高斯核函数来平滑第2)步中提取到的边缘映射,以减弱噪声以及局部范围内的变化对检测性能的影响;
4) 采用不同的基于边缘的角点测度方法来选取角点。
但是,这些基于边缘的角点检测器只是依赖于图像的边缘映射信息,因此,它们对噪声以及边缘曲线上的局部变化非常敏感。并且,这些算法的阈值都是经验性的,不能够根据图像内容的不同自动调节阈值的大小。为了克服这两个问题,通过使用ANDDs滤波器以及自适应阈值构建了一个新的基于边缘轮廓的自适应阈值角点检测算法。
对于1幅输入图像I(n)(n=[
$\begin{align} & \zeta \left( \boldsymbol{n} \right)=\Delta \theta \cdot \sum\limits_{d=1}^{D}{\frac{{{\nabla }_{\sigma ,\rho }}I\left( \boldsymbol{n};d \right)}{\max \left( {{\nabla }_{\sigma ,\rho }}I\left( \boldsymbol{n};d \right) \right)}} \\ & \Delta \theta =\text{ }\!\!\pi\!\!\text{ }/D \\ \end{align}$ | (17) |
Δ
新的角点测度
2.3 本文算法步骤
基于前面的分析,本文所提出的角点检测算法步骤如下:
1) 使用Canny边缘检测器寻找输入图I(n)的边缘映射;
2) 从边缘映射中提取边缘轮廓,并填补断裂边缘,获得较完整的边缘轮廓;
3) 利用ANDDs滤波器对图像边缘上的每个像素进行滤波平滑, 求其对应的测度值
4) 把边缘像素点的测度值
5) 对候选角点集使用非极大值抑制,得到最终角点集。
本文算法流程图如图 4所示。
3 仿真实验与性能分析
本文算法的仿真实验所使用的平台为i3-2328处理器,主频2.20 GHz,内存2 GB,32位操作系统以及Matlab2010a。
将本文角点检测算法与其他3种经典角点检测算法进行比较,它们分别为Harris & Stephens [5]、He & Yung[11]、ANDDs[6]。在角点匹配实验中,使用两张幅图像处理中普遍使用的积木图与实验室图,并且这两幅图都具有标准角点数据,如图 5所示。角点匹配的性能通过在有噪声和无噪声情况下丢失的角点和错误的角点进行评价。
在仿射变换和高斯噪声的实验中,使用文献[9]中的平均重复率和定位误差作为评价角点检测稳健性和检测精确度的评价标准。平均重复率表示测试图像变换后的角点检测与原始图像角点检测之间的重复角点的平均,其定义为
${{R}_{\text{av}}}=\left( 1/2 \right)\times {{N}_{\text{r}}}\times \left( 1/{{N}_{0}}+1/{{N}_{\text{t}}} \right)$ | (18) |
式中,No是从未变换图像中检测到的角点数,Nt是图像变换后检测到的角点数,Nr表示未变换图像与变换后图像的角点重复数。平均重复率Rav反映了在仿射变换和高斯噪声下一个角点检测器的稳定性。而且,在图像特征配准领域中,需要很高的平均重复率。
定位误差Ler是基于两点之间的欧氏距离定义的。假设用GT={Tk, k=1, 2, …, M1}表示真实角点集,用DC={Ck, k=1, 2, …, M2}表示通过角点检测器检测到的角点。对于在GT中的一个角点Tk来说,通过寻找它与角点集DC之间的最小距离来判断该角点是否检测正确。如果检测到的最小距离小于或者等于所设定的距离阈值(本文设置为4,即4个像素的距离),则判断该角点检测正确。然后,将两个角点集中检测正确的角点组成一个角点对{(Tk, Ck), k=1, 2, …, Mr}。定位误差的数学表达式为
${{L}_{\text{er}}}=\sqrt{\left( 1/{{M}_{\text{r}}} \right)\times \sum\limits_{k=1}^{{{M}_{\text{r}}}}{\left\| {{T}_{k}}-{{C}_{k}} \right\|_{2}^{2}}}$ | (19) |
3.1 参数选择
为了使新的角点检测器具有最好的角点检测性能,表 1展现了通过实验选取的最优的参数。因为阈值的选取是自适应的,所以不用对阈值进行经验选择,减少了计算量。文献[19]已通过实验证明当
表 1
本文算法在不同阶段的参数设置
Table 1
Parameter setting at different stages by theproposed algorithm
阶段 | 参数 | 功能 |
Canny边缘提取 | 高阈值=0.35 低阈值=0.2 |
调控选取的边缘数 |
ANDDs滤波器平滑 |
D=16 |
高斯平滑尺度各向异性因子滤波器的方向个数 |
非极大值抑制 | 5×5邻域 | 在邻域内保留最大测度值 |
图 6给出了一个新的角点检测例子。首先使用Canny边缘检测器从测试图像积木中提取一条闭合的边缘,然后对其采用新的角点测度。图 6(c)中的闭合曲线包含有13个角点,并且用黑色小正方形标记出。由式(16),可以计算出自适应全局阈值的大小为Th=1.203 3。图 6(d)为角点测度的结果图,可以看出,角点处的响应明显大于边缘像素点的响应值,并且大于前面所计算出的全局阈值1.200 3。因此,该闭合曲线上的13个角点都能很好地被检测到(对于与13个角点相邻的那些极大值点,在角点检测中通过非极大值抑制方法将其去除)。更重要的一点是,自适应全局阈值避免了由于经验门限的选取不当造成错检或者漏检。
为了测试新的角点测度的噪声稳健性,对测试图像积木上加入均方差
3.2 匹配实验
角点检测算法的匹配实验所用的两幅具有标准角点数据的图像如图 5所示。因为Canny边缘的高低阈值会影响检测到的边缘区域与边缘像素数,为了使实验在相同条件下进行比较,实验中把所有基于Canny边缘的角点检测器的高低阈值分别设置为0.35, 0.2。
图 7与图 8分别给出了几种检测器对于无噪声情况下积木和实验室的检测结果图。图 9的折线图表示了两幅测试图像丢失与错误角点分别占总角点数的百分比。从图 9种可以看出,在无噪声情况下,Harris算法丢失的角点最多,原因是Harris算法仅利用了图像的灰度信息,本文算法检测到的错误角点最少。
图 10与图 11分别给出了几种检测器对添加了均方差为10的高斯白噪声测试图像的检测结果。图 12的折线图表示了两幅经过噪声污染的测试图像丢失与错误角点分别占总角点数的百分比。从图 12中可以看出,Harris算法对噪声干扰最为敏感,其错误角点与丢失角点最多。He & Yung算法在有噪声的情况下丢失的角点数增加。ANDDs噪声情况下的检测性能优于Harris与He & Yung算法,提出的新算法最优。
假定丢失一个角点和检测一个错误角点对角点检测器的性能造成同样的损失,那么就可以把丢失角点和错误角点占总角点数的平均百分比作为检测性能的一个指标。图 13描述了两幅测试图像的丢失角点数与错误角点数占总角点数的百分比平均值,从图 13中可以看到,Harris算法的平均百分比最高,He & Yung算法次之,ANDDs与本文算法的平均百分比远低于前面两者,其中本文算法最优。由此可以看出,在本文算法得到最好的检测性能,优于其他3种算法。原因是本文算法在继承了各向异性高斯方向导数可以很好地提取像素各个方向的灰度变化信息的同时,而且具有一个自适应的全局门限,它避免了阈值的选择引起的误判,这正是ANDDs算法所欠缺的,因为ANDDs的阈值是通过实验选取的经验阈值。
3.3 仿射变换与高斯噪声实验
将本文角点检测算法与其他3类经典算法进行仿射变换和高斯噪声实验。在这个实验中,将会使用平均重复率和定位误差作为评价角点检测稳健性和检测精确度的评价标准。这两个评价准则不涉及人力因素,因此它可以很客观地评价角点检测器的性能。
如图 14所示,本文选择了25幅不同场景的灰度测试图像,接下来将会对这25幅图像做仿射变换和高斯噪声实验,其中仿射变换包括旋转变换、一致尺度变换和非一致尺度变换。具体如下:
1) 旋转,在区间[-90°, 90°]间进行旋转,旋转间隔为10°(去除0°);
2) 一致尺度变换,令
3) 非一致尺度变换,令
4) 高斯噪声,零均值的高斯白噪声,其均方差在区间[1, 15]内变化,间隔为1。
图 15—图 22分别给出了在仿射变换和高斯噪声下的平均重复率和定位误差。图 15和图 16展示了4个检测器在所有旋转角度下的平均重复率和定位误差。可以看到,He & Yung有着最好的平均重复率,本文算法排在第2位。在定位误差方面,本文提出的检测器有着最好的检测性能,ANDDs次之,He & Yung效果最差。
从图 17—图 20可以看出,当尺度因子小于1时,平均重复率随着尺度因子的增加而增加;相反,定位误差随着尺度因子的增加而减小。当尺度因子大于1时,两种情况恰好相反。在一致尺度变换下,He & Yung算法的平均重复率最高,但是它的定位性能最差;ANDDs算法的定位性能好,但是它的平均重复率较低;而本文算法最好的定位性能以及良好的平均重复率。在非一致尺度变换下,本文算法依然有着良好的检测性能。从图 21和图 22可以看出,随着高斯噪声的增加,所有检测器的稳健性都在下降,但是本文提出的检测器的下降趋势要比其他检测器缓慢。并且,从图 21可以看到,本文算法在4个检测器中有着最高的平均重复率,Harris算法随着噪声方差的增大下降的最快,可以看出Harris算法对噪声最为敏感。从图 22也可以看到,本文算法在噪声条件下的角点定位性能也优于Harris算法,He & Yung算法以及ANDDs算法,所以本文算法对噪声的干扰具有稳健性。
为了更加清晰地比较每个检测器之间的优缺点,对图 16和图 22中4个检测器的位置进行排序。按照平均重复率从上到下为1, 2, 3, 4,定位误差从下到上为1, 2, 3, 4进行排序,其排名如表 2所示。
表 2
4种算法的性能评价排名
Table 2
Performance rankings of four detectors
变换 | 指标 | Harris | He & Yung | ANDDs | 本文算法 |
旋转 | AR | 3 | 1 | 4 | 2 |
LE | 3 | 4 | 2 | 1 | |
一致尺度 | AR | 4 | 1 | 3 | 2 |
LE | 3 | 4 | 2 | 1 | |
非一致尺度 | AR | 3 | 1 | 4 | 2 |
LE | 3 | 4 | 2 | 1 | |
高斯噪声 | AR | 4 | 3 | 2 | 1 |
LE | 4 | 3 | 2 | 1 | |
注:AR表示平均重复率,LE表示定位误差。 |
假设每个性能评价的排名具有相同权重,那么本文中将使用每个检测器所有排名的平均值来评价每个检测器的检测性能。通过计算得到4个检器的平均排名分别为Harris 3.375、He & Yung 2.625、ANDDs 2.625、本文算法1.375。从平均排名中,可以看到,本文提出的检测算法排名第一,因此具有最好的角点检测稳健性能;ANDDs与He & Yung并列第二,Harris第三。原因是本文算法继承了各向异性高斯方向导数可以很好地提取像素各个方向的灰度变化信息,并且,本文算法采用一个自适应的全局阈值,避免了由于经验阈值的选择造成的错误检测。同时,作为角点测度的正则化的灰度变化和有效减少了噪声或者光照对检测性能的影响。
4 结论
图像的特征检测在计算机视觉领域是一个重要的课题,在许多视觉系统中,检测特征往往作为复杂计算的第1步。因此,这一步的可靠性会极大地影响着视觉系统整体的结果。而角点作为图像的重要特征,因此对其研究具有重大意义。本文提出了一个新的基于边缘轮廓的自适应阈值角点检测算法。和大多数基于边缘的角点检测算法一样,本文算法首先通过Canny边缘检测器检测输入图像的边缘映射,并从边缘映射中提取出边缘轮廓。但是,本文算法不同于传统的基于边缘的角点检测器仅利用边缘轮廓的信息,还利用到边缘像素的灰度信息。而且,本文算法还采用一个自适应全局阈值,避免了角点的误判。正则化的灰度变化和有效减少了噪声或者光照对检测性能的影响。通过角点匹配实验、仿射变换实验以及高斯噪声实验,可以看出,本文新的角点检测器拥有良好的检测性能, 并且对噪声具有稳健性。但是本文算法利用了多个方向的灰度变化信息,增加了计算的复杂度。同时,特征点的提取与匹配在基于图像的3维场景重建中也是一个非常重要的环节,因此在下一步的研究中将会对提出的角点检测算法进行优化并应用到3维模型重建中。
参考文献
-
[1] Si Y L, Mei J Y, Gao H J. Novel approaches to improve robustness, accuracy and rapidity of iris recognition systems[J]. IEEE Transactions on Industrial Informatics , 2012, 8 (1) : 110–117. DOI:10.1109/TII.2011.2166791
-
[2] Zhu H, Ma W P, Hou B, et al. SAR image registration based on multifeature detection and arborescence network matching[J]. IEEE Geoscience and Remote Sensing Letters , 2016, 13 (5) : 706–710. DOI:10.1109/LGRS.2016.2539207
-
[3] Lebeda K, Hadfield S, Matas J, et al. Texture-independent long-term tracking using virtual corners[J]. IEEE Transactions on Image Processing , 2016, 25 (1) : 359–371. DOI:10.1109/TIP.2015.2497141
-
[4] Henderson C, Izquierdo E. Robust feature matching in long-running poor-quality videos[J]. IEEE Transactions on Circuits and Systems for Video Technology , 2015, 26 (6) : 1161–1174. DOI:10.1109/TCSVT.2015.2441411
-
[5] Harris C, Stephens M. A combined corner and edge detector[C]//Proceedings of the 4th Alvey Vision Conference. Manchester: University Manchester, 1988: 147-151.[DOI: 10.5244/C.2.23]
-
[6] Shui P L, Zhang W C. Corner detection and classification using anisotropic directional derivative representations[J]. IEEE Transactions on Image Processing , 2013, 22 (8) : 3204–3218. DOI:10.1109/TIP.2013.2259834
-
[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. DOI:10.1109/34.735812
-
[8] Han J H, Poston T. Chord-to-point distance accumulation and planar curvature: a new approach to discrete curvature[J]. Pattern Recognition Letters , 2001, 22 (10) : 1133–1144. DOI:10.1016/S0167-8655(01)00063-0
-
[9] Awrangjeb M, Lu G J. Robust image corner detection based on the chord-to-point distance accumulation technique[J]. IEEE Transactions on Multimedia , 2008, 10 (6) : 1059–1072. DOI:10.1109/TMM.2008.2001384
-
[10] Zhang X H, Lei M, Yang D, et al. Multi-scale curvature product for robust image corner detection in curvature scale space[J]. Pattern Recognition Letters , 2007, 28 (5) : 545–554. DOI:10.1016/j.patrec.2006.10.006
-
[11] He X C, Yung N H C. Corner detector based on global and local curvature properties[J]. Optical Engineering , 2008, 47 (5) : #057008. DOI:10.1117/1.2931681
-
[12] Zhang X H, Wang H X, Smith A W B, et al. Corner detection based on gradient correlation matrices of planar curves[J]. Pattern Recognition , 2010, 43 (4) : 1207–1223. DOI:10.1016/j.patcog.2009.10017
-
[13] Elias R, Laganière R. JUDOCA: junction detection operator based on circumferential anchors[J]. IEEE Transactions on Image Processing , 2012, 21 (4) : 2109–2118. DOI:10.1109/TIP.2011.2175738
-
[14] Zhang W C, Wang F P, Zhu L, et al. Corner detection using Gabor filters[J]. IET Image Processing , 2014, 8 (11) : 639–646. DOI:10.1049/iet-ipr.2013.0641
-
[15] Zhang S Z, Yang D, Huang S, et al. Corner detection using Chebyshev fitting-based continuous curvature estimation[J]. Electronics Letters , 2015, 51 (24) : 1988–1990. DOI:10.1049/el.2015.2491
-
[16] Lampert C H, Wirjadi O. An optimal nonorthogonal separation of the anisotropic Gaussian convolution filter[J]. IEEE Transactions on Image Processing , 2006, 15 (11) : 3501–3513. DOI:10.1109/TIP.2006.877501
-
[17] Canny J. A computational approach to edge detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence , 1986, PAMI-8 (6) : 679–698. DOI:10.1109/TPAMI.1986.4767851
-
[18] Mallat S, Zhong S. Characterization of signals from multiscale edges[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence , 1992, 14 (7) : 710–732. DOI:10.1109/34.142909
-
[19] Shui P L, Zhang W C. Noise-robust edge detector combining isotropic and anisotropic Gaussian kernels[J]. Pattern Recognition , 2012, 45 (2) : 806–820. DOI:10.1016/j.patcog.2011.07.020
-
[20] Geusebroek J M, Smeulders A W M, Van De Weijer J. Fast anisotropic Gauss filtering[J]. IEEE Transactions on Image Processing , 2003, 12 (8) : 938–943. DOI:10.1109/TIP.2003.812429
-
[21] Morevec H P. Towards automatic visual obstacle avoidance[C]//Proceedings of the 5th International Joint Conference on Artificial Intelligence. San Francisco, CA: ACM, 1977: 584.