Print

发布时间: 2019-07-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.180564
2019 | Volume 24 | Number 7




    图像理解和计算机视觉    




  <<上一篇 




  下一篇>> 





利用点弦距离递归的图像角点检测算法
expand article info 李云红, 何亚瑞, 章为川, 周小计
西安工程大学电子信息学院, 西安 710048

摘要

目的 传统的基于边缘轮廓的角点检测算法需要计算每一个边缘像素点的曲率,对噪声和局部变化敏感,极易造成检测结果的不稳定。针对这一问题,提出一种利用点弦距离递归的角点检测算法。方法 首先,利用Canny边缘检测器提取边缘轮廓线。其次,用3个不同尺度的高斯核对边缘线进行平滑,对每一个高斯尺度平滑后的边缘线,连接首尾端点形成一条弦,计算边缘轮廓上每个边缘像素点到弦的距离,将点弦距离最长的像素点标为候选角点,该像素点将原边缘轮廓线分成两条边缘,然后将该像素点与首尾端点连接成两条弦,重新计算点弦距离,将所有距离大于设定阈值的点作为候选角点。最后,利用多尺度技术对候选角点进行判决并得到最终角点。结果 与现有的基于曲率计算的角点检测算法相比,本文算法不需要计算一、二阶导数,有效避免了局部变化带来的计算误差。通过计算得到4个角点检测器的平均排名依次为Harris(4.0)、He&Yung(2.67)、CPDA(1.83)、本文算法(1.5)。与其他3种经典的角点检测算法相比,本文提出的检测算法排名第一,因此表现出了更好的检测性能。结论 提出了一种新的利用点弦距离递归的角点检测算法。从实验结果看,本文提出的角点检测器在图像仿射变换、JPEG质量压缩和高斯噪声条件下有更好的平均重复性和定位误差。

关键词

角点检测; 多尺度; 点到弦距离; 曲率; 仿射变换; 平均重复性; 定位误差

Image corner detection using recursively maximum point-to-chord distance
expand article info Li Yunhong, He Yarui, Zhang Weichuan, Zhou Xiaoji
School of Electronics and Information, Xi'an Polytechnic University, Xi'an 710048, China
Supported by: National Natural Science Foundation of China (61401347)

Abstract

Objective Corners in images represent critical information in describing object features, which play a crucial and irreplaceable role in computer vision and image processing systems. Many computer vision tasks rely on the successful detection of corners, including 3D reconstruction, stereo matching, image registration, motion estimation, and object tracking. However, no strict mathematical definition for corner exists; corners are usually defined as points with low self-similarity or locations where variations in intensity in all directions are high. Alternatively, corners may be defined as image points containing the local maxima of curvature on the edge contour or the intersection of two of more edge curves. Many promising corner detection methods based on different corner definitions have been proposed by vision researchers. However, the traditional contour-based corner detection algorithm needs to calculate the curvature of each edge pixel and is sensitive to noise and local variations, thereby causing the instability of detection results. Therefore, this study proposes a novel image corner detection approach based on a recursive point-to-chord distance. Method This study analyzes state-of-the-art corner detection algorithms then proposes a new corner detection method. First, it extracts each edge contour from the input image using the Canny edge detector, which is one of the most widely used edge detectors in contour-based corner detection and has become a standard gauge in edge detection. An edge pixel appears when the gradient magnitudes at either side of it are lower than itself. However, the output contours may have small gaps, and these gaps may possibly contain corners. Second, it smooth curves by using three different Gaussian kernels. For each smoothed curve of Gaussian scale, the ends of the curve are connected, forming a chord. Then, the distance between each edge pixel of the contour and the chord is calculated, and the pixel with the longest distance is marked as the candidate corner. The original edge contour is divided into two edges by using the pixel point. Then, the pixel point is connected to the ends of the contour into two chords. The distance from the point to the chord is recalculated and compared with the threshold value. We select the point that is greater than the threshold as the candidate corner. Finally, the multi-scale technique is applied to the candidate corner set, and the final corners are obtained. Result Compared with existing corner detection algorithms based on curvature calculation, the proposed algorithm does not need to calculate the first and second derivatives, effectively avoids the calculation error caused by local variation effectively, and is highly robust to noise. The four corner detectors achieve the highest average repeatability in JPEG quality compression and the worst localization error in shear transformation. The proposed and CPDA corner detectors perform better than the other detectors in geometric transformations. In terms of JPEG quality compression and Gaussian noise, the proposed method achieves the highest average repeatability and lowest localization error than the three other detectors. Experimental results show that the proposed detector attains better overall performance. Conclusion The proposed detector does not need to accumulate each distance from a moving chord nor does it need to compute the accumulation of each point on a curve, thereby achieving good speed while keeping good average repeatability and accuracy. Compared with the three classic detection algorithms of Harris, CPDA, and He and Yung, the proposed detector attains better performance in average repeatability and localization error under affine transforms, JPEG compression, and Gaussian noise. Existing corner detection methods can be broadly classified into three classes: intensity-, model-, and contour-based methods. The aim of intensity-based corner detection is to extract local gray variation and structural information effectively. Model-based methods extract corners by fitting the local image into a predefined model. Contour-based methods obtain the image's planar curves by using an edge detector, smooth the curves by using a Gaussian function, and compute the corresponding curvatures. Finally, the points of local curvature maxima, line intersects, or rapid changes in edge direction are marked as corners. The two categories of methods have strengths and weaknesses, and their defects in practical application have been revealed, making corner detection a research hotspot in computer vision and image processing. Experiment results show that the proposed corner detector performs better than the other three classical detectors in terms of robustness. The corner detection algorithm in this study has good detection performance. Future tasks may continuously improve the algorithm's detection performance and apply it to many computer vision studies.

