APP下载

基于Faster R-CNN的玻璃瓶缺陷检测技术

2021-08-04张师嘉

沈阳航空航天大学学报 2021年3期
关键词:玻璃瓶特征提取残差

林 峰,张师嘉,傅 莉

(沈阳航空航天大学 a.电子信息工程学院;b.自动化学院,沈阳 110136)

玻璃瓶在日常生活中的广泛应用推动了玻璃瓶生产需求,同时玻璃瓶质量的检测给生产厂家带来的困扰也随之而来,裂纹,气泡等缺陷容易导致玻璃瓶包装产品爆瓶,给玻璃瓶消费者带来的安全隐患也随之而来。最初,在玻璃瓶的质量检测上使用较多的是人工检测,大批量检测工作强度、疲劳作业、操作不当等因素导致肉眼检测准确性不稳定,并且在不同的光线背景下黑点、气泡等这类小目标缺陷,通过肉眼很难辨识出来,导致检测结果不可靠,直接影响了生产质量。相比之下,实现玻璃瓶的自动化检测具有更多优势,而基于机器视觉的检测技术已广泛应用于交通[1]、医疗[2]、农业[3]、通信[4]、工业生产[5]等行业其在玻璃瓶质量检测中的应用日渐普及。

传统的玻璃瓶缺陷检测算法主要有3个步骤构成[6]:(1)选出候选检测区域;(2)提取待测目标特征;(3)设计分类器分类。传统的缺陷检测方法[7]需要基于人类的先验知识实现提取缺陷特征,然后再进行分类,可以达到一定程度的检测效果。但是面对缺陷的多样性,数据量剧增等情况仍有滑窗效率低下、特征不够鲁棒等不足之处存在,阻碍了在工业生产中的大规模应用[8]。

近几年,深度学习在目标检测领域的优势逐渐显现出来,然而深度学习并不是近几年才诞生的全新技术,早在2006年,Hinton[9]等人提出了深度学习这一概念,运用卷积神经网络从数据中学习特征。随着GPU(Graphics Processing Unit)在矩阵计算领域的能力不断提升,2012年,深度卷积神经网络 AlexNet[10]的首次提出使人们把目光再一次聚集在了深度学习上。从R-CNN[11](Region-based Convolutional Neural Networks)到Fast R-CNN[12]再到Faster R-CNN[13],被称为R-CNN系列,他们都是先提取候选框,再进行分类与回归的原理,被称为two-stage方法。

本文针对玻璃瓶缺陷目标的检测问题,将FasterR-CNN引入到玻璃瓶缺陷检测的瓶身检测任务中,根据玻璃瓶的缺陷特征以及实验环境对Kaming He等人在文献[12]中提出的FasterR-CNN进行了改进,选择适用的特征提取网格并调整锚框的尺度和数量,最终对于小目标的玻璃瓶缺陷也具有较好的检测效果。

1 网络结构模型

本文使用改进的FasterR-CNN进行目标检测,首先将玻璃瓶缺陷数据集的图片输入Resnet101的特征提取网络,然后将提取的特征图分成两部分,一部分直接输入RoI pooling层,另一部分先输入RPN区域生成网络之后再输入RoI pooling层进行池化。经过若干层的卷积和池化操作后,将得到的特征图依次按行展开,连接成向量,输入全连接层,最后进入到分类回归网络中实现目标分类和目标框的输出,完成玻璃瓶缺陷检测。图1为基于Faster R-CNN的玻璃瓶缺陷检测网络结构。

图1 基于Faster R-CNN的玻璃瓶缺陷检测网络结构

1.1 特征提取网络

FasterR-CNN检测目标时的特征提取网络(backbone)使用VGGNet[14]时,目标检测的准确率受特征提取网络的影响颇深,因此综合玻璃瓶的缺陷微小、颜色单一、尺寸比例不一的特点以及训练的环境要求,本文选用Resnet101作为玻璃瓶缺陷检测模型的特征提取网络,虽然网络深度增加但是复杂度却更低,同时准确率得到明显提升。

ResNet[15]是由微软研究院Kaming He等人提出的一种网络结构,ResNet又名残差神经网络,受VGGNet的启发在传统卷积神经网络中加入残差学习的思想,图2为残差网络的基本单元结构。

