基于ResNet网络的医用塑瓶制造缺陷检测方法

2020-04-23 11:18任德均胡云起
计算机与现代化 2020年4期
关键词:残差气泡卷积

付 磊,任德均,胡云起,郜 明,邱 吕

(四川大学机械工程学院,四川 成都 610065)

0 引 言

随着医药产业升级,医用输液瓶逐渐对以往广泛使用的无密封玻璃瓶、半密封玻璃瓶与半密封塑料瓶乃至全密封塑瓶进行了全面的更替[1],由于无法完全保证注塑工艺的一致性和稳定性,在实际塑瓶生产过程中存在一些产品缺陷,主要缺陷体现为以下3种情况:1)受热不均导致的瓶身气泡;2)非精确吹塑导致的无吊环塑瓶;3)吹气过程中底部气压不均导致的积料。传统的人工检测在生产量大的情况下检测精度低,检测结果不稳定。机器学习[2-3]、深度学习[4-5]具有对大数据处理与学习的优势,其在制药行业中缺陷检测的应用逐渐增多。

目前塑瓶检测往往采用基于“Halcon”的传统图像处理算法[6-8],通常按照选取图片中物体的位置,对图片进行预处理,进而采用模板匹配或者差分方法的方式来检测缺陷[9-11],但其无法准确判断所检测的缺陷种类,且要求图像的缺陷与背景的灰度对比较大。伴随着深度学习浪潮的兴起,采用卷积神经网络对图片进行分类与定位的效果也得到很好的验证[12-15]。采用卷积神经网络的优点是:

1)不需要人为的设计特征,避免了设计人员经验不足所造成的局部最优特征。

2)检测精度高。2015年深度学习在图像分类方面已经低于人工标注的5%错误率[16]。

3)相对于传统图像检测方法,基于深度学习的检测方法对图片质量的要求较低。但是深度学习由于对硬件要求高,要达到实时性处理需要一定的计算能力。目前随着计算机性能的提升及算法的进步,深度学习也逐渐满足在工业、嵌入设备上的应用需求。

本文对瓶底积料、气泡的缺陷特征进行评估,鉴于传统图像处理的局限性而采用深度学习方法,采用ResNet[17]为骨干的分类网络检测积料缺陷,采用基于ResNet演化的RetinaNet[18]为骨干的目标检测网络检测气泡缺陷。

1 视觉检测系统设计

视觉检测系统一般包括成像系统、软件处理系统和机器控制系统。成像系统包括照明部分、光源控制部分、图像采集部分;软件处理系统包括软件操作界面、图像处理算法;机器控制系统包括医用塑瓶的传输装置、光电控制器、不合格产品剔除装置。由传输装置将塑瓶输入到成像系统中,触发光源控制器发出信号给塑瓶“打光”,同时图像采集部分采集图片,然后将图片传入图像处理算法中判别塑瓶是否合格,最后将不合格的塑瓶信号传给剔除装置,将不合格的产品剔除。检测系统的图像获取装置如图1所示。

在实验过程中发现:医用塑瓶的底部由于其厚度的不均匀性导致瓶底部分对光的反射有明显的差异,为了让图片呈现更明显的缺陷区域特征,减少局部区域“过曝”的现象,在塑瓶底部采用低角度的环形光源。由于透光率较高,塑瓶的气泡缺陷与实体不存在明显色差,经多次实验确定采用背面“打光”方式,拍摄的气泡边缘呈现灰色,而其余区域为白色。同时考虑生产效率、检测速度及检测成本,本文采用130万像素的“Basler”工业相机。

图1 检测系统图像获取装置

2 基于深度学习的分类及定位检测算法

2.1 基于改进ResNet积料分类检测算法

ResNet是由He等人[17]在2015年的ImageNet挑战赛中提出的网络结构,缓解了随着网络深度的加深,网络的性能反而退化的问题,ResNet网络学习的残差特征为:

F(x)=H(x)-x

(1)

其中,H(x)为融合后的特征,x为输入特征,F(x)为残差块内处理后的特征。

图2 ResNet网络结构

(a) 通道不变残差结构

(b) 结合通道间信息的残差结构

该网络通过学习恒等映射的扰动来降低学习新网络的难度,补充上层特征后使下层特征更加丰富来增强其性能。在“Halcon”现有的深度学习包里面就采用了ResNet50网络,说明其在工业检测具有一定的可靠性,因此本文采用ResNet为骨干网络,结合通道间信息来检测积料缺陷。网络结构知图2所示,其由卷积、池化、改进残差块与线性分类器组成。残差块如图3所示,图3(a)为ResNet原残差块,输入特征经过卷积、批量正则化、池化、再重复上述的流程,最后将输出与输入特征按像素进行叠加作为下一次的输入;改进残差块[19]如图3(b)所示,在卷积过后提取每个通道所占的重要性,使其与卷积过后的特征层进行相乘,最后与输入特征进行相加,从而使卷积获得局部区域的空间与通道的融合信息。