Key words

corner detection; multi-scale; point-to-chord distance; curvature; affine transforms; average repeatability; localization error

0 引言

角点作为描述目标特征的关键信息,在计算机视觉和图像处理方面扮演着至关重要的角色。许多计算机视觉任务都依赖角点的成功检测,如立体匹配[1]、目标识别[2]和目标追踪[3]等。现有的角点检测方法大致可分为3类[4]:基于灰度强度的方法[5-12]、基于角点模型的方法[13-16]和基于边缘轮廓的方法[17-30]

基于灰度强度的方法主要利用对图像局部灰度变化来检测角点。Moravec[5]发现图像中同质区域和边缘周围的像素灰度变化较小,而在角点处各个方向的像素灰度差异都很大。Harris等人[6]基于Moravec的思想提出了Harris算法。改进的非极大值抑制[7]和自适应结构张量[8]对Harris算法进行了改进。Possa等人[9]提出了一个基于现场可编程门阵列(FPGAs)的最优化体系结构,使得Harris算法可以进行角点的实时检测。Bay等人[10]提出了基于Hessian矩阵的SURF检测器。Alcantarilla等人[11]提出了基于非线性偏微分方程(PDE)的KAZE角点检测器,通过扩散滤波寻找局部极值,可以用来提供多尺度空间并保留原始图像的边界。章为川等人[12]利用各向异性高斯方向导数滤波器改进了噪声鲁棒性和定位准确性。

基于模型的角点检测算法是通过比较局部图像与一个预定义角点模型的符合程度来提取角点。Smith等人[13]提出了SUSAN算法检测角点,基本思想是在中心像素的邻近区域具有相似亮度的像素点数如果低于某一阈值则说明中心像素是角点。Rosten等人[14]在SUSAN算法的基础上,利用机器学习理论和方法改善角点检测性能,在检测效率和一致性上得到了明显改善而且对不同类型源图像的适应性也明显变好。Shui等人[15]构建角点模型,利用各向异性高斯方向导数(ANDDs)对角点进行检测和分类。Florentz等人[16]通过使用预定义角点模型预测角点检测的最佳阈值,明显降低了检测时间并改善了场景变化的鲁棒性。

基于边缘轮廓的方法首先通过边缘检测器(例如Canny[17]边缘检测器)得到图像的边缘图,再从边缘图中提取封闭或非封闭的边缘轮廓,然后将具有局部曲率极大值的点和曲线之间的交点均标记为角点。Mokhtarian等人[18]提出了一种基于曲率尺度空间(CSS)的角点检测器。Ray等人[19]提出了一个自适应尺度的角点检测法,通过计算曲率的方差得到平滑边缘线的自适应尺度。Zhang等人[20]介绍了一种多尺度曲率乘积的算法增强了噪声鲁棒性,可以更好地抑制伪角点。He等人[21]使用一个基于动态支撑区间的自适应曲率阈值来判决角点。Awrangjeb等人[22]提出了改进的CSS角点检测器,对几何变换具有不变性,用仿射长度代替弧长参数进行曲率计算。另外,Awrangjeb等人[23]利用弦点距离累加技术计算曲率并检测角点。Zhang等人[24]引入一个基于高斯尺度空间的差分变化算子用于角点检测,能够很好地反映曲线间角点的变化。Pedrosa等人[25]提出了一个基于各向异性扩散的自适应平滑尺度角点检测算法。Zhang等人[26]利用边缘像素的梯度分布构造出梯度相关矩阵,每个边缘点周围1×1邻域用来计算曲率并提取角点。Zhang等人[27]继承了Moravec的思想,利用Gabor滤波器平滑每个边缘像素及周围像素,将边缘线上各个方向灰度变化都很大的点标记为角点。Teng等人[28]利用三角形理论和距离计算分别提出了CTAR(chord to triangular arms ratio)和CCR(curve to chord ratio)这两种角点检测算法。CTAR是将一条弦的两个端点与平面曲线中心像素点连接成三角形,计算弦长与另外两边总长度的比值得到像素点的曲率值。CCR则直接计算平面曲线两端点的欧氏距离与曲线上各个相邻像素间距离累加和的比值作为中心像素点曲率值。Zhang等人[29]提出了一种基于边缘轮廓的角点检测算法,通过各向异性高斯方向导数主方向上的角度差进行角点检测。

