APP下载

基于引导滤波与神经网络算法的螺纹孔检测方法*

2022-01-19马晓锋王中任

制造技术与机床 2022年1期
关键词:螺纹滤波阈值

马晓锋 王中任

(①湖北文理学院机械工程学院,湖北 襄阳 441053;②智能制造与机器视觉襄阳市重点实验室, 湖北 襄阳 441053)

曲轴为发动机的重要部件,对汽车正常行驶有着巨大影响,其中对曲轴螺纹孔组位置度的要求比较高,目前曲轴螺纹孔的检测往往采用的是卡尺或者采用三坐标的检测方法检测。曲轴自身较重,搬运不方便,人工用卡尺检测劳动量大,因疲劳容易漏检,达不到产品所需精度,效率低。三坐标检测虽然检测精度好,但经济性不太好,对操作人员的专业技能要求较高,适用于抽样检查。与自动化检测有一定差距,而机器视觉的测量方法填补了以上检测存在的缺陷,操作简单,效率和精度都较高。

在机器视觉的尺寸测量研究领域中,李文龙在测量轮毂尺寸中,用双边滤波和二值化相结合对图像进行预处理,提出一种阈值自动计算法,得到轮毂端面各个孔径大小以及与中心孔间距,实现了轮毂孔径几何参数的自动测量,但在系统搭建方面过于复杂,通用性不强[1]。任永强提出利用RANSAC算法,拟合缸套的内外径,实现了缸套内外径几何参数的测量,相比最小二乘法,RANSAC算法更加精确,该算法是一个数据样本集,通过该样本集里随机抽取数据点进行拟合,经过大量的迭代计算,选取其中最优的一组数据,但是由于该算法自身局限性,迭代次数过多,测量时间偏长[2]。粟序明提出基于MATLAB设计了一套自动定位和测量的轴类零件系统,验证了自主开发算法的有效性且可以满足工业应用要求,对操作人员专业素养较高,不利于推广[3]。

目前深度学习发展迅速,针对以上情况,于是本文提出一种基于引导滤波与神经网络算法的螺纹孔检测方法,结合RANSAC算法,使用Pytorch创建神经网络模型拟合曲线,提高效率与精度。第一,利用引导滤波和形态学对图像进行预处理、去噪,使内螺纹小径边缘清晰,去除螺纹孔径边缘的反光现象,便于轮廓的提取。第二,利用RANSAC算法去除外点,通过Pytorch搭建神经网络去拟合内螺纹小径,获取大小及相对位置信息,为螺纹孔自动测量提供一种有效方法。

1 系统搭建与图像采集

检测视野大小为115 mm×78 mm,采用相机为2 000万像素卷帘曝光相机,分辨率为5 472×3 648,像素精度为0.02 mm;镜头采用长焦低畸变镜头,能最大程度的减小视场角,减小畸变,镜头焦距为55 mm,工作距离为550±5 mm;光源采用环形光,工作距离为10 mm,设计系统简易结构与检测流程图如图1和图2所示。

整个检测平台由1个视觉检测平台和1个夹具平台组成,相机安装位置调节通过连接板。方便调节光源位置,光源安装在直线电机模块上,直线电机模块由导轨、电机和控制器组成,100 mm行程,自发脉冲,无需额外编程,工件放好后按开始键,光源移动到位,相机拍完图像输出结果后,再按离开键,光源自动挪走,视觉检测平台以及夹具平台下方均安装有万向轮及防震垫,夹具平台上需放置厚铁板。该系统采集的曲轴端面如图3所示。

2 图像处理

首先用引导滤波对图像进行预处理,去噪声,将边缘更好凸显出来,然后用迭代法图像二值化,进行Blob分析,将拟合区域区分出来,最后利用Canny算子提取端面内螺纹小径的边缘特征[4]。

2.1 引导滤波