2.2 基于RetinaNet目标检测的气泡检测算法

2.2.1 检测算法框架

在目标检测中,随着卷积层数的增加,获取的信息由原来的细节信息逐渐变成语义信息,导致在检测过程中高层的特征对分类具有很好的性能,但是在定位检测上容易漏检一些尺寸较小的物体,而RetinaNet的分类定位层采用该层的图像卷积特征,再与上级特征的上采样特征层相加,获取更加准确的目标信息,同时逐特征层预测,进一步增强对不同尺度目标检测的鲁棒性。图4为RetinaNet网络结构,其采用ResNet网络的基本骨架(去除全连接层同时增加了2个卷积层),输出5层不同的特征,保留最后的2层卷积层,剩余3层采用上采样并融合当前层的特征获取更具鲁棒性的特征层,最后分别采用4个卷积进行定位与分类。

图4 RetinaNet网络结构

2.2.2 算法关键点阐述

在目标检测中,正负样本的选择上RetinaNet借鉴了SSD[20]以及Fast-RCNN[21]演化为Faster-RCNN[22]中的关于anchor思想,在上述得到的5个不同的特征层上生成候选区域,并将候选区域的每个像素格子的中点映射到原图,然后在原图上产生一定大小的矩形框。考虑到检测物体的形状与大小而采用多尺寸多面积的锚框,其中大小上采用{20,21/3,22/3}这3种尺度,在形状上采用{1:2,1:1,2:1}这3种长宽比。图4中的第7层为最小候选区域,对应的锚框的面积最大,值为512×512,图4中的层数逐渐下降,其所对应原图锚框的面积逐层减少4倍。

在分类与定位网络中传入的是图4中间的特征层,并进行一系列的卷积池化生成对类别的预测与坐标的预测。类别采用的损失函数为平滑损失函数,而对于定位的损失采用Focal_loss损失函数,较好地解决了正负样本不均衡问题,该函数为:

FL(pt)=-αt(1-pt)γlog(pt)

(2)

(3)

(4)

其中,γ为聚焦参数,p为模型估计类别为1的概率,α为类别为1的权重大小,其值为[0,1]。

通过αt来减少负样本对训练损失的贡献程度,γ用来减少简单样本对损失的贡献程度与增加困难样本对损失的贡献程度。

3 检测实验与结果分析

3.1 数据集的构建

本文采用的数据为某注塑企业生产过程中产生的有缺陷的医用塑瓶及无缺陷的医用塑瓶,缺陷包含底部积料、瓶身气泡2类。瓶底积料、瓶身气泡图的分辨率均为1280×1024。

3.2 图像的预处理

在积料检测中,采用的有积料的图片为1985幅,无积料的图片为1815幅,共3800幅;其中训练集中无积料图片有1600幅,有积料图片有1850幅,其中“参杂”了些相似类型的积料图,如图5(a)所示;测试图片中无积料图片有215幅,积料图片有135幅。在气泡检测中训练采用了600幅有气泡的瓶身图,通过LabelImg软件对其进行标注,获取每个气泡在图片的位置信息。

(a) 相似瓶底积料图 (b) 检测瓶底积料图 (c) 瓶身气泡图

为了减少背景的干扰,增强图片的检测区域与背景的对比度,本文对图片进行预处理,提取图片的积料环形区,去除“采图”时由环境造成的噪声并且凸显检测区域。同时在训练时采用对图片的随机剪切、水平翻转等来增强数据,采用亮度、对比度、饱和度修改减少光照变化对缺陷识别的影响。具体的处理算法见图6。而气泡的图像预处理方法与积料图像类似,其中预处理中剪切后的塑瓶缺陷位置区域如图6所示。

图6 图像预处理目标区域提取流程

3.3 实验结果分析

本实验采用PyTorch深度学习框架来实现塑瓶缺陷的检测,采用的电脑配置:GPU是英伟达的GeForce GTX1070,CPU是英特尔Core i5-8600,开发平台为Pycharm和Python3.7。

为找到医用塑瓶制造缺陷的相对最佳的检测精度,本文设计不同层数、每层残差块不同数目的ResNet模型。在相同的参数条件下,网络层数对检测性能的影响如表1所示,括号里面为每层残差块的数目。