值得注意的是,基于边缘轮廓的角点检测器主要使用曲率尺度空间(CSS)的算法理论,而CSS主要存在3个问题:1)由于曲率的计算需要一、二阶导数,而导数计算对曲线上的局部变化和噪声敏感;2)高斯尺度的确定;3)角点阈值的选取。现有基于曲率技术的角点检测器通过高斯卷积计算边缘线上每一像素点的导数,这类算法对局部变化敏感,极易造成角点检测的不稳定性。

为了克服上述问题,采用文献[19]的技术对边缘轮廓进行多尺度平滑,这样可以很好地提高检测算法的噪声鲁棒性。当提取到每一条边缘线后,分别使用3种不同的高斯尺度进行平滑,计算边缘线在每一个高斯尺度下边缘像素点到弦的距离并将最大值与阈值进行比较。如果该值大于阈值并且在3种不同尺度下都能检测到,则认为是角点。相比之下,本文算法完全基于点到弦之间的欧氏距离,不需要计算任何导数,因此对局部变化具有稳健性。

1 本文的角点检测算法

CSS角点检测算法通过边缘检测器提取图像边缘轮廓线,计算边缘线上所有像素点的曲率值,将不同尺度下的局部曲率极大值点作为候选角点,再通过尺度从大到小的变化对候选角点进行跟踪得到角点定位。由于CSS算法存在的3个问题会影响角点检测的性能,在对其改进的基础上本文给出了一个新的角点检测方法。首先通过Canny边缘检测器提取图像边缘映射图,然后将最大点弦距离递归的算法应用到高斯平滑后的每条边缘线上进而得到候选角点,接着计算每个候选角点的曲率值。最后,通过非极大值抑制去除候选角点中的伪角点。

1.1 提取并平滑边缘轮廓

本文算法首先使用Canny边缘检测器对原始图像提取边缘映射图,接着从映射图中提取每一条边缘轮廓线,计算边缘线上每一个像素点的点弦距离,通过与阈值进行比较,将阈值小于点弦距离对应的像素点定义为候选角点。由于初始角点的判断是在边缘线上进行的,因而,准确高效地提取边缘轮廓线对整个角点检测算法的性能尤为重要。初始边缘线对角点有两个影响:1)Canny边缘检测器的阈值对每条边缘线的提取有直接影响。当阈值设置过低时,会检测到大量的弱边缘或噪声边缘,当阈值设置过高时,又会漏掉一些合理的边缘。如果对弱边缘进行角点检测,则会产生一些圆角点。如果是噪声边缘,则会检测到伪角点。如果边缘发生漏检,则会造成角点漏检。这些情况都导致角点检测器的性能变差。所以选取一个最佳的Canny阈值对整个算法至关重要,这将在后文的参数选择部分详述。2)在提取边缘线的过程中,这些边缘线之间可能存在小的间隙,例如L型、X型、Y型角点周围的一些边缘线,而这些边缘线的间隙中很可能包含角点。如果两个端点来自不同的边缘轮廓线,通过填充后它们会连接成同一条轮廓线。如果两个端点取自于同一条轮廓线,经过填充后就会使断裂的轮廓线重新连接在一起。因此,在角点检测前填充边缘线的间隙是一项非常必要的工作,这样能够有效避免角点的漏检和错检。

图 1是对Block图像先提取边缘映射图,再提取每一条边缘线的过程。Canny边缘检测器在提取边缘映射图的过程中有可能造成原本连续的边缘线发生断裂,进而产生间隙。本文算法采用CSS算法理论提取每一条边缘轮廓线并填充间隙。这里Canny边缘检测器的阈值设置为[0.2, 0.35], 为了提高噪声及局部变化对检测性能的影响,需要对提取的边缘轮廓线进行平滑。一般而言,一些较短的边缘线通常使用小尺度进行平滑,较长的边缘线使用较大的尺度进行平滑。因为使用大尺度对短边缘平滑很可能会滤除一些重要特征,而使用小尺度平滑长边缘则会残留很多噪声。由于不同边缘线之间存在差异,单一尺度的高斯平滑会造成检测结果的不稳定性。因而本文算法使用3种不同尺度的高斯函数分别与提取的每条边缘线上的所有像素点进行卷积平滑,以提高检测算法的噪声鲁棒性。接着,对平滑后的每条边缘线利用点到弦距离计算的方法提取角点。

图 1 图像Block的边缘提取过程
Fig. 1 Edge contour extraction from Block image
((a) origin image; (b) edge map; (c) each edge contour extracted from the edge map)

