杨 哲, 卜子渝, 刘纯平
(1.苏州大学计算机科学与技术学院,江苏 苏州 215006;2.江苏省计算机信息处理技术重点实验室,江苏 苏州 215006)
机器视觉是人工智能的一个重要分支,具有非接触、低成本、高效率和安全可靠等优点,在制造业中主要用于尺寸测量[1-2]、物体定位[3-4]和缺陷检测[5-6]等。目前,基于机器视觉的缺陷检测正逐渐取代人工在智能制造中广泛应用[7],如焊接检测[8]、涂装检测[9]、印刷检测[10-11]、轨道检测[12]、包装检测[13-14]等。随着效率、精度和稳定性等方面性能的提升,机器视觉在智能制造领域的应用将越来越广泛,机器视觉方面的人才需求持续增加。
机器视觉课程在新工科专业教学体系中有着重要作用,涉及图像处理、自动控制、模式识别等课程的知识,需要综合运用理论知识与操作技能,具有综合性、系统性和操作性强的特点。因此,各高校结合自身的学校或行业特色,对机器视觉课程进行了教学改革和探索,包括实验系统开发[15-18],教学项目设计[19]和教学模式探索[20]等。
根据我校新工科专业建设的要求,以智能制造过程中激光雕刻缺陷检测的需求和过程为案例,对机器视觉综合实践课程的内容和过程进行了教学设计,丰富了机器视觉课程的实践教学资源,对于提高学生的专业理论、实践技能和工程素养有较好的促进作用。
机器视觉是用机器代替人做测量和判断,一般先通过摄像装置将待测目标转换成图像信号,传送给图像处理系统,得到目标的形态信息;再根据像素分布和亮度、颜色等信息,转变成数字信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。
设计的基于机器视觉的激光雕刻缺陷检测实践教学体系如图1所示,包含4个环节,8个任务,分为3个层次的难度要求。实践环节根据课程需要用到的知识内容进行划分,涵盖了硬件基础、程序设计、图像处理、自动控制和模式识别等先导课程。实践任务是每个环节中学生需要完成的具体内容,学生以3或4人为1小组,合作完成8个任务,难度要求分成基础性、综合性和创新性训练3个层次。
课程所需的硬件设备,包括工业相机、环形光源、激光雕刻机、传送带(含电动机)、继电器、计算机等。工业相机型号为BASLER acA3800-10gm,分辨率为3840×2748,帧速率为10 f/s。光源为环形白光,24 V供电。激光雕刻机型号为VigoTec VG-L5,工作有效尺寸A5幅面(19 cm×13 cm)。传送带长50 cm、宽20 cm,继电器型号为TCP-KP-I202。
软件使用PyQt5进行开发和集成,需要使用第三方库和开源框架包括TensorFlow2.1,OpenCV 4.5,Paddlepaddle2.1,NumPy 1.19,LaserWeb 4.0等。
(1)硬件连接。学生根据图2所示搭建硬件系统。系统中工业相机和光源通过实验支架固定在传送带正上方。相机通过千兆以太网与计算机相连。激光雕刻机通过铝合金导轨框架横跨在传送带上,通过GRBL控制板的USB接口与计算机相连,驱动皮带轮和步进电动机进行二维平面运动,运动范围需位于相机视野之内。传送带的电动机与继电器相连,继电器通过千兆以太网与计算机相连。
(2)相机标定。在后续激光雕刻环节,要求通过LaserWeb开源软件控制雕刻机工作。因此,要求学生编写程序并通过接口,将要雕刻的图像坐标转换成LaserWeb可识别的GCode坐标。因此,需要先将GCode坐标平面和图像平面进行投影标定。由于标定物是平面,因此将世界坐标系构造在Z=0的平面上,然后进行单应性(Homography)计算。根据张正友标定法[21],此时世界坐标系和图像坐标系的投影式为:
式中:H为一个3×3的矩阵,其中有一个元素为齐次坐标,因此H有8个待解未知量;s为尺度因子;(X,Y)为LaserWeb生成的GCode坐标,是已知量;(u,v)为相机拍摄的像素坐标。一组对应的(X,Y)→(u,v)可以获得两组方程。现有8个未知量,因此需要4组对应的点来求解单应性矩阵H。学生首先用LaserWeb以2 cm间隔在雕刻板上雕刻直线网格,然后在相机拍摄的图像上提取交叉点坐标,如图3所示。将LaserWeb雕刻的交叉点GCode坐标和拍摄的交叉点图像坐标按对应顺序,通过OpenCV的findHomography函数求解H。
求解H之后,将需要雕刻的图像坐标经过投影变换,转换成GCode坐标传递给LaserWeb,由LaserWeb控制雕刻机的GRBL控制板进行雕刻,同时显示雕刻进度和位置,如图4所示。因此学生需要通过自行查阅资料和小组分工讨论,将LaserWeb代码集成到小组编写的程序中,这对锻炼学生的集成软件开发能力有极大的帮助。
(1)目标定位。将待雕刻目标(方形有机玻璃板)放置在传送带上,控制电动机带动传送带,同时连续获取相机图像并判断是否有目标出现以及目标的位置。学生通过程序检测图像中物体的轮廓、周长和面积,如图5(a)所示。如果与待雕刻目标一致,说明目标已完全进入,如图5(b)所示。当目标中心点接近图像中心时,通过继电器停止传送带的电动机工作,让目标停止在工作区域中心,如图5(c)所示。考虑到延迟问题,传送带停止后相机会重新获取一张工作区域的图像。在该图像上,对待雕刻目标进行最终位置的定位,如图5(d)所示。
(2)图像预处理。目标定位之后,对图像进行预处理。要求学生分别采用保边滤波、泛洪填充、边缘检测和膨胀处理等图像处理方法。保边滤波可以调用OpenCV函数edgePreservingFilter,目的是保留待雕刻目标的图像边缘,减少消除传送带表面问题引入的噪声干扰,如图6(a)所示。泛洪填充可以调用floodFill函数实现,将雕刻目标边缘外侧的背景全部填充为黑色,以去除背景图像的噪声,如图6(b)所示。边缘检测可以用Canny函数实现,用于准确检测出待雕刻目标,如图6(c)所示。膨胀处理可以用函数dilate实现,使得目标边缘更加清晰,如图6(d)所示。
(1)缺陷模型训练。在进行缺陷检测前,学生需要先进行缺陷模型的训练,这是实践课程的难点,是对学生创新能力的一种训练,要求学生基于SSD(Single-Shot-Detection)模型并进行优化。
SSD是基于深度学习的单阶段目标检测模型,平衡了YOLO和Faster RCNN的优缺点,在检测精度和检测速度上取得了较好的综合性能。但由于原始SSD模型对浅层特征图的表征能力不够,导致对小目标检测能力不足。因此要求学生采用浅层特征图融合的方法,优化SSD的小目标检测能力,从而提升模型整体性能。SSD基本模型的特征金字塔由6个卷积层组成,然而这些卷积层之间不存在任何联系,只是单独作为分类和回归网络的输入,如图7所示。
特征金字塔由下而上,特征图的尺度逐渐变小,而尺度大的特征图对小目标检测更加敏感。因此,学生需要将特征金字塔中的浅层特征上采样,将其与上层特征图融合,通过两次上采样和8次卷积操作,增强浅层特征图的细节信息表达能力,从而提高算法性能。改进后的SSD模型结构如图8所示。
SSD模型的先验框设置遵循线性规则
式中:m为特征图数量;sk为先验框相对于输入图像的比例,第1张特征图中的s1初始设置为0.1。其余5张特征图的sk(k=2,3,4,5,6)由计算所得;smin设为0.2,smax设为0.9。
为了覆盖不同类型的目标,需要设定先验框不同的宽高比αr∈{1,2,3,1/2,1/3},对先验框的宽(wk)和高(hk)进行调整:
模型的损失函数包含两个部分——分类损失和回归损失:
式中:N为所有样本数量;Lconf为分类损失;Lloc为回归损失;α为权重系数,用于调整两种损失的权重。分类损失中,x为预测框是否匹配到真实框,若匹配到取1,否则取0;z为预测框中目标的类别概率。回归损失中,l和g为预测框和真实框在图像中位置。
分类损失采用交叉熵损失,前半部分为正样本损失,后半部分为负样本损失:
其中,^zci表示第i个预测框中类别为c的概率
当c为0时,表示预测框中的内容是背景。
回归损失采用smoothL1损失表示:
据了解,尿素厂检修重点在造气、净化和尿素车间,主要检修任务为造气气洗塔填料更换、1#-24#炉三气阀门更换、1#-6#系统吹风机煤气管道更换,净化1#变换系统更换触媒、冷副线三通更换、低甲1#醇分热洗及内件割除,尿素高压设备检测、换热设备清洗、水解塔塔盘检查清洗、高甲冷列管换管、压力设备检测修补、脱硫塔更换填料等,全厂共计检修项目高达366项。
当第i个预测框匹配到了真实框j时,xcij为1。其中c表示该真实框中的目标类别;smoothL1损失函数为
它的优点是当预测框与真实框较远时,其产生大小为±1的梯度,模型会以较大的梯度向最优解方向收敛。而当预测框与真实框较近时,产生大小为x的梯度,模型会以较小的梯度继续趋于最优解,即
数据集为教师事先采集的不同种类和位置的划痕缺陷数据集,一共有1 000张图片,其中250张为缺陷图片,包含4种不同种类和位置的划痕缺陷,如图9所示。
学生首先需将数据集按照4∶1的比例,随机分成训练集和测试集,然后对训练数据集进行数据增强。数据增强不仅能够扩充数据集,还有正则化的作用,有助于提高模型性能。在数据增强时,对图像进行随机缩放和随机水平翻转,缩放系数在0.5~2之间。同时对图像的宽高比进行随机调整,调整幅度在0.5~1.5之间。最后将训练完成的模型,在测试数据集上验证性能。
(2)空板缺陷检测。缺陷模型训练完成后,根据模型输出的缺陷区域,计算缺陷的面积和长度。如果大于设定的阀值,则判定缺陷过大,不能满足雕刻要求,否则通过集成的LaserWeb进行雕刻。
(3)雕刻缺陷检测。实际生产过程中,不仅会雕刻产品Logo等固定标志,还会雕刻型号、序列号等可变内容,如图10所示。因此,首先在图像上标注检测区域(见图10绿色框)、Logo检测区域(见图10蓝色框)以及OCR检测区域(见图10橙色框)。
对OCR检测区域,采用PaddleOCR进行识别。对Logo检测区域,系统通过BF匹配器,将雕刻图像和模板图像进行特征匹配,特征点分别采用SIFT,AKAZE,KAZE探测器进行提取,各自进行特征匹配。根据最终效果,选择效果最佳的两种探测器及其提取的特征点,如图11所示。
如图12所示,对于面积或长度大于阀值的缺陷区域,计算区域内每个像素点pi到模板轮廓的最短距离di,得到区域的评分score:
式中,k为经验参数。
最后将所有缺陷区域的评分求和,作为雕刻图像的整体缺陷评分。根据设定的接受范围,判定雕刻结果为通过或者不通过。
表1所示为学生优化的SSD模型与Faster RCNN,SSD基本模型和YOLOv3模型对划痕缺陷检测的精度和速度(帧/s)对比。经过浅层特征融合优化的SSD模型,准确率、召回率和F1指标都有较大的提升,检测速度也达到42.2帧/s,虽然速度不及YOLOv3模型,但已经可以满足实时检测的需要。图13所示为学生小组开发的缺陷检测软件。
表1 空板缺陷检测结果
雕刻缺陷检测是通过图像特征匹配完成的。因此,首先用LaserWeb雕刻100张图像,每张图像的Logo保持不变,型号和序列号都不相同。然后学生先对每张雕刻图像进行程序评分,并判定是否通过,如图14所示。接着用人工方法,对100张雕刻图像进行复核,挑出有缺陷的图像与系统判定的结果进行对比。最终检测结果,各小组完成的程序对雕刻缺陷检测的平均精度F1值都能达到90%~95%,速度可以达到30~40帧/s。说明学生都能较好地理解并实现雕刻缺陷图像特征的提取、匹配和结果判定,达到了预期的综合实践要求。
为了培养学生对机器视觉理论学习和动手实践能力,对机器视觉算法和系统设计的过程有直观的感受,以智能制造过程中激光雕刻缺陷检测的需求和过程为参考,对机器视觉综合实践课程的内容和过程进行了教学设计。学生通过小组合作的方式,共同完成4个实践环节的8项不同难度要求的实践任务,综合运用硬件基础、程序设计、图像处理、自动控制和模式识别等课程的知识,强化了综合性、系统性和创新性的要求。有效提高了学生的创新能力、动手能力和工程实践能力,提升了学生对科研创新和专业知识的浓厚兴趣。