王铁禹,曹 新
(大连东软信息学院,辽宁 大连 116023)
tieyu.wang@fitow.com;caoxin@neusoft.edu.cn
糖尿病患者注射胰岛素所用的笔杆属于医疗器械,其生产过程中对精度的要求很高,但是无论怎么优化生产设备,缺陷产品的产生是不可避免的,因此厂家需要剔除这些缺陷产品,以免影响病人的使用及治疗效果。工业流水线上的笔杆质量检测长久以来都是采用人工质检方式,其检测准确率低、效率低,已成为亟待解决的问题。
伴随着机器视觉技术的不断发展,基于机器视觉的表面缺陷检测方法以高效率、高精度和低误检率等优势逐渐替代人工质检,例如罗兵等人通过形态学的特征增强,实现了对硬质合金微型喷嘴缺陷的检测[1];张媛媛等人利用双边滤波及Otsu阈值,实现了对纱线质量的检测[2];周鼎贺等人运用迭代加权拟合的方法实现了对孔洞感兴趣区域(ROI)的定位与提取,从而缩短了检测时间,完成了汽车零件涂装缺陷检测等[3]。
通过综合分析文献[1]—文献[3],总结机器视觉的缺陷检测大体分两类:一是利用深度学习进行模型训练,该方法需要大量的数据和极高要求的硬件支持;二是分析缺陷特征,利用特征增强、滤波和阈值分割,但实际上笔杆缺陷灰度差小,阈值分割不稳定,从而在一定程度上导致漏检和误检。本文针对笔杆表面的缺陷,提出了利用边缘平滑、直线拟合和尺寸测量方法。尺寸测量部分利用直线拟合和直线延长计算交点,优化了算法逻辑;边缘磕伤缺陷抛弃了常用的滤波和Otsu阈值,利用边缘平滑并计算缺陷点和正常点的位置关系。该方法有效提高了笔杆缺陷和尺寸测量的检出精度,并缩短了检测时间。
笔杆的常见型号为圆直径15.8 mm、高63.2 mm的带有顶端开口和表面开口对称的空心圆柱形结构[4],由于材质硬度低,在生产过程中极易造成边缘、开口轮廓磕伤,镀膜不均匀和尺寸不符等缺陷。磕伤缺陷存在于两个开口和上下两端的边缘,如图1(a)所示;镀膜不均匀缺陷呈现为整体亮度不一致,利用灰度值的大小可以有效找到缺陷位置,如图1(b)所示;尺寸测量主要测量顶端开口的宽度和深度尺寸,如图1(c)和图1(d)所示。
图1 缺陷类型Fig.1 Defect type
图像处理是整个笔杆检测系统的核心[5],设备是否具有较高的检出率,与算法对图像缺陷检出的稳定性有很大关系。本文首先对图像进行Blob(连通区域)分析,分割出待检测区域;然后通过直线拟合、直线延长等逻辑操作,完成尺寸测量;最后利用边缘平滑的算子,实现轮廓磕伤缺陷的检测。
Blob分析是将图像进行二值化、分割、形态学操作和特征值计算,从而得到需要检测的区域。首先选取灰度值在70—255的区域(算子:threshold),根据特征值(面积)选取笔杆在整张图上的位置(算子:select_shape),然后进行填充(算子:fill_up)、做差(算子:difference)、形态学腐蚀(算子:erosion_circle),最后选择出开口位置,如图2所示。
图2 Blob分析确定开口位置Fig.2 Blob analysis to determine the opening position
对上述Blob分析确定好的开口位置进行开口尺寸的检测,包括开口深度和开口宽度[6-7]。
开口深度的检测方法是求点到直线的距离,但如果只按照传统方法使用算子distance_pl(计算点到直线之间的距离)经过重复性精度实验(同一个笔杆来回取放10 次取图,看计算结果最小值和最大值的差),像素差值达到了50—100 pix,这样的精度显然是不合格的。所以,需要对算法逻辑进行优化:分别提取开口的上部分、下部分和开口深度的边,计算出上部分、下部分边上所有的点,删除偏移量比较大的前20%的数据,再重新拟合直线。同理,开口深度的边也是如此操作,这样可以得到两条偏差很小的直线。根据这两条直线上的所有点,再计算点到直线的距离,求出平均值即可得到准确的“V”口深度,像素差值可达到3 pix以内,处理过程如图3所示。
图3 直线拟合与开口深度的测量Fig.3 Straight line fitting and measurement of opening depth
本文利用直线拟合的尺寸测量方法测试300 个随机笔杆,与传统尺寸测量的检出对比如表1所示。从表1中的结果可以看出,本文算法的设计大幅降低了误检率和缩短了检测时间,提升了检测效率,节约了检测成本。
表1 开口深度检测逻辑的对比算法Tab.1 Comparison algorithm of opening detection logic
进行开口宽度检测时需要拟合三条直线,并将其中上、下两条直线延长计算与左边第三条直线相交。延长直线首先使用算子line_position计算待延长直线的起点行列坐标、终点行列坐标、中心点行列坐标、直线长度及直线与水平线的角度,分别存入对应数组RowBegin、ColBegin、RowEnd、ColEnd、RowCenter、ColCenter、Length、Phi,然后根据如下公式分别计算延长后的起点行列坐标和终点行列坐标,分别存入对应数组Row_Start、Col_Start、Row_End、Col_End。
其中,P为待延长直线起点/终点的行/列坐标,Pc为待延长直线中心点的行/列坐标,PHI为直线与水平线的角度,L为延长系数,L的值越大,延长后的直线越长。直线延长前后的对比如图4所示。
图4 直线延长前后对比Fig.4 Comparison before and after linear extension
通过算子intersection_lines计算延长后直线与图4拟合后直线的交点,重复两次得到上下两个交点,根据交点的行列坐标计算开口宽度的尺寸。算子处理过程如图5所示。
图5 直线延长与开口宽度的测量Fig.5 Measurement of straight line extension and opening width
轮廓磕伤缺陷的检测如图6所示。首先利用Blob分析找到轮廓位置,筛选轮廓上的点,找到待检测的点坐标(算子:segment_contours_xld、select_shape_xld),然后进行边缘平滑并删除平滑边缘时产生的干扰(算子:smooth_contours_xld、union_adjacent_contours_xld、select_shape_xld),最后根据待检测的点坐标和平滑边缘的距离判断是否有轮廓磕伤。
图6 轮廓磕伤缺陷检测Fig.6 Contour gouge defect detection
为验证本文提出的笔杆表面缺陷检测方法的可行性与准确性,把检出率、漏检率、误检率和检测时间作为检出标准。实验环境为8 k像素工业线阵相机及其配套镜头,平行背光源,图像处理通过Dell G5便携式计算机完成,使用C#语言作为上位机调用Halcon完成算法编写[8]。
按照文中所介绍的方法对某企业的NP4型号笔杆进行实验,挑选1,000 件不同的笔杆进行对比实验,采集合格产品图像400 张、尺寸缺陷图像400 张、边缘磕伤缺陷图像200 张,本文提出算法的检测结果如表2所示;其他算法的检测结果如表3所示;传统尺寸测量检测结果与本文提出的缺陷检测方法结果进行对比,结果如表4所示;将实际工厂生产中传统人工检测结果与本文提出的缺陷检测方法结果进行对比,结果如表5所示。
表2 本文提出的算法缺陷检测结果Tab.2 Defect detection results of the algorithm proposed in this paper
表3 滤波和阈值分割算法缺陷检测结果Tab.3 Defect detection results of filtering and threshold segmentation algorithm
表4 传统尺寸测量与本文提出的方法检测结果对比Tab.4 Comparison between traditional dimension measurement and the proposed method
表5 人工检测与本文提出的方法检测结果对比Tab.5 Comparison between manual detection and the proposed method
从表4和表5中的数据可以看出,本文提出的算法检测检出率为98.8%、误检率为1%、漏检率仅为0.2%,而其他方法检测检出率为92.25%、误检率为3.3%、漏检率为4.45%;人工检测检出率为90.2%、误检率为4.7%、漏检率为5.1%。结果表明:该方法可以代替人工质检方法,满足生产要求。
本文介绍了一种基于机器视觉的笔杆表面缺陷检测方法:首先对图像进行Blob分析,分割出待检测区域;然后通过直线拟合、直线延长等算法逻辑,完成了开口深度和开口宽度的尺寸测量;最后利用边缘平滑的算子,实现了对轮廓磕伤缺陷的检测。经实验测试,本文提出的检测方法与目前常用的检测方法在漏检率、误检率和检出率等指标上都有所提升,并且降低了算法的复杂性,满足工业质检的要求。