王婷婷,尹辉俊,尹波
(广西科技大学a.机械与汽车工程学院;b.创新创业学院,广西柳州 545006)
缆索聚乙烯(Polyethylene,简称PE)表面的直径大小是评价缆索在生产线中PE表面包裹均匀度的重要标准,如果直径过大就会浪费外层PE,造成资源的浪费,而直径过小会影响缆索的使用寿命。缆索作为悬架桥和斜拉桥的主要承重结构,其直径不标准必然会对悬架桥和斜拉桥安全产生极大的影响。
目前,缆索PE表面直径测量主要是靠人工目测。由于缆索在生产过程中是一直行走的,人工检测无法在生产过程中对缆索进行接触测量,只能等缆索生产完成后对缆索PE表面进行接触测量。人工目测精度不高,检测标准不统一[1-2]。在国内针对机器视觉的测量中,邓斌攸等[3]利用两级成像对家具板件尺寸进行检测,测量精度为±0.05 mm,但是硬件设备成本高,且精度较低。李晋鑫等[4]利用最小二乘法拟合直线对内丝接头尺寸进行测量,测量精度为±0.01 mm,但局限性较大,对长度较长的零件测量精度较低。文中通过对提取边缘进行分段之后,再进行直线拟合,进一步提高了测量的精确度。实验结果表明,测量精度较高,稳定性较强,可以达到工厂要求的测量标准。
硬件系统和软件系统两个部分组成了缆索PE表面直径检测实验平台。硬件部分主要包括了计算机、大恒工业相机、光学镜头、环形LED工业光源及警报模块组成。当系统启动时,工业相机采集生产线上缆索PE表面图像。其次,软件系统对图片进行形态学处理、感兴趣(ROI)区域提取、外轮廓线提取,计算出缆索PE表面的直径大小。如果检测到缆索PE表面直径大小不在规定范围之内,计算机对警报模块进行控制,发出响声,同时存储好缆索PE表面直径值。实验平台结构如图1所示。图2是在实验室条件下搭建的实验平台。
图1 实验平台图
图2 缆索PE表面直径在线测量试验台
软件系统是基于图像处理软件Halcon和C#联合开发,其核心部分算法如图3所示。
图3 核心算法图
相机标定是机器视觉测量检测的重要基础。计算出镜头的畸变,那么就可以将有畸变的图像转换为正常状态的图像,利用Halcon中的gen_radial_distortion算子生成镜像畸变映射图,消除图片由于畸变产生的扭曲,以便于后续的测量。世界坐标系(X1,Y1,Z1)即为标定板所在的坐标系、相机坐标系(X2,Y2,Z2)、图像坐标系(X,Y)是相机成像的3种成像模型,为了得到摄像机的内部和外部参数,利用Halcon中的CameraParameters算子和CameraPose算子。然后通过gen_caltab算子生成标定板,标定板如图4所示,其中黑色圆点行数和列数均为7,黑色原点的半径为0.9375 mm,圆点的中心间距为3.75 mm。标定板的数据是物理尺寸和像素间的转换至关重要的部分。
图4 标定板图
由于本实验用的是大恒工业相机,采集到的是黑白图片,所以不需要对图像进行灰度化处理。但在缆索生产线上,因环境因素的影响而产生的噪点会影响图像特征的提取,增加图像算法复杂度,因此需要对图像进行滤波处理。常用的滤波有均值滤波[5]、中值滤波[6]、导向滤波[7]。
利用Halcon 中的guided_filter (Image, Image,ImageGuided, 3, 20)算子。输入图像Image设为I,通过引导图像Image 设为H,经过滤波后得到的输出图像为ImageGuided设为O,则有
式中:i和j分别为像素下标;Wij为和引导图像H相关的滤波核。
导向滤波假设了输入图像和引导图像H在滤波窗口ωi存在局部线性关系,根据以下公式计算位置i滤波后的灰度Oi'值:
图像经过3种滤波处理的效果如图5~图8所示,可以看到导向滤波不仅模糊掉了不需要的细节部分,也很好地保留了图像的边缘信息。
图5 原始图像
图6 中值滤波
图7 均值滤波
图8 导向滤波
常见的阈值分割有自动全局阈值分割和局部阈值分割,经过实验对比,Halcon中的var_threshold基于局部动态的阈值分割方法在本实验条件下效果更好。此分割方法是根据局部的标准差和均值,分割图像中邻域像素满足条件的区域,在不均匀、嘈杂或不均匀照明的图片上将缆索区域提取出来。
常见的边缘检测有Roberts算子[8]、Soble算子[9]、Canny算子[10]。因为缆索边缘灰度值比较陡峭,所以使用Roberts算子对边缘进行检测,同时Roberts边缘定位比较准确。
G(x,y)为Robert交叉算子,用梯度函数的Robert绝对值来近似以便简化计算,则有:
利用Soble算子、Canny算子、Roberts算子处理边缘效果如图9~图11所示。
图9 Soble算子效果图
图10 Canny算子效果图
图11 Robert算子效果图
首先利用skeleton 算子对Robert算子提取出的边缘进行骨架提取,其次利用gen_contours_skeleton_xld 算子将骨架的轮廓提取出来,然后利用segment_contours_xld 算子,select_contours_xld 算子和union_adjacent_contours_xld将轮廓的亚像素提取出来。效果如图12所示。
图12 边缘亚像素
如图13所示,检测出来的边缘局部差别较为明显,因此需要将提取出来的边缘进行等分。利用get_contour_xld(SelectedContours1, Row, Col)得到轮廓的像素点集合,然后将得到的这些点等分成10个集合,通过gen_contour_polygon_xld把等分好的点集合连接在一起就将轮廓线分成了10段。像素点集合数据如图13所示,轮廓十等分效果如图14所示。5.3 直线的拟合将得到的十等分的轮廓按照1~10的顺序,利用fit_line_contour_xld中的加权最小二乘法,最小二乘法原理[11-12]如图15所示。
图13 集合数据图
图14 轮廓线十等分图
如图15所示,平面存在n个点,f(x1,y1)、f(x2,y2)、…、f(xn,yn),将图上的n个点拟合成一条直线,设这条直线的方程为
图15 最小二乘法图
直线的拟合就是计算出该方程中的系数a和b。
根据以下公式,通过求Y方向的差值平方和最小,计算出a和b:
即要求R最小:
式中,r为点到直线的y方向的距离。
加权最小二乘法[13]就是在原来模型的基础上进行加权,使之成为一个新的不存在异方差性的模型。通常权值可以取为:
式中,τ为人为设定的阈值。
直线拟合之后的效果如图16所示。
图16 直线拟合效果图
然后利用Halcon中的distance_sl算子计算出两条线之间的最小和最大距离,求最小、最大距离的平均值。最后对十等分的轮廓线距离求平均值,得到最终的缆索直径。
如图17所示,软件系统基于VS2019平台,使用Halcon开发图像处理算法,使用C#的winform技术编写软件界面。软件界面分为显示窗口、直径检测、数据保存、关闭系统4个模块。当检测到缆索表面直径时,会自动记录缆索直径并将数据保存在指定文件夹内。当缆索PE表面直径没有在规定的范围内时,警报器会响起,通知工作人员。
图18是缆索生产线图。通过实验对比可知,视觉测量和人工测量的最大偏差数据为0.02 mm,检测偏差较小。与李晋鑫等[4]直接利用最小二乘法拟合直线相比,平均精度提升了0.02 mm,同时本实验法更加适合较大工件的测量。平均每张图片的检测时间为215 ms。综上所述,基于机器视觉的缆索PE表面直径无接触测量可以达到工厂的要求。
图18 缆索生产线图
本文利用机器视觉设计了缆索PE表面直径测量系统,利用大恒工业相机获得缆索PE表面图像,对图像进行滤波处理,其次利用Roberts算子找到缆索PE表面边缘。然后将边缘进行十等分,最后通过加权最小二乘法对十等分的边缘按照顺序进行直线拟合,由此计算出缆索的直径。实际检测效率高,测量精度较高,可以避免人工检测过程中各种因素对测量精度的干扰,进一步提高检测的自动化程度。但由于生产线中干扰因素的影响,后续还需要提高测量的精度,对算法进行进一步优化,同时提高测量速度与精度,提高在线测量效率。
表1 检测结果对比图cm