盒装机制雪茄烟缺陷分类视觉检测方法
2023-10-28杨心安朱文魁张明建王珵珵
杨心安,朱文魁,张明建,周 博,王 兵*,冯 杨,高 森*,王珵珵,陈 睿
1. 中国烟草总公司郑州烟草研究院,郑州高新技术产业开发区枫杨街2 号 450001
2. 四川中烟工业有限责任公司长城雪茄烟厂,四川省什邡市蓥华山路南段128 号 618400
随着我国雪茄烟需求量的快速增长,传统人工卷制雪茄烟已经难以满足国内消费市场,机制雪茄烟成为当前消费热点。机制雪茄烟采用机器制作茄芯,再通过手工或机器卷制的方式包装茄套和茄衣[1]。在机制雪茄烟装盒过程中,为避免出现烟支缺支、断残、破损等质量问题,目前主要依赖人工目测的方式对小盒内烟支进行检验,存在劳动量大、人工成本高及检验标准不统一等问题,难以满足检测精度和实时性要求。近年来,烟草行业广泛采用高效、精准、抗干扰能力强的机器视觉技术[2-4]开展烟草病害识别、烟叶成熟度识别和等级划分、传统卷烟外观质量缺陷检测等工作,有效提高了工作效率。陈智斌等[5]采用深度学习方法自动识别卷烟牌号,识别正确率达到了98%,为卷烟零售数据自动化采集提供了技术支持;刘延鑫等[6]建立了基于YOLOv3 的烟草病害检测模型,实现了对5种常见烟草病害的精准快速检测;汪睿琪等[7]使用YOLOv5模型对上、中、下3个部位5个成熟度的烟叶图像进行训练并建立烟叶成熟度识别模型,实现了对鲜烟叶成熟度的有效、准确判定;鲁鑫等[8]采用传统图像处理方法对条盒烟透明塑料包装上的拉线头进行检测后,利用改进的YOLOv4 模型进行二次复检,解决了工业场景下拉线头缺陷检测误报率高的问题;袁国武等[9]基于ResNeSt模型建立了一种烟支外观缺陷分类方法,准确率达到了92.04%;肖雷雨等[10]基于改进的YOLOv3 模型建立了一种烟梗在线分类识别模型,烟梗识别精确率达到了95.01%;刘鸿瑜等[11]对YOLOv5s 模型改进后建立烟支外观缺陷检测方法,平均检测速度达到4.7 ms/支。目前,针对雪茄烟的缺陷检测研究较少,金怀国等[12]基于机器视觉技术建立的雪茄烟质量检测装置仅能识别缺支、断残等缺陷烟支而无法有效识别破损烟支。为此,结合图像形态学处理技术和深度学习建立盒装机制雪茄缺陷的分类视觉检测方法,对特征明显的断残、缺支缺陷和不同程度的破损缺陷进行分类检测,以期提高雪茄烟包装生产品质。
1 材料与方法
1.1 样品和仪器
“长城雪茄Mini”牌机制雪茄烟,10 支/盒,铁制小盒包装,由四川中烟工业有限责任公司长城雪茄厂提供。
REX 背式包装机(荷兰皇家阿吉奥雪茄公司);A7A20CG9 工业相机(浙江华睿科技股份有限公司),分辨率4 096 px×3 000 px,感光芯片为IMX304,像素位深度12 bit,图像采集软件为MV viewer,相机曝光量为11 000 lx·s,亮度90 cd/m2,饱和度100%。
1.2 数据集构建
在雪茄烟包装机烟支装盒和合盒之间的传输通道上设置图像采集工位并安装A7A20CG9 工业相机,采集雪茄烟盒(未合盒)图像。①缺支、断残检测数据集:取70 个雪茄烟盒并拍摄图像,包含无缺陷样本10 个,人为制造缺支、断残缺陷样本各30 个。②破损检测数据集:取210个人为制造破损缺陷雪茄烟盒并拍摄图像,包含明显破损[破损面积>(3 mm×3 mm)]、不明显破损[破损面积<(2 mm×2 mm)]和微明显破损(介于明显破损与不明显破损之间)样本各70 个(图1),从3 种破损程度的图像中各挑选60张采用数据增强的方式扩充至1 080 张,并按9∶1 划分为训练集和验证集。将剩余30 张破损图像和70张缺支、断残图像作为测试集。两个数据集各类型图像数量见表1。
表1 缺支、断残检测和破损检测数据集Tab.1 Dataset of missing and broken cigars and dataset of damaged cigars(张)
图1 雪茄烟不同破损程度示意图Fig.1 Schematic diagram of cigars with damages of different degrees
1.3 缺陷分类检测方法
对获取的图像进行霍夫变换[13]后,使用边缘检测和最小外接矩形法[14]对雪茄烟缺支、断残两种较为明显的特征进行识别,判断烟盒内烟支数量以及烟支长度是否符合要求;利用改进的YOLOv5s深度学习模型[7]对原始图像进行检测,判断烟支是否存在破损缺陷。
1.3.1 缺支、断残检测方法
1.3.1.1 方法建立
①基于霍夫变换的目标区域定位方法对原始缺支图像(图2a)、断残图像(图2b)进行预处理,提取包含烟支的目标区域(图2c、2d),减少周边物体对图像的干扰。②读取目标区域,对图像进行灰度化、二值化以及形态学等预处理,然后对处理后图像进行边缘检测;针对边缘位置使用最小外接矩形法得到烟支的外接矩形(图2e、2f),统计生成的最小外接矩形个数,通过判断矩形个数是否小于烟支数量(10支)来确定是否存在缺支情况。③统计烟支外接矩形的长度,采用最大值Lmax作为正常烟支长度,计算Li-Lmax与Lmax的比值ηi,若ηi≥断残比阈值则判断为断残烟支,否则判断为正常烟支。断残比阈值的确定方法:收集正常与断残烟支样品并统计烟支长度,确定正常烟支长度分布在7.2~7.4 cm,断残烟支长度分布在5.4~5.9 cm,计算可得断残比(断残烟支与正常烟支的长度差值/正常烟支长度)最小值为0.18%,即为断残比阈值。
图2 盒装机制雪茄缺支、断残缺陷图像检测结果Fig.2 Image inspection results of missing and broken machine-made cigars in packets
1.3.1.2 方法评估
对表1 中缺支、断残检测数据集中的70 张图像进行检测,记录每个样本的检测结果和检测时间ti(i=1,2,3,…,70),统计缺支、断残、无缺陷3种样本的识别准确率,根据公式(1)计算该检测方法的检测速率。
1.3.2 破损检测模型
1.3.2.1 模型建立
由于破损特征没有明确的检测指标且雪茄茄衣颜色不均匀,图像二值化处理难度较大,因此无法采用传统的图像处理技术识别破损烟支。本研究中采用基于深度学习的YOLOv5s 模型对破损烟支进行检测。破损检测数据集中,烟支破损面积尺寸较小,为提高检测能力,在YOLOv5s模型的backbone部分引入了金字塔压缩注意力机制(Pyramid Squeeze Attention,PSA)[15]和EIoU 损失函数(EIoU Loss)[16]。PSA能够在更细粒度的水平上有效提取多尺度空间信息,并能够形成长距离的信道依赖性;EIoU 损失函数将分别计算宽度与高度的差异值取代纵横比,可以加速收敛提高精度,并减少样本不均衡性带来的影响。计算公式为:
式中:LEIoU代表EIoU 损失函数值;IoU 代表预测框与真实框的交并比;ρ(b,bgt)代表预测框与真实框中心点之间的欧式距离;c代表能够同时包含预测框和真实框的最小闭包区域的对角线距离;ρ(w,wgt)代表预测框与真实框的宽度差值;cw代表预测框与真实框最小外接矩形的宽度;ρ(h,hgt)代表预测框与真实框的高度差值;ch代表预测框与真实框最小外接矩形的高度。
改进后的YOLOv5s 模型如图3 所示。采用Focus结构对图像进行切片操作后,由PSA模块对各个通道赋予权重;由CSP Darknet53和SPP池化模块将图像进行特征分离,并利用FPN+PAN结构从不同尺度上对特征进行融合;通过Head检测头对图像进行预测,生成目标边界框和预测类别概率,破损检测结果见图4。为避免将雪茄烟支上的茄衣脱落错误识别为破损缺陷,同时能够准确识别破损样本,设置了不同置信度阈值,可以统计各阈值下明显破损、微明显破损、不明显破损以及无破损样本的识别准确率。
图3 改进后的YOLOv5s模型结构图Fig.3 Structure of modified YOLOv5s model
图4 盒装机制雪茄破损缺陷检测结果Fig.4 Inspection results for damaged machine-made cigar in packet
1.3.2.2 模型评价指标
采用精确率P(Precision)、召回率R(Recall)、某一类别平均准确率AP(Average Precision)、多类别平均准确率mAP(mean Average Precision)和每秒传输帧数FPS(Frames Per Second)评估模型表现[17]。
1.3.2.3 环境配置及参数
在Windows 11 操作系统上搭建Python3.9.16 和torch-1.12.1+cu113 深度学习框架并完成模型训练。对训练集图像进行数据增强(旋转、翻转、高斯噪声、增量、裁剪),增加图像样本的丰富性。模型训练后,保存验证精度最优模型,并使用测试集来评价模型的泛化能力。
采用SGD 优化器对网络进行优化,初始学习率设置为0.01,图像批处理大小为8,最大迭代次数为300 轮,权重衰减率为0.000 5。采用迁移学习的方法,加载YOLOv5s的预训练权重。
1.4 硬件配置
硬件采用Interl Corei7-12700KF CPU@64 位3.60 GHz,128 GB RAM,NVIDIA GeForce RTX 3060 12 143 MB GPU。
2 结果与分析
2.1 缺支、断残检测方法评估
对表1 中缺支、断残检测数据集中的70 张图像进行测试,得到平均检测速率为21帧/s,各类型样本识别准确率均为100%。可见,该方法可以准确识别缺支、断残和无缺陷样本。
2.2 破损检测模型评估
2.2.1 模型训练结果
图5 为改进后YOLOv5s 模型的Loss 曲线和mAP曲线。可见,模型损失值Loss随训练轮数的增加而快速降低,并在50轮训练之后逐渐趋于稳定;多类别平均准确率mAP 在50 轮之前快速上升并存在波动,100 轮之后逐渐趋于稳定,说明改进后模型对于破损缺陷的识别性能良好。
图5 改进后YOLOv5s模型训练结果Fig.5 Training results of modified YOLOv5s model
通过消融实验对比改进前后YOLOv5s 模型性能,结果见表2。可见,在原始YOLOv5s模型中引入EIoU损失函数后,模型精度P提高0.87百分点,召回率R无变化,AP值降低0.34百分点,FPS降低4帧/s;引入PSA 模块后,模型精度P 提高0.87 百分点,AP值提高0.01百分点,召回率R无变化,FPS降低2帧/s;同时引入EIoU 损失函数与PSA 模块后,模型精度P提高1.80百分点,AP值提高1.56百分点,召回率R提高0.93 百分点,FPS 降低7 帧/s。表明改进后模型具有更好的性能,结合缺支、断残检测速率为21 帧/s,得到本研究中建立的分类视觉检测方法对单张图像的缺陷检测时间为0.080 s,可以满足机制盒装雪茄缺陷的实时检测要求。
表2 不同检测模型的性能对比Tab.2 Performance of different inspection models
2.2.2 模型检测结果
利用改进后YOLOv5s模型对表1中的100张测试集图像进行破损预测,结果见图6。可见,改进后模型可以准确识别雪茄烟支中明显、微明显和不明显3种破损缺陷,预测置信度均>0.5,对于明显破损的检测精度最高。如表3 所示,置信度阈值为0.50时,破损检测模型对3种破损样本的识别准确率均为100%,而对无损样本的识别准确率仅为94.28%,核对后发现识别错误的无损样本是将烟支上的杂色区域错误识别为破损缺陷;置信度阈值为0.70时,破损检测模型对3种破损样本的识别准确率随破损面积的减小而降低,但对无损样本的识别准确率达到100%;置信度阈值为0.55~0.65 时,破损检测模型对无损样本和3 种破损样本的识别准确率均为100%。因此,将置信度阈值设定为0.60。
表3 不同置信度阈值下破损检测模型的识别准确率Tab.3 The identification accuracy of the damaged cigar inspection model at different confidence thresholds
图6 破损检测模型的检测结果Fig.6 Inspection results of the model for damaged cigars
3 结论
针对机制雪茄装盒过程中存在的断残、缺支和破损等缺陷检测问题,结合图像形态学处理技术和深度学习建立了一种分类视觉检测方法。结果表明:①通过提取盒装雪茄烟支轮廓和各烟支外接矩形建立的烟支缺支、断残检测方法,对缺支、断残、无损3 种样本的识别准确率均为100%。②在YOLOv5s 模型中引入PSA 注意力机制与EIoU 损失函数建立烟支破损检测模型,与改进前YOLOv5s模型相比,检测精度和召回率分别提高1.80 和0.93 百分点;将模型置信度阈值设置为0.60时,对无损样本和3种破损样本的识别准确率均为100%。③采用本研究中建立的分类视觉检测方法代替人工目测对盒装机制雪茄缺陷进行检测,单张图像测试时间为0.080 s,可以实现对盒装机制雪茄缺陷的实时检测。