表1 网络层数对检测精度的影响 单位:%

从表1中可以看出,在数据集数目一定的情况下,随着网络层数的增加,平均检测精度先增加再减少。本文采用单一变量法在最佳层数为4层时验证每层残差块数目由1个~4个不同网络性能的差异。残差块的数目对检测性能的影响如表2所示。

表2 不同层中残差块数目对检测精度的影响 单位:%

从表2可知,在不同层中,不同层数对检测漏检率与误检率有较大的影响,本文最终选择网络为4层、每层网络由2个残差块组成的SE-ResNet18。为找到网络的最好的参数,本文设计正交实验,验证不同参数对积料缺陷检测精度的影响。并且与SE-ResNet34、ResNet18、ResNet34、MobileNetV2[23]网络的最佳性能进行比较,因num_workers等对网络性能的影响较小,本文正交实验采用的因素是超参数学习率(Learning-Rate)、一次输入图片的数量(Batch_Size)、总的迭代次数(Epochs),设计的正交表如表3所示。

表3 实验正交表

通过正交实验,获得不同的网络在正交实验下的相对最优的检测模型参数,具体细节如表4所示。

表4 不同网络在正交实验下的最优检测结果

从表4可以看出,SE-ResNet18在正交实验下积料缺陷的平均检测精度最高,其值为99.7%,同时漏检率为0.0%,检测时间为29.7 ms;随着网络模型复杂性的增强,其检测时间逐渐增加,平均检测精度不一定增加;在相同数据下,精简网络在积料缺陷检测中效果较差,其值为96.4%,但是检测时间最短,其值为21.1 ms;不同的网络在正交实验中获得最佳的平均检测精度的参数是不同的,对较小的网络其学习率与总的训练次数均较大。在SE-ResNet18的实验条件下,模型的误检与漏检的瓶底图片如图7所示。

(a) 误检图1 (b) 误检图2 (c) 漏检图图7 误检漏检示例

考虑生产过程中缺陷产品的数量较少,本文验证不同训练数据集对实验中的SE-ResNet18网络的检测精度的影响,数据集对SE-ResNet18网络的平均检测精度的影响见表5。其中好代表无缺陷图片,坏代表有积料缺陷图片。实验数据表明,随着数据集的减少,积料缺陷的平均检测精度从99.7%减少到95.8%,检测时间基本不变;在图片为2650幅时其平均检测精度下降到99.2%,漏检率为0.0%,误检率为1.4%,满足工业现场中的漏检率低于5%、误检率低于2%的检测要求。

表5 不同数据集对积料检测的结果

误检率与漏检率之间存在着相反的相互依赖关系,对于气泡检测采用F1度量的一般形式Fβ作为其评价指标,其计算公式为:

(5)

其中,P表示查准率,R表示查全率,本文中β的值为1.3,表示查全率占用更大的比重。

训练时输入图片的最小分辨率为640×640,增加了网络对不同尺寸图片的适应能力,但是在检测时输入图片的尺寸为640×640。气泡的检测采用多次实验得出的最优参数,其参数的初始学习率为0.0001,每隔20轮训练次数学习率衰减一次,衰减率为0.1,总共训练数为60轮。测试图片为2700幅,测得其查全率为99.5%,查准率为99.5%,故Fβ的值为99.5%,单幅图片的检测时间为35.5 ms,满足工业上的检测精度与检测时间的要求。其部分检测效果如图8所示,其中包含各种情况下的气泡状态,对于尺寸为5 mm×5 mm以上的气泡检测效果显著。

(a) 单个气泡 (b) 连结气泡 (c) 离散气泡 (d) 多个气泡

4 结束语

本文介绍了基于深度学习的缺陷检测方法,在检测系统采集图像后,通过图像预处理,再经过深度学习算法判断医用塑瓶是否有缺陷,在判断医用塑瓶存在某一类缺陷后,将该瓶的处理信号传递给剔除装置进行剔除。

实际检测中,该算法具有良好的实时性与检测精度,对积料缺陷的检测精度为99.7%,检测时间为29.7 ms;对气泡缺陷的检测精度为99.5%,检测时间为35.5 ms,较好地满足了工业生产的检测要求。

猜你喜欢
残差气泡卷积
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
SIAU诗杭便携式气泡水杯
浮法玻璃气泡的预防和控制对策
基于残差学习的自适应无人机目标跟踪算法
卷积神经网络的分析与设计
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
冰冻气泡
基于傅里叶域卷积表示的目标跟踪算法