APP下载

改进的RHT算法在弹簧卡箍检测中的应用

2016-03-17章飘艳陈仁文丁志强

计算机应用与软件 2016年2期
关键词:卡箍共线弹簧

章飘艳 陈仁文 朱 霞 丁志强

(南京航空航天大学机械结构力学及控制国家重点实验室 江苏 南京 210016)



改进的RHT算法在弹簧卡箍检测中的应用

章飘艳陈仁文朱霞丁志强

(南京航空航天大学机械结构力学及控制国家重点实验室江苏 南京 210016)

摘要针对弹簧卡箍零件缺陷检测的人工离线检测方法的一些缺陷,提出一种改进的随机Hough变换的智能检测方法。该方法以弹簧卡箍的几何特征作为分析对象,对RHT的随机采样作了3方面的改进,有效地减少了无效采样与无效累积。实验分析显示,改进的RHT用于弹簧卡箍的检测时,尺寸误差都在1个像素之内,并且检测时间只有改进前的RHT算法检测时间的27.05%,最少的只有4.62%。实验结果表明,改进的RHT算法能够更加准确快速地检测出弹簧卡箍的尺寸。

关键词缺陷检测随机Hough变换圆检测弹簧卡箍

APPLYING IMPROVED RHT ALGORITHM TO SPRING CLAMPS DETECTION

Zhang PiaoyanChen RenwenZhu XiaDing Zhiqiang

(State Key Laboratory of Mechanics and Control of Mechanical Structures,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,Jiangsu,China)

AbstractWe proposed an improved RHT-based smart spring clamps detection method to overcome the defects of traditional manual offline detection method in detecting spare part flaws of spring clamps. The method takes geometric feature of spring clamps as the analysing object,makes the improvements on RHT random sampling in three areas,and effectively reduces the ineffective sampling and ineffective accumulation. Experimental analysis showed that when applying the improved RHT algorithm on spring clamps detection,the dimensional errors are all less than one pixel,and the detection time is only 27.05% of the original time (the shortest is 4.62%). Experimental results showed that the improved RHT algorithm can detect the dimension of spring clamps with higher speed and accuracy.

KeywordsDefect detectionRandom Hough transform (RHT)Circle detectionSpring clamp

0引言

弹簧卡箍被广泛应用于用于汽车、拖拉机、轮船、汽油机、柴油机、喷灌机等多种机械设备上的油、汽、液胶管的接口处,以及楼房建筑的下水道接口等,是各类胶管接口首选的坚固连接配件。弹簧卡箍是弹簧钢由车床模具一次冲压而成,其形状为圆形,外圈留出两个供手按的耳。在使用时,用手用力按住双耳增大内圈,套进圆管即可。

根据弹簧卡箍的圆形特征,可应用Hough变换算法[1-4]进行检测。Hough变换是1962年Paul Hough以专利的形式提出的。Hough变换作为一种有效地检验圆的基本方法,常被用于各种工业应用与科学研究中。其优点在于它具有很好的鲁棒性和容错性,对区域边界的噪声或间断点不敏感;其缺点在于会产生虚假圆、计算量和存储量大、检测精度受到参数空间离散化的制约等。为了克服其缺陷,很多学者提出了新的方法以改进Hough变换算法的不足。

Xu[5]等人于1990年提出了随机Hough变换(RHT),采用了随机采样、动态链表存储和收敛映射以提高计算速度和存储器的利用率,但是由于其无目标的随机采样,容易引入大量的无效采样和无效累积,使得算法的性能大为降低。因此,很多专家学者提出了基于RHT的改进算法。