1.2 点到弦距离计算

在提取边缘轮廓线的过程中,边缘线提取算法会将每条边缘线首个提取到的像素点看做参考点,然后在附近邻域(3×3)中寻找最接近的像素点,若找到,则说明是同一条边缘线,直到找不到为止。接着重新在该参考点的反方向邻域中寻找接近的像素点,若没有,则参考点和正方向最后找到的像素点是边缘线的两个端点。反之若有的话,则继续寻找,直到找不到为止。这时将参考点正方向和反方向最后找到的像素点作为边缘线的首尾端点。

图 2所示,曲线$\boldsymbol{C}$代表平滑后的边缘线,虚线$L_{1, N}$表示边缘线上两个端点$P_1$$P_N$连接后得到的弦长,寻找边缘像素点到弦的最大垂直距离$D_\rm{max}$,用直角符号标记的实线表示。如果该距离小于阈值$T_\rm{min}$,说明此边缘线上不存在角点。如果大于或等于阈值$T_\rm{min}$,则被看做候选角点,如图标记为$P_\rm{max}$。该角点将曲线$\boldsymbol{C}$分割成$\boldsymbol{C}_1$$\boldsymbol{C}_2$这两条边缘线,将该角点与曲线首尾端点连接成两条弦,计算它们各自的点弦距离,直到所有点弦的最大欧氏距离都小于阈值$T_\rm{min}$。如果初始角点在尺度$σ_1$下能够检测到,而在尺度$σ_2, σ_3$下无法检测到,则去除该角点。只有在不同尺度$σ_1, σ_2, σ_3$下都能检测到,才认为是候选角点。

图 2 点到弦距离计算示意图
Fig. 2 Diagrammatic sketch of point-to-chord distance calculation

由于该算法在统一和非统一缩放、平移和旋转的几何变换中具有不变性,所以当边缘线发生几何变换时,边缘线上每一像素点的点弦距离都不会发生变化。与传统CSS角点检测器直接使用曲率定义计算导数相比,本文算法通过寻找点弦之间最大欧氏距离,并与阈值进行比较,进而判断是否为候选角点。整个算法过程不需计算任何导数,因而对局部变化和噪声不敏感,更具鲁棒性。具体的算法步骤如下:

$\boldsymbol{C}$是经过多尺度高斯平滑后的一组从$P_1$$P_N$$N$个离散点按照顺序所组成的一条边缘线,可表示为$\boldsymbol{C}=\left\{P_{1}, P_{2}, P_{3}, \cdots, P_{N}\right\}$

1) 用一条直线连接已被标记为角点的起点$P_1$和终点$P_N$,这时得到一段弦长$L_1, N$

2) 计算曲线$\boldsymbol{C}$上每一点到弦长$L_{1, N}$的垂直距离,表示为$D=\left\{D_{1, L}, D_{2, L}, D_{3, L}, \cdots, D_{N, L}\right\}$

3) 在所有的这些垂直距离$D$中寻找最大垂直距离$D_\rm{max}$和与之对应的边缘线上的点$P_\rm{max}$

4) 如果最大点弦距离$D_\rm{max}$大于阈值$T_\rm{min}$,标记对应边缘线上的点$P_\rm{max}$为角点。该角点将边缘线$\boldsymbol{C}$分割成两条边缘线$\boldsymbol{C}_1$$\boldsymbol{C}_2$

5) 对边缘线$\boldsymbol{C}_1$$\boldsymbol{C}_2$重复以上步骤,直到这条边缘线的所有的点弦距离都小于阈值$T_\rm{min}$

6) 最后,输出图像中的所有候选角点。

1.3 伪角点的去除

通过最大点弦距离递归算法得到一系列候选角点后,要对伪角点进行去除。尽管阈值$T_\rm{min}$能够避免一些弱角点的选取,但是仍会出现一些将边缘线上的伪角点当做角点的情况。从文献[21]可知,图 3的这条边缘线是由一条较平坦的曲线和两条直线连接而成,箭头标注的就是伪角点。使用上述算法后,伪角点即作为候选角点。因此,去除伪角点在整个角点检测算法中很有必要。

图 3 输出伪角点的情况
Fig. 3 Output the false corner

图 3所示的伪角点存在一个共性,都位于比较平坦的曲线上,因而具有比较低的曲率值。因此,为了去除伪角点,就需要计算所有候选角点的曲率值。本文使用文献[18]提出的曲率计算方法得到每一个候选角点的曲率值,该角点检测算法使用Canny边缘检测器提取图像边缘轮廓线,用一个给定参数向量的平面曲线方程描述$\mathit{\Gamma}(u)=\{x(u), y(u)\}$,曲率定义为

