APP下载

改进YOLOv3算法的烟盒缺陷检测

2021-04-27陈同宇范剑伟

物联网技术 2021年4期
关键词:烟盒网络结构损失

陈同宇,陈 洋,范剑伟

(安徽工业大学 机械工程学院,安徽 马鞍山 243000)

0 引 言

传统的香烟盒表面检测方法速度较慢、效率低下[1]。卷积神经网络[2]是一种重要的深度学习模型或多层感知机[3],能够从图像数据中抽取特征[4],在图像识别领域应用广泛[5]。可利用卷积神经网络识别表面缺陷,主要包括基于区域的目标识别方法(Faster R-CNN等)以及基于回归的目标识别方法(YOLO系列等)[6]。YOLO算法具有处理速度快、准确率高等优点。

1 改进的YOLO算法

1.1 网络结构

DarkNet-53网络拥有52个卷积层与1个全连接层,共53层。YOLOv3的工作原理是在DarkNet-53的基础上进行3次检测[7-8],网络结构如图1所示。

图1 YOLOv3原网络结构

YOLOv3在检测烟盒缺陷时容易出现漏检现象,这是由于YOLOv3初始算法中降采样的倍数过大,导致特征图的感受野[9]较大,无法检测小目标。烟盒表面缺陷属于小型目标,因此将YOLOv3原网络尺寸为52×52的特征图进行2倍上采样,得到104×104特征图,将尺寸为104×104的特征图与DarkNet-53网络尺寸为104×104的特征图进行融合,在该层特征图上进行独立预测。改进后的网络共有118层,拥有4个不同尺度的独立预测,其网络结构如图2所示。

图2 改进后的YOLOv3网络结构

实验结果表明,改进后的网络相对于原网络平均检测精度提升了6.8%、查准率提高了7%、查全率提高了7%,但检测速度从最初的24 FPS降到了21 FPS。这表明,添加一层特征检测有利于检测烟盒表面缺陷,但检测速度稍有下降。

1.2 损失函数

YOLOv3算法损失函数包括均方误差(Mean Square Error, MSE)损失函数和交叉熵损失函数,以MSE[10]误差为目标框坐标的损失函数存在3个缺点:Loss越低并不等价于IoU值越高,三对目标框具有相同的Loss,但是IoU值却不一致,如图3所示;候选框与真实框间无重合时,IoU为0,在优化损失函数时,梯度为0,即无法优化;候选框与真实框间IoU相同时,检测效果具有较大差异,如图4所示。

图3 具有相同Loss

图4 具有相同的IoU

IoU是判断相似程度的常用评测标准,计算见式(1):

式中,S1、S2分别为两目标框的面积。

由于MSE损失函数不均衡,提出利用GIoU Loss作为YOLOv3的左右坐标损失依据,其值计算见式(2):

式中:Ac为检测框与真实框的最小闭包面积;U为检测框与真实标注框的相交面积。

GIoU Loss 的计算见式(3):

GIoU作为距离度量标准,其满足非负性、不可分的同一性、对称性和三角不等性等条件,由于GIoU是比值,因此具有尺度适应性;由式(2)可知,求GIoU的最大值可选用IoU计算公式。当两目标框非常接近时,GIoU和IoU相差较小,GIoU越大,IoU也越大。文中处理了原网络MSE误差损失存在的损失优化与最大IoU值计算方向不一致和尺度敏感等问题。

2 实验结果分析

2.1 数据集准备

通过相机拍照的方式采集图片。文中的数据集全部来源于利群香烟盒。为了增加模型的泛发性和训练精度,在获取图像时,数据集增加了许多不同形态特征、角度、位置的烟盒图片。烟盒表面既有明显缺陷也有微小瑕疵。烟盒的缺陷可出现在烟盒的任何位置,同一个烟盒上可能出现不同形状、不同数量的缺陷。数据集共包含500张图片,其中400张图片作为训练集,100张图片作为测试集。烟盒缺陷标签借助labelImg软件实现。图片上的缺陷,划痕以水笔所画代替,划痕和污点均为flaw标注,数据集标注时只标注flaw类缺陷。

2.2 烟盒缺陷检测工作流程

文中提出的改进YOLOv3算法的烟盒表面缺陷检测方法具体检测过程如图5所示,主要包括以下步骤:

图5 烟盒检测流程

(1)通过相机采集需要检测的烟盒图片;

(2)将采集到的图片带入深度学习模型检测并判断有无缺陷;

(3)如果有缺陷,则剔除,如果无缺陷,则继续检测;

(4)收集无缺陷的烟盒,增大数据集。

2.3 结果与分析

本文采用精度均值(mean Average Precision, mAP)、查全率(召唤率)、查准率(准确率)等对原网络模型和改进后的网络模型进行评估。

用改进后的网络模型进行训练,训练次数为3 000次时检测模型的平均精度最高,其结果如图6所示。从图6可以看出,改进后的网络模型对比原网络平均精度有较大提升,约为6.48%,充分说明4倍下采样特征层更有利于小目标检测,改进后的网络检测效果更佳。

图6 改进前后平均检测精度

模型检测结果见表1所列。改进后的网络在不影响实时检测的情况下大大提升了检测精度,大幅降低了漏检、错检出现的概率。

表1 模型检测结果

2.4 测试结果对比分析

分别对原网络的检测模型与改进后的最优检测模型进行检测,在原网络中,单处缺陷检测精度为0.46。改进后,检测精度为0.97,提升约51%。同时,原网络还出现了漏检的情况,试验图中有2处缺陷,但原网络未检测出来,而改进后的网络则准确检测出了原模型的2个缺陷,虽然此处置信度不高(可能因光照分布不均匀引起),但相对原网络有较大提升。

2.5 与其他目标检测网络的对比

采用具有较快检测速度与精度的SSD目标检测网络对烟盒缺陷进行训练4 000次得到模型,与文中提出的方法进行对比,结果见表2所列。通过对比,改进后的YOLOv3模型具有更高的准确率,弥补了原网络和SSD的不足,检测效果大幅提升。

表2 不同方法的检测结果

3 结 语

研究提出的基于改进YOLOv3算法的烟盒表面缺陷检测方法更适合小目标检测,检测模型的平均精度、查准率、查全率等均得到不同程度的提升,虽然速度略有下降,但完全满足工业实时检测的要求。

猜你喜欢

烟盒网络结构损失
胖胖损失了多少元
用烟盒做一架小飞机
玉米抽穗前倒伏怎么办?怎么减少损失?
烟盒博物馆之旅
烟盒博物馆之旅
创意
基于互信息的贝叶斯网络结构学习
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
沪港通下A+ H股票网络结构演化的实证分析
复杂网络结构比对算法研究进展