基于机器视觉的瓶装饮料液位识别与定位
2023-06-03朱霆芳刘阳春李明辉
朱霆芳,赵 博,刘阳春,冯 林,李明辉
(中国农业机械化科学研究院集团有限公司,北京 100083)
0 引言
饮料生产过程中,饮料灌装液位精度受灌装设备的硬件状况和定量灌装控制系统控制策略的影响会出现瓶装饮料液位高度波动[1]。影响因素通常有饮料的液体特性及饮料内的固态成分、灌装设备故障、自动补偿控制系统调控策略等,因而灌装作业中瓶装饮料会出现灌装液位差[2-4]。灌装后的液位高度检测可以帮助厂家确保质量、控制成本,长期出现灌装过量会造成原料需求量增加,企业利润减少;缺量饮料流入市场,会造成企业的信誉损失,从而影响消费者消费决策[5]。通过液位检测可以反馈生产设备状态,出现大量灌装高度不合格饮料时,及时反馈错误,设备根据反馈信号及时调整参数修正错误,保障生产安全,提高生产效率[6-8]。
瓶装饮料液位检测依赖光电传感器发出视觉检测程序触发“开关”,配合压力传感器测量、电容式传感器等对灌装液位进行检测,自机器视觉检测技术应用后,在大部分PET 饮料瓶质量检测、灌装后液位检测多采用光电传感器触发检测开关,配合图像处理算法构成检测系统[9-19]。早期基于Opencv 液位识别方法识别速度较慢,目前多数以光电传感器作为液位检测图像处理程序的触发器[17]。
随着机器视觉技术的成熟,目前机器视觉识别速度已能达到高速生产检测的要求。使用机器视觉在饮料生产中作为检测触发程序,不仅可以降低检测系统硬件使用量,集成化检测系统,还能快速对检测内容定位和调度检测程序,并且可以简化检测系统设备结构,弥补传感器冗杂的系统硬件布局缺点,提高系统效率和可靠性[18-20]。饮料生产线视觉检测系统背景较为简单,因而更容易区分检测目标,图像中信息量少,配合图像处理方法识别液位高度也就越快。本研究在YOLOv7 基础上参考饮料生产中饮料瓶质量检测和饮料液位检测方法,设计整套系统在背光照明的条件下实现瓶装饮料液位检测的快速识别和定位,并验证了识别速度与识别准确率,为实现高速液位检测提供识别模型,并快速定位液位区域,为液位高度检测程序提供触发指令,取代光电传感器作为检测程序的触发器。
1 数据采集与预处理
1.1 数据采集设备与方法
待采集的饮料瓶放置于传送带上,传送带宽25 cm;传送带一侧设置CMOS 传感器海威工业相机,型号为MV-CE060-10UC,8 mm 焦距镜头,采集图像分辨率为3 072 像素×2 048 像素;另一侧正对摄像头设置背光板,背光板尺寸30 cm×60 cm,可满足市场上大部分300~650 mL 饮料瓶的高度,以此模拟生产的环境,其实际布局如图1 所示。在采集图像试验台上采集不同类型瓶装饮料液位。为获得更好的液位特征完善识别模型,采集时以量筒测量后确定的饮料标准净含量液位面为高度参考面,采集了俯视、平视和仰视3 个视角的图像作为学习样本,采集图像如图2 所示。
图1 瓶装饮料液位检测硬件布局Fig.1 Measurement hardware layout of bottled beverages liquid level
图2 采集视角示意Fig.2 Schematic diagram of acquisition angle
采集PET 瓶装饮料分类如图3 所示,将采集PET瓶类型分为透明瓶透明液位、透明瓶有色液位、深色透明瓶、表面粗糙瓶、直颈瓶、浅色透明瓶、白色不透明瓶和瓶颈不规则瓶8 类。8 种瓶分别采集有标签有盖、有标签无盖、无标签有盖和无标签无盖4 小类样本。每种类型饮料瓶基于饮料瓶形状过渡对液位进行高度分段,据此条件作为液位高度变量。
图3 不同类型饮料瓶图像Fig.3 Images of different types of beverage bottles
由于生产线生产速度不同,多瓶饮料排列间隔也不同,为模拟生产时多瓶排列情况,将多瓶饮料不同间距排列从紧密到稀松分为4 种间隔:紧密、间距2~3 cm、间距5 ~6 cm 和间距8 ~12 cm,如图4所示。
图4 饮料瓶不同间距排列Fig.4 Different interval arrangement of beverage bottles
1.2 验证YOLOv7 能识别研究目标
由于YOLOv7 网络中默认识别的80 类可识别目标包含饮料瓶,因而只需验证该模型在经过训练后能够正常识别和正确框定液位即可满足识别要求。在对采集的部分样本标注后,通过400 轮次的训练,训练后验证效果如图5 所示。
图5 饮料液位识别与定位Fig.5 Beverage level identification and positioning
1.3 图像处理与标注
将采集的原始图像筛选出无残影的图像,对图像采取如下方式修改,增强模型对图像识别准确性。
扩充采集样本,模拟暗光与背光亮度过高,偏色处理模拟颜色失真,改变明度,图6a 为随机选取图像改变色相、饱和度和明度权重的样本图像。模糊图像,从选取的图像中随机选取图像,模拟实际应用中拍摄出现异常的情况,增加高斯、椒盐和乘法噪声;部分虚化图像模拟镜头有雾气。图6b 分别为加高斯、椒盐、乘法噪声和虚化的样本图像。
图6 处理后的图像Fig.6 Processed images
为进一步验证模型复杂图片识别能力,选取部分旋转与加马赛克处理,图6c 是瓶装饮料原始图像旋转和马赛克处理的样本图像。
2 基于YOLOv7 识别网络改进
已验证YOLOv7 能够正常且准确识别和框定液位,通过改进YOLOv7 结构(图7),使得该算法更加适用于瓶装饮料液位识别与框定,在实际生产检测中与检测程序更加契合[21]。
图7 YOLOv7 网络框架Fig.7 Network framework of YOLOv7
2.1 空间金字塔池化改进
YOLOv7 基于空间金字塔池化结构(Spatial Pyramid Pooling,SPP),通过跨阶段局部网络CSPNet 结构设计的一种SPPCSPC 的空间金字塔池化结构[21-22]。SPP需要指定3 次卷积核大小,默认核大小为5、9、13,通过将来自CBS 模块的数据进行3 次池化并拼接,然后再过一个CBS,旨在增强特征图特征表达能力。为获得训练加速和加速推理,采用更快的空间金字塔池化结构(Spatial Pyramid Pooling - Fast,SPPF),将输入串行通过3 个5×5 卷积核的MaxPool 层,最后将各个输出连接,与SPP 相比,SPPF 指定一个卷积核,每次池化后的输出会成为下一个池化的输入,计算速度更快,以此为基础改造该结构为SPPFCSPC 结构,其结构如图8 所示[23-24]。
图8 SPPFCSPC 结构Fig.8 Structure of SPPFCSPC
2.2 YOLOv7 损失函数改进
YOLOv7 采用CIoU 损失函数,其纵横比权重不明确,其公式中参数反映的是长宽比差异,而不是宽高分别与其置信度的真实差异,在训练后得到模型检测液位时会因为瓶中倾斜液位而出现检测框偏移较大,因而改进为SIoU 公式[25]。
角度计算如图9 所示,其他计算如下。
图9 角度损失函数成本贡献计算Fig.9 Calculation of angle cost contribution into loss function
式中 L ossSIoU−总体损失函数
IoU−预测框与真实框交集和并集比值
Δ−距离损失
Ω−形状损失
Λ−角度损失
A−面积
B−真实框
cw、ch− 真实框与预测框最小外接矩形的宽和高
chc− 真实框和预测框中心点的高度差
σc−真实框和预测框中心点的距离
w、h−预测框的宽和高
wgt、hgt−真实框的宽和高
θ−形状损失关注程度,值为4
SIoU 损失函数考虑了期望回归之间的向量夹角,即角度损失Λ,还包括距离损失Δ、形状损失Ω、IoU损失。方向框的角度会影响回归,引入了角度损失Λ使得预测框快速地移动到最近地最近角度的轴,随后模型将尝试首先在X 或Y 轴做预测(以最接近者为准),然后沿着相关轴继续接近。采用SIoU 作为损失函数相等的训练轮次下精度更高,添加角度惩罚进一步限制距离损失,有效地减少了损失的总自由度[25]。
3 改进后模型训练与评估
3.1 训练软硬件环境与过程
使用处理后的图像作为训练数据集,采用YOLOv7模块,400 次迭代,每8 个样本作为一个批处理单元(Batch size)。以多类别平均精度mAP、准确率(预测为正样本实际为正的概率)Precision、损失值Loss及召回率Recall(实际为正的样本中被预测为正样本的概率),作为模型评价指标;以平均精度mAP 和检测时间t 作为已训练好的模型的主要评价指标。训练配置如表1 所示。
表1 训练与测试环境Tab.1 Train and test environment setting
标注数据集,标注图像共2 477 幅,单瓶样本中,无色透明瓶755 幅、有色透明瓶463 幅、不透明白色瓶150 幅、表面粗糙瓶240 幅;多瓶排列样本269 幅。修改HSV 权值样本100 幅、旋转样本100 幅、加马赛克100 幅、加噪点150 幅及虚化样本150 幅。按照4∶1∶1 的比例分配为训练集、验证集和测试集。
3.2 训练模型
改进后的损失函数曲线如图10 所示。模型损失函数曲线在前50 轮损失值下降较快后开始收敛,300 轮之后损失值变化较小,并且损失值较小,可以确定损失函数有效。
图10 模型训练参数曲线Fig.10 Parameters curves of model training
4 结果与分析
4.1 试验方法
为验证改进后的YOLOv7 饮料生产线关键目标检测模型的识别性能,对模型的测试集做分类验证。
(1)将分配好的含所有类别图像的测试集图像做混合测试,验证模型性能。
(2)测试集分类验证,将分类好的测试集图像样本、改变HSV 权值的样本、马赛克模糊和加噪声3 类识别验证,并对以上识别结果框定区域进行人工评估。
4.2 模型试验
将同样的训练集分别在原YOLOv7 和改进后的YOLOv7 模型上训练。使用二者训练后的模型与本研究改进后的YOLOv7 训练好的最好权值模型在测试集上验证。选取测试项为饮料瓶、液位识别精度、总体识别精度和平均精度,结果如表2 所示,改进后的模型饮料液位识别精度为96.3%,比未改进模型94.5%高1.8 个百分点,模型占用71.3 MB 存储空间。平均识别时间10.7 ms,非极大值抑制时间1.4 ms,平均识别框定时间12.1 ms。
表2 改进后模型评估Tab.2 Improved model evaluation单位:%
4.3 处理后样本测试
进一步测试模型在暗光、色彩失真条件下模型的可靠性和检测的准确性,选取暗光和修改色相、饱和度、亮度和全图马赛克(马赛克核为15×15)的图片各30 张,包含多瓶排列样本和空瓶,分别使用原算法和改进的YOLOv7 训练后得到的最好的模型中测试得到结果如表3 和图11 所示。
表3 失色样本检测Tab.3 Discoloration sample detection
图11 失色样本检测结果Fig.11 Test results of discolored samples
由表3 和图11 可知,在暗光、马赛克、修改饱和度和改变色调的条件下模型没有出现漏检且液位定位准确。
4.4 噪声与虚化目标检测
在实际生产过程,因为相机过热、线路不稳定等因素会出现部分采集样本出现噪点,因而为验证模型稳定性,分别选取30 张加了高斯、椒盐和乘法噪点的样本图像实测模型的抗噪点能力,包含多瓶排列样本和空瓶,检测结果如表4 和图12 所示。通过实测,模型对于出现噪点的样本同样能准确识别,并且液位框定位置准确;增加噪点的样本仍能准确识别并定位液位位置,对含气泡液位也能正确识别。
表4 噪点样本检测Tab.4 Noise sample detection
图12 加噪点饮料液位样本检测结果Fig.12 Test results of add noise bottled beverage liquid level samples
5 结束语
(1)提出的基于YOLOv7 网络模型单幅图像关键目标识别时间10.7 ms 及非极大值抑制(NMS)处理时间1.4 ms,识别并定位平均耗时12.1 ms,模型占71.3 MB存储空间。证明该模型对饮料关键检测目标识别与定位的可行性,替换传统传感器作为瓶装饮料液位高度检测的图像识别程序的触发器,可实现实时的检测触发。
(2)识别模型可实时输出识别框的像素位置数据,图像处理程序根据框位置可直接从图像中截取识别目标进行基于图像处理的实时识别。
(3)对多种处理后图像的试验验证表明,该模型具有抗干扰检测能力,并且在暗光、颜色失真、加噪点和混合多类饮料且多噪点情况下也能识别目标,能够对多种饮料瓶液位识别。