APP下载

基于改进YOLOv3的轻量化神经网络算法研究

2021-04-10雷建军

关键词:麻将尺度分辨率

舒 军, 吴 柯, 雷建军

(1.湖北工业大学太阳能高效利用及储能运行控制湖北省重点实验室, 武汉 430068;2.湖北第二师范学院基础教育信息技术服务湖北省协同创新中心, 武汉 430205)

近年来,基于人工深度神经网络[1]的目标检测识别技术得到了迅猛的发展,许多开源平台相继推出其标准数据集或图像识别竞赛,如ImageNet[2]、PASCAL VOC[3]、MS COCO[4];一些优秀的神经网络检测框架也横空出世,近年来具有代表性的如RetinaNet[5],R-FCN[6],DSSD[7]和YOLOv3[8].由于人工神经网络具有可靠性高、计算速度快的特点,越来越多的深度神经网络被应用于指定的小样本数据集上的对象检测及分类[9].

在目前的主流算法中,YOLOv3是使用最先进技术的实时物体检测模型,YOLOv3的检测速度与检测精度对比各网络模型都能保持较高水平,详细性能对比如图1;由于其算法检测精准度达到高水平并满足实时检测的需求,故本研究基于YOLOv3进行小样本数据集的检测识别.

图1 各网络模型在MS COCO数据集上的性能Fig.1 Performance of each network model on MS COCO dataset

然而小样本数据集中的待测对象尺寸较为单一、尺度特征相对少,直接使用YOLOv3训练时生成特征的利用率低,牺牲了很多计算时间而检测精准度并没有明显提升;为了进一步提升在小样本数据集上的检测速度,充分利用网络性能,需要对YOLOv3改进以提升特征利用率,减少重复特征参与计算.

1 YOLOv3神经网络算法

YOLOv3神经网络算法框架于2018年被Joseph和Girshick等人提出,其网络相继使用过修改后的GoogleNet[10]、VGGNet[11]网络结构,最新版中使用ResNet[12]中的残差网络结构,加强了卷积(Conv)层之间的特征传递,并使用了FPN[13]的特征金字塔结构来输入大、中、小三种不同分辨率尺度的特征进行检测,提升了检测精度.

YOLOv3原网络结构如图2所示,其骨干网络中的卷积层为ResNet残差网络结构,有三个不同分辨率尺度的输出检测模块,其借鉴了FPN特征金字塔结构,从浅层至深层的输出特征分辨率分别为52×52、26×26、13×13,对应小、中、大分辨率目标对象进行检测,并对深层特征使用上采样,将该层特征增加整合至浅层,尽可能地减少各尺度分辨率特征的损失,从而提升了检测精准度.

图2 YOLOv3神经网络主体结构Fig.2 The main structure of YOLOv3 neural network

本研究在YOLOv3骨干框架上改变了所有卷积层的连接方式,使用DenseNet[14]中的密集串联代替了原本的残差连接,并加入28个密集串联层,删减了最小尺度的多尺度检测结构,在保证检测率的同时提升了检测速度.

2 改进YOLOv3神经网络算法

2.1 YOLOv3神经网络算法改进设计

2.1.1 改进网络连接方式 神经网络在浅层卷积层提取特征,然后将特征传递到更深层的卷积核,这个过程难免会丢失部分特征,甚至产生噪声.原YOLOv3网络在卷积层之间使用残差连接,在每次卷积提取特征之前,将前一层或几层的分辨率特征调整为同等维数,进行逐元素相加,以此来加强特征的传递.

改进算法模型中的卷积层使用了密集串联的方式来替代原本的残差连接,以进一步加强卷积层之间的特征传递,从而提升检测精确度.残差连接和密集串联的方式如图3所示.若设xl为第l层卷积网络的特征图输出,每层卷积的计算过程包含了批量归一化(Batch Normalization)[15]、Leaky ReLU线性单元(Leaky Rectified Linear Units)[16]函数处理和3×3的卷积计算,可以用复合函数Hl来表示,那么对于残差连接网络中第l层卷积网络的特征图输出表示为:

图3 残差连接和密集串联的方式Fig.3 Shortcut connection and dense concatenation

xl=Hl(xl-1)+xl-1,

(1)

其中卷积网络的层数从0开始,第l层接收当前层与上一层的特征图作为输出;而对于密集串联网络中第l层卷积网络的特征图输出表示为:

