掌桥专利:专业的专利平台
掌桥专利
首页

一种基于YOLOv3的酒瓶瑕疵自动检测方法

文献发布时间:2023-06-19 09:27:35


一种基于YOLOv3的酒瓶瑕疵自动检测方法

技术领域

本发明涉及深度学习计算机视觉技术领域,尤其涉及一种基于YOLOv3的酒瓶瑕疵自动检测方法。

背景技术

随着我国生产制造业不断转型自动化生产,由以前的人工占主导逐步转型为以机器占主导的生成流水线,人工智能算法发挥着至关重要的作用。例如,在酒瓶制造厂家在酒瓶的生产过程中,以前主要由人工来完成酒瓶的质量检测,由于酒瓶的制造数量庞大,造成检测的任务量巨大,并且易出现漏检。而现在采用计算机视觉算法,利用摄像头拍摄酒瓶就能立即判断酒瓶是否含有瑕疵,解放人工,因此,现有技术需要进一步改进和完善。

发明内容

本发明的目的在于克服现有技术的不足,提供一种基于YOLOv3的酒瓶瑕疵自动检测方法。

本发明的目的通过下述技术方案实现:

一种基于YOLOv3的酒瓶瑕疵自动检测方法,主要包括如下步骤:

步骤S1:采集生产现场丰富的瑕疵酒瓶的图片数据,以待模型学习;

步骤S2:将图片中的瑕疵进行标注,然后按照VOC数据集的类型进行制作;

步骤S3:将所有的数据进行可视化总结数据各类别的分布情况;

步骤S4:利用YOLOv3网络对数据中的酒瓶瑕疵进行学习,利用深度学习的多层卷积对数据进行拟合,得到收敛后的权重模型;

步骤S5:利用学习后的权重模型对测试集的瑕疵酒瓶图像进行测试,然后对参数进行调整后重新训练;

步骤S6:模型测试提升稳定后,通过优化方案对模型进行优化,提高精度;

步骤S7:获得最终的模型到现场的识别系统上进行调试。

进一步的,所述步骤S1中,利用两个高精度的工业相机分别采集瓶盖和瓶身的图像数据,由于两部分的环境因素和尺寸比例不太一样,所以分开获取;然后,通过opencv(图像处理库)调整图像的大小为416×416。

进一步的,在步骤S2中,根据所有瑕疵类别分为十种瑕疵,分别为瓶盖破损、瓶盖变形、瓶盖坏边、瓶盖打旋、瓶盖断点、标贴歪斜、标贴起皱、标贴气泡、喷码正常、喷码异常;利用目标分割的标记软件LabelImg对瑕疵进行人工标注,将所有图片中的瑕疵进行框选和标记分类,得到图像的标注信息文件,然后按照VOC数据集的格式,对数据和对应标注文件就进行整理,分成训练集、验证机和测试集三部分。

进一步的,在步骤S3中,利用panda库和matplotlib库等进行数据可视化,查看数据的分布情况以及瑕疵特征各种类型的数据量占比,并根据分布对比图数据,可以相对应的调整数据的类别特征数量,保证每个类别的数据量都足够模型进行学习,保证数据的均衡性。

进一步的,在步骤S4中,YOLOv3主干结构,是由Darknet-53网络构成,它借鉴了ResNet的残差结构,有53层的卷积网络,其中包含23个残差块,使用这种结构可以让网络结构更深,可以提取到深层的语义信息;其中网络结构中的5个resX结构,X代表数字,分别为有res1,res2,…,res8,表示这个res_block里含有n个res_unit,这是Yolo v3的大组件;其基本组件也是DBL,是由一层卷积,一层BN层和一层LeakyReLU激活层组成;BN层的应用可以加快收敛速度,把每层的数据都在转换在均值为零,方差为1的状态下,这样每层数据的分布都是一样的训练会比较容易收敛,其次防止梯度爆炸和梯度消失。

进一步的,在步骤S4中,Yolo v3关于bounding box的初始尺寸还是采用Yolo v2中的k-means聚类的方式来做,这种先验知识对于bounding box的初始化帮助还是很大的,毕竟过多的bounding box虽然对于效果来说有保障,但是对于算法速度影响还是比较大的,相比较Faster RCNN等two-stage的结构预测速度要快很多,速度能达到30FPS,并且在速度高的同时保证了在coco数据集上的mAP可达57.9%。

进一步的,在步骤S4中,Yolo v3预测部分,是由三条支路组成,通过对不同尺度的张量进行拼接操作(concat)来获得三个不同尺度的预测,三个不同尺度的输出对应三个卷积层,最后的卷积层的卷积核个数是45,是针对总的分类数为10类:3×(10+4+1)=45,3表示一个grid cell包含3个bounding box,4表示框的4个坐标信息,1表示置信度。

进一步的,在步骤S5中,通过评估模型对的各类瑕疵的检测能力,计算各类别的AP(average precision)值,以及总的mAP(mean average precision)值,观察每个类别的AP值,其中AP值低的,针对性的对该类数据加强学习,来提高模型的整体检测精度。