引导滤波与双边滤波相似,但在检测边缘附近细节上优于双边滤波,没有梯度变形,是一种时间复杂度为0的快速滤波器,在大窗口处理图片时,其效率更高。

更进一步的说,该算法在一函数上的点与它周围函数点的连线构成一次函数,一个复杂函数可以用无数个这种一次函数来表示,如果求该复杂函数上某点的值时,转化为求包含改点的所有一次函数值,再计算平均值[5],函数示意图如图4所示。

当一个二维函数图像输入进来,在一个二维窗口内,若该函数的输出与输入,满足线性关系为:

qi=akIi+bk,∀i∈Wk

(1)

I是输入图像值;q是输出像素值;i、k是像素索引;a、b是当窗口中心位于k时,该线性函数的系数。两边取梯度为:

Δq=aΔI

(2)

可以知道输入图像值I梯度与像素值成a倍的关系,边缘保持的特性来源于此,我们还需求出线性回归为:

(3)

使真实值与输出值偏差最小,其中p是待滤波图像,然后通过最小二乘法得到:

(4)

(5)

(6)

这里,Wk是所有包含像素i的窗口;k是其中心位置。经过引导滤波处理结果如图5所示。

可以看出滤波后消除了一些花纹,表面污渍的干扰,留下了较为清晰的轮廓,便于后续边缘提取。

2.2 迭代法图像二值化

经过滤波后的图像,消除了部分噪声,由于光照、自身零件特性和外界影响,背景还是有大量干扰信息,不便提取孔径,于是采用二值化的方法来进一步消除噪声,假设目标图像中当前像素为f(x,y),设定一阈值Th,跟据当前阈值,循环f(x,y),将图像分为A,B两类集合;分别计算它们像素均值μA和μB,公式为[6]:

(7)

(8)

其中NA与NB分别表示集合A、B中的像素个数,然后更新阈值为:

(9)

计算新阈值与上一次阈值之差,是否满足约束条件,若小于,则所计算出的新阈值为最佳阈值,否则,再继续求出μA和μB,循环往复,计算机利用该算法图像处理效果如图6所示。

2.3 边缘提取

通过二值化图像边缘更加清晰明显,利用Canny算子进行边缘提取,计算多个方向的梯度,记录方向和大小,然后进行NMS非极大值抑制,大小阈值, 提取的边缘很细[7-8]。提取步骤为(1)~(4)。提取结果如图7所示。

(1)高斯滤波器平滑图像。

(2)计算像素点的梯度大小与方向。

(3)进行极大值抑制去除干扰。

(4)最后用高低阈值提取边缘。

3 螺纹孔的拟合

首先,准备数据集,将边缘提取数据写入Csv文件,利用Python中Pandas读取,将数据做成数据集模样。因为Pytorch只能处理二维数据,于是使用Unsqueeze函数将一维数据转换为二维数在进行处理。

其次,搭建神经网络,本文神经网络结构包含有1个输入层,2个隐层,每个隐层包含50个神经元,1个输出层,将数据集通过输入层输入,输入层通过第一层的权重参数W1到达隐层1,隐层1通过权重参数W2到隐层2,最后经过权重参数W3输出结果,本文采用神经网络结构如图8所示。

每一层的输出为上一层输出与权重参数之积,易知是一个线性函数,无论隐层与神经元如何变化,输出都是输入的线性组合,隐层没有任何效果,所以该模型引入tanh函数作为激活函数,增加神经网路模型的非线性,可以逼近任何函数,这也是神经网络的最大特征[9]。

tanh是双曲函数中的一个,为双曲正切。公式为:

(10)

激活函数图像如图9所示。

为了评估模型预测效果如何,需计算回归损失值,去优化神经网络的参数,减少神经网络的损失,该模型选择MSELoss函数,计算预测值和实际观测值间差的平分的均值。只考虑误差的平均大小,从而计算出损失,公式如(11)所示。

(11)