文献[6]通过利用圆的特性和梯度算法对随机采样进行约束,使得改进后算法能够应用于光照不均匀、圆数量大、边界模糊等复杂背景条件下。文献[7]提出了一种改进的类圆随机Hough变换算法,在算法中添加了边缘预检测、重叠识别模块等,并且改进了圆心的选取方式,提高了算法的识别率。文献[8]提出了一种基于有效继承的随机Hough变换圆检测累计加速算法,该算法在每次成功检测圆后不清空参数空间的累计值,继承了上次的有效采样,改进的算法可以减少总采样次数并节省清空参数空间所需的时间。文献[9]提出了一种新的RHT算法,该算法约束了随机Hough变换的采样范围并减少了无效采样,提高了算法的计算速度。为了进一步减少RHT算法检测圆形目标所需的时间,同时保持准确性,本文提出一种改进的RHT算法,可快速有效地从背景中分割出目标物并对其进行正次品检测,实现弹簧卡箍的自动识别。

1RHT算法检测圆原理及算法实现

随机Hough变换(RHT)是检测圆的有效方法。主要是通过图像空间的随机抽样来降低存储量和计算量,其基本思想包含三个步骤:随机采样过程、累计过程和验证过程[10]。

在随机采样过程中,随机采样三个边缘点(x1,y1)、(x2,y2)、(x3,y3),代入圆的方程式(1),得到方程组式(2),求解式(2)可得到圆的参数(a1,b1,r1)。在参数累计过程中,继续取点(x4,y4),将a1,b1,x4,y4代入式(1),求出半径r4,然后代入式(3),求出δ1。若δ1<δ (δ为容许误差),则累计值A(ai,bi,ri)=1;继续取点计算,直到A(ai,bi,ri)≥T_c,则认为此圆为候选圆。在验证过程中,统计圆上的点数C,若C≥2πr·T_r,则此候选圆为真圆。当采样次数f=T_f时,而参数空间仍没有参数单元的累计值达到阈值T_c,则采样结束。以上δ、T_c、T_r、T_f均为预先设定,式(1)-式(3)如下:

(x-a)2+(y-b)2=r2

(1)

(2)

δ1=r4-r1

(3)

2改进算法

与Hough变换相比较,RHT具有存储空间小、速度快的优点。但是由于随机抽样会引入大量的无效采样和无效累计,导致计算量增大计算时间增长,使算法的性能有所下降。

本文从以下几个方面进行考虑,以抑制无效采样的产生,提高算法的性能。

2.1共线的判断

不在同一条直线上的三点确定一个圆,设随机选取三点为(x1,y1)、(x2,y2)、(x3,y3),三点不共线的充分必要条件是:

(x2-x1)(y3-y1)-(y2-y1)(x3-x1)≠0

(4)

将随机采样中的共线情况排除,可有效减少无效采样。

2.2距离的判断

三点之间距离过小时,点的微小误差会导致圆的参数的巨大变化;同样,当三点距离过大,直至大于圆的真实直径时,这三点必然不同在所要检测的圆上。

假设有相对靠近的三点(x1+δ,y1)、(x2,y2)、(x3,y3),这三点确定的圆的圆心(a,b)及半径r分别为:

(5)

(6)

(7)

(8)

图1是a、b、r三个参数随着δ从0~10的变化曲线图。这样的赋值虽不具一般性,但可从曲线的变化看出参数a、b和r关于δ的变化性质。

图1 圆的参数a,b,r关于δ的变化曲线图

由图1可以看出,当δ较小处于0~1之间时,参数a、b和r波动剧烈,但是当δ较大时,a、b和r的变化变得平缓。

由此可见,随机采样的三点的距离不能过小,否则由于图像的离散,点的位移上的微小误差有可能导致所检测的圆的参数的巨大变化,从而使得最终检测的结果与真实结果相差甚远;另外随机采样点之间的距离也不能过大,当点的距离大于圆的真实直径时,这三点所确定的圆的直径就大于真实圆的直径,当前采样即为无效采样。

因此约束三点中两两之间距离,使之大于给定阈值T_a并小于给定阈值d(d=dc+δ,其中dc为理论直径,δ为误差),能够大大降低无效采样。表达式如下:

(9)

2.3基于梯度方向信息的共圆的判断