进一步的,在步骤S6中,在模型训练基本参数训练稳定之后可以,可以修改cfg文件和更换backbone网络等优化方案来,继续提高模型的精度。

本发明的工作过程和原理是:本发明利用YOLOv3网络结构去学习到通过人工采集标记的酒瓶瑕疵图片数据中的缺陷特征之后,得到一个可以自动识别生产中的酒瓶上是否含有瑕疵的模型,然后将这个模型加载到一个实时酒瓶识别系统中去,实时拍摄然后实时返回识别的结果,就能解决人工检测带的低效率和精度的问题,帮助提升生产过程的自动化程度,该方法检测速度非常快,可以一秒检测多张图像,满足大批量检测任务的需求,并且克服了之前版本对于小尺寸的目标识别精度不高的缺陷,检测的精度得到显著提高。本发明还具有操作方便、容易实施的优点。

与现有技术相比,本发明还具有以下优点:

(1)本发明所提供的基于YOLOv3的酒瓶瑕疵自动检测方法利用计算机视觉算法,识别的速度和精度都要远远优与人工,大大提升了生产之后的检测效率和精度,保证了生产的高速稳定进行。

(2)本发明所提供的基于YOLOv3的酒瓶瑕疵自动检测方法在保证足够高的检测的精度前提下,还在检测速度上明显快于其他two-stage的模型,速度能达到30FPS,并且在速度高的同时保证了在coco数据集上的mAP可达57.9%。

(3)本发明所提供的基于YOLOv3的酒瓶瑕疵自动检测方法在模型预测的结构设计中,通过融合多尺度的特征来保证模型对于尺度变化范围较大的特征都能学习预测到。

(4)本发明所提供的基于YOLOv3的酒瓶瑕疵自动检测方法采用直接预测相对位置的方法,并预测出b-box中心点相对于网格单元左上角的相对坐标,通过IoU的误差乘以回归计算的预测类别概率来计算损失,保证训练时类别和定位的精度的提升。

附图说明

图1、图2和图3是本发明是利用工业采集的原始含有酒瓶瑕疵的数据图像。

图4是本发明中YOLOv3模型的网络结构框架图。

图5是本发明利用YOLOv3模型训练酒瓶瑕疵数据之后进行预测生产的图像。

图6是本发明对模型进行现场测试的一个简化系统图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明作进一步说明。

实施例1:

如图1至图6所示,本实施例公开了一种基于深度学习目标检测的酒瓶瑕疵检测方法,其特征在于利用one-stage的YOLOv3多尺度特征提取检测网络实现多类别以及尺度范围较大的瑕疵目标的准确定位和分类,具体包括以下实施步骤:

步骤一、采集生产现场丰富的瑕疵酒瓶的图片数据,以待模型学习。

(1)因为酒瓶瑕疵可能在瓶盖和瓶身,所以将分别采集瓶身和瓶盖的图片。

(2)采用高精度的工业相机拍摄在生产环境下的瑕疵酒瓶照片,需要在两个地方布置相机,一个采集瓶盖图片,一个进行采集瓶身图片,如图1和图2。

(3)将图片利用opencv库全部统一成416×416大小,保证网络的输入的固定大小。

步骤二、将图片中的瑕疵进行标注,然后按照VOC数据集的类型进行制作。

(1)根据所有瑕疵类别,制定出所有瑕疵特征的标准,一种分为10中瑕疵:

1:'瓶盖破损'、2:'瓶盖变形'、3:'瓶盖坏边'、4:'瓶盖打旋'、5:'瓶盖断点'、6:'标贴歪斜'、7:'标贴起皱'、8:'标贴气泡'、9:'喷码正常'、10:'喷码异常'。

(2)然后利用目标分割的标记软件LabelImg对瑕疵进行人工标注,将所有图片中的瑕疵进行框选和标记分类,得到图像的标注信息文件。

(3)然后按照VOC数据集的格式,对数据和对应标注文件就进行整理,分成训练集、验证机和测试集三部分。

步骤三、将所有的数据进行可视化总结数据各类别的分布情况。

标注整理完之后,将所有标注信息数据利用panda库和matplotlib库等进行数据可视化,查看数据的分布情况,以及瑕疵特征各种类型的数据量占比,如图3可以看出各种特征的比例关系,保证每个类别的数据量都足够模型进行学习,保证数据的均衡性。

步骤四、利用YOLOv3网络对数据中的酒瓶瑕疵进行学习,利用深度学习的多层卷积对数据进行拟合,得到收敛后的权重模型。

(1)YOLOv3网络结构的特性:YOLO是一种端到端的目标检测模型,如图4,其基本思想是:首先通过特征提取网络对输入特征提取特征,得到特定大小的特征图输出。输入图像分成13×13的grid cell,接着如果真实框中某个object的中心坐标落在某个grid cell中,那么就由该grid cell来预测该object。每个object有固定数量的bounding box,YOLOv3中有三个bounding box,使用逻辑回归确定用来预测的回归框。

