罗瑞,何为,郑雪枚,卢小海
(武昌首义学院 机电与自动化学院,湖北武汉,430064)
国外机器视觉技术发展迅猛,在工业生产中得到了广泛地应用。基于计算机视觉的表面检测技术可以概括为:PCB 印刷电路检测、SMT 表面贴装检测、产品尺寸检测、生物医学检测等,从而使产品检测的准确度和生产效率得到了极大的提升[1~2]。
在国外,日本川崎公司于1974 年开发了用于镀锡薄板表面缺陷的在线机器视觉测试设备[3]。1983 年,霍尼韦尔公司利用线阵CCD 摄像机和图像处理技术,开发出一套用于精密检测铸件表面缺陷的设备[4]。1993 年,Liao K.等对完整的玉米种子和破碎的种子进行了检测;2002 年,N.Aleixos 等人开发了一种基于计算机视觉的柑橘分类方法。在这方面,目前比较成功公司的有PROIMAGE,NI,BOBST,VMT,Hexsight,Cognex,DAC,TOKIMEC,Keyence。
随着目标检测技术的快速发展,传统的机器视觉方法被应用于工业中缺陷检测。如王淑青等利用基于YOLOv5 的瓷砖表面缺陷检测法[5],以瓷砖为研究对象,针对瓷砖表面缺陷检测基于YOLOv5 的瓷砖表面缺陷检测法。实验结果表明:该方法适用于不同类型的缺陷检测,并且该方法在准确度和速度上均比传统的缺陷检测优秀。由此可得YOLOv5网络是十分适用于不同类型的缺陷检测,并且速度、内存、大小都得到了很完美的提升。
基于机器视觉的注塑杯表面缺陷检测系统总共分为两个部分组成,分别是硬件和软件。硬件部分主要包括:电脑、相机、光源、支架、传输带、图像采集设备。软件部分则是由图像采集系统和电脑端软件程序构成的图像处理、缺陷识别系统。注塑杯表面缺陷系统检测的总体模型如图1 所示。
图1 图像采集模块模型图
由图1 可知,当传输带进行物品传输工作时,注塑杯经传感器检测信号通过PLC 传输到电脑,电脑通过相机对物品进行抓拍,获取的图像通过图像采集卡再次传输到电脑上,同时对物品进行缺陷分析处理,得到直观的结果反馈在显示器上,以此达到对注塑杯表面缺陷检测的实际数据。最后通过电机驱动推杆,将产品进行分拣,检测出的残次品将进行回收处理。图2 中的流程完成注塑杯的智能识别和分类功能。
图2 项目整体流程图
综上所述,硬件是实验的基础,合适的硬件有助于减小实验中外界因素对缺陷检测的影响。软件则是实验的核心,选择合适的软件可以使检测工作更快速更准确。
本实验是以机器视觉为基础的检测系统,同时电脑处理的图片信息就是通过相机获取的图像进行分析。因此相机的选择十分重要,目前工业用相机主要基于CCD 或者CMOS芯片的相机。在图像处理速度和帧率,CMOS 高于CCD,避免了拖尾和模糊现象[6],并且相比较,CMOS 的成本都比CCD 要低,兼容性、可靠性都优于CCD。并且CMOS 在低灵敏度、低电流、低填充等方面进行了大量的技术研究和技术攻关[7~8]。
在图像采集过程中,光学镜头在机器视觉系统中也是不可或缺的组成部分,它的好坏将对图像的质量产生重要的影响。因此在选择光学镜头时要考虑镜头是否能增强图像的效果,同时能否适配所选相机。
光源的选择同样重要,合适的光源可以使相机清晰获取注塑杯的细节与轮廓,配合相机能清晰展示出检测项目的缺陷类型,还可以有效降低噪点;因此应多方面考虑光源的面积、亮度以及稳定性。
本次本人所选择的图像处理软件是Labellmg 软件,该软件是我们常用的十分简单的标注工具,可以帮助我们进行目标检测项目的标注工作,它的操作简单易上手。
缺陷检测的具体流程如图3 所示,数值图像处理的目的是从图像中提取有用信息数据,随后对图像进行分析处理,以此得到我们需要的一个结果。同时图像与图像之间是紧密连接的,只要我们针对其分析出来了必要信息,后续的工作也可以事半功倍。
图3 缺陷检测流程图
Labellmg 软件对目标图像进行标注需要人工进行标注,于是在采集完图像后对目标缺陷类型先进行了分类区分。总共分为5 个类型:发白、黑点、进胶点高凸、毛边、缺胶,随后在软件中对目标进行缺陷类型标注。本次采用YOLOv5 检测法,根据YOLOv5 官方发布的数据代码可知,该监测网络共有四个版本,依次为YOLOv5x、YOLOv5l、YOLOv5s。其中YOLOv5s 是深度和特征图宽度最小的网络。
3.2.1 实验环境搭建
在Anaconda 软件的命令方块中, 创建一个以Python3.8 为基础的YOLO 环境,然后键入“activate YOLO”的命令,启动YOLO 环境。使用Pycharm 来开启YOLOv5 模式,并在之前创建的YOLO 环境下安装依赖库文件。环境搭配流程图如图4 所示。
图4 环境搭配流程图
图5 训练结果
3.2.2 建立训练集
首先准备自己的带有图像和标签的数据集。对于标记图像,可以使用Labelme 或CVAT 等工具。然后,应该编写相应的Dataset 类,该类可以通过_getitem__方法加载图像和标签。YOLOX 支持COCO 格式和VOC 格式。而YOLOv5 和YOLOv4 只支持YOLO 形式。目标检测标注形式,目前主流的目标检测的标注形式主要有COCO 形式,VOC形式,和YOLO 形式。为了更好地在不同网络上进行训练,需要建立一个数据格式转换的程序。
神经网络训练是一个非常复杂的过程,在这过程中,许多变量之间相互影响。在神经网络训练过程中,更加简单方便地加速训练网络有许多的技巧。我们需要反复迭代以调整最好的参数,以求在最快的时间训练出最好的网络。
3.3.1 模型微调
由于手工标注的数据量非常有限,对于一些稍大的网络,难以满足其数据量的需求,所以使用预训练模型进行微调是非常有必要的。大的学习率可能会导致网络的灾难性遗忘。因此通常使用较小的学习率进行warm up,让网络逐渐适应新的数据集。这既可以加速网络收敛,也可以让网络保留在超大数据量的预训练中学习到的经验。
3.3.2 超参数设置
(1)learning rate:由于预训练通常是在超大量图片上进行的。为了让原模型学到的知识尽可能地保留,在模型微调过程当中,我们的学习率通常是正常训练学习率的1/10。
(2)batch size,可承受范围内尽量大,主要是为了迭代速度更快。
(3)warm up steps,lr schedule,epochs 数量,dropout rate 等,都是对照网络训练时候的数据,按照经验和观察调整。
3.3.3 P-R 曲线
选定的阈值不同分类的结果也是不同的。Recall 和Presion 的值也不同。画出两者阈值变化的曲线图,如图6所示。可以看到两者之间有一定的反比关系。
图6 R-P 曲线关系图
3.3.4 测试结果
从图7 可以看出缺陷精准度有了一定的提升,但是有些细小方面的问题仍无法检测出来或者是检测精准度不高。
图7 检测结果
本文聚焦于目标检测任务,介绍了深度学习的研究背景以及目标检测任务的发展现状。基于深度学习的目标检测算法目前可以分为一阶段算法以及二阶段算法。本文主要介绍了特征金字塔网络(FPN)、路径聚合网络(PANet)和双向特征融合网络(BiFPN)。此外,由于YOLOv5 算法是目前比较好的目标及检测算法,所以本文从数据增强、网络结构、损失函数等方面对YOLOv5 算法进行了具体的阐述。
基于YOLOv5 网络,本文提出了YOLOv5 网络的两种网络,并且对其进行了对比分析。并且实验部分采用了COCO 数据集,并且与其他同类检测算法进行比较。实验数据证明。YOLOv5s网络为基准,YOLOv5l网络为改进后网络,可以做到提升检测的精准速度以及速度,对中小型目标的检测精度提升效果较好。
本文后续的研究方面可以分为以下两个方面:一方面。虽然现有的小目标检测算法已经取得了一些成果,但是检测的精准度仍不够高,小目标检测和旋转目标检测方面仍是本次实验的难点;另一方面,随着实力工程的应用,模型是否能做到更好地适配硬件也变得尤为重要,也需要进一步的考虑,在考虑如何使模型具有良好检测性能的同时,降低算法的复杂程度,提高检测的效率。因此,得到更适合实际应用的新型网络是我们未来的目标。