利用点的梯度信息预先判断随机采样的三点是否在同一个圆上,若不共圆,就无须进行计算,从而减少无效累积。

如图2所示的3×3模板,其中心像元的梯度可用下式表示:

(10)

图2当前像素a9与相邻8个像素的位置关系图

其中,I为图像矩阵,My、Mx分别为梯度在x方向和y方向的分量,c为加权系数,表示离中心像元较近。当c=2时,就可以得到Sobel算子。

此时计算得到沿中心像元梯度方向角为:

θ1=actan(My/Mx)

(11)

通过式(11)可以计算出图像上任意一点的梯度方向角。另外,通过三点计算出的圆心坐标(a,b)也可计算出圆上点的梯度方向角,示意图如图3所示。计算公式如下:

(12)

图3 圆上一点的梯度方向角求解示意图

通过式(11)和式(12)两种途径分别求出某点的梯度方向角θ1和θ2,如果θ1=θ2,那么这一点一定在圆上。考虑到圆的离散性,实际计算时,计算两者的差δθ=θ1-θ2。如果δθ

利用梯度信息对随机采样的三点进行计算验证后,就排除了大量不共圆的采样,大大减少了RHT算法的无效采样和无效累积,降低了计算量和存储量。

2.4其他改进

在验证阶段,若满足以上距离要求的点数达到C=2πr·T_r,则认为此圆为真实圆,其中T_r=0.6。考虑到改进算法中结合了点的梯度信息,候选圆为真实圆的可能性较之前的算法更大。因此,将0.6改为0.4,在达到验证目的的同时减少需要验证的点数,以减少计算量并减少耗时。

2.5改进算法的流程

根据以上分析对RHT算法进行改进,具体步骤如下:

Step 1构造边缘点集P,初始化参数单元集A=0以及采样次数f=0。

Step 2f=f+1。若采样次数f已达上限T_f,结束;否则,继续进行下一步。

Step 3从P中随机选取3点d1、d2、d3,并判断三点是否共线。若不共线,继续进行下一步;否则,返回Step 2。

Step 4判断三点中两两之间的距离是否在距离阈值a和d之间。若在,继续进行下一步;否则,返回Step 2。

Step 5根据采样三点计算圆的参数a,即圆心与半径。

Step 7判断圆的参数a在A中的累积是否达到阈值Nt。若达到,则参数a所确定的圆为候选圆;否则,执行Step 2。

Step 8判断候选圆上点的个数C是否超出阈值2πR·T_r。若是,则此圆是真实圆,继续进行下一步;否则,此圆是虚假圆,将参数a从A中去除,返回Step 2。

Step 9判断所检测的圆的个数是否已达上限。若是,结束;否则,将参数a对应的圆上的点从P中去除,重置A和f,返回Step 2。

图4为改进后RHT算法的流程图。

图4 改进的RHT算法流程图

3实验结果与分析

本实验使用的图像处理软件为MATLAB 7.11.0.584(R2010b),处理系统为Win 7,处理器为Pentium(R) Dual-Core CPU T4400 @2.20 GHz,拍摄图片的相机型号为JAI CM-030GE。

为了验证改进算法的有效性,本文进行了大量的实验。首先对零件的图像进行滤波,由于二维中值滤波可以达到既消除噪声又保持图像细节的目的,因此本文采用二维中值滤波,经实验验证发现,7×7滤波模板去噪效果最好。其次对图像进行边缘检测,由于Canny边缘检测算子具有高的检测率、精确的定位和明确的相应,是最常用的也是公认的性能优良的边缘检测算子,因此本文采用Canny算子对图像进行边缘检测。然后分别用RHT算法和改进的RHT算法对边缘检测后的图像进行零件形状和尺寸的检测。最后将改进前后算法的处理结果进行对比分析。

图5为图像原图以及经过滤波和边缘检测预处理后的结果图。图6为RHT算法以及改进的RHT算法处理结果对比图。限于篇幅,仅选取其中6例。

