基于机器视觉的三角形精密工件尺寸检测

2024-01-08 12:13:58胡银风
现代计算机 2023年20期
关键词:像素点边缘工件

胡银风,江 晟,宋 德

(长春理工大学物理学院,长春 130022)

0 引言

近年来,先进制造技术的发展日新月异,高精度、快速、高质量的工件检测技术已成为发展先进制造至关重要的一个环节,伴随着电子、光学和计算机科学技术的不断成熟,机器视觉在精密工件检测技术中得到了飞速发展[1-2]。

在图像处理过程中,边缘检测是最重要的环节之一,边缘能最直接地反映物体轮廓信息,因此可以通过图像边缘信息计算工件的尺寸。边缘提取常用的方法如运用一阶差分的Krisch算子、Sobel 算子、Canny 算子等,以及二阶微分算子Laplace[3-4]。为了能够得到平滑且较为完整的图像边缘,罗朝阳等[5]提出利用数学方法中形态学处理方法提取图像边缘,但是该方法对噪声很敏感且检测过程中容易出现伪边缘。包从望等[6]提出改进Canny 边缘检测方法,运用3*3 有限差分方法并结合OTSU 的自适应阈值提升算法的抗噪能力。曹义亲等[7]提出将改进后的LSD 直线检测应用到钢轨表面边界检测中,提升了图像的信噪比和检测精度。苏少辉等[8]利用双目相机结合改进Hough 变换检测大尺度下矩形工件,重复定位误差小于0.05mm。

针对三角形工件测量精度不高的问题,本文首先利用改进Canny算子检测图像边缘并结合改进Hough 变换提取图像直线像素,然后设置直线像素点到所属直线的距离阈值排除非直线点信息,最终通过最小二乘法拟合剩余直线像素点提高检测精度。

1 尺寸检测算法流程

算法流程如图1所示。

图1 算法流程

1.1 图像预处理

由于图像采集受到环境光照和相机内部硬件的影响,导致在数字化过程中和数据传输中会产生噪声,而降低了图像分辨率并对图像边缘像素检测造成误差,影响精密工件的检测精度。因此,首先对采集到的图像进行预处理。目前常用的图像预处理方法有高斯滤波、中值滤波、维纳滤波、均值滤波、双边滤波[9]等。由于高斯滤波是对同一距离的像素进行同一尺度滤波计算而没有考虑空间像素的差异,导致边缘出现模糊的情况,从而降低了工件测量尺寸。中值滤波则采用邻域像素取中值的方式代替中心像素点去除图像中的噪声,该方法仅对椒盐噪声有较好的处理效果。双边滤波则较高斯滤波考虑了像素点的空间信息与值域信息,该方法对将要进行滤波的像素区域先做分割与分类处理,再对不同所属区域类别的像素计算不同权重,最后进行邻域加权求和处理,从而达到很好地保留边缘并去除噪声的效果。双边滤波结果H如公式(1)所示:

其中Gr,Gs,Wq如公式(2)~(4)所示:

其中,Im为输入图像,In为输出图像,m代表目标像素,n代表任意像素,σr表示值域标准差,σs表示空间域标准差,Gr,Gs表示值域信息和空间域信息,Wq表示窗口内值域权重和。原图和滤波效果分别如图2 和如图3所示。

图2 原图

图3 滤波后图像

1.2 边缘检测

边缘检测本质上是加强轮廓像素,而边缘是图像灰度值变化最大的位置,因此通过计算梯度可以实现边缘检测。Canny 边缘检测[10-11]方法则能较好地判定边缘位置。Canny边缘检测分为四步:

第一步:对输入图像进行高斯去噪。由于高斯噪声对边缘产生模糊效果,因此在进行边缘检测之前运用双边滤波改进Canny边缘检测。

第二步:计算图像梯度和幅值。运用改进八方向Sobel 算子[12]进行边缘检测。G0、G45、G90、G135、G180、G225、G270、G315分别表示八个方向角,因此计算梯度及梯度幅度值如公式(5)~(7)所示:

其中i,j表示图像像素坐标。

第三步:非极大值抑制。在得到图像中每一点的梯度幅值和方向后,根据所计算信息去除所有非边缘点,细化边缘。

第四步:双阈值确定边缘位置。通过设置一个高阈值与低阈值,从而防止将伪边缘信息判定为边缘。

由于Canny检测算法阈值由人工设定,本文采用OTSU 自适应阈值分割改进Canny 需要人工标注阈值的问题。该算法事先假定阈值threshold能将像素分为两类,并计算划分为两类像素的均值M1和M2,以及图像全局均值MT,并计算被分为两类像素的概率P1和P2,从而计算类间方差:

式(8)出现最大化的灰度级就是所计算的自适应阈值。最终图像边缘检测结果如图4 所示。从图4(a)中可见工件表面出现少许非边缘信息,这将影响直线段信息的判断情况,经过自适应阈值后,最终改进结果如图4(b)所示,较好地排除了非边缘点信息,提高了后续直线检测的准确性。