$ K(u,\sigma ) = \frac{{{X^\prime }(u,\sigma ){Y^{\prime \prime }}(u,\sigma ) - {X^{\prime \prime }}(u,\sigma ){Y^\prime }(u,\sigma )}}{{{{\left[ {{X^\prime }{{(u,\sigma )}^2} + {Y^\prime }{{(u,\sigma )}^2}} \right]}^{\frac{3}{2}}}}} $ (1)

式中

$ \left\{ {\begin{array}{*{20}{l}} {{X^\prime }(u,\sigma ) = x(u)\; \otimes }\\ {{X^{\prime \prime }}(u,\sigma ) = x(u) \otimes }\\ {{Y^\prime }(u,\sigma ) = y(u)\;\; \otimes }\\ {{Y^{\prime \prime }}(u,\sigma ) = y(u)\; \otimes } \end{array}} \right.\begin{array}{*{20}{l}} {{g^\prime }(u,\sigma )}\\ {{g^{\prime \prime }}(u,\sigma )}\\ {{g^\prime }(u,\sigma )}\\ {{g^{\prime \prime }}(u,\sigma )} \end{array} $

式中, $ \otimes $表示卷积算子,$g^{\prime}(u, \sigma), g^{\prime \prime}(u, \sigma)$分别为尺度为$σ$的高斯函数的一、二阶导数。使用式(1)计算出边缘线上所有候选角点的曲率值后,再通过非极大值抑制的阈值去除边缘线上那些具有低曲率值和太靠近其他角点的候选角点。伪角点去除前后的结果如图 4所示,这里的邻域大小设置为11×11。

图 4 伪角点去除前后的比较
Fig. 4 The comparison of false corners removal
((a)the candidate corners; (b)the final corners)

2 实验结果和性能评价

本节主要介绍新的角点检测器与其他3种经典检测器(Harris[6]、He&Yung[21]和CPDA[23])的实验结果和性能评价。使用平均可重复性和定位误差来评估包括本文检测器在内的4种角点检测器在没有人为干预条件下的性能结果。性能评价程序可以在任意大小的数据库上运行,并能够运用一些基本的变换,这在图像匹配、目标识别和目标追踪等方面具有重要意义。

2.1 输入数据与转换

图 5所示,从标准数据集中选取15幅图像用来评价4种角点检测器的检测性能。从数据集中选取的每幅图像均通过以下6种不同类型的转换进行变换。

图 5 15幅标准测试图像
Fig. 5 Fifteen standard test images

1) 旋转。18个不同角度,从-90°~90°,以每次10°的增量进行旋转。

2) 统一缩放。尺度因子$S_x=S_y$,从0.5~2.0,以每次0.1的增量进行统一缩放。

3) 非统一缩放。尺度因子$S_x=1,S_y$从0.5~2.0,以每次0.1的增量进行非统一缩放。

4) 剪切变换。剪切因子$c$以每次0.1的增量从-1.0增加到1.0

$ \left[\begin{array}{l}{x^{\prime}} \\ {y^{\prime}}\end{array}\right]=\left[\begin{array}{ll}{1} & {c} \\ {0} & {1}\end{array}\right]\left[\begin{array}{l}{x} \\ {y}\end{array}\right] $

5) JPEG质量压缩。JPEG质量因子以每次5%的增量从5%增加到100%。

6) 高斯噪声。零均值高斯白噪声标准差以每次1的增量从1增加到15。

2.2 评价准则

采用文献[30]使用的性能评价指标和2.1节介绍的6种不同类型的基本变换对4种角点检测器在这些基本变换下的平均可重复性和定位误差进行角点噪声鲁棒性和一致性测量。

平均可重复性$R_\rm{avg}$用来测量原始图像和变换后图像之间相同位置检测到角点的平均数目。对于每幅测试图像,在一个给定变换下的角点检测器,其可重复性定义为

$ {R_{{\mathop{\rm avg}\nolimits} }} = (1/2) \times {N_{\rm{r}}} \times \left( {1/{N_{\rm{o}}} + 1/{N_{\rm{t}}}} \right) $ (2)

式中,$N_\rm{o}$$N_\rm{t}$分别表示原始图像和变换后图像中角点的数目,$N_\rm{r}$代表原始图像和变换后图像之间重合的角点数目。设$p_i$是原始图像中检测到的一个角点,$q_j$则是与之对应的经过几何变换后图像上检测到的一个角点。这里定义仅当$q_j$的位置在$p_i$周围3个像素宽度的范围之内,才将$q_j$定义为$p_i$的重复角点。

定位误差$L_{\rm{e}}$表示原始图像中检测到的角点与变换后的图像中检测到的与之对应角点之间的平均距离。如果将原始图像中第$i$个角点的位置定义为$\left({{x_{{\rm{o}}i}}, {y_{{\rm{o}}i}}} \right)$。经过旋转、统一缩放、非统一缩放、剪切变换、JPEG压缩和高斯噪声这6种基本变换后对应图像上的角点位置定义为$\left( {{x_{{\rm{t}}i}},{y_{{\rm{t}}i}}} \right)$,则定位误差的计算表达式可以定义为

