晏 琳 景军锋 李鹏飞
(西安工程大学,陕西西安,710048)
坯布疵点的产生有多种原因,如织机性能不良、人为操作不当或布匹在运输中被意外污染等[1]。目前,坯布疵点的检测仍基本依靠人工完成,但人工检测方法存在效率低、误检率高、漏检率高等缺点。传统的织物检测算法仅针对特定的疵点检测效果较好,但检测疵点的种类有限,无法满足织物疵点种类较多的情况[2]。
2012年,深度卷积神经网络首次出现,由Hinton提出的AlexNet[3]取得当年ImageNet[4]图像分类竞赛冠军。随后,深度神经网络得到长足发展,提出如GooleNet[5]、VGG[6]、深度残差网络(ResNet)[7-8]等经典神经网络。其中VGG采用3×3的滤波器,增加了网络结构的深度,促进了卷积神经网络结构研究进程;ResNet利用残差学习,解决了传统神经网络结构梯度消失的问题,真正意义上实现了深度神经网络的训练。随着深度学习算法的不断发展,近年来在目标检测领域,提出了基于区域建议的目标检测与识别算法。2014年发表的RCNN算法[9],首次采用目标候选区域和深度学习相结合的方法,将检测任务转化为分类任务。此后,陆续提出了优化后的Fast RCNN算法和Faster RCNN算法[10],在该领域进行了广泛的应用。本文对Faster RCNN算法在坯布疵点检测中的应用进行了研究。
基于区域选择的目标检测算法是现阶段较成熟的目标检测与识别框架,它将检测过程简化为分类任务,并利用深度学习方法提升检测精度,其中具有代表性的算法为RCNN、Fast RCNN以及Faster RCNN。RCNN利用Selective Search提取目标候选区域,在候选区域中通过CNN网络提取特征,并训练SVM分类器,对特征分类[11]。其改进模型Fast RCNN提出了ROI池化(Region of Interest Pooling)层并采用Softmax预测区域类别,提高了模型的检测精度及效率。为了进一步提高检测速率,在Fast RCNN基础上提出了Faster RCNN算法。
Faster RCNN算法包含两个卷积神经网络,其结构如图1所示。Faster RCNN由区域生成网络(Region Proposal Networks,RPN)和Fast RCNN两部分构成,RPN用于生成目标可能存在的候选区域;Fast RCNN实现对候选区域的分类,并且进行边界回归。这两部分共享一个提取特征的卷积神经网络,使得目标候选区域的检测时间几乎为零,大幅提高了目标检测的速度。
图1 Faster RCNN结构示意图
RPN是一个全卷积神经网络(Fully Convolutional Network, FCN)[12],其以原始图像所提取的任意大小特征图作为输入,输出目标候选框的集合。RPN采用一个n×n的滑动窗口在共享卷积网络的输出特征图上进行滑窗选择,针对每个窗口,同时预测k个目标候选区,即有k个相对应的被称为锚(Anchor)的初始区域。对于一张大小为w×h的卷积特征图,则可得到w×h×k个锚。每个窗口被映射为一个低维向量,该特征向量输出给边框分类网络和边框回归网络[13]。使用分类网络得到锚属于前景或背景的概率,并使用边框回归网络修正锚的边界框。RPN的训练过程采用端到端(End-to-end)的方式,其损失函数通过平衡因子将分类损失和回归损失联合,利用该损失函数训练好的RPN能够得到目标候选区域,这些候选区域再在Fast RCNN部分进一步检测。
Fast RCNN检测网络。目标候选区域的特征经过Fast RCNN中的ROI池化层后,输出固定长度的特征向量。这些特征向量通过全连接层分别输入Softmax分类器和边框回归网络中以预测区域类别并修正边框。为了精调整个网络,Faster RCNN采用文献[11]中提出的交替训练法训练网络。RPN与Fast RCNN共享相同的特征提取层,构成统一的网络。
试验使用的坯布疵点数据来自于现场采集,整个数据集共包含2 000张图片。图片尺寸均为256 pixel×256 pixel,选择其中的1 320张图片作为训练集及验证集,剩余的680张图片作为测试集。在人工标注疵点的边框后,将数据集转化为VOC2007的格式进行训练。
试验硬件平台操作系统Ubuntu 16.04 LTS 64位,CPU Intel(R) Core(TM) i5-8400 2.80GHz,GPU NVIDIA GeForce GTX 1080 Ti,内存16 G,硬盘1 TB,整个试验均基于深度学习框架TensorFlow进行,编程语言为Python,通过多次试验优选得到结果。
为评估Faster RCNN在坯布疵点检测中的有效性,采用平均准确率均值(mean Average Precison,mAP)来作为衡量模型性能的指标。mAP是指所有类别目标的平均准确率(Average Precision,AP)的均值,它可以作为目标检测的实际度量标准。
由于ImageNet数据集的训练图像种类众多,用其训练的模型具有较好的特征表达能力及泛化能力,所以在试验中,将ImageNet分类预训练后得到的VGG16、ResNet101模型分别用于进行Faster RCNN共享卷积层的初始化以得到初始参数及权重。将坯布疵点数据集放入整个模型中进行训练。在不同的特征提取网络下,随着迭代次数的变化,其mAP值见表1。
表1不同特征提取网络下的检测效果
迭代次数/次mAP/%Faster RCNN+VGG16Faster RCNN+ResNet10110 00030 00050 00070 00091.7294.9197.1597.2693.9996.9999.4999.44
由表1得出,ResNet101在测试集中,相较于原始的VGG16网络,mAP值提高了2.3%左右,从而证明ResNet101在坯布疵点检测中的性能优于VGG16。这是由于ResNet101引入了残差学习模块,残差学习将神经网络的输出由H(x)变为F(x)=H(x)-x,减弱了因为卷积层数过多而造成的梯度消失现象,提高了检测的准确率。因此在坯布疵点检测的过程中,选择采用Faster RCNN与 ResNet101相结合的方法。
试验过程中的一些参数,例如非极大值抑制(Non-maximum Suppression,nms)前后区域保留个数、批处理尺寸、最大交并比(Intersection over Union,IoU),这些参数对试验结果均有影响,因此,进行了多次对比试验以确定最优参数配置。
nms在Faster RCNN+ResNet101模型中的作用是去除具有较大重叠区域的锚。令迭代次数为50 000次,测试不同的nms前后候选区域个数对mAP值的影响,结果见表2。由表2得出,随着数量的减少,模型保留的锚数也随之减少,导致检测结果的mAP值下降。因此,选择相对较高的nms候选区域个数能够得到较好的检测结果。
表2不同nms个数对mAP影响
迭代次数/次nms前候选区域/个nms后候选区域/个mAP/%50 00050 00050 00050 00012 0009 0006 0003 0002 0001 7001 4001 10099.4999.3198.8797.10
在实践中,批尺寸的个数决定了单次训练样本的数目,其数值的选取会对训练过程中的梯度下降产生影响。试验分别测试了采用不同批尺寸时,模型的mAP值,结果见表3。通过分析表3得出,在合理的范围内,批尺寸越大,相应的mAP值会提高,同时每20次迭代所需要的训练时间也会增加。考虑到小的批尺寸需要小的学习速率以保持稳定性,所以,在此选择较大的批尺寸来进行模型训练。
表3不同批尺寸对mAP影响
迭代次数/次区域提议阶段批尺寸/个检测阶段批尺寸/个mAP/%训练时间/ms50 00050 00050 00050 000256128643225664321699.5898.4797.1294.71366227202185
在RPN部分的训练过程中,得到的锚根据IoU被分为两类,在初始模型中,当IoU值大于等于0.7时被分为前景;当IoU值小于0.3时被分为背景。IoU取值对loss曲线的影响如图2所示。由图2得出,调整IoU的值可以改变loss曲线的收敛效果,其中当IoU值分别取0.9和0.1时效果最好。这是由于白坯布的背景简单,适当地增加前景的IoU值并降低背景IoU值可以选择留下较优的锚。
(a)前0.7,后0.3
(b)前0.7,后0.1
(c)前0.9,后0.1
图2IoU取值对loss曲线的影响
试验中,采用调优的参数配置后,Faster RCNN+ResNet101模型得到的部分检测结果如图3所示。在图3中,包围框区域代表坯布疵点存在的位置,包围框的左上方显示了该模型对于方框区域目标的分类类别及其类别概率值。图3(a)中污渍的概率值为1.000,图3(b)中长断纬的概率值为0.988,短断纬的概率值为0.987;图3(c)中线条的概率值为1.000,图3(d)中褶皱的概率值为0.993。
(a)污渍
(b)断纬
(c)线条
(d)褶皱
图3 Faster RCNN+ResNet101模型的部分检测结果图
研究采用Faster RCNN分别与不同特征提取网络相结合的方法进行坯布疵点检测,可检测多种不同类型的坯布疵点。通过试验验证,ResNet101相较于VGG16能够取得更好的检测效果。试验表明,Faster RCNN与ResNet101相结合的方法可以应用于检测坯布的疵点,该方法能够自动提取疵点特征,经过多次合理的模型参数优化后,检测准确率高达99.6%。但是,由于ResNet101的层数较深,导致对一张图像的检测时间稳定在130 ms左右,其实时性还有待提高。在未来的研究中,会通过优化特征提取层的卷积神经网络以进一步提升模型的实时性,在保证检测效果的前提下,更快速地进行检测。