xl=Hl([x0,x1,x2,…,xl-1]).

(2)

第l层接收前层的所有特征图作为输出.

与残差连接不同,密集串联将本层的特征整合维数传递至往后的所有密集串联层,尽可能避免了特征在卷积层传递导致的信息丢失.这样做能有效提升检测准确度,特别是在浅层增加卷积核个数,能有效地提升特征提取能力,但如此做也相应增大了计算参数.

2.1.2 轻量化网络结构 在进行下采样时,原YOLOv3网络的使用卷积核大小为3×3,步长为2的卷积层进行下采样,以减少特征信息的丢失.由于本研究使用了密集串联的连接方式,浅层网络提取的特征和参数计算量增加,在进行下采样时,如果使用原YOLOv3网络方式进行下采样,会导致参数计算量过多,拖慢整体网络计算速度,甚至发生梯度消失的情况.因此本研究在每个密集串联的卷积块传递收集特征之后,使用过渡层来进行降维操作,过渡层具体结构如图4所示.

图4 过渡层具体结构Fig.4 The specific structure of transition layer

浅层特征在经过批量归一化(Batch Normalization)处理和线性激活单元(Leaky Rectified Linear Units)函数处理的1×1卷积层后,使用卷积核大小为2×2,步长为2的最大池化层进行下采样,剔除冗余信息和部分噪声.对于完成第l层卷积所需的十亿次浮点运算量(Billion Float Operations),其公式表示为:

(3)

其中,n表示卷积核的数目,s1、s2为卷积核的长宽,c为特征图数量,hout、wout表示卷积后图像的长宽,其由卷积前的图像尺寸计算而来:

(4)

(5)

其中hin、win为输入图像的长与宽,st为步长,p为填充数.

对比原网络使用的卷积核大小为3×3,步长为2卷积层作为下采样结构,过渡层能减少更多的参数计算量,后续的实验结果也证明新结构的总浮点运算数更少.值得一提的是,本研究所有卷积层均经过BN和ReLU激活处理,避免梯度消失和过拟合情况.

2.1.3 改进多尺度检测 YOLOv3网络使用了FPN结构输出三个不同尺度的特征检测通道,对于416×416的输入分辨率,输出52×52、26×26、13×13的分辨率特征,并使用9个不同大小的先验框来预测目标对象,对应先验框分辨率大小如表1所示.

表1 不同尺度特征图对应先验框分辨率大小Tab.1 The resolution of the priori box corresponding to different scale feature maps

对于尺寸单一的小样本数据集,其像素特征组合构造简单,单张图片中只有一个待测对象,且都为中大尺度分辨率,加入小尺度特征检测会增加运算成本,拖慢检测时的速度,对提高精度提升有限.故本研究算法删减了小尺度的特征检测通道,保留26×26、13×13的分辨率特征,在保证准确率的同时提升网络检测速度.为了便于未来研究原始样本在同一镜头出现多个待测对象时的检测效果,保留了中等尺度特征检测通道.修改后的多尺度特征检测通道保留了上采样过程,用于增加浅层特征,修改后的多尺度特征检测结构如图5所示.

图5 修改后的多尺度检测结构Fig.5 Modified multi-scale detection structure

2.2 改进YOLOv3神经网络算法整体结构

综上所述,改进后的YOLOv3神经网络算法主体结构如图6所示.

图6 改进后的YOLOv3算法主体结构Fig.6 The main structure of the improved YOLOv3 algorithm

该算法使用了28个卷积块,每个卷积块内部的连续卷积层为密集串联方式,中间使用了3个过渡层来进行降维,减少整体网络参数计算量,检测模块使用两种不同尺度的多尺度检测通道,该结构的神经网络在保证检测精确率的同时提升了检测速度.

2.3 模型应用

在使用数据样本进行模型训练时,网络模型输入416×416样本图像分辨率,首先分配批次,经过预处理阶段增加样本数量,增加指定倍率倍饱和度和曝光量的样本,以及指定倍率色调的样本,根据需求设置指定角度旋转的样本.在经过一系列卷积和下采样操作后,使用多尺度训练模式,生成额外分辨率的样本图像,其分辨率大小从320×320至608×608不等,最后经过预测模块验证模型.模型训练运行流程如图7所示.其中默认设置每批训练样本32张,分为16组输入.最优化方法动量参数为0.9,权重衰减正则项为0.000 5,学习率0.001,最终迭代12 000次.

