何雨阳 魏鸿磊 岳彩睿 翟先一 马 骥
(大连工业大学机械工程与自动化学院,辽宁 大连 116034)
砂轮修整机通常使用质地较硬的材料作为修整工具,对待修整砂轮的表面形状进行修整[1-2]。由于加工时存在润滑油飞溅、光线变化等影响,传统砂轮修整机多不配备过程检测系统,无法监控工作状态,设备的实时性较差[3],出现加工失误后无法及时处理。为砂轮修整机配备轮廓检测系统,可以在工作过程中对砂轮轮廓形状进行实时提取,将检测到的轮廓与当前状态下的理想轮廓形状进行对比,根据二者形状的相似度判断当前是否处于正确的工作状态下。当实际轮廓与目标轮廓形状不同时,找出修整过程中出现错误的位置,实现对砂轮修整机工作状态的实时监控。配备监控系统可以增加设备应对突发状况的能力,修整过程中出现错误可以及时做出调整,避免砂轮碰撞破损造成的损失且便于后续的修改调整,提升了砂轮修整机的经济性和安全性[4-7]。针对以上问题,本文设计了一种用于砂轮修整过程中的砂轮轮廓形状实时检测系统。
近年来,随着先进制造业和模具加工业的快速发展,砂轮修整机的工作效率及产品精度要求也在不断提升。国内外对工作过程中的轮廓检测方法进行了多方位的研究,常用的检测方法有光学影像法[8]、PLC 控制器监控法[9-10]和机器视觉检测法[11-12]等。卜泉林等[13]采用光学投影技术将影像轮廓与目标轮廓进行比对,检测结果保证了较高的精度,但无法对图像信息进行处理,不能实现在线反馈功能;谭廷武等[14]采用形状复刻法,将砂轮的V 形尖端复刻于石墨板上,扫描石墨板形状变化,模拟检测轮廓形状,测量精度可达4 μm,但需要对石墨板提供稳定电压,不适用于大多环境;Lavrinenko V I 等[15]通过CCD 相机搭配机器视觉的图像处理技术对砂轮轮廓进行检测,精度可达3 μm,但需要相机多次采样来提高精度,检测过程的连贯性易出现问题。
综上所述,砂轮形状的检测方法,目前还缺乏一种适用性广、检测精度高、处理时间短的自动化技术方案。本文提出一种基于机器视觉的砂轮轮廓边缘提取方案,通过图像预处理减少后续计算用时,搭配三次样条插值函数保证轮廓完整度,使用亚像素边缘提取得到高精度的完整砂轮轮廓图像,实现对砂轮轮廓形状的实时检测。进行多次重复测试,与实际轮廓对比,验证试验的可行性。
试验使用日本KANEHIRA 自动修整机作为砂轮修整设备,碳化硅砂轮作为修整工具,利用磨削修整法对待修整的金刚石砂轮进行磨削处理,修整机实物图如图1 所示。
图1 砂轮修整机实物图
设备原有的视觉系统仅用于校正砂轮与修整工具间的位置,无法对CCD 相机采集的图像进行轮廓提取。因此本系统使用C#语言在Visual Studio 2022 的Windows.NET Framework 环境下设计了本套图像处理方案,实现对砂轮轮廓形状的实时检测。
砂轮修整机工作原理如图2 所示,修整过程按以下3 步进行:(1)金刚石砂轮主轴先沿X方向再沿Y方向进行移动,直至金刚石砂轮边缘与碳化硅砂轮相接触。(2)旋转工作台带动碳化硅砂轮,按v方向进行往复旋转运动,对金刚石砂轮轮廓进行磨削。(3)金刚石砂轮主轴带动砂轮按u方向匀速旋转,保证所有轮廓位置得到充分磨削。
图2 砂轮修整机工作原理简图
本方案由图像预处理、Canny 算子边缘检测、三次样条插值函数补偿、拟合法亚像素边缘提取等4 部分组成。根据砂轮修整机是否开始工作,将图像处理过程分为2 个阶段。
(1)砂轮修整前:在良好环境下,使用Canny算子对砂轮原始图像进行边缘检测;使用引导滤波算法,根据边缘点信息进行背景模糊处理;根据背景分割图像,设定剩余前景位置作为后续所有图像的ROI 位置,完成图像预处理。
(2)修整开始后:首先使用Canny 算子获取粗略的边缘轮廓曲线,再根据已有的边缘曲线搭配三次样条函数对缺失部分进行插值补偿,得到完整边缘图像,最后使用边缘像素点的灰度梯度幅值作为待拟合点进行高斯拟合,得到亚像素级边缘图像,整体方案流程如图3 所示。
图3 砂轮轮廓提取方案流程图
1.2.1 图像预处理
为排除背景部分噪声点干扰,减少后续图像处理用时,需要在修整工作开始前,对原始砂轮图像进行预处理,由此选取出ROI 区域。
首先在良好环境下对原始砂轮图像进行边缘检测,得到初始状态下的轮廓图像。然后根据图像边缘点信息,使用引导滤波算法[16]对背景部分进行统一模糊处理,并对前景区域进行细节增强,实现背景虚化的效果。由于引导滤波的核心思想是基于局部线性模型[17],且砂轮图像内容较为单调,因此可以实现快速背景虚化的效果。最后根据得到的背景分割图像,设置砂轮前景部分作为后续图像处理的ROI 区域,过程如图4 所示。
图4 预处理部分砂轮图像
由于修整过程中砂轮轮廓仅会向内收缩无法向外扩张,且砂轮位置不会发生改变,因此该区域内包含了所有砂轮信息,故设定预处理得到的ROI 位置作为后续所有图像的ROI 位置,此后工作过程中相机采集到的所有砂轮图像,均裁剪至仅剩余ROI位置后再进行图像处理即可。通过预处理操作,缩减了后续图像大小,排除了背景部分干扰,缩短后续图像处理用时。
1.2.2 Canny 边缘检测
修整工作开始后,用CCD 相机获取工作过程中的砂轮图像,并在ROI 区域内进行轮廓提取。
使用Canny 算子对工作过程中的砂轮图像在ROI 区域内进行边缘检测,实现对砂轮轮廓边缘信息的初步检测,结果如图5 所示。
图5 砂轮边缘检测结果
由于加工过程中存在光照变化、水渍污染等干扰因素,图像处理效果不佳,此步的边缘检测方法仅能得到存在部分断点的砂轮轮廓曲线。
1.2.3 三次样条插值补偿
通过Canny 算子得到的边缘图像存在部分断点,会对检测效果造成不良影响,因此需要进一步对轮廓缺失部分进行补偿,增加轮廓的完整度和准确度。
上述得到的轮廓图像断点数量较少,而本文对补偿结果的准确度要求较高,因此相比于k 近邻算法和最小二乘法,采用计算速度较慢,但预测准确、生成数据光滑的三次样条插值法,根据现有曲线对轮廓断点处进行补偿[18]。
设给定函数f(x) 在 [a,b]区间内x的节点为a=x0<x1<x2<···<xn=b,且yi=f(xi)。构建三次样条函数S(x) 以分段多项式逼近f(x),用S(x)表示相邻节点之间的函数,在每段区间 [xi,xi+1]内都有:
f(x),f′(x),f′′(x)在区间内连续,在此区间内S(x)可以表示为
S(x)存在4 个待定系数,n个区间需求4n个未知数,根据插值和微分的连续性可知,S(x)在xj处应满足:
由此得到4n-2 个条件,再根据2 个边界处条件a=x0,b=xn可知:
共得到4n个条件,求出所有待定系数,解出三次样条函数S(x)。
本文将轮廓缺失处视为未知量,使用上述方法根据缺失部分两侧已有的轮廓曲线数据,构建三次样条插值函数,对轮廓缺失部分进行补偿,图5 所示的补偿结果如图6 所示。由此可以得到完整的像素级砂轮轮廓边缘曲线。
图6 补全后像素级轮廓图
1.2.4 亚像素边缘检测
为提高图像边缘精确度,使用基于拟合法的亚像素边缘检测法将轮廓信息精度提升至亚像素级。
上述方法得到了粗略轮廓信息,某处边缘点的像素灰度值在梯度方向上分布如图7a 所示,4 点、5 点之间灰度值变化最大,亚像素边缘位置就在此区间内。利用差分法计算像素点位置梯度幅值[19],如图7b 所示,再对像素点的梯度幅值进行最小二乘拟合,构建高斯函数曲线,高斯函数均值位置即可得到亚像素边缘坐标[20],具体如下。
图7 边缘点灰度值和梯度幅值分布
使用像素点法线上的灰度梯度幅值作为高斯函数的待拟合点,高斯曲线表达式为
式中:µ为高斯曲线均值;σ为高斯函数的标准差。为得到高斯曲线顶点位置,对式(5)两边同时取对数:
式(6)结构如y=ax2+bx+c,为一元二次函数的形式,再用最小二乘拟合算法求待定参数a0、b0、c0。
将式(6)转换为矩阵的形式:
矩阵可化简为A=XB,矩阵B的最小二乘法解为B=(XTX)-1XTA,计算可知 µ、σ 与a0、b0、c0之间的关系如下:
由此便可得到高斯函数表达式,并计算出高斯曲线峰值位置xmax和高斯曲线的峰值ymax:
拟合后得到的高斯曲线极值点坐标为 (xmax,ymax),xmax为亚像素边缘点与像素级边缘点在法线方向上的距离,设像素级边缘点N0坐标为 (x0,y0),法线方向与水平方向夹角为θ,如图8 所示,计算出亚像素边缘点N坐标 (xn,yn):
图8 亚像素边缘点求解
使用此方法对所有边缘像素点进行拟合,以某一像素点为例,根据其梯度幅值得到高斯拟合曲线,如图9 所示。虚线是根据像素点法线上的梯度值连接而成,实线为本文方法得到的高斯拟合曲线,根据其峰值点M,即可求得该像素点的亚像素边缘坐标。通过此方法遍历所有边缘像素点,即可获得高精度、高完整度的亚像素边缘轮廓曲线。
图9 高斯拟合曲线
针对所述方法,设计了3 组实验。实验一旨在检验该方法在理想边缘图像中对圆形和线形边缘的定位精度;实验二用于验证该方法在实际工件检测中对圆形和线形边缘的定位效果;实验三旨在测试该算法的执行效率。实验使用Python3.7 和OpenCV4.5.3 进行,硬件环境为Windows 10 操作系统、主频2.20GHz 的Corei7-8750H 处理器和16GB内存的笔记本电脑。
为验证本文插值方法和亚像素边缘提取法的精度,需要进行实验,然而对砂轮实体进行高精度测量非常困难。在文献[21]的启发下进行仿真实验。应用OpenCV 编程在图1 上绘制已知坐标的砂轮轮廓模拟图像(图10)。
图10 仿真图像
2.1.1 像素边缘检测方法
使用本文提出的亚像素边缘检测方法和Canny算法对轮廓线进行边缘提取,比较检测到的轮廓坐标和实际轮廓坐标的差异,评估亚像素边缘检测法的误差(表1)。
表1 亚像素坐标点检测
根据表1 数据可知,相比于Canny 算法,本文算法的检测结果与实际边缘信息间的误差较小,坐标信息更接近实际值。
2.1.2 插值方法实验
再删去图中部分轮廓曲线,曲线和线段的表达式已经,如图11 所示,使用本文1.2.3 方法对断点部分进行插值补偿,比较补全位置轮廓坐标与实际轮廓坐标间的差异,与文献[21]补偿方法对比,判断本文插值补偿法产生的误差大小(表2)。
表2 插值坐标点检测 mm
图11 断点仿真图
根据表2 数据可知,相比于文献[22]算法,本文插值算法产生的误差较小,可以有效应用于砂轮边缘检测中。
砂轮修整机工作时处于复杂的工厂环境中,对轮廓检测效果产生干扰主要是光照变化和水渍及油污干扰。对2 种干扰因素设置不同数值模拟工厂环境干扰情况,从轮廓完整度、边缘准确度和图像处理用时3 个量化指标对试验进行衡量。
轮廓完整度:将像素坐标转换为实际坐标后,测量当前轮廓长度与完整轮廓长度,二者之比即为此时图像轮廓完整度。
边缘准确度:将得到的轮廓图像与实际轮廓图像进行对比,选取最能体现边缘信息准确性的多种性能指标作为评估参数来进行判断。
图像处理用时:原始图像通过此方案处理后,获得轮廓图像所需的时间。
砂轮轮廓完整度越高,边缘信息越准确,图像处理用时越少,方案的可行性越高。
2.2.1 光照试验
评判光量级的单位有2 个:光通量和照度,单位分别是Lumen 和Lux。1 Lumen 是光源与1 cm2的屏幕距离1 cm 时,1 CD 的光线产生的光通量;1 Lux 是1 Lumen 的光通量均匀分布在1 m2上产生的照度[23]。
当初始亮度为1 600 Lux 时,图像处理效果最佳,设置不同光照强度下的砂轮图像,如图12 所示。使用本文算法进行轮廓完整度试验,结果见表3。
表3 不同光照下的轮廓完整度
图12 不同光照下的砂轮图像
根据表3 数据可知:本系统在光照变化范围-200~150 Lux 的情况下,可对轮廓缺失部分进行100%补偿,超出此范围后仍可对部分断点区域进行补偿,图像处理用时在140 ms 左右。
对相同光照条件下的砂轮图像,使用不同轮廓提取算法进行对比试验。使用文献[24]、文献[25]、Canny 算法与本文算法依次进行轮廓完整度试验,结果见表4。
表4 相同光照下不同方法间的轮廓完整度
根据表4 数据可知:相同光照条件下,相比于文献[24]、[25]算法,本文算法在图像完整度方面分别高出8.6%、12.3%,且图像处理用时更短。
由表2 和表3 可知,光照不良的情况下,本系统提取到的轮廓具有较高完整度,图像处理效率更高。
为进一步评价边缘检测效果的优劣,还需对轮廓信息的准确性进行评估。以良好环境下得到的实际轮廓边缘为标准,选取4 种相似度评估指标:图像通用质量指标(UQI)、像素值平方根误差(RMSE)、结构相似度(SSIM)以及图像峰值信噪比(PSNR)作为参数。UQI 根据相关性损失度、亮度失真率、对比度失真率3 个因素进行计算,值越大检测质量越高;RMSE 测量出误差的平均大小,值越小检测效果越好;SSIM 用来衡量图像间的相似度,值越大相似度越高;PSNR 越高,像素点位置信息与原图像越接近。
选取相同光照的砂轮图像,使用不同轮廓提取算法,进行轮廓信息准确度试验,结果见表5。
表5 光照不良条件下的边缘信息准确度
根据表5 可知:本系统在4 组评估参数中都有着最佳的检测效果,相比于文献[24]、[25],本文算法在图像通用质量指标方面分别有14.5%和11.9%的提高,结构相似度方面分别有13.6%和16.2%的提高,其余参数也有着更优的检测结果。
将表4 中不同算法得到的轮廓图进行同一位置的局部放大展示,结果如图13 所示。
图13 轮廓局部放大图
根据图13 可知,通过本文算法得到的轮廓图像信息最接近真实轮廓图像。由表5 和图13 可以看出,在光照不良的情况下,本系统得到的边缘信息具有较高的准确度。
2.2.2 水渍覆盖试验
选取砂轮轮廓处附着不同大小水珠的砂轮图像,比例尺标定后计算出被覆盖的边缘长度与边缘总体长度,二者长度之比即为轮廓缺失比。选取不同轮廓缺失比的图像使用本文算法进行轮廓完整度试验,结果见表6。
表6 不同轮廓缺失比的轮廓完整度
根据表6 可知:本系统在轮廓缺失比低于25%的情况下,可对轮廓缺失部分进行100%补偿,超出此范围后仍可对部分断点区域进行补偿,图像处理用时在160 ms 以内。
再选取相同轮廓缺失比的图像,使用文献[24]、[25]算法和Canny 算法与本文算法进行轮廓完整度试验,结果见表7。
表7 相同轮廓缺失比不同方法的轮廓完整度
根据表7 可知:相同轮廓缺失比的情况下,相比于文献[24-25]算法,本文算法在图像完整度方面分别高出了5.9%、6.5%,图像处理用时更短。
再选取相同轮廓缺失比的砂轮图像,使用不同轮廓提取算法,进行轮廓信息准确度试验,结果见表8。
表8 轮廓缺失条件下的边缘信息准确度
根据表8 可知:本文算法在4 组评估参数中都有着最佳检测效果,相比于文献[24-25]算法,本文算法在图像通用质量指标方面分别有着10.7%和13.2%的提高,在像素值平方根误差方面分别降低了20.8%和14.7%,其余参数也有着更优的检测结果。
由表6~表8 可知,砂轮部分轮廓被水渍覆盖时,本系统得到的轮廓具有较高的完整度和准确度,图像处理效率更高。
综上所述,本文在6 种不同条件下进行试验,根据得到的数据可知,在光照不良或水渍覆盖的工业恶劣环境下,使用本系统得到的砂轮轮廓图像完整度高、准确性强,且由于预处理操作以及曲线轮廓占比较小,使得图像处理计算量得以减少,用时较短。可以使用此方法对修整过程中的砂轮提取出清晰完整的边缘轮廓曲线,实现对砂轮轮廓状态的实时检测。
为实现砂轮轮廓形状的在线检测,本文首先根据基于边缘提取的背景虚化方法,得到后续图像处理的ROI 区域,再对恶劣环境下的砂轮进行轮廓提取,并用三次样条插值函数补全断点处的轮廓形状,最后使用亚像素边缘提取方法增加轮廓的准确度。
通过多次实验数据可以得出,本文方法,可对光照变化范围在-200~150 Lux、轮廓缺失比少于25%的轮廓曲线进行完全补偿,单次图像处理用时在160 ms 内,准确度检测的UQI、RMSE、SSIM和PSNR 均值分别为0.550 0、7 803、7.24、0.037 0。相比于其他算法,本文得到的轮廓在图像通用质量指标方面至少有10.7%的提升。砂轮修整后产生的磨削路径整齐光滑,需要图像处理的曲线边缘位置较少,同时背景分割处理消除了许多噪声点干扰,减少了图像处理的计算量。因此本方法实现了修整过程中砂轮轮廓外形的高精度实时检测,出现问题时可及时发现[26],提升了砂轮修整机的经济性和安全性。