图2 残差网络的基本单元结构

在残差基础单元中,如果把输入的一部分按照原本的神经网络进行输出,另一部分直接连接到输出,两部分相加之后作为输出结果,那么训练目标就成为残差。假定残差表示为F(x),如式(1)所示。

F(x)=H(x)-x

(1)

式中,x表示为某个堆叠层的第一层输入,H(x)为要拟合的基础映射,即期望输出。ResNet解决了深层网络中梯度弥散和精度下降的问题,使网络能够越来越深,既保证了精度,又控制了速度。

1.2 RoI Pooling层

为了解决R-CNN在输入不同大小候选区域时,将所有的区域缩放到同一尺寸而导致的目标变形、信息丢失的问题,Fast R-CNN中设计了RoI Pooling层,其中anchor的本质是借鉴SPP池化层[16]思想的逆向,SPP的本质是将不同尺寸的输入重新裁剪成为相同尺寸的输出,所以SPP的逆向就是倒推相同尺寸的输出以得到不同尺寸的输入。RoI Pooling层实现将原始图像中任意大小的RoI通过RoI Pooling层之后固定为特定的维度输出,去掉了直接对原始图像裁剪、缩放等操作的约束。

然而Fast R-CNN并没有解决R-CNN在selective search[17]方法上的过大计算量、过多冗余操作的问题。

1.3 RPN网络

在Faster R-CNN中RPN网络代替了selective search方法,RPN与主网络共享部分特征提取网络,减少了过多冗余操作并保证了检测精度。RPN网络主要进行了3个工作:预测anchor的类别及其位置;生成训练RPN网络的标签信息;生成训练分类和回归网络的proposal layer以及对应的标签信息。

锚框3个参数为base_size,ratios和scales,锚框的基本尺度等于base_size和scales的乘积,Faster R-CNN初始设置base_size=16,scales={8,16,32},那么3个基本尺度分别是128,256和512。Faster R-CNN初始设置的3个基本尺度上有3个ratio,即长宽比为{0.5,1,2},那么最终生成9个锚框。Faster R-CNN中的初始设置最小尺寸的锚框为128,不能较好完成玻璃缺陷中存在着许多尺寸较小的“黑点”类缺陷的检测任务,为了提高针对小目标的玻璃缺陷的检测能力,本文选择将scales的数量改为4种,其中增加一组scales为64的anchor,长宽比不变,即RPN的anchor生成参数设置为base_size=16,scales={4,8,16,32},ratio={0.5,1,2},RPN的锚框最终改变为12种。

1.4 分类回归网络

FasterR-CNN的损失主要分为RPN的损失和Fast R-CNN的损失,并且两部分损失都包括分类损失和回归损失,整体损失函数定义为

(2)

(3)

在目标检测模型中,RPN的分类损失是二分类的交叉熵损失,而Fast R-CNN的分类损失是多分类的交叉熵损失。

(4)

式中,当进行RPN训练时,R为smooth L1函数取σ=3时的值;当进行Fast R-CNN训练时,R为smooth L1函数取σ=1时的值,smooth L1函数定义为

(5)

2 玻璃瓶缺陷数据集

2.1 玻璃瓶缺陷样本图片采集

为了建立玻璃瓶缺陷数据集,本文的图像采集系统主要由LED照明光源、工业相机镜头、图像采集卡以及其他机械硬件设备等合理结合,对带有瑕疵的玻璃瓶进行拍摄以采集图像。由于玻璃瓶是近似透明的物体,为了更加明显地拍摄出玻璃瓶上的瑕疵部分,将平板LED光源作为玻璃瓶的拍摄背景,目的是让瓶体更加通透,瑕疵的细节更加明显,使得LED平板光源、玻璃瓶、工业相机镜头3者中心位于一条直线上。采集到的100余张图片中黑点17张,气泡18张,冷斑34张,裂纹19张,模缝13张。将图片通过LabelImg进行人工缺陷标注转换并保存为xml格式文件。

2.2 数据集制作

首先,由于玻璃瓶的数量有限,本文通过编写Python程序对原始图片进行预处理,通过旋转操作对采集的原图进行处理数据增强,降低模型对目标位置的敏感性;通过使用图像的对数灰度变换操作对采集的原图进行数据增强,降低模型对色彩的敏感性。