$ {L_{\rm{e}}} = \sqrt {\frac{1}{{{N_{\rm{r}}}}}\sum\limits_{i = 1}^{{N_{\rm{r}}}} {{{\left( {{x_{{\rm{o}}i}} - {x_{{\rm{t}}i}}} \right)}^2}} + {{\left( {{y_{{\rm{o}}i}} - {y_{{\rm{t}}i}}} \right)}^2}} $ (3)

2.3 本文算法的参数选择

参数选择实验是为了探讨算法中各个参数对角点检测器性能方面的影响。本文算法包括的参数有Canny边缘检测器的高低阈值、3个高斯平滑尺度$σ_1, σ_2, σ_3$、点弦距离递归算法中的阈值$T_\rm{min}$、用于非极大值抑制的阈值$T_{\rm{nms}}$和半径$R_{\rm{nms}}$。为了探究各个参数对角点检测器性能的影响,首先将Canny边缘检测器的初始阈值设置为[0.2, 0.35],然后对其余参数分别进行参数选择实验,在得到这些参数的最佳选择后,再对Canny的阈值进行最佳选取。

图 6显示了高斯平滑尺度设置对角点检测器的影响(横坐标上的值1~6是2.1节介绍的6种不同类型的基本变换,1:旋转,2:统一缩放,3:非统一缩放,4:剪切变换,5:JPEG质量压缩,6:高斯噪声。图 7图 10的横坐标值的含义与图 6相同)。设置Canny的初始阈值为[0.2, 0.35],阈值$T_{\rm{nms}}$= 0.07,阈值$T_\rm{min}$= 6,非极大值抑制的窗口为11×11,然后通过实验观察高斯平滑尺度$σ_1, σ_2, σ_3$的设置对角点检测算法的影响。当$σ_1, σ_2, σ_3$的设置较低时,对应的噪声鲁棒性会相对较低,而设置较高时,实现了较好的检测性能。故选用$\sigma _1^2 = 2, \sigma _2^2 = 3, \sigma _3^2 = 4$作为边缘线平滑尺度。

图 6 高斯平滑尺度设置对角点检测器的影响
Fig. 6 The effect of Gaussian smoothing scale $σ$ on the corner detector ((a) repeatability; (b) localization error)
图 7 阈值$T_\rm{min}$设置对角点检测器的影响
Fig. 7 The effect of threshold $T_\rm{min}$ on the new corner detector ((a) repeatability; (b) localization error)
图 8 阈值$T_{\rm{nms}}$设置对角点检测器的影响
Fig. 8 The effect of threshold $T_{\rm{nms}}$ on the new corner detector ((a) repeatability; (b) localization error)
图 9 非极大值抑制窗口$R_{\rm{nms}}$对角点检测器的影响
Fig. 9 The effect of $R_{\rm{nms}}$on the new corner detector ((a) repeatability; (b) localization error)
图 10 Canny边缘检测器的阈值设置对角点检测器的影响
Fig. 10 The effect of Canny's thresholds on the new corner detector ((a) repeatability; (b) localization error))

图 7显示了阈值$T_\rm{min}$的变化对角点检测算法的影响。设置Canny的初始阈值为[0.2, 0.35],高斯平滑尺度为$\sigma_{1}^{2}=2, \sigma_{2}^{2}=3, \sigma_{3}^{2}=4$,阈值$T_{\rm{nms}}=0.07$,非极大值抑制的窗口为11×11。从图 7可知,当阈值$T_\rm{min}$的设置较低时,该角点检测算法的性能较差,而随着阈值$T_\rm{min}$的增加,定位误差开始下降。总体来说,阈值$T_\rm{min}$的变化对角点检测算法的性能影响比较稳定。通过比较,当阈值$T_\rm{min}$= 5时,有较好的检测性能。

图 8显示了阈值$T_{\rm{nms}}$的变化对角点检测算法的影响。设置Canny的阈值为[0.2, 0.35],阈值$T_\rm{min}=5$,非极大值抑制的窗口为11×11。由图 8可知,当阈值$T_{\rm{nms}}$的设置较小时,该检测算法的检测结果表现最差,然而随着$T_{\rm{nms}}$的增加,对输入图像的噪声鲁棒性开始上升,但是当$T_{\rm{nms}}>0.07$时,检测算法的噪声鲁棒性又开始下降并逐渐趋于稳定。因此,对于本文的角点检测算法,选择阈值$T_{\rm{nms}}=0.07$以达到较好的检测性能。

图 9所示,当非极大值抑制的窗口的设置较低时,对应的噪声鲁棒性会相对较低。原因是角点检测器在一个较小的窗口下会检测到一些错误的角点,随着窗口的增加,正确的角点被检测出来。由图 9可知,当窗口尺寸达到11×11时,角点检测算法的鲁棒性趋于稳定。

