摘 要:为解决现有螺纹关键参数视觉测量方法中易存在螺纹角点误检和漏检导致测量精度降低的问题,本文提出一种基于轮廓角点检测的视觉测量方法。首先,使用双边滤波和迭代阈值法改进Canny算子,提高边缘检测的精度;其次,使用双阈值DP算法和Hough变换对轮廓进行分段拟合,在保护边缘的前提下平滑轮廓,并在此基础上使用CTAR算法提取螺纹牙顶、牙底的角点;最后,根据角点的位置信息实现螺纹大径、小径的测量。实验结果表明,相对于现有使用Canny算子和Harris角点检测的视觉测量方法,该方法能准确可靠地检测螺纹的边缘和角点,实现螺纹参数的高精度测量,螺纹大径、小径的平均测量精度分别达到0.0033mm和0.0026mm。
关键词:螺纹测量;机器视觉; Canny算子;分段拟合; CTAR算法;角点检测;
Visual measurement method of thread key parameters based on contour corner
detection
Jiang Tao Li Yuan He Chenlong
College of Electrical and Control Engineering, Shaanxi University of science and Technology
Abstract:
In order to solve the problem of low accuracy caused by false and missed detection in the corner detection methods of current visual measurement of thread key parameters, we proposed a new method based on contour corner detection. Firstly, bilateral filtering and iterative threshold method are used to improve the Canny operator to increase the accuracy of edge detection. Secondly, the double-threshold DP algorithm and Hough transform were used for piecewise fitting; the edges are protected and Contour smoothness is kept. Furthermore, the corner points of the tip and bottom of threads were extracted with CTAR algorithm. Finally, thread major diameter and minor diameter is measured according to the position information of corner points. Experimental results show that, compared with the traditional Canny operator and Harris corner detection method, our new method can accurately and reliably detect the thread edges and corners. Therefore, the high precision measurement of screw thread parameters is realized. The average measurement accuracy of major and minor diameters of screw thread is 0.0033mm and 0.0026mm, respectively.
Keyword:
thread measurement; machine vision; Canny operator; subsection fitting; CTAR algorithm; corner detection;
0 引言
螺纹作为工业上最为常用的连接方式之一,在机械制造、航空航天、工业生产等领域得到了广泛应用[1]。先进的螺纹零件是高端机械制造的基础,系统所用螺纹零件质量的好坏将直接影响其是否能够安全正常的运行。因此,有必要在出厂使用前对螺纹关键参数进行严格检测,从而有效地保证螺纹零件的加工质量,降低产品不合格率[2]。采用人工操作的方式测量螺纹参数,存在精度低、费时费力、易损伤工件表面等问题。随着计算机图像处理技术和传感器技术的快速发展,基于机器视觉的精密测量技术凭借其测量速度快、非接触、成本低等特点逐渐成为未来工业零件测量的发展方向[3,4,5]。
近年来,诸多学者对基于机器视觉的螺纹检测开展了广泛研究。文献[6]使用Canny算子和亚像素角点函数提取螺纹轮廓和角点,通过支持向量机(SVM)对角点与噪声点进行分类,提高螺纹测量的抗干扰能力;文献[7]对运动的螺纹零件使用归一化匹配算法识别和追踪,在感兴趣区域(ROI)内通过 Harris算法提取角点,并利用中径线筛选伪角点;文献[8]使用Hough变换校正倾斜的螺纹图像,通过搜索轮廓最值的方式检测角点,实现了大径、小径的测量;文献[9]提出了一种智能检测方法对小螺距螺纹参数进行测量。使用Canny算子、亚像素轮廓得到精度较高的边缘,并通过扫描的方式找到螺纹角点。螺纹视觉测量需要对螺纹牙底、牙顶的角点进行检测,并根据检测到的角点测量螺纹大径、小径。但是,现有方法通过基于灰度的角点检测方法在整幅图像中检测角点,或者通过逐行扫描轮廓最值的方式检测角点。检测数据量大,且当图像和轮廓存在噪声、灰尘和毛刺等因素干扰时,角点的定位精度和准确率会受到影响,产生伪角点或漏检,从而影响螺纹大径、小径的测量精度。
针对这一问题,本文提出一种基于轮廓角点检测的螺纹关键参数视觉测量方法,通过使用双边滤波和迭代阈值法对Canny算子进行改进,得到螺纹精确的轮廓信息。另外为解决轮廓的局部细节和噪声易影响角点检测的问题,使用分段拟合的方法平滑轮廓,并在此基础上通过轮廓点的位置信息检测角点。实验表明,该方法能够有效提高边缘、角点的检测精度和准确率,实现螺纹参数的精确测量。
1 螺纹视觉测量系统
如图 1 所示,螺纹视觉测量系统分为硬件和软件部分。光源、工业相机、工业镜头、固定装置及计算机均属于硬件部分,软件部分则由图像处理、参数计算和显示界面组成。
为了满足螺纹视觉测量的要求,采用远心平行光源对被测工件进行背光照明,选择某品牌CMOS工业相机分辨率为5472×3648,芯片尺寸为1'',镜头选择双远心镜头,最大支持1.1''靶面相机,放大倍率为0.5,畸变率为0.006%。
螺纹测量步骤:1) 将螺纹工件固定在夹具上,触发相机拍照,通过GigE接口将图像发送到计算机;2) 对图像进行处理,得到边缘、角点等信息,通过拟合的方法计算螺纹参数;3) 进行相机标定确定映射系数,转换螺纹参数的像素尺寸并显示最终的测量结果。
2 改进的Canny算子
在基于轮廓角点检测的螺纹关键参数视觉测量中,首先要对螺纹图像的边缘进行检测,螺纹图像的边缘信息作为最基本的特征,其检测的准确性将直接影响角点检测的准确和测量结果的精度,因此精确地检测螺纹图像的边缘尤为重要。现有的图像边缘检测方法有LOG算子、Canny算子、Laplace算子和Sobel算子等,其中Canny算子因为算法速度快以及具有较高的信噪比被广泛应用[10]。但是Canny算子使用的高斯滤波函数是一种各向同性的滤波函数,易在去噪的同时造成边缘细节模糊化,丢失边缘信息[11,12]。而且Canny算子的阈值依赖于人工经验,阈值设置过大过小都会导致边缘检测结果的不准确,阈值设置过高会造成边缘信息丢失,设置过低则会产生伪边缘[13]。因此本文对 Canny 算子进行改进,提高边缘检测的准确性。改进的算法流程图如图2所示:
2.1 双边滤波去噪
本文使用双边滤波取代高斯滤波平滑图像,能取得更好的去噪效果。双边滤波以非线性的方式组合图像空间邻近度和灰度相似度,有效地克服了高斯滤波函数只考虑图像空间信息的缺点,在保留其优秀去噪能力的同时,也能较好的保护图像的边缘信息[14,15]。双边滤波的模型如式(1)所示:
f(x,y)=∑(m,n)∈Vr,x,yws(m,n)wg(m,n)g(m,n)∑(m,n)∈Vr,x,yws(m,n)wg(m,n)(MainDocumentOnly.)
ws(m,n)=exp(−|x−m|2+|y−n|22σ2s)(MainDocumentOnly.)
wg(m,n)=exp(−|g(x,y)−g(m,n)|22σ2g)(MainDocumentOnly.)
式中,g(m,n)为噪声图像,f(x,y)为滤波后的图像,Vr,x,y为以(x,y)为中心的(2r+1)×(2r+1)的正方形区域内所有像素点的集合,r为滤波窗口半径,ws(m,n)、wg(m,n)分别为空间权重和灰度相似度权重,σs为空间标准差,σg为灰度标准差。图3为高斯滤波和双边滤波对噪声图像的滤波对比,可以看出高斯滤波对椒盐噪声的滤除效果不理想,并且螺纹拐角处被模糊,而双边滤波在滤除大量噪声的同时图像的细节特征也比较清晰。
2.2 迭代法求高低阈值
工件的照明方式为背光照射,图像前景和背景区域差异明显,利用迭代法可以得到较好的分割效果,因此采取迭代法自适应的确定Canny算子的最佳高低阈值。将图像的平均灰度值设置为初始阈值T,灰度值≤T的区域为R1,灰度值>T的区域为R2,计算R1和R2的平均灰度值μ1和μ2,并根据μ1、μ2求出新的阈值T'=(μ1+μ2)/2,重复上述过程直到T′小于预设值T。此时,T′和0.4 T′即为Canny算子的最佳高低阈值T1和T2。图4给出了传统Canny算子与改进Canny算子的边缘检测效果对比图,可以发现,传统Canny算子检测到的边缘较粗,局部细节被平滑且存在边缘丢失的情况,而改进的Canny算子检测到的边缘的定位精度高,连续性好,轮廓细节信息也较明显。
为了对改进Canny算子的边缘检测效果进行客观评价,本文采用评价指标峰值信噪比( Peak Signal to Noise Ratio, PSNR)、均方误差(Mean Square Error , MSE)如图4所示的边缘检测效果图进行判断。PSNR用来判断滤波算法去除噪声的能力,值越大,去噪能力越强,MSE表示原图像与检测后图像之间的相似程度,MSE越小越相似。由表1数据可知,改进Canny算子的PSNR高于Canny算子,MSE低于Canny算子,说明改进Canny算子的图像滤波效果较好,与原图更相似,检测到的边缘更接近真实边缘。改进Canny算子的边缘检测效果优于传统Canny算子。
3 基于螺纹轮廓的角点检测
角点是指二维图像上亮度发生剧烈变化的点,或是图像边缘曲线上的曲率最大点,角点可以在保留图像的特征信息的同时有效减少数据量[16]。现有的角点检测方法主要分为基于灰度的角点检测方法和基于轮廓曲线的角点检测方法,相对于基于灰度的角点检测方法,基于轮廓的角点检测方法检测数据量小、漏检和误检率较低,但该方法易受曲线局部变化和量化噪声的影响,而且使用高斯滤波函数平滑轮廓时,会对边缘点和噪声点不加区别的滤波,影响螺纹角点检测的准确率。因此本文提出一种适用于螺纹轮廓的角点检测方法,该方法使用双阈值Douglas-Peucker (DP)算法将螺纹轮廓按照其几何特征分割为直线和圆弧,然后使用Hough变换对轮廓段进行拟合得到光滑的轮廓,去除量化噪声和局部细节,最后使用 Chord to Triangular Arms Ratio (CTAR)算法[17]估计曲率检测角点。算法流程如图5所示:
3.1 轮廓平滑
首先使用DP 算法分割螺纹轮廓。DP 算法是经典的曲线降采样算法,该算法采用了递归思想,原理简单,通过调整预设值D就可逼近任意边界轮廓,效率相对较高[18]。但是它通过折线段来逼近轮廓,弯曲部分的轮廓会被过度分割。因此,本文对DP算法进行改进:
(1) 使用DP算法在指定阈值D1下得到轮廓的初始多边形近似;
(2) 用圆弧对初始多边形中的相邻分割线段进行拟合。若圆弧到轮廓的最大距离d'max比两条逼近线段到轮廓的最大距离dmax小,则将逼近线段替换为圆弧,否则不变。重复至所有线段处理完毕;
(3) 对处理完成的轮廓中仍由线段近似的部分轮廓再次使用指定阈值为D2(D2<D1)的DP算法进行多边形近似分割;
(4) 第3步中新创建的逼近线段在满足条件的情况下用圆弧进行拟合,重复此过程直到所有线段处理完毕;
(5) 经过上述处理后,得到了轮廓的初始分段点集P={p1,p2, … ,pi, … ,pn}。对于任意的分段点pi,其前后近邻点分别为pi−1、pi+1,计算pi到直线pi−1pi+1的距离d,若d<D2,则删除pi点,否则保留pi点。
轮廓分割结果如图6所示,该方法由于D1>D2,因此在以D1为预设值的DP算法中生成的逼近线段数量较少,对逼近线段进行圆弧拟合的次数较少,可以更有效地找到用长弧近似的部分轮廓;当DP算法的预设值设为D2时,可以找到轮廓中用短弧近似的部分,并细化长弧的端点,比仅使用一个阈值D的分割方法效率更高,更精确。
将轮廓分割为直线和圆弧后,使用Hough变换进行拟合,能够在噪声和边缘断裂、变形的情况下均取得较好的结果。如图7所示,使用分段拟合的方法在平滑轮廓的同时不会模糊轮廓的细节特征。
3.2 CTAR算法检测角点
CTAR算法由Teng等人在2015年提出,针对Chord to Point Distance Accumulation (CPDA)算法的局限性,提出用简单的三角形边长原理代替点弦距离累积检测角点,不仅有效提高了算法的检测性能,而且降低了计算量,是目前性能最优的基于轮廓的角点检测算法[19,20]。CTAR角点检测算法使用简单三角形理论来估计曲率,如图8所示,三角形Pk−tPkPk+t的弦长Pk−tPk+t−与两边Pk−tPk−、PkPk+t−之和的比值必小于1,并且该比值将随着∠Pk锐度的减小而增加,若Pk−t、Pk和Pk+t三点共线,则该比值为1。曲线上点Pk的角点响应函数用以下公式表示:
R(Pk)=dk,1dk,2+dk,3(MainDocumentOnly.)
其中:
根据三角形理论,角点响应函数R(Pk)的值必介于0到1之间,点Pk越尖锐,角点响应函数R(Pk)越接近0,反之,点Pk越平坦,R(Pk)越接近1。通过公式(4)估计曲线上每一个点的角点响应函数并进行非极大值处理,如果某点的角点响应值小于预设阈值Th,则将该点视为角点并保存。图9(a)是由Harris角点检测方法得到的结果,其中存在伪角点、漏检以及角点簇的情况,而且定位精度不高,而图9(b)给出本文角点检测方法的检测结果,可以通过图9(c)的局部放大图明显看出,本文方法角点检测的准确率和定位精度相对较高。
为验证本文提出的基于轮廓的角点检测方法,分别用Harris角点检测方法和本文方法对螺纹工件的10幅图像进行实验,其中,前5幅是原图像,后5幅是添加了噪声的图像。由表2的数据可知,Harris角点检测方法的准确率为76.9%,且当图像存在噪声时,角点的误检量增加;本文方法的准确率为93.4%,漏检量少于Harris方法,并且对噪声图像进行角点检测时,误检的角点数量也明显少于Harris方法,角点检测的性能较稳定。
4 螺纹大径、小径测量
对检测到的角点采用最小二乘法进行拟合,得到大径和小径位置处的假想圆柱母线,如图10所示。设直线方程为Ax+By+C=0,图10中左、右两条大径的拟合直线参数分别为:l1:A1=1,B1=6.036×10−3
,C1=−1323.9 和 l2:A2=1,B2=−5×10−5,C2=−847.952。在l1上任取m个点,求点到直线 l2的平均距离,同样在l2上也任取m个点,求点到直线l1的平均距离,按照公式(8)对其求均值可得到大径的测量值。
图10中两条小径的拟合直线参数分别为:l3:A3
5 实验与结果分析
实验中被测螺纹零件为M6规格的螺栓,将螺栓放入如图11的螺纹参数视觉测量平台中采集螺纹图像,分别使用本文方法(测量值1)和Canny算子、Harris角点检测方法(测量值2)对螺纹进行边缘检测、角点提取,并完成大径小径的测量。在每一次测量完成后,将螺栓绕轴线随机旋转一定角度后进行下一次测量。总共进行15次测量实验,实验结果如表3所示。
表3中,本文提出的基于轮廓角点检测的螺纹参数测量方法得到的大径、小径的平均测量误差分别为0.0033mm、0.0026mm,而Canny算子与Harris角点检测方法的测量误差相对较高,分别为-0.0381mm、0.0377mm,这是由于该方法易受噪声、杂质和毛刺的干扰,导致边缘、角点定位不准确,产生伪角点和漏检,以这些角点测量螺纹大径、小径,则会影响测量精度。另外本文方法对螺纹大径、小径测量结果的标准差较小,表示不同结果的相对误差波动较小,具有较高的一致性。
6 结论
本文提出一种基于轮廓角点检测的螺纹关键参数视觉测量方法,用于准确测量螺纹大径、小径。通过双边滤波联合迭代阈值法改进Canny算子,使其更精确地提取轮廓边缘。同时根据螺纹轮廓特征采用双阈值DP算法进行分割,并使用Hough变换拟合轮廓段实现轮廓的平滑,降低了噪声和轮廓局部细节对角点检测的影响,然后使用CTAR算法提取角点,最后对角点进行最小二乘直线拟合,实现了螺纹大径、小径的高精度测量。但是本文为了提高角点检测的准确率,增加了算法的复杂度和运行时间,使算法的实时性降低,并且改进的DP算法和角点检测算法的阈值需人为设定,这些问题是后续的研究方向。
[1] 张莹莹, 金成哲, 吴鹏. 大直径内螺纹铣削加工的振动试验及分析[J]. 工具技术, 2020, 54(7): 16-19.
[2] 王晓东, 渠立琛, 张炜, 等. 基于图像处理技术的YSQ-3型液化石油气瓶阀外螺纹加工质量检测方法的研究[J]. 制造业自动化, 2015,37(14):60-63.
[3] 宋帅帅, 黄锋, 江燕斌. 基于机器视觉几何量测量技术研究进展分析[J]. 电子测量技术, 2021, 44(3): 22-26.
[4] 吴禄慎, 项桔敏, 胡贇. 基于机器视觉的卡尺工具法螺母实时检测系统[J]. 仪表技术与传感器, 2020(2):50-55.
[5] 张喜民,余奇颖,张金博,等.基于机器视觉的手机尾插件精密测量方法研究[J].仪器仪表学报,2019,40(10):47-54.
[6] 张昊, 金冠, 蒋毅, 等. 基于SVM特征点分类的机器视觉外螺纹参数检测[J]. 传感器与微系统, 2019, 38(4): 121-124.
[7] 包能胜, 方海涛. 连续运动螺纹尺寸自适应机器视觉检测[J]. 计量学报, 2020, 41(9): 1062-1069.
[8] 刘阳, 刘超. 基于视觉的非接触外螺纹关键参数测量方法[J]. 组合机床与自动化加工技术, 2021(8): 105-108.
[9] CHAO J, ZHANG L. Parameters of small pitch thread measured by an intelligent detection method[J]. Journal of Computational Methods in Sciences and Engineering, 2016, 16(2): 207-218.
[10] 陈明曦,侯涛,赵晏章,等.基于新型改进Canny算法的铁轨边缘检测研究[J].国外电子测量技术, 2021, 40(11): 48-52.
[11] 陆华才, 贺华展, 黄宜庆, 等. 改进Canny边缘算子和高斯混合模型的运动目标检测[J]. 电子测量与仪器学报, 2019, 33(10): 142-147.
[12] 刘明,杨胜寒,高诚辉.基于水平集方法的划痕形状表面视觉测量[J].仪器仪表学报,2020,41(2):184-194.
[13] 黄梦涛,连一鑫.基于改进Canny算子的锂电池极片表面缺陷检测[J].仪器仪表学报,2021,42(10):199-209.
[14] 张帅, 杨龙兴, 丁力. 基于自适应双边滤波的V型焊缝特征提取研究[J]. 制造技术与机床, 2021(7): 125-129.
[15] 童胜杰, 江明, 焦传佳. 一种改进工件边缘检测方法的研究[J]. 电子测量与仪器学报, 2021, 35(1): 128-134.
[16] 周伟, 巢渊, 李龑,等. 基于改进Harris角点检测的芯片图像快速校正[J]. 电子测量与仪器学报, 2020, 34(10):74-81.
[17] 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.
[18] ZHAO L B, SHI G Y. A method for simplifying ship trajectory based on improved Douglas-Peucker algorithm [J]. Ocean Engineering, 2018, 10:37-46.
[19] 张倩. 基于轮廓的角点检测算法研究[D].成都:电子科技大学,2017.
[20]郑倩,刘珊,邓璐娟,等.基于平行四边形对角线理论的角点检测算法[J].郑州大学学报(工学版), 2021, 42(4):19-25.