图5 零件原图及预处理结果图

图6 用RHT算法和改进的RHT算法处理结果对比图

表1是样本零件参数的理论值,表2是改进前后RHT算法检测平均结果的对比。结合表1可知,改进后RHT算法检测结果误差均在1个像素以内,而改进前算法的误差有的达到3个像素,可见改进后RHT算法提高了准确度。表3是改进前后RHT算法检测所耗费的平均时间的统计对比,由表中数据可知,改进的RHT算法检测耗时只占原RHT算法耗时的27.05%,最少的只有原来的4.62%,可见改进后的算法能够大大减少计算量,提高检测速度。

表1 样本参数理论值

表2 改进前后RHT算法检测平均结果统计

表3 改进前后RHT算法检测所耗费的平均时间的统计

4结语

本文对RHT算法中无效采样与无效累积的问题从三个方面进行了改进。在进行累积前,首先判断三点是否共线,如果不共线进而判断距离是否合理;如果距离在最小阈值和最大阈值之间再利用梯度信息判断点是否在圆上;如果点不在圆上,则无需进行累积与计算。实验数据显示,改进的RHT算法检测结果

误差都在1个像素以内,较改进前的算法有所提高,另外改进的RHT算法检测耗时远小于原RHT算法检测耗时。实验结果表明,该算法较改进前的随机Hough变换算法能够更加快速、精确地给出检测结果。

但是,本文的改进算法依然存在一些不足,从图5的实验结果图可以看出,应用改进的算法对弹簧卡箍图片进行尺寸的检测时,只能检测出内径或是外径,这点不足仍需进一步研究和改进,也为下一步研究指明了方向。

参考文献

[1] Gonzalez R C,Woods R E,Eddins S L.Digital image processing using MATLAB[M].Beijing:Publishing House of Electronics Industry,2013.

[2] 赵小川,何灏,缪远诚,等.MATLAB数字图像处理实战[M].北京:机械工业出版社,2013.

[3] Hart P E.How the Hough transform was invented[J].IEEE Signal Processing Magazine,2009,26(6):18-22.

[4] Duda R O,Hart P E.Use of the Hough transformation to detect lines and curves in pictures[J].Communications of the ACM,1972,15(1): 11-15.

[5] Xu L,Oja E.Randomized Hough transforms (RHT):basic mechanisms,algorithms,and computational complexities[J].Computer Vision Graphic Image Process:Image Understanding,1992,57(2): 131-154.

[6] 周封,杨超,王晨光,等.基于随机Hough变换的复杂条件下圆检测与数目辨识[J].仪器仪表学报,2013,34(3):622-628.

[7] 李昕,李立君,高自成,等.改进类圆随机Hough变换及其在油茶果实遮挡识别中的应用[J].农业工程学报,2013,29(1):164-170.

[8] 周勇亮,金燕,何萍,等.随机Hough变换圆检测累计加速算法[J].计算机辅助设计与图形学学报,2014,26(4):574-580.

[9] 张江鑫,沈小兰,王辉,等.快速随机Hough变换多直线检测算法[J].浙江工业大学学报,2013,41(3):346-350.

[10] 周勇亮.圆检测算法研究与参数数据管理[D].浙江:浙江工业大学信息工程学院,2012.

中图分类号TP751

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.02.065

收稿日期:2014-09-03。章飘艳,硕士生,主研领域:测试计量技术及仪器。陈仁文,教授。朱霞,博士生。丁志强,硕士生。

猜你喜欢

卡箍共线弹簧
向量的共线
联合弹簧(天津)有限公司
平面几何中三点共线的常见解法
共线向量题型例析
析弹簧模型 悟三个性质
导管架平台卡箍修复的有限元分析
如何求串联弹簧和并联弹簧的劲度系数
球笼卡箍自动装配机机械结构设计
改进PSO的金属橡胶卡箍隔振仿真分析与参数优化
基于有限元的三瓣式快开容器上卡箍应力分析