沈阳理工大学 黄海新 金 鑫
随着制造业的高速发展,缺陷检测在制造型企业中的重要性变得来越高。然而大多数生产厂商还使用人工或基于机器视觉的方法进行缺陷检测。人工检测的效率和可靠性通常很低。采用机器视觉算法对产品进行质量检测是一种比较成熟的方案。但缺陷种类过多时,此类算法存在人工设计特征效率低、泛化性差、处理步骤繁琐等缺陷。近年来的研究表明,深度学习方法已广泛应用于目标检测领域,但对小目标检测的研究较少。为了提高小目标及小样本的检测精度,本文提出了一种基于YOLOv4的改进方法。此方法不但可以满足检测的速度和精度,而且在小样本的情况下成功的检测出纳米级尺度上的制造缺陷。
近年来,基于深度学习的方法在目标检测领域取得了重大突破。 因此将深度学习算法应用于产品质量检测,成为一个主流的研究方向。鉴于YOLO算法不但拥有极高的检测速度,而且有着不逊于R-CNN系类算法的精度,因此成为本研究的首选研究算法。
本研究使用的数据集来自国内某高端制造企业。样本图像为其生产线中的工业摄像头拍摄的CMOS滤光片支架。尺寸大小为6.5×6.5mm。图像样本中共有五类缺陷。由于目标物体尺寸小、经网络提取后的特征不明显,因此小目标物体检测存在漏检率高,检测精度低等缺陷。此外厂商提供的数据集中只包含112张图像。针对上述问题,本文在YOLOv4的基础上做了如下的改进:
(1)在数据预处理阶段,通过数据增强的方法将数据集扩充至原数据集数量的8倍,然后使用mosaic数据增强方法进行进一步增强。
(2)使用先验框增强方法,将经过优化得到的先验框用于检测,进而提高检测精度。
由实验表明,经过改进版YOLOv4算法可以满足厂商要求的检测的速度和精度。
YOLOv4的网络由主干网络、颈部网络和头部网络这三部分组成。其中,主干网络为CSP-DarkNet53,CSP网络是可以增强神经网络学习能力的新型主干网络,同时能够在轻量化的同时保持准确性、降低计算瓶颈、降低内存成本。Darknet53是YOLOv3所是使用的主干网络,结合CSP网络的思想形成CSPDarkNet53网络。颈部网络为SPP和PAN网络。SPP网络是将CSPDarkNet53卷积后得到的特征归到同一大小。PAN网络有着反复提取特征的结构,提高了检测小目标物体的精度。头部网络负责最后的预测任务。
在生产过程中,由于短时间内很难搜集到大量带有缺陷的样本,因此使用数据增强的方法对原有数据集进行预处理变得尤为重要。实验中采用的数据增强的方法主要有如下几点:
(1)几何变换
即对图像进行几何变换,包括翻转,旋转,裁剪,变形,缩放等各类操作。结合本实验数据集,这里主要应用了镜像和旋转的方式进行数据增强,通过这两种方法的结合,将数据集扩充到原有数据集数量的8倍。
(2)mosaic数据增强
mosaic数据增强是在原有CutMix数据增强方法的基础上提出的新的数据增强方法,理论上和CutMix类似。CutMix数据增强方式是利用两张图片进行拼接,但是mosaic利用了四张图片。其优点是丰富检测物体的背景,且在BN计算的时候一下子会计算四张图片的数据,使得mini-batch大小不需要很大,那么一个GPU就可以达到比较好的效果。mosaic数据增强效果如图7所示。
通常数据集中待检测物体大小不一,造成目标大小差异的主要原因有两个:一是目标物体本身大小不一,二是拍摄距离不同。对于本数据集,由于镜头到物体的距离是固定的。因此在该情况下,可以使用聚类算法预先统计数据集中所有缺陷样本的大小来获取先验框。使用聚类后得到的先验框进行检测,增强了预测尺度的适应性。
图1 average IOU与聚类中心k的关系曲线
进行聚类时,选取聚类中心个数为1-9,分别运行K-means++算法对数据集中的缺陷样本进行分析,得到average IOU与聚类中心k的关系如图1所示。从图中可以看出随着k的逐渐增大,average IOU变化越来越平稳。我们选取聚类中心为9,在此基础上得到的先验框大小为(8,8)、(9,12)、(15,9)、(9,25)、(16,16)、(31,11)、(8,54)、(59,10)、(13,52)。
然后我们将这9中尺度的先验框每三个作为一组,平均分配到52×52、26×26、13×13这三个尺度的特征图上,具体如表1所示。
表1 YOLO Head中特征图与其对应先验框大小
本研究基于国内某厂的实际生产项目。要求开发基于深度学习的方法对流水线上的工业产品进行实时的缺陷检测。本次实验的数据集为生产厂商提供的56组带有缺陷的芯片支架图像。每组共两张图像,是由两个工业摄像头同时对同一缺陷产品采集的图像。如图2所示。
图2 数据样本
在数据集中缺陷类型共分成5类,缺陷类型如表2所示,其中各缺陷如图3所示。
设置学习率设置为0.001,衰减系数设置为0.0005,并且选择steps模式更新学习率,在训练迭代次数达到8000和9000次时,将学习率分别降低至初始学习率的10%和1%。我们将原始的YOLOv4算法和经过改进的YOLOv4算法分别迭代10000次进性训练。经过10000次迭代之后,损失值和mAP基本趋于稳定。最后的损失值下降到1.7左右,mAP大约在82%左右,各评价参数如表3所示。
表2 缺陷类型
表3 各评价参数
将改进的YOLOv4算法和原YOLOv4算法进行对比发现:对小样本问题,如何如何进性数据增强是至关重要的。而对于小目标检测问题,我们使用了K-means算法分析数据集中的缺陷样本,再用经过增强过的先验框进性预测。由实验数据可知,经过改进的YOLOv4算法无论是precision还是recall都比YOLOv4算法有所提高,同时在IOU=0.5时的mAP和average IoU也有所提高。基于实验结果,本文提出的改进版YOLOv4算法对于小目标物体检测问题有实质性的意义。
结束语:本文针对小目标及小样本检测问题提出了改进版的YOLOv4目标检测算法。根据实验数据集特点,使用了数据增强及先验框增强的方法,实验结果显示在检测精度的各项指标方面都有一定的提升。因此本文提出的先验框增强和数据增强方法对于其他小目标物体检测及小样本问题有实质性的指导意义。此外,本方法可应用与高端制造行业,如半导体行业、智能制造行业、军工制造行业等。未来,提升检测精度、降低模型复杂度仍然是主要研究方向。