图7 模型训练运行流程Fig.7 Running process of training model

3 实验与分析

3.1 麻将子数据集实验

麻将席是夏季日常生活中广泛使用的产品,具有一定的经济价值.人工检测麻将子不能长时间保持高效率,并且在区分麻将子优劣时受主观因素影响大,不能确保拣选时的准确率.而通过深度学习的方法来区分麻将子的优劣,在经过充足的训练后,识别率可以提升超过人工识别水平,并有效节省人力成本,提高生产效益.

3.1.1 待测对象分析 本实验所测麻将子样本为流水线上相机拍摄所得,尽量还原了实际现场的拍摄情况.如图8所示,为包含了正反面的4种不同类别的麻将子样本,区分出各种麻将子的目的是为了方便后续测试网络模型对不同种类麻将子的具体性能.

图8 四种包含正反面的不同种类的麻将子样本Fig.8 Four different types of mahjong subsamples containing front and back

现场采集的麻将子数据集主要有以下几点特点.

1) 麻将子样本图像分辨率全部为658×492,实际拍摄时在镜头内的麻将子大小基本不会有大的变化,检测特征尺度单一.

2) 麻将子数据集中的样本图像较少,实际标注只有2682张,训练时可能发生过拟合.

3) 麻将子样本包含了所有正反面拍摄的麻将子,故同种类麻将子同时包含了正反面特征,识别对象特征稍复杂.很多合格麻将子表面的脏污可能干扰检测准确度,进一步增加了特征复杂性.

4) 麻将子样本存在不同角度的情况,同一镜头也可能出现多个麻将子,增加特征提取和多目标检测难度.

在对原YOLOv3算法进行改进前,需要考虑以上因素做出适合麻将子数据集进行预处理.

3.1.2 基于麻将子数据集的预处理 为进一步提升麻将子的检测精确度,以及加快训练麻将子的拟合过程,需要对麻将子数据集进行预处理操作.本实验标注了2 682张麻将子样本,其中4/5用作训练集,1/5作为验证集.在训练前使用K-means++算法[17]对样本进行聚类,对416×416输入分辨率的图像进行分析,选择使用5个不同大小的先验框以预测目标对象,进而在一定程度上提升模型达到拟合的速度.两种尺度生成的先验框分辨率大小如表2所示.

表2 两种尺度特征图对应先验框分辨率大小Tab.2 Two scale feature maps correspond to the resolution of the prior frame

3.1.3 麻将子数据集的训练 本研究中麻将子训练实验基于硬件配置及软件平台如表3所示.

表3 硬件配置及软件平台Tab.3 Hardware configuration and software platform

麻将子样本进行模型训练时,输入416×416样本图像分辨率,首先分配批次,经过预处理阶段增加样本数量,增加±1.5倍饱和度和±1.5倍曝光量的样本,以及±0.1比例色调的样本,同时增加±14度与±28度旋转的样本.在经过一系列卷积和下采样操作后,使用多尺度训练模式,生成额外分辨率的样本图像,其分辨率大小从320×320至608×608不等,最后经过预测模块验证模型.

3.1.4 麻将子训练模型的评估 在训练阶段,程序每迭代1 000次会自动保存一次权重模型,通常选择具有最高的IoU和mAP的权重文件作为最终模型.但实际上在最后阶段的训练中这些差异很小,并且为了直观地与原检测框架做效果对比,选取最终训练12 000次迭代的权重模型.随着迭代次数的增加loss逐渐下降,当下降极慢时模型趋于稳定,同时IoU(预测边框与实际对象重合比例)也随着迭代次数的增加而变化.改进后YOLOv3生成的IoU变化曲线与训练loss曲线如图9.

图9 训练模型的IoU与loss变化曲线图Fig.9 Training model IoU and loss curve

在2 000次迭代后,改进后的YOLOv3网络的IOU迅速达到0.8以上,即预测边框与实际对象重合比多数在80%以上,预测边框较为准确.整体来看,模型在前2 000次迅速拟合,最终loss稳定在0.2左右,检测性能良好.

3.1.5 麻将子训练模型与改进前模型对比 在与原网络框架进行对比实验时,保留相同的参数设置与样本增加的预处理操作,使用12 000次的迭代模型作对比,各类目标详细的检测效果对比如表4所示.

表4 改进前后模型各类结果评分对比Tab.4 Comparison of various results of the model before and after the improvement

