时间:2024-07-28
陈继华,李 响,李 栋
(郑州大学 物理工程学院,郑州 450001)
一种改进的轮廓曲线角点检测方法
陈继华,李响,李栋
(郑州大学 物理工程学院,郑州450001)
角点特征检测方法是图像处理的重要研究内容,针对传统的曲率尺度空间角点检测中,选择不同尺度会导致角点的漏检测和误检测问题。提出一种改进的轮廓曲线角点检测方法,先在低尺度下采用较大步长的曲率阈值法剔除小曲率区域上的伪角点,将伪角点集中在曲率较大的圆弧区域,再合并微小图元剔除圆弧上伪角点,并结合投影高度法判断图元属性,对图元进行分割和融合,提高了检测精度。实验结果表明,改进的检测算法在处理由直线和圆弧构成的轮廓曲线角点检测时,可大大提高检测准确率。
角点检测;轮廓曲线;曲率尺度空间;图元分割;自适应阈值
角点作为图像的一个局部特征,既保留了图像中目标物体的重要特征信息又有效地减少了数据量,因而成为图像处理相关领域的研究热点。角点检测技术在相机标定、图像匹配、运动估计、全景拼接、目标检测与识别领域都有重要的应用。角点检测算法主要可以分为两类:第一类是基于图像灰度的角点检测算法;第二类是基于轮廓的角点检测算法。
基于图像灰度的角点检测算法主要通过计算像素点各个方向灰度变化来检测角点。这类方法主要有Moravec算法[1]、Harris算法[2]和SUSAN算法[3]。Moravec算法把角点定义为角点各个方向上灰度变化足够大的点,该算法简单快速,但不具备旋转不变性,而且对边缘点反应比较强烈。Harris算法是基于Moravec算法的改进方法,通过微分运算和自相关矩阵检测角点,对于图像旋转和光照变换具有很好的效果[4],但是不能在多尺度下检测角点,提取效果受阈值和高斯窗口的影响较大。SUSAN算法利用圆形模板邻域的像素灰度与其圆心的相似性计算得到角点响应函数值,设定阈值,把响应函数值的局部极大值点作为角点。该算法不依赖于图像导数,具有较强的抗噪能力,但是需要人工设定阈值,运算量较大。
基于轮廓的角点检测方法,主要是由Mokhtarian提出的曲率尺度空间角点检测算法(CSS)[5]。该算法先在高尺度下得到轮廓上曲率极大值点,再设定阈值得到候选角点,最后通过在低尺度下对得到的角点进行重新定位,得到位置相对准确的角点。一般需要经过以下五个步骤[5,7]:
(1)用Canny算子提取目标图像边缘,获取二值化边缘图像。
(2)得到的边缘图像不一定连续,还需要填充边缘线上的间隙,并找到T型节点。
(3)在高尺度下计算轮廓点曲率,得到曲率局部极大值点,当局部极大值大于临近局部极小值的两倍,且大于预先设定的阈值时,该点作为候选角点。
(4)在低尺度跟踪角点,对角点重新定位。
(5)比较T型角点和提取的角点之间的距离,如果两者距离很小删除其中一个角点。
从以上步骤可以看出,角点的初步检测是在高尺度下进行的,轮廓线被过度平滑,导致漏检真实角点;全局阈值需要人工设定,不能在保留真实角点的同时剔除所有的伪角点。He等人提出在较小尺度下求取轮廓点曲率的局部极大值,并采用局部自适应阈值剔除伪角点[6]。提高了检测的准确性,但是计算量大,不能剔除边缘突变形成的伪角点。曾接贤提出一种曲率尺度空间与链码方向统计的角点检测方法,能很好地剔除直线上边缘突变造成的伪角点,但是对于圆弧上的突变点没有进行论证,且不能很好地检测平滑过渡的角点[4]。
针对CSS角点检测会漏检真实角点以及产生错误角点的问题,本文在曲率尺度空间的基础上,提出了一种改进的轮廓曲线角点检测方法。
传统的CSS算法在角点检测过程中常常存在漏检和误检问题。为解决这些问题,首先在较低尺度下对轮廓进行高斯平滑,保证轮廓曲线不会因为过渡平滑而丢失真实角点。其次采用较大步长计算轮廓点曲率,并通过自适应阈值剔除部分伪角点。最后合并微小图元,采用投影高度法[8]判断角点之间的图元属性,对图元进行分割和融合[9],进一步剔除伪角点并重新定位角点,从而提高角点检测的准确性。
1.1较大步长的曲率阈值法筛选角点
在尺度空间下求取轮廓点的曲率,实际上就是先用某个尺度的高斯函数对轮廓线进行滤波,然后再求取滤波后轮廓线上各点的曲率。将原轮廓曲线用弧长参数u表达为:
F(u)=(x(u),y(u))
曲线随着尺度变化的演化表达式为:
Fσ=(X(u,σ),Y(u,σ))
其中,X(u,σ)=x(u)⊗g(u,σ);Y(u,σ)=y(u)⊗g(u,σ);X(u,σ),Y(u,σ)分别为高斯平滑后轮廓线上的点的横、纵坐标;g为一维高斯模板函数;参数σ代表尺度。
在所有的轮廓点中,角点所占的比例很小,为了减小计算量先剔除部分不可能成为角点的轮廓点。当轮廓上相邻的三个点共线时,剔除中间的那个点,并将该点的曲率设为0。然后求取其它各点的曲率,曲率求解公式如下:
σ为尺度;k被定义为步长。
在传统的CSS角点检测算法中,初步检测角点时尺度σ的取值比较大,一般取4或8。σ越大轮廓越光滑,虽然减少了噪声,但是容易丢失真实角点。为避免漏检真实角点,本文选择在较低尺度下检测角点;在传统的CSS角点检测中,步长k的取值为1,如图1所示,图中黑点代表轮廓上的像素点,a、b、d为直线上的突变点。当k=1时,通过a、b、c、d、e五点的坐标可以计算出点a的曲率值为1,所得结果受突变点的影响很大,难以通过全局阈值剔除,容易误检直线上的伪角点。为解决这一问题,参考了11点k近似曲率法[10],适当地增大了步长k,k的取值一般在5到15之间,文中取10。如图1所示,当k=10时,可以通过a、f、g、h、i五点的坐标计算出点a的曲率值为0.01,远远小于通过CSS算法计算出的曲率值,更容易通过全局阈值剔除该伪角点。
图1 局部轮廓放大图
通过改进的方法计算出所有轮廓点曲率后,求出局部极大值点,并剔除曲率小于阈值T的点。自适应阈值T的求解方法如下:
其中,K(n)为曲率大于0的轮廓点的曲率;n为曲率大于0的轮廓点的个数。
为了验证较大步长的曲率阈值法相对CSS算法中步骤(3)的改进效果,分别做了四组对比实验。图2是两种方法对圆盘工件轮廓初步进行角点检测的结果,轮廓图像大小为329×325。本文算法中尺度取1.5,高斯模板长度为5,步长k取10。根据文献[5],将CSS算法中尺度取4,并根据实验令阈值t取0.35。从初步处理的结果可以看出本文算法保留了所有的真实角点,并把伪角点都集中在曲率较大的圆弧上。而CSS算法是在高尺度下进行,在初步处理时就已经漏检了部分真实角点。
(a)本文检测结果 (b)CSS检测结果
图3是两种方法对飞机轮廓初步进行角点检测的结果,轮廓图像大小为1026×885。本文算法中尺度取1,高斯模板长度为5,步长k取10。CSS算法中尺度取4,阈值t取0.36。由初步检测结果可以看出本文算法保留了所有的真实角点,而且产生的伪角点较少,而CSS算法漏检了部分真实角点。
(a)本文检测结果 (b)CSS检测结果
图4是两种方法对型材轮廓1初步进行角点检测的结果,轮廓图像大小为352×465。本文算法中尺度取1,高斯模板长度为5,步长k取10。CSS算法中尺度取4,阈值t取0.3。从初步检测结果可以看出本文算法保留了所有的真实角点,并把多数伪角点集中在曲率较大的圆弧上,而CSS算法漏检了部分真实角点。
(a)本文检测结果 (b)CSS检测结果
图5是两种方法对型材轮廓2初步进行角点检测的结果,廓图像大小为777×583。本文算法中尺度取1.5,高斯模板长度为5,步长k取10。CSS算法中尺度取4,阈值t取0.36。由初步检测的结果可以看出本文算法保留了所有真实角点,并把多数伪角点集中在曲率较大的圆弧上,而CSS算法漏检了部分真实角点。
(a)本文检测结果 (b)CSS检测结果
通过对以上实验结果进行分析可以看出,CSS算法在初步检测时已经开始漏检真实角点。而文中算法能够保留所有真实角点,剔除大部分直线上的突变点,并将多数伪角点集中在曲率较大的圆弧上,这些伪角点可以通过后文的方法进行剔除。
1.2合并微小图元
通过采用较大步长的曲率阈值法对图像进行处理后,剔除了大量直线上的伪角点。但是圆弧上存在很多伪角点,而且这些伪角点之间像素个数很少,部分呈直线分布,很容易误判圆弧属性,难以采用数值计算的方法直接剔除这类伪角点。
针对这个问题,先对轮廓上的微小图元进行合并,剔除圆弧上的部分伪角点,使得圆弧上角点之间像素个数增加,突出圆弧属性。合并方法如下:计算所有相邻角点之间轮廓点的个数Ni,并设定阈值T1,文中T1取15,如果某个角点与前后相邻的两个角点之间轮廓点的个数满足:
那么,把这个角点前后两个图元看做微小图元,合并相邻图元,并剔除这个角点。这种方法能够很好地剔除图3中圆弧上大多数伪角点,但是同时也可能会剔除图4中圆弧与直线连接处的真实角点。
图6 角点分布图
图7 角点分布图
1.3图元分割与融合
合并微小图元后,增强了角点之间的图元属性,但是也可能会因此丢失真实角点,而且全局自适应阈值的设定可能还会导致一些伪角点未能被剔除掉,采用图元分割和融合的方法[9]可以很好地解决这个问题。
在进行微小图元合并后,采用投影高度法[8]能够更准确地判断相邻角点之间的图元是圆弧还是直线。得到图元属性后,通过图元分割与融合的方法[9]能够剔除直线和圆弧上的伪角点,增添图元之间的真实角点,并重新定位角点,检测结果准确率高。如图8所示,通过图元分割和融合,可以剔除直线上的伪角点b、c、d、e和圆弧上的伪角点f、g、h,并增选直线与圆弧连接处的角点j、k。
(a)图元分割与融合前
(b)图元分割与融合后
为了验证本文算法,继续对1.1节中的四幅图像进行处理,并与CCS算法处理的最终结果进行对比验证。在对这四幅图像进行处理时,本文算法所取参数不变,与1.1节中取值相同,CSS算法中步骤(3)所取参数值不变,步骤(4)中尺度σ取1。图9是两种方法对工件轮廓进行角点检测的结果,表1为对应的数据统计表,本文方法只漏检了1个角点,且没有错误角点,而CSS检测方法漏检和误检了多个直线和圆弧连接处的角点,检测效果明显不如本文方法;图10是两种方法对飞机轮廓进行角点检测的结果,表2为对应的数据统计表,本文方法没有漏检和误检真实角点,而CSS方法漏检了4个角点,误检了1个角点;图11是两种方法对型材轮廓1进行角点检测的结果,表3为对应的数据统计表,CSS检测方法漏检了直线与圆弧连接处的角点,比本文方法漏检的角点多2个,错误角点也比本文方法多1个;图12是两种方法对型材轮廓2进行角点检测的结果,表4为对应的数据统计表,本文方法没有漏检角点,CSS检测方法漏检了3个角点,且CSS检测方法检测的错误角点也比本文方法多1个。
(a)本文方法 (b)CSS检测方法
(a)本文方法 (b)CSS检测方法
(a)本文方法 (b)CSS检测方法
(a)本文方法 (b)CSS检测方法
检测方法准确角点漏检角点伪角点正确率/%错误率/%本文方法351097.20CSS检测297574.414.7
表2 飞机轮廓角点检测结果对比(标准角点36个)
表3 型材轮廓1角点检测结果对比(标准角点15个)
表4 型材轮廓2角点检测结果对比(标准角点36个)
由以上四组对比实验的结果可以看出,本文方法比CSS检测方法的准确性更高。CCS算法对直线与直线连接处角点的检测效果较好,但是对于步骤(3)中产生的部分伪角点没有做出很好地处理,当直线与圆弧连接处很平滑时,角点检测的效果明显不如本文算法。
针对CSS角点检测算法的不足,在低尺度下采用较大步长的曲率阈值法剔除小曲率区域的伪角点,再合并微小图元剔除圆弧上的伪角点,并结合投影高度法判断图元属性,对图元进行分割和融合,进而提高了检测精度。通过实验验证了本文算法的有效性,并且角点检测效果优于CSS算法,本文算法在处理由直线和圆弧构成的轮廓时,角点检测的准确率高,错误率低,在工件截面几何尺寸测量方面具有一定的应用价值。
[1] 卢瑜,郝兴文,王永俊.Moravec和Harris角点检测方法比较研究[J].计算机技术与发展,2011,21(6):95-97.
[2] Harris C,Stephens M.A combined corner and edge detect-or[C].In Alvey Vision Conference,Manchester,UK,1988:147-151.
[3] Smith S,Brady M.SUSAN-A new approach to low-level im-age processing[J].International Journal of Computer Vision,1997,23(1):45-48.
[4] 曾接贤,李炜烨.曲率尺度空间也链码方向统计的角点检测[J].中国图象图形学报,2014,19(2):234-242.
[5] Mokhtarion F,Suomela R J.Robust image corner detection t-hrough curvature scale space[J].IEEE.Transactions on Pattern Analysis and Machine Intelligence,1998,20(12):1376-1378.
[6] He X C,Yung N H C.Corner detector based on global an-d local curvature properties[J].Optical Engineering,2008,47(5):1-12.
[7] Zhang X H,Lei M,Yang D,et al.Multi-scale curvature scale space[J].Pattern Recognition Letters,2007,28(5):545-554.
[8] 伍济钢.薄片零件尺寸机器视觉检测系统关键技术研究[D].武汉:华中科技大学,2008.
[9] Sheu H T,Hu W C.Multiprimitive segmentation of plan-ar curves-A two-level breakpoint classification and tuning a-pproach [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1999,21(8):791-797.
[10] 吴维勇,王英惠, 周晏.平面轮廓识别与分段技术的研究与快速实现[J].工程图学学报,2003(4):14-19.
(编辑李秀敏)
An Improved Corner Detection Method for Contour Curve
CHEN Ji-hua,LI Xiang, LI Dong
(School of Physical Engineering,Zhengzhou University, Zhengzhou 450001,China)
Corner feature detection is very important in the research field of image processing,the traditional Curvature Scale-space(CSS)corner detection may cause leakage or even fake detection of corner when different scales are selected.In this paper an improved corner detection method of contour curve is proposed to improve the detection accuracy.Firstly the larger step curvature threshold method is applied to remove fake corners in small curvature region in low scale.Then fake corners are concentrated in the arc region with larger curvature,and minimal primitives are merged to remove fake corners on the arc.Lastly,the projection height method is applied in the judgment of the properties of the primitives and the separation and fusion of primitives.The results show that the improved detection algorithm can greatly improve the detection accuracy when dealing with the corner points of contour curve made up by lines and arcs.
corner detection;contour curve;curvature scale space;segmentation;adaptive threshold
1001-2265(2016)07-0114-04DOI:10.13462/j.cnki.mmtamt.2016.07.033
2015-09-01;
2015-10-08
陈继华(1972 —),男,四川大竹人,郑州大学副教授,博士,研究方向为大型工业产品尺寸检测方法及相关计算理论、视觉测量技术,(E-mail)zzucsjl@163.com。
TH165;TG506
A
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!