图 10显示了Canny边缘检测器的阈值设置对角点检测器的影响。设置高斯平滑尺度为$\sigma _1^2 = 2, \sigma _2^2 = 3, \sigma _3^2 = 4$,阈值$T_{\min }=5$,非极大值抑制的阈值和窗口分别为$T_{\mathrm{mms}}=0.07$和11×11。由图 10可知,当Canny的阈值设置较小时,角点检测器的鲁棒性较差。若将Canny的阈值增加到[0.2, 0.35],鲁棒性显著提高。这是因为低阈值下的Canny检测器会检测到许多由量化噪声或琐碎细节造成的弱边缘而高阈值下只有强边缘能被检测到,从而实现了更好的检测性能。若继续将Canny阈值增加到[0.2, 0.45],该角点检测算法的鲁棒性开始下降。因此,选择[0.2, 0.35]作为Canny边缘检测器的最佳阈值。

2.4 实验结果比较

主要对本文提出的角点检测器与其他3种经典的角点检测器(Harris[6]、He&Yung[21]和CPDA[23])进行平均可重复性和定位误差的性能结果比较。3个角点检测器都使用其作者提供的MATLAB代码。

图 11显示了在旋转、统一缩放、非统一缩放、剪切变换、JPEG压缩和高斯噪声下包括本文检测器在内的4种角点检测器的性能结果比较。从实验结果可以看出,在旋转变换下He&Yung和CPDA角点检测算法均获得了较高的平均重复性。而在定位误差方面,本文算法和CPDA则相对更低一些。在统一缩放和非统一缩放的情况下,本文算法和CPDA检测算法均获得了较好的检测结果,He&Yung和Harris角点检测器的定位误差相对较差。同样在剪切变换下,He&Yung和Harris角点检测算法的检测结果依旧要比CPDA和本文角点检测算法差些。最后在JPEG质量压缩和高斯噪声条件下,本文的角点检测算法无论在平均重复性还是定位误差方面的性能都表现为最好。实验结果表明本文提出的角点检测器对图像有比较稳健的鲁棒性。

图 11 15幅标准测试图像在6种不同变换下的性能比较
Fig. 11 The performance of fifteen standard test images under six different transforms((a) rotation; (b) uniform scaling; (c) non-uniform scaling; (d) shear transform; (e) quality compression; (f) Gaussian)

为了更加具体地比较这4种角点检测算法对灰度图像检测的优劣,分别选用本文的角点检测算法、Harris角点检测算法、He&Yung角点检测算法和CPDA角点检测算法对Block和Lab这两幅灰度图像进行角点检测。如图 12所示,本文的角点检测算法与其他3种检测算法相比,实现了较好的检测结果。图 13分别给出了4种检测器对添加了方差为10的高斯白噪声的测试图像的检测结果。从图 13可以看出,本文算法同样具有最好的检测性能,CPDA次之,He&Yung第3,Harris最差。从整体的检测结果来看,本文提出的角点检测器具有更好的整体性能。

图 12 灰度图像Block和Lab的角点检测结果
Fig. 12 Corner detection results of the Block and Lab images ((a) Harris; (b) He&Yung; (c) CPDA; (d) ours)
图 13 带有噪声的灰度图像Block和Lab的角点检测结果
Fig. 13 Corner detection results of the noised the Block and Lab images((a) Harris; (b) He&Yung; (c) CPDA; (d) ours)

3 结论

本文首先介绍了3类角点检测算法的研究现状,针对CSS角点检测算法理论存在的问题(即现有基于曲率技术的角点检测器通过高斯卷积计算边缘线上每一像素点的导数,对局部变化敏感,极易造成角点检测的不稳定性),提出一种新的点弦距离递归的角点检测算法,随后通过与其他3种经典检测算法在不同几何变换、JPEG质量压缩和高斯噪声下的定位误差和平均重复性两种性能进行了比较和总结。

在角点检测的运行速度方面,本文提出的角点检测算法相比于CPDA角点检测实现了更快的检测速度。在平均重复性方面,本文的角点检测算法的检测性能优于其他3种经典的角点检测方法,但在定位误差方面,相对于其他角点检测器还存在着一些不足。因此,本文关于角点检测算法的研究还需要进一步完善。整体来看,本文的角点检测算法具有良好的检测性能,接下来的研究将对该角点检测算法进行不断改进,提高检测性能,扩大适用范围,将其应用于更多的计算机视觉研究之中。