改进网络模型对形状错误和表面破损的麻将子检测准确度提升较大,这是由于改进前这两类麻将子在多尺度训练时生成了过多的虚假正样本(FP),而改进后的网络虚假正样本很少,多数为真实正样本(TP).

综合来看,样本足够的情况下,对合格类别和竹节类别的麻将子检测效果最好,而其他类别效果略差,这是因为后者像素特征组合复杂,同时样本相对较少,使得网络生成虚假样本太多,最终导致检测效果较差.对于改进前后的各类指标评分对比如表5所示.

从表5可以看到,改进后YOLOv3网络的mAP-50提升了2.45%;每秒检测帧数由67.84提高至148.59,提升了119.03%;同时总浮点运算数从653.1亿次降低到110.5亿次,网络运算成本减少,训练速度得到提升,整体网络更加轻量化.综合上述,实验证明了改进YOLOv3网络在麻将子数据集上的检测效果良好.

表5 改进前后麻将子模型各项指标评分对比(取阈值0.25以上数据)Tab.5 Comparison of scores of majiang mat model before and after improvement (The threshold of 0.25 or more)

3.2 Kaggle开源数据集实验

Kaggle是互联网上最著名的数据科学竞赛平台之一,本实验选取Kaggle猫狗图像数据集作为试验对象,其中共25 000张样本图像,平均分为猫、狗两类.为方便与改进前的网络模型做对比验证,在试验时只取部分数据作试验,其中猫、狗各100张,取其中15%作为验证集,其余为训练集,最终迭代12 000次,与改进前的网络模型进行对比实验的结果如表6所示.

从表6可以看到,改进后YOLOv3网络的mAP-50提升了12.5%;每秒检测帧数由61.94提高至138.99,提升了124.39%;同时总浮点运算数从652.9亿次降低到110.2亿次,整体网络更加轻量化;实验证明了改进YOLOv3网络在Kaggle数据集上的检测效果良好.

表6 改进前后猫狗模型各项指标评分对比(取阈值0.25以上数据)Tab.6 Comparison of scores of cat and dog model before and after improvement (The threshold value of 0.25 or more)

3.3 Caltech开源数据集实验

Caltech是美国加州理工学院制作的标准数据集之一,本实验使用了Caltech-256中的数据集,其中包含了256种不同种类的图片.为方便与改进前的网络做对比验证,在试验时只取部分数据,其中保龄球104张,足球122张,取其中15%作为验证集,其余为训练集,最终迭代12 000次,与改进前的网络模型进行对比实验的结果如表7.

从表7可以看到,改进后YOLOv3网络的mAP-50提升了5.34%;每秒检测帧数由63.21提高至151.74,提升了140.05%;同时总浮点运算数从652.9亿次降低到110.2亿次,整体网络更加轻量化;实验证明了改进YOLOv3网络在Caltech数据集上的检测效果良好.

从表7可以看到,改进后YOLOv3网络的mAP-50提升了5.34%;每秒检测帧数由63.21提高至151.74,提升了140.05%;同时总浮点运算数从652.9亿次降低到110.2亿次,整体网络更加轻量化;实验证明了改进YOLOv3网络在Caltech数据集上的检测效果良好.

4 总结

本文基于小样本数据集提出了一种改进的YOLOv3神经网络算法,使用密集串联结构代替原本的残差连接结构,下采样过程使用过渡层来替代原本的改变卷积步长降维的方式,并删减了小尺度分辨率的检测模块,保留中、大尺度检测模块.

实验表明,对于自制麻将子数据集,改进后的YOLOv3神经网络对比原神经网络的mAP-50提升2.45%,并减少了浮点运算数,检测帧数提升了119.03%,证明了改进模型应用于麻将子数据集上的效果良好.

对于kaggle开源数据集以及Caltech开源数据集,改进后的YOLOv3神经网络算法对比原算法的FPS分别提升了124.39%、140.05%,mAP-50分别提升了12.5%、5.34%,证明了改进网络模型有更好的分类能力,因此可以推广至其他小样本数据集.

猜你喜欢

麻将尺度分辨率
基于生成对抗网络的无监督图像超分辨率算法
论社会进步的评价尺度
中国麻将走红国外
宇宙的尺度
“麻将迷”妈妈
ARM发布显示控制器新品重点强化对分辨率的支持
9
从600dpi到9600dpi
锐化与显示器分辨率
生日快乐