(2)首先,特征提取部分,也就是YOLOv3主干结构,是由Darknet-53网络构成,它借鉴了ResNet的残差结构,有53层的卷积网络,其中包含23个残差块,使用这种结构可以让网络结构更深,可以提取到深层的语义信息。其中网络结构图中的5个resX结构。X代表数字,有res1,res2,…,res8等等,表示这个res_block里含有n个res_unit,这是Yolo v3的大组件。其基本组件也是DBL,是由一层卷积,一层BN层和一层LeakyReLU激活层组成,Darknet-53中有5次卷积的步长为2。经过5次缩小,特征图缩小为原输入尺寸的1/32。所以网络输入图片的尺寸为32的倍数,取为416×416。

(3)其次,预测部分,是由三条支路组成,通过对不同尺度的张量进行拼接操作(concat)来获得三个不同尺度的预测,三个不同尺度的输出对应三个卷积层,最后的卷积层的卷积核个数是45,是针对总的分类数为10类:3×(10+4+1)=45,3表示一个grid cell包含3个bounding box,4表示框的4个坐标信息,1表示置信度。

(4)Yolo v3关于bounding box的初始尺寸还是采用Yolo v2中的k-means聚类的方式来做,这种先验知识对于bounding box的初始化帮助还是很大的,毕竟过多的bounding box虽然对于效果来说有保障,但是对于算法速度影响还是比较大的。

(5)Yolo v3采用直接预测相对位置的方法。预测出b-box中心点相对于网格单元左上角的相对坐标。直接预测出(tx,ty,tw,th,t0),然后通过以下坐标偏移公式计算得到b-box的位置大小和confidence。

b

b

p

tx、ty、tw、th就是模型的预测输出。cx和cy表示grid cell的坐标,比如某层的feature map大小是13×13,那么grid cell就有13×13个,第0行第1列的grid cell的坐标cx就是0,cy就是1。pw和ph表示预测前bounding box的size。bx、by、bw和bh就是预测得到的bounding box的中心的坐标和size。在训练这几个坐标值的时候采用了sum of squarederror loss(平方和距离误差损失),因为这种方式的误差可以很快的计算出来。

(6)Yolo v3使用逻辑回归预测每个边界框的分数。如果边界框与真实框的重叠度比之前的任何其他边界框都要好,则该值应该为1。如果边界框不是最好的,但确实与真实对象的重叠超过某个阈值(Yolo v3中这里设定的阈值是0.5),那么就忽略这次预测。Yolov3只为每个真实对象分配一个边界框,如果边界框与真实对象不吻合,则不会产生坐标或类别预测损失,只会产生物体预测损失。

(7)将数据集输入到网路模型中来学习酒瓶瑕疵的特征,得到输出对应位置信息和类别信息,然后利用loss函数(二值交叉熵损失)和标记的信息进行对比计算出误差,通过梯度下降和反向传播来逐步拟合得到更好的瑕疵检测模型。

步骤五、利用学习后的权重模型对测试集的瑕疵酒瓶图像进行测试,然后对参数进行调整后重新训练。

(1)模型训练拟合之后,可以初步利用测试集数据对模型进行一个测试,查看模型对新的数据的瑕疵检测的精度如何。大致的效果图如图5所示。先粗略查看模型是否出现基本的错误(标签对应出错、明显瑕疵未检测出等),如果有,就需要重新检查数据标注信息和训练文件的设置信息。

(2)如果没有出现基本错误,那么可以评估模型对的各类瑕疵的检测能力,计算各类别的AP(average precision)值和mAP(mean average precision)值。观察每个类别的AP值,然后可以得到哪些类别的识别精度还不够高,针对性的对该类数据进行数据增强等操作,来提高模型的整体检测精度。

步骤六、模型测试提升稳定后,通过优化方案对模型进行优化,提高精度。

(1)可以通过将cfg文件中的random参数设置为1,可以增加检测精度。

(2)可以增加输入图像的尺寸,在.cfg文件中设置(height=608,heigh=608)以上,但是要保证是32的倍数,可以增加检测精度。

(3)确保数据集中所有的class都有对应的label,可以使用代码进行核对。

(4)增加数据的丰富性,保证所有不同生产背景下、不同光照下都有足够多的图像,然后保证训练时的迭代次数够多。

步骤七、获得最终的模型到现场的识别系统上进行调试。

最终当模型的训练精度足够高和足够稳定之后,可以加载到现场进行测试,我们利用图6的系统结构对模型进行实时测试,利用固定安装的工业相机采集到生产的酒瓶图像(另一个采集酒瓶瓶盖的摄像头和这个类似,未在图中画出),然后传给电脑输入到模型中,进行瑕疵的检测,观察检测的效果是否稳定,不稳定,就需要对比现场的环境是都发生变化,如果变化需要重新采集新的图像数据,然后进行训练学习,来提高模型的识别精度直到模型能稳定检测出图像中的瑕疵。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

相关技术
  • 一种基于YOLOv3的酒瓶瑕疵自动检测方法
  • 一种基于改进YOLOv3算法的木结瑕疵检测方法
技术分类

06120112172025