宁 娟,周庆华,曾小为
(1.长沙理工大学物理与电子科学学院,湖南 长沙 410114;2.纳威尔智能科技有限公司,湖南 长沙 410007)
西林瓶是一种采用胶塞封口的玻璃管制药剂瓶,被药品制造厂广泛应用于各类口服液、冻干、粉剂等药品的包装中[1]。西林瓶由瓶体、胶塞、铝塑盖3 个部分构成,轧盖机是将各种规格的西林瓶瓶口加铝盖或铝塑盖,锁紧封口,来达到密封的作用,以保证药品不受污染[2]。在封盖环节,由于机械外力的作用,密封后的轧盖部位极容易产生开裂、擦伤、脱盖、变形等缺陷。近年来,由于GMP[3](Good Manufacture Practice of Medical Products)药品生产质量管理规范规定的严格实施,在封盖环节产生的缺陷产品必须经过检测剔除。目前工业缺陷检测系统在西林瓶装药品生产线上被广泛应用,但针对西林瓶轧盖部位的缺陷检测还少有人研究,业内主流的检测系统只有西林瓶制造厂对瓶体及铝塑盖质量的检测,以及药厂对装药后西林瓶胶塞气密性检测[4]。
机器视觉技术是一种用机器代替人眼做测量和判断的技术[5]。机器视觉的检测方法是一种自动化检测方法,相较于传统检测方法,它有非接触性、速度快、准确性高等优点[6]。随着计算机学科的发展,机器视觉的缺陷检测方法逐渐取代了人工检测方法,被应用于工业生产检测环节[7]。
深度学习的方法是目前计算机视觉领域应用较广泛的方法,利用卷积神经网络提取特征,构建有效的网络模型,在缺陷检测领域取得了有效的成果。当前工业界应用较多的目标检测算法大致可分为2 类,以Faster R-CNN 为代表的两阶段检测算法和以SSD、YOLO 为代表的单阶段检测算法。李玉等[8]通过对Faster R-CNN 的特征提取网络进行改进,并增加了特征金字塔网络,有效提高了对钢板表面低对比度的缺陷检测能力。刘群坡等[9]对SSD 算法进行了改进,利用深度残差结构和自顶向下的多尺度特征融合方法,来增强精密玻璃装电连接器表面微小缺陷特征提取和融合能力,检测精度达到91.28%。YOLO 系列网络是缺陷检测任务中表现较优的网络,沈希忠等[10]通过改进YOLOv5模型,并在训练过程中引入迁移训练的方法进行多次迁移训练,提升了短期训练的模型检测精度,对铝型材料表面缺陷的小缺陷检测效果有明显提升。YOLOv7[11]模型是YOLO系列最新成果,在继承原有YOLO 模型优势的基础上,通过可扩展的高效层聚合网络E-ELAN[11]结构来加速模型收敛,设计了模型重参化来实现模型在训练中精度与速度的权衡,采用辅助训练头和标签分配器来提升目标检测器在多任务训练上的性能。这些网络结构和训练策略技巧使其具有更优的检测精度和更快的推理速度[12]。然而,原始YOLOv7算法由于缺少高效的特征提取和特征融合的策略,存在无法高效地从低对比度背景中提取细粒度特征的问题。西林瓶轧盖缺陷存在目标缺陷较小、特征不清和多尺度等特点,直接使用YOLOv7 算法进行西林瓶轧盖缺陷检测存在对小目标缺陷的漏检和误检的问题。对此,业内常用卷积块注意力模型来提高小目标特征的表现能力,进一步提高待检测目标的显著度。戚玲珑等[13]利用ACmix 注意力模块来改进YOLOv7 网络,增加网络对小尺度目标敏感度,降低了小目标检测的漏检率。但是西林瓶轧盖缺陷存在多种尺度,上述方法对目标缺陷仍存在漏检问题。本文在引入注意力机制的基础上增加自适应特征融合模块,进一步提高缺陷检测的精度,解决西林瓶轧盖缺陷检测中的漏检问题。
在长沙纳威尔智能科技有限公司的真实工业传送带环境下搭建一个西林瓶轧盖的图像采集系统。西林瓶铝塑盖材质光滑,易反光,经过轧盖机封装后,其性质保持不变。光源会影响图像的灰度值的大小及分布,采用合适的光源可以使缺陷像素的亮度和梯度变化更明显[14]。通过研究西林瓶轧盖的材料及光反射情况,采用环形光源的打光方案,环形光源能提高图像检测的对比度[15],对西林瓶轧盖表面的缺陷有良好的检测效果。由于西林瓶轧盖呈柱体曲面,其缺陷可能出现在轧盖的任意位置,在固定方向运动的传送带上,单个相机无法捕捉全部缺陷,从而导致工件表面存在检测盲区,对检测结果造成重要影响[16]。为解决这个问题,实验采用3 台CMOS 面阵相机从不同角度采集图像,相机组之间的夹角为120°,高度与西林瓶颈部高度保持一致,如图1(a)所示,图1(b)为图像采集系统的实物架构图。
图1 图像采集系统架构图
图1 (a)中LC1、LC2、LC3 镜头选用日本康标达(Computar)镜头,其焦距为12 mm;相机选用德国巴斯勒(Basler)acA1300-60gm 黑白相机,像素为130 万像素,分辨率为1280×1024像素,像素位深为12 bits;使用GigE Vision 接口进行图像传输,提升取图速率。3台相机从不同角度共采集到984张西林瓶轧盖缺陷图像,将其统一重新编号为格式“0000X.bmp”。
西林瓶轧盖常见缺陷包括划痕(Scratches)、缺帽(Missing Cap)、凹裂(Concave-crack)、复合缺陷(Composite Defect)这4 种,图2 是采集到的4 种西林瓶轧盖缺陷图像的一些例子。
图2 西林瓶轧盖缺陷图像的一些例子
本文实验实际采集了984 张西林瓶轧盖缺陷图像,为了提高网络模型的鲁棒性和泛化能力,分别采用基于HSV 域变换和基于几何变换及Mosaic 数据增强的方法对缺陷图像数据规模进行扩充。
1)基于HSV域变换的数据增强。
HSV 模型是使用色相(Hue)、饱和度(Saturation)、明度(Value)来表示色彩的一种方式,直观反映人眼对色彩的感知,可适用于对视觉信息的分析处理[17]。由于西林瓶轧盖是光滑的柱面铝质材料,呈高适光性,光线反射以镜面反射为主,其镜面反射点附近容易出现光亮集中区域[18],对缺陷部位的检测有干扰,容易造成误判。为了提高网络对图像亮度变化的鲁棒性,对采集图像总数的80%的图像进行HSV 域扰动处理[19]。首先将RGB 颜色图像转换成HSV 图像,然后将色相值固定,再分别随机改变图像的饱和度(S)和明度(V)的值,最后得到1574 张扩充图像。
2)基于几何变换的数据增强。
基于几何变换的数据增强是从图像数据形态进行数据扩充[20],可以提高网络模型的泛化性。将原始图像总数的70%的图像,随机进行翻转、旋转、移位、裁剪、变形、缩放、仿射等几何变换得到662 张扩充图像。
通过上述2 种方法的数据增强后,将原始的984张图像扩充到3220 张图像,数据集中各类缺陷样本数量如表1 所示。用LabelImg 开源标注工具对西林瓶轧盖缺陷图像进行人工标注,并将标注结果保存为YOLO 格式,生成.TXT 格式的标注文件,得到了YOLO格式的西林瓶轧盖缺陷图像数据集。
表1 数据集中各类缺陷样本数单位:个
3)Mosaic数据增强。
本文在训练网络时还采用Mosaic 数据增强的方法以进一步提高模型的性能[21]。Mosaic 数据增强是在YOLOv4网络中提出的一种数据增强方法[22],其思想是将4张图像进行随机裁剪,再拼接得到一张图像,作为新生成的训练数据,来丰富原始图像数据。具体流程是从数据集里,抽取一批西林瓶轧盖缺陷图像,随机选取4张图像,进行随机缩放、裁剪、切割,并以随机排布的方式拼接成一张新的图像,然后重复上述操作;最后,将生成的批量图像输入神经网络进行训练。
西林瓶轧盖损伤面积一般较小,另外工业生产需要满足实时性要求。YOLO 网络是为了弥补两阶段检测网络在检测速度上难以满足实时要求的缺点,而设计一次完成目标类别的判定和边界的预测,使得检测效率得到极大提升[23];它具有更快的检测速度和较高的检测精度的优点,且经历了不同版本的演变,文献[24]整理了YOLOv1~YOLOv5 各版本的网络结构和应用场景。YOLOv7 是YOLO 模型的最新成果,文献[24]中详细介绍了它的网络架构和优化效果。本文在YOLOv7 网络中加入注意力机制和自适应特征融合机制,并将其应用到西林瓶轧盖的缺陷检测中,通过该算法,药品制造厂可以实时获得西林瓶装药品的封盖情况和轧盖损伤情况。
1)融入注意力机制。
由于西林瓶轧盖缺陷图像中背景与前景相似,且部分缺陷面积较小、特征不清,为了提高模型对轧盖缺陷部分的特征表达能力,在网络中引入注意力机制。卷积注意力机制(Convolution Block Attention Module,CBAM)是一个轻量级的注意力模块,可以在通道和空间维度进行注意力操作,通道注意模块(CAM)使网络更多地关注图像的前景和有意义的信息,空间注意模块(SAM)使网络更多地关注目标的位置信息[25]。SE(Squeeze and Excitation)注意力机制是使网络更关注通道特征信息,在特征提取中自动学习特征图的通道权重,来突出重要特征通道,抑制不重要通道信息[26]。高效通道注意力机制(Efficient Channel Attention,ECA)是在SE 注意力机制的基础上改进,使用一维卷积的方法来代替降维操作,有效捕获跨通道交互信息[27],来提升模型性能。文献[28]将3 种注意力机制引入人体关键点检测网络,其研究结果表明,融合CBAM 注意力模块的网络模型性能表现较好。为了提高网络对小目标缺陷的提取能力,如西林瓶轧盖上细小的划痕缺陷,本文选择在YOLOv7的骨干网络末端引入CBAM注意力模块。
2)融入自适应特征融合机制。
由于西林瓶轧盖缺陷尺寸分布广,且一张图像中可能存在既有大目标缺陷又有小目标缺陷。而YOLOv7 里采用PANet 结构对特征进行融合,是将不同层的特征图先变换成相同尺寸再相加,当不同特征的尺度不一致时,将导致融合特征图的噪声增大[29],影响检测效果。文献[30]提出了一种自适应特征融合机制(ASFF),让网络自动学习过滤掉其它层无用的信息,保留有用信息实现高效融合特征。对于某一层的特征,在融合前先将其他层特征尺寸调整成与它一致,然后通过模型训练,学习到最佳的融合方式。其实验表明,融入ASFF 后,YOLOv3 模型性能显著提升。本文在YOLOv7 模型原有的多尺度特征提取的基础上,继续融入自适应特征融合ASFF机制,来高效融合在不同尺度的感受野下西林瓶轧盖缺陷特征信息。图3 为增加CBAM 和ASFF 模块的改进YOLOv7网络结构图。
图3 增加CBAM和ASFF模块的改进YOLOv7网络结构
本文实验平台是采用搭载有Intel Core i5-12400F 处理器和NVIDIA GeForce RTX3060 型12 GB 显存GPU 的64 位Windows 10 操作系统的计算机进行模型训练,使用Pytorch 1.8.1 版、Python 版和CUDA版。
实验将之前得到的3220张缺陷图像,按照8∶2划分训练集和测试集,训练集包含2559 张缺陷图像,测试集包含661张缺陷图像。
训练过程中的训练参数如表2 所示。设置初始学习率为0.001,最小学习率设置为0.00001,使用Adam 优化器,动量参数设置为0.937,并使用余弦退火函数来动态降低学习率。训练中改进前后的YOLOv7网络的损失曲线如图4所示。
表2 训练参数设置表
图4 改进前后YOLOv7的训练Loss曲线
为了评估模型的性能,本文采用精准率(P)表示模型正确识别西林瓶轧盖缺陷的占比,召回率(R)表示识别图片中轧盖缺陷目标的涵盖程度[26];采用平均精度均值(Mean Average Precision,mAP)表示所有缺陷类别的平均识别精度;采用每秒实际达到的检测帧数(Frames Per Second,FPS)来评价模型识别缺陷的速度。
为了验证改进后YOLOv7 网络中各模块的检测效果,在西林瓶轧盖缺陷检测中,设置了消融实验,将改进YOLOv7 网络中的改进模块逐个添加进行训练,并分别将测试集输入给训练得到的4 个网络,针对测试集的消融实验结果如表3所示。
表3 消融实验结果
从表3中可以看出,YOLOv7融入了ASFF模块后mAP 比原来提高了1.2 个百分点,加入CBAM 模块后mAP 比原来提高了1.8 个百分点,表明引入ASFF 模块和CBMA 模块对YOLOv7 网络提升目标检测性能有积极效果。结果表明,同时融合CBAM 注意力机制和ASFF 自适应特征融合机制的网络,相比原YOLOv7网络,在检测速度仅降低10%的情况下,精确率提高了2.3 个百分点,召回率提高了2.1 个百分点,mAP 提高了1.9 个百分点,且检测速率仍能满足工业实时检测的要求。另外为了对比各模型对于无缺陷图像的识别性能,将400 张无缺陷图像分别输入上述4 个网络,结果表明,其中对无缺陷图像,原始YOLOv7 的识别准确率是99.5%,而改进后的3 个网络,均能100%正确判定无缺陷图像。
为了进一步了解模型对西林瓶轧盖各类缺陷的识别效果,融合2 种模块对不同缺陷识别的平均检测精度的均值mAP 如表4 所示。结果表明,同时融合2种模块的网络对不同缺陷类别的识别效果均有提升,其中对划痕缺陷的mAP提升效果最好,从96.4%提升到98.9%,提升了2.5 个百分点;而对复合缺陷的识别精度提升相对较低,主要原因可能是训练集中复合缺陷的实例数少于其他3 种缺陷,其中训练集中划痕缺陷实例有1120 个,缺帽缺陷实例有643 个,凹裂缺陷实例有996个,复合缺陷实例有639个。
表4 对不同缺陷的mAP/%消融实验结果
为了验证本文方法的有效性,在相同的实验环境下,采用其他方法进行西林瓶轧盖缺陷检测实验,表5 是实验结果,表中采用检测精度mAP 作为评估指标。文献[8]提出在Faster R-CNN 网络中增加特征金字塔网络FPN,但检测速较慢且漏检率高。文献[9]提出利用深度残差结构(DR)和自顶向下的多尺度特征融合(FM)的方法改进SSD 网络,但检测慢的问题仍需解决。根据工业检测的实时性需求,一般要求FPS/(f/s)达到30 以上,分析实验结果发现只有YOLO 系列算法的检测速度能满足实时性需求。文献[10]提出在YOLOv5 模型的基础上引入迁移训练,但检测速度和检测精度均低于文献[13]提出的改进YOLOv7 方法。本文方法虽然在检测速度上稍低于文献[13],但在西林瓶轧盖各类缺陷的检测精度上有明显优势,故本文方法是解决工业西林瓶轧盖缺陷检测问题的较好的选择。
表5 本文方法与其他方法进行西林瓶轧盖缺陷检测的结果对比
本文构建了一个用于训练西林瓶轧盖缺陷检测算法的数据集。该数据集有984 张原始缺陷图像,加上扩充后的图像共3220 张缺陷图像,其中包括划痕、缺帽、凹裂、复合缺陷4类常见缺陷。本文在YOLOv7算法基础上引入CBAM 注意力模块和ASFF自适应特征融合机制,提高了网络的特征提取能力,提升了算法的检测性能。实验表明,改进后的算法在西林瓶缺陷检测中应用效果较好,对无缺陷图像的识别率为100%,对有缺陷图像的mAP 达到99.3%,降低了漏检率,使得检测精度和检测速率均符合工业生产线的检测要求,为西林瓶工业生产检测提供了新思路。