文 马坤 无锡小天鹅电器有限公司
随着国际贸易的快速发展,中国企业积极开拓海外市场。在洗衣机制造业中,由于不同国家电源插座标准不同,销往不同国家的产品都必须配备上符合当前国家标准的插头。目前,在洗衣机生产流水线中,人工不容易区分插头与洗衣机箱体是否匹配,所以在完成洗衣机装配后,通常直接对洗衣机进行封装发往销售地。插头装配过程中由于插头误拿、错放等因素的影响,不能100%保证洗衣机型号与插头类别相匹配。在销售过程中,匹配错误的洗衣机不仅是资源的浪费,也对企业声誉造成了影响。为了提高企业信誉,增强企业竞争力,洗衣机插头检测势在必行。
近年来,随着计算机性能的不断提升,深度学习相关技术发展迅速,新的卷积神经网络结构不断涌现,在一些数据集上的分类水准已经接近于人类,利用卷积神经网络提取图像特征,也具有更好的效果和更强的鲁棒性。在机器视觉和计算机视觉的相关应用领域,深度学习也不断有大量的新算法涌现,在图像分类、目标检测、三维重建和语义分割等领域中应用广泛,效果显著。
目前,由于洗衣机插头误装率低,流水线检测时间短,检测环境复杂,国内外目前还没有洗衣机插头错配检测的相关研究。由于不同插头形状不同,同时在插头上往往刻有表示不同含义的字符,为采用深度学习识别插头种类提供了可行性条件。本文采用相机图像采集系统和深度学习目标检测技术建立了在线插头识别系统,在识别出插头种类与代表洗衣机种类的条形码不匹配时报错,并由三色灯进行报警,实现了洗衣机插头错配识别与预警,大幅减少了插头种类与洗衣机类别不匹配的产品流入市场。
视觉识别系统的硬件主要由插头图像采集、洗衣机条形码识别和三色灯报警三个部分构成。其中,插头图像采集部分如图1 所示,通过选取合理的工业相机和光源布局,采集插头图片。由于流水线上灯光环境复杂,为了能采集到清晰完整的插头图片,提高插头识别准确率,光源采用环形灯光,从下往上照射,相机放置在环形光源下方,透过环形光源孔拍摄插头图片,同时采用茶色灯罩阻隔外部灯光。为了满足流水线的快速性需求,图像采集采用按键式拍照,在放置插头的玻璃板下设置一个触发按键,有插头放置时按键触发,同时打开三色灯与摄像头拍照,完成图像采集。洗衣机条形码识别部分为扫码枪,能够在洗衣机经过时读取洗衣机上条形码的S/N 码,并传送至工控机。三色灯报警部分由三色灯构成,三色灯通过USB 接口连接在工控机上,在检测到插头识别出的种类与代表洗衣机种类的S/N 码不匹配时,红色灯闪烁报警。
图1 插头图像采集部分示意图
识别流程由离线和在线两个阶段构成。离线阶段是指深度学习模型训练阶段,先通过插头图像采集模块采集不同种类的插头图像构成数据集,再经过旋转、灰度化、拼接等图片处理方式扩充数据集,使用获得的数据集训练深度学习目标定位模型,提取不同插头的特征表示,获得插头种类,并将其保存在插头的模型库中便于后续调用比较。在线阶段主要是指洗衣机流水线工作阶段,分为扫码枪识别洗衣机条形码和插头图像采集获取插头种类两部分。在洗衣机到达扫码枪工位时,扫码枪扫描箱体背后整机条形码,并识别出代表洗衣机种类的S/N码,检测系统收到MES(制造执行系统)发送的S/N 码后,调取模型库中S/N 码对应的插头种类模型,同时将插头放到图像采集系统中,触发按键拍摄插头图像,工控机获取到插头图像后导入深度学习模型,获得待测插头的深度特征信息,根据所得特征信息获得插头模型库中的插头种类。将图像采集获得的插头种类与扫描箱体条形码获得的插头种类进行对比,检测插头是否错配。插头识别流程图如图2 所示。
图2 插头识别流程图
目前,基于深度学习的目标检测算法大致可以分为两类:两阶段检测算法和单阶段检测算法。其中,两阶段算法是先通过卷积神经网络获得一系列候选区域,然后再根据形状、颜色等特征完成对特定区域的分类来达到检测目的的算法,这种算法检测准确率高,但由于其需要多次运行监测和分类流程,导致检测速度很慢。单阶段算法利用回归思想,直接将图片输入到卷积神经网络中,经过检测后直接输出得到结果,该算法虽然准确率不如两阶段算法,但是速度相对较快。
由于工厂流水线运转速度快,在检测过程中不能干扰流水线的正常运行,因此必须同时满足快速性和准确性的要求。YOLO 算法作为单阶段检测算法的代表,其在目标检测任务中满足快速性的同时能保证检测的准确性,因此被广泛应用在目标检测项目中。本文采用了YOLOv5 识别插头的种类。
YOLOv5 算法由Utralytics 在2020 年6 月提出,是YOLO算法的第五个版本,该版本在保证准确性的同时有良好的检测速度,性能超过了YOLO 之前的所有版本,其网络结构如图3 所示。YOLOv5 算法又可以根据主干网络宽度和深度的不同,分为YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x 四个版本,其中YOLOv5s 是最简单的版本,它的模型参数最少,检测速度也最快。YOLOv5s 将模型分为Backbone 网络、FPN 特征增强和YoloHead 三个部分,每个部分的作用都不尽相同。
Backbone 网络部分又被称为主干特征提取网络,输入的图片会先在这里进行图像特征提取。首先,图片输入后会先经过focus 网络结构,输入图像会在此处每隔一个像素取一个值,获得四个独立特征层,然后再将这四个独立特征层进行堆叠,此时,图像的宽度和高度信息都会被集中到通道信息中,在降低图像分辨率、减少计算量的同时还能提高每个点的感受野,减少原始信息的损失。接着,结合CSPNet 网络的设计思想,设计了三个Resblock_body 模块。该模块将原先残差块的堆叠拆分成两部分,主干部分继续进行残差块的堆叠,另一部分则经过少量处理直接连接到最后,然后再将两部分进行组合,这样可以在保证准确性的同时减少计算量。在Backbone 网络的最后部分使用了SPP 结构,采用不同池化核大小的最大池化对图像进行特征提取,进一步扩大了网络的感受野,更有效地将上下文特征进行分离。
FPN 特征增强部分为加强特征提取网络,它可以使网络的特征提取能力得到进一步的改善。在主干部分得到的三个有效特征层会在这一部分对图像特征进行融合,通过这种方式,将不同尺度的特征信息进行结合。
YoloHead 是YOLOv5 的分类器与回归器,它有三个分支。经过Backbone 网络和FPN 网络的增强后,可以得到三个加强过的有效特征层,每个特征层都含有宽、高和通道数等信息。这时,就可以把特征图看作多个特征点的集合,每个特征点都含有该通道的多个特征。YoloHead 的工作就是对特征点进行判断,判断特征点上的先验框是否有与之相匹配的对象。
由于没有公开的插头种类数据集,本研究通过工业相机采集了七种插头种类图像共70 张,并通过人工标注的方式标出每个插头的种类。但作为数据集,70 张图像稍显不足,因此继续将这些图像通过旋转、裁剪、加入噪声等方式扩充数据集,将每类插头图像均扩充为200 张,在此基础上,将训练集与测试集按照9:1 的比例进行随机分配。
YOLOv5 在插头种类识别过程中使用了K-means 聚类算法,该算法会对数据集中人工标记的分类框进行聚类分析:首先会确认先验框的数量和宽高,然后在网络周围生成一些具有一定比例的边界框,在这些边界框中,包含有该区域中心点的位置、高度、宽度和置信度等信息,最后每个网格单元就会根据这些信息对这些边界框的置信度分数进行预测。
利用置信度,可以确定检测对象是否存在边界框中,进而判断预测框的准确度,其计算公式为
其中confidence——预测框的准确度;
P(object)——边界框中是否存在检测对象;
若边界框中包含插头种类,即存在检测对象,则P(object)的值取1,那么置信度confidence 的值就等于;如果边界框中没有包含插头,则P(object)的值为0,置信度也就为0。
因此,预测边界框中某一类插头的置信分数就可以由下面的公式表示
置信分数可以用来反映某个插头种类包含在预测边界框中的概率和边界框坐标的准确性。以置信分数为依据,再使用非极大值抑制(NMS)进行筛选,就可以得到最终插头的识别结果。
本文用于验证深度学习插头错配识别系统的仿真实验平台为PC 端,PC 配置为Intel i7-12700, 显卡为NVIDIA GeForce RTX 3090,24G 运行内存;集成开发环境为Pycharm,cuda版本为11.3,编程语言为Python3.7;标注的软件采用的是labelme。
YOLOv5s 模型参数设置为:批处理大小(batch_size)为4,迭代次数(epochs)为200次,学习率(learning_rate)为0.0005。
首先将准备好的数据集放入YOLOv5网络中进行训练,经过训练后网络模型的好坏程度将直接决定插头种类的识别效果。在训练结束后,放入一张插头图片检测训练结果,得到识别结果如图4 所示。
模型的训练结果可以由平均精度均值(mAP)作为评价指标。每个检测类别均有精确度—召回率(P-R)曲线,P-R 曲线与坐标轴围成的面积为AP 值,将AP值再求平均即为mAP,mAP 的值在[0,1]之间,值越大表示模型精度越高。其中精确度Precision 和召回率Recall 分别为
其中 TP——模型为正样本被检测为正样本的结果;
FP——模型为负样本但是检测为正样本的结果;
FN——模型为正样本但检测为负样本的结果。
在模型训练完后获得的插头种类AP值见表1,可以看出每种插头的AP 值均超过了95%,mAP 值达到97.6%,这表明使用YOLOv5 网络对插头种类进行识别有着很好的效果。
表1 插头种类AP 值
基于深度学习的洗衣机插头错配系统在生产流水线现场部署的主要硬件部分分为插头图像采集、洗衣机条形码识别和三色灯报警三个部分,其实际场景图如图5 所示。流水线工作过程中,洗衣机箱体经过传送带传送,经过扫码枪时,扫码枪上下扫动识别出箱体上的条形码传送至工控机,在下一个箱体到来前将此箱体上安装的插头放入插头图像采集部分,触发按键拍照,传送至工控机进行插头种类识别,并在工控机上根据扫码识别得到的S/N 码判断洗衣机上的插头是否错配,如果错配,则在工控机显示端显示的同时三色灯报警。工控机上识别结果如图6 所示。
图5 洗衣机生产流水线实际场景图
图6 工控机端识别图
本文根据洗衣机生产流水线中检测插头与洗衣机箱体是否错配的需求,设计了一种基于深度学习的洗衣机插头错配识别系统。该系统通过结合读取条形码信息和检测插头种类判断洗衣机插头是否错配,并能在检测到错配时进行三色灯报警。仿真和实际应用表明该系统识别准确率不小于95%,在洗衣机插头错配率不高的情况下能有效完成检测任务,剔除装配出错的洗衣机,提高公司的信誉度,增强企业竞争力。目前该系统已经应用于国内某洗衣机生产流水线,具有较大的应用价值。