巫明秀, 吴 谨*, 张 晨, 朱 磊
(1. 武汉科技大学 信息科学与工程学院,湖北 武汉 430081; 2. 冶金自动化与检测技术教育部工程中心,湖北 武汉 430081)
棉花作为棉纺业的重要基础原料,对促进国民经济和生产发展具有重大意义。但是棉花中易掺杂异于棉花的异性纤维(简称异纤),会影响棉纺织品的品质和生产效率。因此,棉花异纤检测系统作为棉花异纤清除机的重要组成部分,其检测的准确性和快速性会影响棉花分拣的质量和效率。如何智能、高效且快速地检测出棉花中的异纤是棉产品加工需要解决的重要问题。
近年来,国内外关于棉花异纤检测的研究取得了一些进展。Gamble[1]和Mustafic[2]通过荧光光谱法实现了棉花异纤的检测。郏东耀和丁天怀[3]提出一种多波段光谱信息融合成像检测方法实现棉花异纤的检测。此类研究需要使用光谱仪,且增加新样本时需要重新寻找合适的光谱范围来进行检测。杜玉红[4]等人采用聚类统计RGB图像信息的方法实现异纤的识别定位。师红宇[5-6]等人构建图像的灰度和方向特征差分图进行异纤的检测。此类研究多基于传统图像处理方法进行异纤检测。杨文柱[7-8]等人提出基于遗传算法、支持向量机(SVM)的异纤检测方法。
2014年R-CNN[9]的提出,使得基于深度学习的目标检测算法受到越来越多的关注。卷积神经网络特征提取方法的泛化性能优于传统人工特征提取方法,在医学[10]、道路检测[11]等不同场景的图像分类和检测任务中均得到了广泛应用。但是深层神经网络存在计算复杂度较高的问题。2017年Andrew G.Howard[12]提出了可移植于移动端或嵌入式设备的轻量级MobileNets网络进行目标分类,采用了深度可分离卷积,减少了计算量,检测速度得到了明显提升。
目前鲜有研究将深度学习网络应用于棉花异纤检测,且研究的试验数据多为专用实验室测试平台采集的几十或百张图像,对实际设备现场采集图片的检测效果尚需进一步验证。为此,本文基于YOLOv3[13]多尺度特征融合网络架构,引入MobileNets作为特征提取器,并提出一种分段式学习率来优化训练网络,采集了5 099张现场实际棉花异纤图像进行网络训练,并使用图像数据增广方法扩充数据集,以实现棉花异纤的检测。
目前网络上尚无数量大且类型统一的棉花异纤公开数据集。本文的数据集使用棉花异纤清除机上的CCD摄像机进行图像采集。获取的棉流图视频数据如图1所示,然后再以132×50分辨率进行抽帧裁剪。数据集共有5 099张图像,棉花异纤种类分为4种:分别为块状异性纤维(死棉、废纸、塑料薄膜、地膜、鸡毛)、块状伪异纤(黄棉花、棉叶)、条状异性纤维(丙纶丝、绒线),以及条状伪异纤(棉秸秆)。4种棉花异纤图像示例如图2所示。
从数据集中选取80%的图像作为训练集(4 079张),20%的图像作为测试集(1 020张)。完成数据集的采集后,使用LabelImg软件对原始数据集进行手工标注,标注情况如表1所示。
图1 CCD摄像机拍摄棉流图Fig.1 Cotton flow image taken by CCD camera
图2 棉花异纤图像示例Fig.2 Example of foreign fiber images
表1 训练集和测试集中各类别标注框的个数
图像增广可以增加图像样本的多样性,提高训练模型的泛化能力和鲁棒性。本文采用了增强对比度、增加亮度、添加高斯噪声、水平镜像、裁剪、平移共6种方法进行图像增广,同时对标注框的位置也进行相应的操作。对棉花异纤图像进行图像增广处理后的结果示意图如图3所示。
图3 棉花异纤图像增广示例Fig.3 Example of foreign fiber image augmentation
YOLOv3是基于回归的目标检测算法。该网络不需要生成区域建议框,直接将图像输入至网络中回归检测目标,反向传播可以贯穿整个网络。由于实验数据集的图像分辨率低,因此将YOLOv3原有的Darknet53特征提取网络替换为结构更简单、运算复杂度更低的MobileNets网络,并取消了MobileNets分类网络最后的池化层和全连接层。MobileNets网络共27层,其结构如表2所示,其中conv为标准卷积,conv dw为深度卷积。
表2 MobileNets结构Tab.2 MobileNets structure
续 表
MobileNets网络采用深度可分离卷积来减少计算量,将标准3×3卷积分两步进行:(1)深度卷积,按照通道与3×3卷积核进行按位相乘计算。(2)使用1×1的点卷积进行标准卷积运算。标准卷积的计算量为DF×DF×DK×DK×M×N,而深度分离卷积的计算量为DK×DK×M×DF×DF+1×1×M×N×DF×DF。因此,通过深度可分离卷积,计算量将会下降(1/N+1/DK2)倍,其中DF为特征图尺寸,DK为卷积核尺寸,M为输入通道数,N为输出通道数。
目标位置预测步骤如下:(1)重置图像尺寸,将原始图像划分为13×13的网格。(2)利用划分的网格回归预测目标的相对位置,每个网格预测3个锚点框。(3)采用非极大值抑制法(NMS)过滤掉置信度和IoU(Intersection over Union)较低的锚点框。对每个锚点框预测置信度、边界框的中心坐标(x,y)、宽w和高h,分别记为to,tx,ty,tw,th。则修正后的锚点框的中心坐标、宽和高分别为:
(1)
式中,(cx,cy)表示锚点框中心所在单元格相对于图像左上角在x轴和y轴上的偏移量;pw表示原始锚点框的宽度;ph表示原始锚点框的高度。
图4 MobileNets-YOLOv3算法框图 Fig.4 Schematic diagram of MobileNets-YOLOv3 algorithm
改进后的YOLOv3算法(简称MobileNets-YOLOv3)采用多尺度特征融合的方式,将28×28、14×14、7×7三种不同大小的特征图进行拼接以检测目标。由于在下采样过程中会丢失部分图像信息,故结合多尺度特征图进行检测可以提高分类准确率和位置预测准确度。MobileNets-YOLOv3算法结构如图4所示。其中conv_block为标准卷积加上正则化和Leaky ReLu激活层组成的模块。
MobileNets-YOLOv3算法使用交叉损失熵方法进行置信度损失(confLoss)、分类损失(probLoss)和边界框坐标损失(xyLoss)的计算,使用总方误差法(Sum-Squared Error)进行边界框宽高损失(whLoss)的计算。各损失函数的计算公式如下:
(2)
(3)
(4)
(5)
本文使用TensorFlow深度学习框架实现MobileNets-YOLOv3算法。电脑配置为Inter(R) Core i7-8750H CPU @ 2.20 GHz处理器,16G运行内存,256GB SSD+1T硬盘容量,6GB GTX 1060 GPU,操作系统为Windows 10。使用Pycharm 2018.2.3编译器,并配置了CUDA 9.2.217,cuDNN 7.2.1进行GPU加速计算。采用TensorBoard可视化工具分析训练模型的性能。
棉花异纤检测网络的训练流程如图5所示。
图5 棉花异纤检测训练流程Fig.5 Training process of cotton foreign fiber detection
首先对采集的棉花异纤数据集进行边界框的手工标注,将数据集按8∶2的比例分为训练集和测试集,然后对训练集进行图像增广操作,同时训练集的标注框也进行相应的操作,最后使用MobileNets-YOLOv3为训练网络,获得检测模型,并利用测试集进行检测验证。
设置合理的网络超参数能更有效地训练网络且能提高检测结果的精确度,具体设置如表3所示。
表3 超参数表Tab.3 Hyper parameters
在网络训练中,学习率通常采用指数衰减法进行网络优化。指数衰减法学习率(简称ED_LR)如式(7)所示,式中step表示当前迭代步数,初始学习率α0=1×10-4,衰减速度decay_steps=1 020。
(7)
图6 分段式学习率变化曲线Fig.6 Curve of segmented learning rate
为了提高网络训练性能,本文对学习率进行了改进,将学习率划分为两个阶段(如图6所示):第一个阶段从0开始线性增加学习率,避免总损失函数出现无穷大的现象;第二个阶段采用余弦函数非线性减小学习率,避免出现梯度震荡,总损失函数不收敛的现象。改进后的分段式学习率(简称S_LR)如式(8)所示。设置最大学习率为1×10-4,学习率最后减小至1×10-6,式中,第一阶段截止步数wsteps=5 099,总训练步数tsteps=203 950。
(8)
4.3.1 评价指标
本文选取平均准确率(mAP)和帧速率作为整个模型检测效果的评价指标。AP(Average Precision)指的是Precision- Recall曲线与横轴包围的面积,mAP为所有类的AP值取平均,计算公式如下:
(9)
(10)
(11)
(12)
4.3.2 试验结果与分析
采用4.2节设置的参数进行棉花异纤检测网络的训练。训练模型的总损失函数约8万步时开始收敛,第200轮时,置信度损失为2.5×10-4,边界框的位置预测损失为0.103 3,分类损失为0.099 2,总损失为0.202 6。
选择保存的第200轮训练模型分别对训练集和测试集进行检测,得到的结果如图7所示。由图7(a)可知,训练集的预测准确率达到90%以上,且块状伪异纤的误检率最低,表明了该训练模型能有效地学习训练集样本数据的特征。由图7(b)可知,测试集的预测准确率平均为80%,对块状伪异纤的检测效果最好,而条状异纤的误检率最高,表明该检测模型具有泛化性,对测试集的棉花异纤具有较好的检测效果。
(a)训练集上的检测结果比较(a) Comparison of the number of detected objects in train dataset
(b)测试集上的检测结果比较(b) Comparison of the number of detected objects in test dataset图7 数据集检测目标数对比Fig.7 Comparison of the number of detected objects in dataset
图8给出了6张测试集图像检测结果图。前4张均为预测正确的结果图,且置信度均高于0.96。图8(e)为误检的结果图,将条状伪异纤检测为块状异纤(置信度为0.54)和条状伪异纤(置信度为0.81),图8(f)为测试集里唯一一张漏检的结果图。
图8 检测效果Fig.8 Detection results
4.3.3 图像数据增广对模型的影响
本文对数据增广前、后训练的模型检测结果进行了对比试验。试验结果如表4所示,其中策略A表示未对原图像数据进行增广处理,策略B表示对原始数据进行了增广处理。由表4可知,经过图像增广后训练的检测模型mAP提高了3.6%,训练时长缩短了0.46 h。表5给出了不同训练集各类别异纤的AP值结果。由表5可知,训练集经过图像增广后,块状异纤、块状伪异纤,条状异纤和条状伪异纤的AP值分别提高了1.35%,4.65%,4.72%和3.65%。
表4 不同训练集检测指标对比Tab.4 Comparison of results in different training sets
表5 不同训练集各个类别的AP值对比Tab.5 Comparison of AP in different training sets %
综上,图像增广后,虽然训练模型时的收敛速度略有减慢,但是改善了模型的过拟合现象,提高了训练网络的检测准确度,且加快了训练速度,是一种有效的数据处理方式。
4.3.4 学习率的改进对模型的影响
分别使用分段式学习率、指数衰减法学习率训练模型,检测结果对比如表6所示。使用分段式学习率训练的模型在测试集上的mAP比指数衰减法高了5.64%,除了块状异纤的AP值略微下降了0.26%,块状伪异纤、条状异纤和条状伪异纤的AP值分别提高了8.98%、5.85%和7.99%。综上,分段式学习率能够加强训练模型的学习效果,提高检测的泛化能力。
表6 不同学习率在测试集上的AP值对比Tab.6 Comparison of AP in different learning rate %
4.3.5 与改进前网络检测结果的对比
分别以MobileNets和Darknet53为特征提取网络的检测结果如表7、表8所示。训练集的检测结果mAP比改进前提高了1.85%,测试集的检测结果mAP比改进前提高了2.03%,且帧速率加快至3倍,训练时间缩短至1/4倍。MobileNets的网络层数是Darknet53网络的1/2倍,针对数据集尺寸较小的特点,减少特征提取次数有利于检测结果精度的提高。同时,MobileNets采用的深度分离卷积减少了大量的计算量,因此帧速率有大幅度提高。实验结果表明改进后的检测模型具有更高的准确度和更好的实时性,误检率和漏检率明显降低。
表7 改进网络前后检测结果对比
表8 改进网络前后各个类别的AP对比
4.3.6 与其他检测模型的对比
将本文算法与另外两种卷积神经网络Faster R-CNN[14]、SSD_300[15]的检测效果进行了对比,结果如表9所示。由表9可知,Faster R-CNN的检测准确率最高,比本文的MobileNets-YOLOv3算法高2%,但是其帧速率只有6.58 f·s-1,同时网络训练时间最长,为116.63 h。主要原因是Faster R-CNN用区域生成网络生成2 000多个可能包含目标的候选区域,然后用CNN对每个候选区域进行分类,复杂的框架增加了网络的计算量。Faster R-CNN无法满足实时性的需求。而SSD_300无论在检测精度和检测速度上都差于本文算法,主要原因是SSD_300模型低级的特征图存在特征提取不充分问题,检测异纤这种小目标误检率较高。
表9 不同检测模型的对比Tab.9 Comparison of different detection models
综上,本文提出的MobileNets-YOLOv3检测模型相较于Faster R-CNN、SSD_300深度学习算法,在保证精度的前提下,训练时间大幅缩减,且帧速率达到了66.67 f·s-1,可以满足工业检测对实时性的需求。
(1)提出了一种基于MobileNets-YOLOv3的棉花异性纤维检测方法,以及一种分段式学习率优化方式,并采用了图像数据增广的数据处理方式,对测试集的准确率mAP为84.82%,帧速率达66.67 f·s-1。
(2)与YOLOv3算法相比,采用MobileNets作为特征提取网络的改进YOLOv3检测算法,mAP值提高了2.03%,帧速率加快至3倍,训练时间缩短至1/4倍,具有更高的识别准确度,实时性优势明显。
(3) 改进的分段式学习率优化方法比常用的指数衰减法能更好地训练检测网络,在测试集上的mAP值提高了5.64%。对原始图像数据进行数据增广后,训练模型在测试集上的mAP值提高了3.6%,可以改善过拟合现象。
(4)与卷积神经网络Faster R-CNN和SSD_300相比,本文算法总体性能最佳,既能保证较高的检测精度,又能保证检测效率,符合棉花异纤检测准确率及实时性需求。