图4 Canny检测对比图

1.3 直线检测

Hough变换直线检测为现如今最有效的直线检测方法,该方法在1962 年由Paul Hough 首次提出。Hough变换运用直角坐标到极坐标的映射关系找到在极坐标中出现峰值的点,从而判断出直线信息。

然而当直线相对于图像水平轴存在较大角度时,像素点会出现巨大的错位现象,这将导致同一条直线会检测出多条直线或是检测不出直线的现象,影响直线长度尺寸标定。因此,本文根据边缘点位置在像素点八邻域周围进行像素填充,进而扩大同一条直线像素点的检测范围。最终改进图像边缘如图6所示,与图5所示的原直线边缘相比,其边缘像素得到扩充,直线像素更加平缓。在图6 边缘图像基础上通过Hough 变换进行直线检测,未改进边缘图像直线检测如图7(a)所示,该图中存在一条直线多段检测与直线漏检问题,图7(b)为改进后边缘图像直线检测结果,通过实验证明该方法很好地解决了Hough直线检测中漏检或多检的问题。

图5 原直线边缘图像

图6 改进后直线边缘图像

图7 直线检测图像

1.4 尺寸检测

由于直线段边缘出现毛刺或缺陷等问题,导致最终检测出的直线像素点无法满足真实直线段数据的要求,因此在得到直线像素点后通过最小二乘法拟合所有属于同一条直线像素点信息,提高检测精度。

由于在边缘检测中增加了八邻域连通区间像素扩充,这将导致存在一些非直线点像素位置被计入该条直线,因此需要计算直线所属像素点到其直线距离,并设置阈值,当距离数值大于阈值则判定为非直线点像素,且不计入最小二乘法拟合,从而提高拟合精度。

直线点拟合方程由公式(9)所示:

其中,(xi,yi)表示直线像素点位置,a,b表示待拟合直线参数。最终通过计算待求参数偏导数得出最佳参数估计值:

针对三角形直线区域线段长度标定,需计算每条直线与其他直线的交点,从而判断三角形区域三个顶点位置,进而计算各个点的欧式距离,如公式(12)所示,其中i= 1,2,3;j= 1,2,3分别表示不同直线段编号。最终计算结果Di表示每段直线标定长度。最终检测结果如图8所示。图8中A、B、C分别表示三角形检测交点。

图8 直线交点检测图像

2 结果与结论

测试相机选用海康威视600万像素工业面阵工业相机型号:MV-CS060-10GM/C,传感器型号:Sony IMX178,像元尺寸:2.4μm*2.4μm,分辨率:3072*2048。

拍摄镜头选用DTCM110-36,0.2 倍双侧远心镜头。

实验测试设备选用处理器:Intel(R)Core(TM)i5-10210U CPU @ 1.60GHz,内存:16.00 GB(2133 MHz),显卡:NVIDIA GeForce MX250。

本文将图8 中AC、AB、BC段作为尺寸标定直线,BC段加工尺寸为5 mm,AB与AC尺寸为5.6 mm。在测量中通过对该图像进行旋转、重复拍摄等方法进行了10 次测量,得到最终标定尺寸误差。直线长度平均误差达到0.0021 mm,-0.0013 mm和0.0027mm,最大误差小于0.007mm,10 次检测时间共计21.45 s,平均检测时间为2.145 s。有部分测量误差数据较大或较小,该类数据可能是拍摄过程中光照和拍摄原因对图像质量产生了影响。

表1 直线和圆形工件测量结果单位:mm

3 结语

为更精确地检测三角工件长度尺寸,提出基于改进Canny 边缘检测和改进Hough 直线检测算法,依据仿真实验表明:

(1)结合OTSU 的自适应阈值分割方法和八方向Sobel 算子计算梯度改进Canny 边缘检测,提升了边缘检测精度;

(2)运用Hough 变换检测三角直线区域,并采用八连通区域增加直线边缘像素,提高了直线判断准确性,最终通过欧氏距离判断属于每一条直线的边缘像素点,利用最小二乘法拟合该类边缘点提高了工件尺寸检测精度。

猜你喜欢
像素点边缘工件
考虑非线性误差的五轴工件安装位置优化
三坐标在工件测绘中的应用技巧
现代机械(2018年1期)2018-04-17 07:29:48
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
一张图看懂边缘计算
焊接残余形变在工件精密装配中的仿真应用研究
焊接(2015年9期)2015-07-18 11:03:52
基于Node-Cell结构的HEVC帧内编码
电视技术(2014年11期)2014-12-02 02:43:28
一种非圆旋转工件支撑装置控制算法
在边缘寻找自我
雕塑(1999年2期)1999-06-28 05:01:42
走在边缘
雕塑(1996年2期)1996-07-13 03:19:02