参考文献

  • [1] Henderson C, Izquierdo E. Robust feature matching in long-running poor-quality videos[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2016, 26(6): 1161–1174. [DOI:10.1109/TCSVT.2015.2441411]
  • [2] 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/TⅡ.2011.2166791]
  • [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] Zhang W C, Kong X N, Song W. Review of image corner detection algorithms[J]. Acta Electronica Sinica, 2015, 43(11): 2315–2321. [章为川, 孔祥楠, 宋文. 图像的角点检测研究综述[J]. 电子学报, 2015, 43(11): 2315–2321. ] [DOI:10.3969/j.issn.0372-2112.2015.11.026]
  • [5] Moravec H P. Towards automatic visual obstacle avoidance[C]//Proceedings of the 5th International Joint Conference on Artificial Intelligence. Cambridge, USA: ACM, 1977: 584.
  • [6] Harris C, Stephens M. A combined corner and edge detector[C]//Proceedings of the Alvey Vision Conference. Manchester: Alvety Vision Club, 1988: 23.1-23.6.[DOI:10.5244/C.2.23]
  • [7] Mainali P, Yang Q, Lafruit G, et al. Robust low complexity corner detector[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2011, 21(4): 435–445. [DOI:10.1109/TCSVT.2011.2125411]
  • [8] Kim B, Choi J, Park Y, et al. Robust corner detection based on image structure[J]. Circuits, Systems, and Signal Processing, 2012, 31(4): 1443–1457. [DOI:10.1007/s00034-012-9388-z]
  • [9] Possa P R, Mahmoudi S A, Harb N, et al. A multi-resolution fpga-based architecture for real-time edge and corner detection[J]. IEEE Transactions on Computers, 2014, 63(10): 2376–2388. [DOI:10.1109/TC.2013.130]
  • [10] Bay H, Ess A, Tuytelaars T, et al. Speeded-up robust features (surf)[J]. Computer Vision and Image Understanding, 2008, 110(3): 346–359. [DOI:10.1016/j.cviu.2007.09.014]
  • [11] Alcantarilla P F, Bartoli A, Davison A J. Kaze features[C]//Proceedings of the 12th European Conference on Computer Vision. Florence, Italy: Springer, 2012.[DOI:10.1007/978-3-642-33783-3_16]
  • [12] Zhang W C, Zhang Z, Zhao Q, et al. Corner detector via anisotropic Gaussian directional derivatives filter[J]. Journal of Xi'an Polytechnic University, 2014, 28(4): 491–495. [章为川, 张智, 赵强, 等. 基于各向异性高斯方向导数滤波器的角点检测[J]. 西安工程大学学报, 2014, 28(4): 491–495. ] [DOI:10.3969/j.issn.1674-649X.2014.04.021]
  • [13] Smith S M, Brady J M. SUSAN-A new approach to low level image processing[J]. International Journal of Computer Vision, 1997, 23(1): 45–78. [DOI:10.1023/a:1007963824710]
  • [14] Rosten E, Porter R, Drummond T. Faster and better:a machine learning approach to corner detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(1): 105–119. [DOI:10.1109/TPAMI.2008.275]
  • [15] 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]
  • [16] Florentz G, Aldea E. SuperFAST: Model-based adaptive corner detection for scalable robotic vision[C]//Proceedings of 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems. Chicago, IL, USA: IEEE, 2014.[DOI:10.1109/IROS.2014.6942681]
  • [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] 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]
  • [19] Ray B K, Pandyan R. ACORD-an adaptive corner detector for planar curves[J]. Pattern Recognition, 2003, 36(3): 703–708. [DOI:10.1016/s0031-3203(02)00084-5]
  • [20] 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]
  • [21] 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]
  • [22] Awrangjeb M, Lu G J. An improved curvature scale-space corner detector and a robust corner matching approach for transformed image identification[J]. IEEE Transactions on Image Processing, 2008, 17(12): 2425–2441. [DOI:10.1109/tip.2008.2006441]
  • [23] 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]
  • [24] Zhang X H, Wang H X, Hong M J, et al. Robust image corner detection based on scale evolution difference of planar curves[J]. Pattern Recognition Letters, 2009, 30(4): 449–455. [DOI:10.1016/j.patrec.2008.11.002]
  • [25] Pedrosa G V, Barcelos C A Z. Anisotropic diffusion for effective shape corner point detection[J]. Pattern Recognition Letters, 2010, 31(12): 1658–1664. [DOI:10.1016/j.patrec.2010.05.013]
  • [26] 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.10.017]
  • [27] 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]
  • [28] Teng S W, Sadat R M N, Lu G J. Effective and efficient contour-based corner detectors[J]. Pattern Recognition, 2015, 48(7): 2185–2197. [DOI:10.1016/j.patcog.2015.01.016]
  • [29] Zhang W C, Shui P L. Contour-based corner detection via angle difference of principal directions of anisotropic Gaussian directional derivatives[J]. Pattern Recognition, 2015, 48(9): 2785–2797. [DOI:10.1016/j.patcog.2015.03.021]
  • [30] Schmid C, Mohr R, Bauckhage C. Evaluation of interest point detectors[J]. International Journal of Computer Vision, 2000, 37(2): 151–172. [DOI:10.1023/a:1008199403446]