预测值与实际值偏差越大,损失值越大,拟合效果就不好。用该算法拟合效果如图11所示。

从图11可以看出,对准备的数据集拟合效果并不好,需增加优化器,采用随机梯度下降法(SGD),计算影响该神经网络架构的权重参数,从而让损失函数最小化,使得模型最优。该算法是随机从准备好的样本集中抽出1组,进行训练,更新一次梯度,如此循环,在数据集过大时,无需训练所有原本,可以加速学习,就能得到优化模型。以0.02的学习率对梯度进行优化,对于样本的目标函数:

(12)

对函数求导为:

(13)

参数更新:

(14)

定义了优化器,更新参数。其中:j(i)(θ0,θ1)为目标函数,hθ为待拟合函数,x(i)为训练样本的样本值,y(i)为标签值,θ为模型权重参数,α为下降系数,即学习率。对准备的数据集拟合效果如图12所示。

黑色即为拟合圆,损失函数根据梯度下降算法训练的次数增多,函数逐渐趋于稳定,趋于零,损失越来越小,表示该模型训练效果较好,可以根据所需精度,设置训练次数,损失值变化曲线如图13所示。

最后,将每个所需拟合的圆通过如此方法进行拟合,端面螺纹孔最终检测如图14所示。

该算法将提取的边缘拟合完整,可以计算出各个螺纹孔的位置信息和直径大小。

4 实验结果与数据分析

为了验证曲轴端面螺纹孔视觉检测系统的适用性,以及精度测量,取型号YC4W75曲轴进行测试,用型号W15-M2-17-15819的FARO测量臂对螺纹孔外径进行测量,精度可达0.018 mm,结果为其标准值,将该系统测量的数据为测量值,测试结果如图15与表1所示。

表1 螺纹孔测量结果

螺纹1与螺纹10都是M10的螺纹,其余都是M11的螺纹根据标准,内螺纹小径的误差范围应保持在0.1 mm以内,根据测试结果,误差范围都在行业标准以内,满足要求。

表2 螺纹孔位置测量结果

曲轴螺纹孔与中心孔的相对位置,利用图像处理软件,将其坐标表示出来,计算两点之间的距离。工业上各个螺栓孔的要求范围在0.25 mm以内,在上述测量结果中,在此标准范围内,满足工业要求。

结合文献内容,对比其他,周金波等人利用最小二乘法对冲孔孔径检测精度为0.395 mm[1]、李文龙等人利用机器视觉方法对轮毂孔径检测精度为0.100 mm[2]、任永强等人利用RANSAC算法拟合缸套内外径检测精度为0.100 mm[3]、粟序明等人利用MATLAB 自动定位和测量轴类零件精度为0.200 mm等[4],相关测量文献中,检测精度在0.100 mm以内较少,只有些许专业测量仪能够达到,本文提出方法拟合效果好,精度更高。

5 结语

搭建了曲轴端面螺纹孔视觉检测系统,采用引导滤波和形态学对图像进行预处理,消除了噪声点,使边缘更加清晰清晰。结合RANSAC算法,利用Pytorch搭建神经网络拟合目标圆,通过优化器不断更新模型,精度也更高于其他拟合方法,获取螺纹孔的圆心位置以及圆心间的距离。通过实验与数据对比,满足工业现场精度要求,实现了曲轴端面螺纹孔位置信息的自动测量。

猜你喜欢

螺纹滤波阈值
船岸通信技术下舰船导航信号非线性滤波
螺纹短轴零件机械加工工艺设计探索
土石坝坝体失稳破坏降水阈值的确定方法
农村煤改气户外燃气管道螺纹连接分析
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
高效LCL滤波电路的分析与设计
基于EKF滤波的UWB无人机室内定位研究
引信铝合金连接螺纹咬死预防措施
一种GMPHD滤波改进算法及仿真研究
辽宁强对流天气物理量阈值探索统计分析