结合反残差块和YOLOv3的目标检测法*
2019-09-11焦天驰林茂松贺贤珍
焦天驰, 李 强, 林茂松, 贺贤珍
(西南科技大学 信息工程学院,四川 绵阳 621010)
0 引 言
近几年,目标检测[1]在汽车的辅助驾驶系统、机器人技术、工业物联网智能监控等领域有着广泛的应用[2]。随着卷积神经网络在图像分类挑战中取得成功后,大量基于深度卷积神经网络的方法被用于目标检测,这些方法大致可分为基于候选框的方法和基于回归的方法。前者主要有R-CNN、SPP-net[3]、R-FCN、Faster R-CNN[5]等方法,在检测精确度上有着优异的表现;后者主要有SSD和YOLO[7]等,方法在实时性上有着明显的优势。
文献[9]通过聚类和RPN网络提取可能含有行人的区域,再对目标区域进行判别和分类,相比DPM的方法得到更好的检测效果。文献[10]提出了一种数据增强方法,有效的提高了遮挡条件下的人脸召回率。文献[11]通过融合PN网络、FTN网络以及不同卷积层的特征,使得对目标的识别和定位得到了显著优化。对于目标检测模型而言,在保持精度的同时,减少计算次数和内存占用成了亟需解决的问题。
本文基于回归的目标检测方法,以YOLOv3模型为主体,提出一种基于深度可分离卷积网络的M-YOLOv3目标检测方法,将以反残差块为基础的轻量级网络[13]作为特征提取网络,通过多尺度预测和特征融合提高模型性能;使用静态行人数据集INRIA对算法进行验证分析,针对本文采用的网络结构和数据集通过聚类分析的方法生成先验框,加快收敛速度。与YOLOv3的对比试验表明:改进后的方法在INRIA数据集上准确率、召回率和实时性上都有着较好的提升。
1 基本原理
1.1 特征提取网络
目标检测算法性能的好坏与基础特征提取网络有很大关系,YOLOv3中采用类Resnet[14]的Darknet53作为特征提取网络,该网络包含53个卷积层。YOLOv2对于前向过程中张量尺寸的变化通过5次最大池化进行,而在YOLOv3的基础网络Darknet53里则是通过5次增大卷积核的步长来进行。一方面YOLOv3采取这样的全卷积结构,另一方面其引入残差结构,使得训练网络的难度大大减小,从而提高网络分类的准确率。
1.2 检测流程
YOLOv3以回归的方式训练网络,首先通过K-means算法对数据集样本进行聚类分析,在3个不同尺度上生成3组先验框,后续边界框的大小将基于9个先验框进行微调。输入416×416的图像,经过基础网络进行特征提取,输入FPN结构。最终生成3个尺度的特征图作为预测,分别为13×13,26×26和52×52。将这些特征图划为网格区域,在每一个网格上预测3个边界框,一共产生(13×13+26×26+52×52)×3=10 647个边界框。每个边界框预测4个坐标:tx,ty,tw,th。目标网格到图像左上角的距离为(cx,xy)并且它对应的边界框宽和高为pw,ph。对应的预测关系如下
bx=σ(tx)+cx,by=σ(ty)+cy,bw=pwetw,bh=pheth
(1)
每个网格还预测物体在预测框中的概率Pr(Object),并通过公式对预测框进行打分
(2)
2 改进的YOLOv3
2.1 M-YOLOv3网络设计
本文在YOLOv3目标检测算法模型的基础上,将轻量化网络Mobilenetv2与YOLOv3算法相结合。Mobilenetv2中主要通过使用深度可分离卷积[15,16](depth-wise separable convolution)的操作减少卷积过程中的计算量,从而降低模型整体的复杂度。深度可分离卷积对于许多高效的神经网络来说是非常关键的部分,其将一个标准的卷积操作分解为两步完成。第一步,深度卷积(depthwise convolution):对每个输入通道利用单个卷积核进行卷积;第二步,逐点卷积(pointwise convolution):利用1×1卷积将上一步的特征图在深度方向进行加权组合,获得更多的特征。再引入了Resnet中残差块的思想,结合深度可分离卷积的特点生成反残差块(inverted residual block)如,从而加强网络的特征学习。通过反残差块的堆叠形成Mobilenetv2网络,结构如表1。
表1 Mobilenetv2网络结构
其中,t为“扩展”倍数,c为输出通道数,n为重复次数,s为步长。首先,去掉mobilenetv2网络的最后的一个平均池化层和一个卷积层,得到维度为320的输出结果,在其后增添一个1×1×1 280的卷积层。输入图像的尺度为416×416,32倍降采样得到尺度13×13的特征图;对13×13的特征图进行2倍的上采样与第12层的输出进行拼接得到26×26的特征图;将26×26的特征图进行2倍的上采样与第5层的输出结果进行拼接得出52×52的特征图;利用这3种不同尺度的特征图分别建立特征融合目标检测层,从而实现大、中、小尺度的预测。改进后的M-YOLOv3结构如图1。
图1 M-YOLO结构
2.2 行人先验框的聚类分析
网络模型虽然自身可以不断学习并调整边界框的大小,但提前预备一组合适尺寸的边界框可以提高模型的性能。YOLOv3算法中引入了Faster R-CNN里anchor(先验框)的思想,利用K-means算法维度聚类产生固定宽高比的先验框,初始的先验框会影响网络模型对目标检测的速度和精度。YOLOv3中通过对COCO数据集的维度聚类产生合适宽高比的先验框。这里K-means里的距离度量并没有使用标准的欧氏距离,而采用平均交互比(Avg IOU)作为度量
d(box,centroid)=1-IOU(box,centroid)
(3)
式中box为样本,centroid为簇中心,IOU(box,centroid)表示样本框与簇中心框的交并比。选取合适的IOU值,可以在网络模型的速度和精度之间取得较好的平衡。本文采用INRIA数据集,而YOLOv3中先验框的选择是针对COCO数据集取得,其宽高比不能较好地表达行人的特征,由此需要对INRIA数据集进行维度聚类设计先验框,并依据所需模型的性能选取一组合适的先验框。本文选取先验框数量1~9,分别对数据集进行维度聚类,得出平均交并比与先验框数量的关系如图2。考虑本文所选用的数据集,尺度变化较大,本文选取先验框的数量为9。
图2 K-means 维度聚类结果
3 实验结果分析
INRIA数据集中训练集和测试集共有正样本902张,其中包含3 542个行人,图片中人体大部分为站立姿态且高度大于100像素。行人的尺度变化明显,背景光线明亮且背景丰富,但其中存在部分标注错误的图片。本文在INRIA数据集的基础上去除标注信息有误的图片得出886张图片作为实验数据,随机划分为650张训练集、72张训练验证集以及164张测试集。
本文的实验环境为操作系统:ubantu17.10;深度学习框架:Keras;CPU:英特尔ES-2620 v3;内存:32G;GPU:NVIDA GeForce GTX 1060;
3.1 网络训练
本文改进算法M-YOLOv3的训练和测试输入尺度均采用416×416,通过多个反残差块堆叠形成特征提取网络提取行人特征,再通过3个不同尺度的特征图预测行人的位置和坐标信息。针对INRIA数据集,运用K-means维度聚类生成3个尺度的9个先验框:(31×86),(40×113),(52×146),(60×187),(74×227),(92×291),(120×357),(159×455),(212×602)。分别对YOLOv3和M-YOLOv3进行训练,初始的学习率为0.001,在迭代次数为 2 000时学习率下降为0.000 1以及在迭代次数为3 000时学习率下降为0.000 01。M-YOLOv3训练过程中的损失收敛曲线如图3。
图3 损失收敛曲线
经过4 000次迭代后,loss和val_loss逐步趋于稳定。最终loss下降到4.6左右,val_loss下降到10左右,表明训练得到的模型较为理想。图4为M-YOLOv3在INRIA数据集的检测效果,其中,对于背景复杂、图像模糊、行人尺度变化较大且存在遮挡的图像也有较好的检测效果。
图4 M-YOLOv3检测效果
3.2 性能评价指标
采用来源于信息检索中对相关性的评价Precision-Recall曲线反映模型对正确检测出的目标的识别准确程度和覆盖能力,即召回率(recall)、精度(precision)和AP
(4)
式中TP为正确检测出目标,FN为没有被检测出目标,FP为错误检测目标,AP即PR曲线与x轴围成的面积。
在测试集上分别对YOLOv3和M-YOLOv3模型进行验证,得出如图5所示Precision-Recall曲线对比。
图5 各网络P-R曲线
与YOLOv3相比,M-YOLOv3在Precision-Recall曲线上表现的更好。且改进后的M-YOLOv3对行人目标的检测准确率由79.87 %提升到84.13 %,召回率由83 %提升到88 %。由于模型复杂度的降低,M-YOLOv3较YOLOv3在检测速度(平均检测每张图片所需的时间由0.201 2 s到0.133 5 s)上有着更好的表现。
4 结束语
运用K-means聚类方法对数据集样本进行聚类分析,提高定位精度,加快收敛。将mobilenetv2作为YOLOv3的基础网络,将YOLOv3输出的32倍下采样特征图进行2倍上采样并与16倍下采样特征图拼接,建立输出为16倍下采样的特征融合目标检测层;同样将16倍下采样特征图进行2倍上采样与8倍下采样特征图拼接,建立输出为8倍下采样的特征融合目标检测层。实验表明,改进后的方法M-YOLOv3在INRIA数据集上准确率、召回率和检测速度有着不错的提升。但是改进后的YOLOv3算法在实时性上距离工程应用还有一定差距。