基于机器视觉的螺纹钢丝头检测方法
2022-09-02杨钧宇徐紫琪
肖 剑,杨钧宇,徐紫琪,张 凯,张 赞
(1.长安大学 电子与控制工程学院,西安 710064;2.西安科技大学 电气与控制工程学院,西安 710054)
0 引言
作为钢筋机械连接的关键部分,螺纹钢丝头质量是影响建筑物整体质量的重要因素[1]。目前对于螺纹钢丝头检测方法主要是采用人工检测,根据《GB/T 197-2003》,螺纹钢丝头由检测工人手持符合6f级精度的环规、测长仪和千分尺等仪器进行检测[2]。但人工检测存在主观性,经常会发生漏检、误检的情况,且检测效率低、工作强度大,不利于对生产过程的质量安全控制[3]。
本文基于机器视觉[4]技术进行了螺纹钢丝头检测方法的研究,通过对采集到的图像数据进行预处理,并提取出重要的特征信息[5]。机器视觉方法受检测环境影响较小、准确率高、效率高,同时检测设备成本低,便于工业生产部署,适合工业螺纹钢丝头的检测[6]。本文通过方差曲率角进行角点定位,提高了角点检测精度,降低了伪角点对后续参数提取造成的影响。为了进一步提高测量精度,提出一种基于Sigmoid亚像素细分算法对边缘像素进行细分。在中径测量中,提出了一种基于自适应权重非线性收敛的鲸鱼算法。本文实现了螺纹钢丝头角点的精确定位与尺寸参数的精确测量。
1 螺纹钢丝头的基本参数与角点检测
1.1 螺纹钢丝头的基本参数
螺纹钢丝头检测的内容主要包括对大径、小径、中径、螺距等的检测。如图1所示,外螺纹的大径、中经、小径可表示为与外螺纹特征点重合的假想圆柱体的直径[7]。
图1 螺纹钢丝头的基本牙型与螺纹钢丝头示意图
在图1中,螺距P表示螺纹上相邻两牙在中径线上对应两点间的轴向距离;大径d表示与外螺纹牙顶或内螺纹牙底相切的假想圆柱或圆锥的直径;中径d1表示螺纹钢丝头锥体母线通过牙型上沟槽和凸起宽度相等的地方;小径d2表示与外螺纹牙底或内螺纹牙顶相切的假想圆柱或圆锥的直径。
1.2 角点定位
由于钢丝头存在油污及毛刺等,在进行角点定位时会出现伪角点,本文通过方差曲率角初步去掉部分伪角点。
选择若干尺度对轮廓L(L={L1,L2,...Ln})上的每一点Pi(i=1,2,3...n)建立曲率角集合,根据式(1)分别对圆角点、尖角点进行曲率角的计算。在尺度逐渐减小时,圆角点曲率角减小,而尖角点曲率角基本保持不变[8,9]。
真实角点与伪角点在多尺度下的曲率角变化情况如图2所示。
图2 角点在多尺度下曲率角的变化情况
根据图2可得,伪角点在多尺度下曲率角变化较大,真实角点在多尺度情况下变化较小,从而可以根据角点的曲率角方差情况对伪角点与真实角点点进行区分,方差计算表达式如式(2)所示:
式(2)中,θ(R)为在R尺度下曲率角的值,经过多次测试选取方差阈值为50时,能够有效地过滤掉伪角点检测出真实角点。图3所示为经过方差阈值筛选后的角点检测图。
图3 经过方差阈值筛选后的角点图
1.3 亚像素角点提取
为了进一步提高测量精度,通过Sigmoid亚像素细分算法对边缘像素进行细分。在没有噪声干扰的状态下,一个理想的边缘灰度分布就可模拟成为一个阶跃函数(一维条件下)如式(3)所示:
其中表示位于像素处的灰度值,h、k分别表示灰度背景与h灰度反差,R为设定值。然而图像在形成过程中受到了模糊效应对视觉系统的影响,所以理想的阶跃模型是不存在的,实际边缘模型当中必定存在过渡区。
本文采用边缘像素点为5邻域的方式来对亚像素点进行求解,像素点灰度插值如图4所示,由于所要分析的区域为上图中的过渡区,所以将5×5两边端点进行连接,做该直线的法线,在法线两边各寻找三个点[10,11]。
图4 像素点灰度插值
设点P的坐标为(x,y),到D点的距离为1。设A点坐标(M,N),则B、C、D点坐标为:
通过双线性插值计算出P点的灰度值。Sigmoid函数图像与灰度边缘分布大致相同,因此本文采用Sigmoid函数来对边缘进行拟合,Sigmoid的函数表达式如式(5)所示:
为了增强Sigmoid函数的多变性,需要将Sigmoid函数变型如式(6)所示:
式(6)中,a为放大或者缩小Sigmoid函数的S(x)的区间范围,b为过渡区的陡峭程度,c为函数图像在x轴的偏移量,d为函数图像在y轴的偏移量。
对式(6)进行二次求导变形,得到如式(7)所示:
通过Sigmoid拟合,得出式中的参数a=170.67,b=2.654,c=4.075,d=22.6。根据式(12),计算出s(x)=107.953,所以亚像素点x的位置x=4.075,灰度拟合Sigmoid线如图5所示。
图5 灰度拟合Sigmoid图
表1所示为选取的5个像素点坐标检测情况。
表1 螺纹边缘像素点数据
对表1中的数据进行分析后可以看出,图像角点经过亚像素细分后,坐标可以精确至千分之一像素,证明亚像素提取可以有效对像素进行细分,进一步提高了角点定位精度。
2 螺纹钢丝头尺寸检测
2.1 螺纹钢丝头外螺纹参数检测算法
1)螺纹丝头大经和小径测量方法:通过提取螺纹钢丝头图像亚像素牙型角点,取丝头两侧外角点,采用最小二乘法进行直线拟合。设左侧外角点拟合直线l1为,右侧外角点拟合直线l2为。由于加工螺纹产生的误差以及图像在采集、处理的误差导致直线l1与l2不平行,因此通过计算点到直线距离求得螺纹钢丝头大径长度。在l1选择各牙型角点,计算出各点到l2的距离,然后计算各点距离的平均值。螺纹钢丝头大径值表达式如式(8)所示。同理,可计算出小径值。
2)螺距的测量方法:螺距为螺纹上相邻两牙在中径线上对应两点间的轴向距离。首先将螺纹钢丝头的牙侧边进行拟合,然后求拟合线与中径的交点,以避免交点的不准确。假设中径线与拟合直线相交于M、N两点,坐标为(xm,ym),(xn,yn),则螺距表达式如式(9)所示:
2.2 螺纹钢丝头中径参数检测算法
在传统方法中,测量中径主要是通过确定轴线位置,来对中径的位置进行推导。根据国标GB.T14791.201中中径的定义,需要找到一条直线穿过牙型线,所得各个间距的距离相等时,此直线即为中径线,中径线测量示意图如图6所示。
图6 中径测量示意图
由于理想中径线几乎不存在,并且轴线的位置是通过拟合得到的,存在着一定的误差。本文对传统中径测量方法进行改进。设中径线表达式为y=kx+b。该中径线与各个牙型线的交点为集合x={x1,x2,…,xn},则每个间距之间的距离如式(10)所示:
式(10)中,l为间距平均距离,ki与bi代表第i条牙型线的斜率与截距,所以每个牙上的截距误差如式(11)所示:
定义函数如式(12)所示:
式(12)中,f(k,b)为所有误差的绝对值和,当取最小值时,对应的k与b就是中径线的斜率与截距。上述函数式可以通过求偏导,计算它的极值,但是这种方法过于繁琐,所以在本文采用改进的鲸鱼优化算法来对中径线进行求解。
1)鲸鱼优化算法
鲸鱼优化算法(The Whale Optimization Algorithm)[12]主要通过模拟鲸鱼捕食行为来实现对复杂优化问题的寻优算法,鲸鱼优化算法的数学模型主要分为三个阶段:包围猎物、发泡网攻击和搜索捕食。
(1)包围猎物
座头鲸可以对猎物的位置进行识别,并且将其包围,在定义最优位置后,其他座头鲸将朝着最优位置靠近,位置更新方程如式(13)、式(14)所示:
式(15)、式(16)中,的取值范围为[0,2],并且呈现一个递减的形式,r为[0,1]上的随机数。
(2)发泡网攻击
发泡网攻击主要分为收缩包围机制与螺旋式位置更新机制。收缩包围机制主要通过减少式(15)中的的值来实现的,当的值在迭代过程中由2减小至0时,而A的取值范围为[-a,a],若A的取值在[-1,1]之间,则座头鲸的游动位置位于当前位置与猎物位置之间,包围过程如上式(13)所示。
在座头鲸与猎物的位置建立一个螺旋方程,模拟座头鲸的螺旋形运动,其表达式如式(17)所示:
考虑到座头鲸在一个缩小的圆圈内绕着猎物游动,同时沿着螺旋型的路径游动,为了模拟同时发生这种行为,将两种围捕策略的选择概率设为50%用以更新座头鲸位置,数学模型如式(18)所示:
式(18)中,p为[0,1]上的随机数。
(3)搜索捕食
座头鲸除上述气泡网法搜索策略之外,还可以进行随机搜索猎物,更新时以系数A的变化为基础,若A超出[-1,1]范围,距离D随机更新,鲸鱼个体为了找寻猎物,就会偏离原本目标,使得全局搜索能力提高,公式如式(19)、式(20)所示:
式(19)、式(20)中的Xrand为当前种群中随机一个座头鲸个体所在的位置。
上述WOA算法寻优方式存在容易陷入局部最优的情况,本文提出一种基于自适应权重非线性收敛的鲸鱼优化算法,用来改善WOA算法的全局寻优能力和收敛速度。
2.3 基于自适应权重非线性收敛的鲸鱼优化算法
1)收敛因子
在传统WOA算法中,决定全局搜索和局部开发主要通过参数A,当算法以0.5的概率进行,当算法将进行全局搜索。由于传统WOA收敛因子A为线性变化,不能很好地调节全局搜索能力及局部开发能力,所以本文引入非线性收敛因子,其表达式如式(21)所示:
式(21)中,i为迭代次数,Max_iter为最大迭代次数。
2)自适应权重
自适应权重的特点是当权重较大时,其搜索范围较大;当权重较小时,可对局部进行精细化搜索。因此,在鲸鱼接近目标时,利用权重较小时的特点改变最优鲸鱼的位置,提高局部寻优的能力[13,14]。
本文在鲸鱼优化算法的前期阶段,选取一个线性微分递减的权重w,在算法运行到中期甚至后期时,根据鲸鱼自身的适应度进行调整权重值。在算法前期引入的权重表达式如式(22)所示:
式(22)中,wmax=0.9,wmin=0.2,i代表当前迭代次数,imax代表最大迭代次数。在算法迭代进入中后期时,选择按照f(k,b)将这些鲸鱼个体的值进行升序排序,然后求个体值的平均值favg,从而将个体值分为两部分,分别求取出两部分的个体平均值记为favg1与favg2。通过比较个体值与favg1与favg2的大小关系,将个体值分为三个集合,表达式如式(23)所示:
当fi(k,b)≤favg1,说明该部分的个体值优于平均个体值,此时鲸鱼应该在小范围内搜索,所以权重范围取在[0.2,0.4]之内的随机数。
当fi(k,b)>favg2,说明该部分的个体值略差于平均个体值,所以此时权重值应取较大值,有利于鲸鱼个体在全局中搜索最优解,权重范围应当在[1.2,1.4]之间。
当favg1<fi(k,b)≤favg2,说明该部分的个体值较为普通,所以此时的权重值与前期迭代方程相同,让它按照原位置向着最优解靠近。
使用这种权重分配策略,使得权重不再选择固定值,鲸鱼在搜寻猎物的方式变得多样化,能改善算法的求解精度、收敛速度。
为了验证本文算法的性能,选取了相关测量函数,与传统WOA算法、PSO算法进行对比。三种算法的种群值均设置为30,迭代次数为100。测试函数选择如表2所示,本文解决问题的取值范围通过参考大径、小径的斜率值与截距值进行设定,实验结果对比图如图8所示。
表2 测试函数选择
图7与图8为三种优化算法每个测试函数的性能比较,图中横坐标为迭代次数,纵坐标为最优解。从上述结果可以看出本文算法在最优解求解,算法收敛速度都明显优于传统WOA算法与PSO算法。
图7 实验结果对比图
图8 本文目标函数实验结果
接下来将本文中径测量方法与传统中径测量方法进行比较,中轴线的拟合表达式如(24)所示:
然后将中轴线拟合式在[109.4,179.5]范围内进行平移,计算该轴线与各个牙型线的交点,通过式(12)计算相邻间距的误差绝对值和。
在求解本文问题上,本文算法计算的误差绝对值和为0.2040,传统中径测量方法误差绝对值和为0.5737,证明本方法在测量中径优于传统测量中径方法。
3 检测结果分析
为了验证本文的螺纹钢丝头检测方法在实际应用中的检测效果,在滚丝加工现场进行算法精度的验证。以大径参数为例,选取一定数量参数已知的的螺纹钢丝头,在完成检测后以检测误差的均值、最大值、最小值和均方根误差(RMSE)为参考进行算法的精度分析,其中RMSE为:
式(25)中ξi表示第i件螺纹钢丝头的测量误差,n为进行测量的螺纹钢丝头数目,Di为螺纹钢丝头检测参数的测量值,Di’为螺纹钢丝头检测的真实值,系统的标定系数k为0.02099mm/pixel。具体测量结果和误差如表3所示。
表3 大径检测结果误差表
由表3可知,系统尺寸检测算法的测量精度最大误差为0.114mm,满足国标检测的要求,检测的最小误差为0.018mm,均方根误差为0.265mm,同时误差检测的平均误差为0.061mm,满足系统设计时的精度要求。
4 结语
本文采用机器视觉技术对螺纹钢丝头检测方法进行了研究,通过对预处理后的图像进行角点筛选完成对螺纹钢丝头角点的精确定位,设计了基于Sigmoid亚像素细分算法,提高了角点检测精度。提出了一种基于自适应权重非线性收敛的鲸鱼算法,实现了对螺纹钢丝头尺寸特征信息的测量。试验和测试结果表明,该方法的检测精度满足螺纹钢丝头加工要求,与传统的检测方法相比提高了检测效率和准确度。