图3 数据集预处理前后对比

对图片进行预处理的同时修改相应的xml格式文件中的标记坐标,使数据集内包含了1010张带有标注信息的图片,大大减少了烦冗的人工操作。在经过离线数据增强所得到的数据集中,含有黑点170张,气泡180张,冷斑340张,裂纹190张,模缝130张。然后,将数据集处理成PASCAL VOC2007数据集格式,并且,通过Python中的random.sample()方法将数据集按照8∶1∶1的比例随机划分为训练集、验证集和测试集。彼此相互独立不重合,令实验结果更具有独立性和信服力。

3 模型训练结果与分析

网络训练平台使用Tensorflow深度学习框架,在Python语言环境下,采用NVIDIA GTX1060Ti GPU进行加速计算。本玻璃瓶缺陷检测实验采用目标检测常用评价指标mAP,表示所有类别目标的检测准确率平均值,算法检测精度越高,mAP数值就越高。

本文选用VGG16、Resnet50和Resnet1013种网络分别作为特征提取网络并对三者的计算结果进行对比,选择准确率高的作为玻璃瓶缺陷检测网络训练的特征提取网络模型。由表1可以看出,在相同的条件下,Resnet101的mAP更高,该网络对于玻璃瓶缺陷检测的准确度更高。因此本文提出改进 Faster R-CNN 玻璃瓶缺陷检测网络结构模型,以Resnet101卷积神经网络为特征提取网络,其中 RPN 网络与Resnet共享卷积层,下一步根据本文所要检测的目标修改anchor参数。

表1 相同基本尺度下VGG16、Resnet50和Resnet101进行缺陷检测

将3组不同尺寸的anchor全都使用Resnet101对本文建立的数据集进行训练,由表2可以看出,当scale设置为642,1282,2562,5122时,mAP值最高,达到了0.837,相比 Faster R-CNN与VGG16的结合方式提升了5.2%。因此,玻璃瓶缺陷目标在642,1282,2562,5122的基本尺度下的锚框覆盖率最佳,保证大目标缺陷检测精度的同时也加强了小目标缺陷的检测精度。

表2 不同基本尺度下Resnet101进行缺陷检测

基于改进后Faster R-CNN模型部分检测效果图如图4所示。在图中,方框标定了模型所检测出来的缺陷位置;方框上方左侧英文代表模型对于缺陷定位得到的目标的分类名称,右侧数字代表了模型计算出的属于此玻璃瓶缺陷类别的概率值,其中图4b下方的冷斑缺陷识别概率值达到最高精度值0.999。

图4 基于改进后的Faster R-CNN模型的部分检测结果图

4 结论

实现玻璃瓶缺陷检测技术与深度学习相结合能够减少检测环节中的人力物力消耗,并且能够提高生产效率。本文实现了一种基于改进的Faster R-CNN的玻璃瓶缺陷检测方法,把深度学习应用到玻璃瓶缺陷检测技术的研究中,根据检测目标的特点进行改进,能够有效地检测出形态各异的缺陷并识别出缺陷类型,本文所做主要贡献如下:

(1)针对目标检测数据不足的问题,在数据集的预处理阶段引入了多种离线数据增强的方法;

(2)为解决Faster R-CNN检测小目标的缺陷精确度不高的问题,使用Resnet101作为特征提取网络并且调整anchor的尺度达到缺陷检测的mAP值为83.73%,相比改进前方法提高了5.19%。

本文的研究为玻璃瓶缺陷识别技术的研究提供了思路和方法,同时为其他领域的图像处理与识别技术提供了较好的借鉴。

猜你喜欢

玻璃瓶特征提取残差
两个玻璃瓶
基于双向GRU与残差拟合的车辆跟驰建模
基于残差学习的自适应无人机目标跟踪算法
光影之玻璃瓶
基于递归残差网络的图像超分辨率重建
基于Daubechies(dbN)的飞行器音频特征提取
玻璃瓶DIY迷你童话世界
Bagging RCSP脑电特征提取算法
“流汗”的玻璃瓶
平稳自相关过程的残差累积和控制图