APP下载

基于改进YOLOv4网络的轻量化交通标志检测模型

2022-04-11王泽华宋卫虎吴建华

电脑知识与技术 2022年5期
关键词:目标检测

王泽华 宋卫虎 吴建华

摘要:针对在嵌入式车载交通标志识别系统对检测模型的大小以及实时性有着较高的要求,在基于原有YOLOv4的网络架构上,提出一种改进后的目标检测网络Mobilenetv2-YOLOv4-SAP。Mobilenetv2-YOLOv4-SAP通过使用轻量级卷积神经网络Mobilenev2对原YOLOv4网络的特征提取网络CSPDarknet53进行替换融合以及引入注意力机制SAP模块解决多通道池化层的信息冗余问题,从而在减少网络模型参数量和计算量的同时,保持较高的检测精度。通过实验表明,改进后的网络模型在Kaggle Road sign detection比赛数据集上的平均检测精度上达到了95.94%较原YOLOv4网络提升了0.34%,该网络模型的大小为48.97MB,仅为原YOLOv4模型大小的20%,且检测速率FPS达到了61帧/秒,相比于原YOLOv4网络模型提升了265%。

关键词:交通标志识别;Moblienetv2;信息冗余;目标检测;YOLOv4

中图分类号:TP391      文献标识码:A

文章编号:1009-3044(2022)05-0098-04

自从智能交通系统的发展以来,交通标志识别便作为智能交通系统中的重要一环开始研究,起初交通标志识别主要采用了对目标颜色分辨、图像切割以及傳统的机器学习方法实现对交通标志的识别,但是这些方法通常面临着识别准确率低、识别速度慢等问题。随着卷积神经网络(Convolutional Neural Networks, CNN)的发展,很好地解决了这些问题,并在图像识别领域有着较为出色的表现。随着CNN的发展,相继延续出了RCNN、VGG[1]、AlexNet[2]等用于图像分类的Two-stage网络结构以及以SSD[3]为主的运用于目标检测的One-stage网络结构。文献[4]通过使用ResNet50-D来作为YOLOv3中的特征提取网络增强网络特征提取能力。文献[5]以YOLOv3作为框架,通过改进特征提取网络以及特征融合网络提升对小目标交通标志的检测性能。文献[6]通过在YOLOv3中融合空间金字塔池化层(SPP)以及改进网络中FPN结构提升算法的检测精度和实时性。文献[7]提出了Cascaded R-CNN算法,在CCTSDB数据集上的检测精度达到99%,但是检测速率则比较慢。文献[8]在YOLOv3的基础上引入深度可分离卷积来减少模型的参数量。文献[9]采用Faster R-CNN对交通标志进行检测,文献[10]在YOLOv2的基础上通过对网络的裁剪降低算法的算量和参数量,同时通过用网格划分输入特征图像增强小目标交通标志的检测性能。

为了解决传统YOLOv4算法运行速度较慢、对设备要求高、不适用于嵌入式设备等缺点,使网络模型可以更好地运用在车载嵌入式设备中,本文采用了改进的YOLOv4算法,对交通标志进行检测,主要贡献如下:

1)引入轻量级神经网络Mobilenetv2作为检测算法的主干网络,提升算法的检测速度。

2)引入SAP模块,解决多通道池化结构产生的信息冗余问题。

3)针对YOLOv4锚框机制不能很好地匹配交通标志检测的问题,利用K-means++聚类算法对数据集进行重新聚类,生成适合交通标志检测的先验框。

2 Mobilenetv2-YOLOv4-SAP网络结构

2.1 Mobilenetv2-YOLOv4网络

YOLOv4算法是为了提升算法的运算精度,而在YOLOv3算法的基础上引入了CSPDarknet53网络作为其主干网络,相比于YOLOv3算法的主干网络Darknet53,CSPDarknet53网络通过增加输入的特征信息以及网络的计算量使运算精度提升,在运用于交通标志检测的车载嵌入式设备上,原YOLOv4模型无疑增大了设备的硬件要求。导致YOLOv4算法在移动端和嵌入式设备中面临着延迟高、速率慢等缺点。通过测试,YOLOv4算法在嵌入式车载交通标志识别装置中的检测速率仅仅达到23帧/秒,远远不能达到对交通标志识别系统检测实时性高的要求。因此,本文受到Google开发的轻量级神经网络Mobilenet[11]的启发,提出了一种新的轻量级网络Mobilenetv2-YOLOv4。

Mobilenet网络是由Google公司在2017年提出的一种专注于移动端的轻量级神经网络,其通过使用深度可分离卷积替换标准卷积,该网络可以在牺牲少量准确率的前提下,降低模型的参数量和运算量。深度可分离卷积分为深度卷积和逐点卷积两部分,深度卷积通过给每一个输入层赋予一个不同的卷积核提取输入图像的特征,逐点卷积是每一层都使用一个1×1的卷积核,处理深度卷积中所提取的特征信息并对其进行整合。在卷积核大小为3×3时,通过深度卷积和逐点卷积两个步骤可使模型的计算量降低到原来的1/9,再通过引入宽度超参数α和分辨率超参数β,使整个网络模型的计算量存在[α2β2]的优化空间。

Mobilenetv2在Mobilenetv1的基础上增加了一个倒残差结构和线性瓶颈结构。倒残差结构首先采用一个1×1的卷积升维,使深度可分离卷积在高维度中提取特征以提升模型的表征能力,再经过一个1×1的卷积进行降维操作,使输出的特征通道数量与输入的特征通道数量保持一致。由于ReLU激活函数在特征通道较少时会导致特征信息丢失的特点,而倒残差结构由于减少了参数量,导致输出特征通道数量较低,为了避免ReLU激活函数影响网络性能Mobilenetv2,使用线性激活函数替换ReLU激活函数形成线性瓶颈层。

Mobilenetv2-YOLOv4通过使用Mobilenetv2网络替换YOLOv4的骨干网络CSPDarknet-53,减少了模型的参数量和计算量。

2.2 SAP模块

He[12]等人通过研究证明,在卷积神经网络中全连接层必须输出固定的特征值,直接对输入图片进行拉伸或压缩会导致输入特征信息的丢失,降低识别精度,从而提出了SPP池化结构。SPP借鉴空间金字塔的思想提取局部和全局的特征信息,使输入图像不再需要固定的大小和比例,就可以产生固定大小的特征表示传输给全连接层,从而解决该问题。

本文在SPP的基础上提出了SAP Module結构,通过把SAP Module结构添加在多尺度融合过程中提升感受野,同时解决池化层的信息冗余问题,获得更多有效的特征信息,SAP Module结构如图1所示。

SAP Module分别使用尺度为5×5、9×9、13×13的三个最大池化窗口,作用于上层卷积所产生的特征图像,然后选取特征图像中的最大值作为池化层的输出值。设置池化层的步长为1来保持特征图像的大小不发生改变,最终通过融合输入特征图像以及经过池化层后的局部特征图来增加感受野。然而对于多通道池化结构,难以避免在特征融合过程中产生冗余信息,冗余信息的产生会加大特征提取的难度,影响模型的识别精度和速率。为了消除冗余信息对模型的影响,本文通过融合池化层与压缩和激励结构解决这一问题。

压缩和激励结构通过在神经网络中引入注意力机制让模型自主获取每一个特征通道的重要程度,并设置不同的权重。以此权重作为参照增强重要的特征通道同时,弱化无用的特征通道,其结构如图2所示。

在经过最大池化层后,SAP模块将输入的特征信息与融合所产生的冗余信息一同传输到压缩与激励结构。如图2所示,首先通过压缩函数[Fsq(ud)]将全局通道信息压缩为一个特征通道信息。压缩函数[Fsq(ud)]如公式(1)所示,其中[zd]表示第[d]层通道所统计的数据,[ud]表示第[d]层通道的特征图。

SAP模块在经过压缩处理后,通过激励函数[Fex]对所聚合的各特征通道信息生成相应的权重S。由于捕捉不同特征通道间的相关性会导致模型泛化性降低,因此设置两个全连接层来实现门控机制。其中全连接层[W1]为降维操作,采用RuLE激活函数来输出结果,全连为升维操作,采用Sigmoid激活函数将权重进行归一化,添加门控机制使激励函数输出的结果在具有非线性的同时,降低了参数量和计算量。激励函数[Fex]如公式(2)所示,其中[σ(x)]为Sigmoid激活函数,[δ(x)]为ReLU激活函数。

[S=Fex(Z,W)=σ(g(Z,W))=σ(W2δ(W1Z))]      (2)

在经过压缩和激励结构后,SAP模块通过函数[Frw]将激励结构所输出的结果与原有的特征信息进行通道乘积,为特征信息的权重进行加权,重新设定每个特征通道的重要程度,[Frw]函数如公式(3)所示。进而增强特征图像的输入特征信息的特征通道,同时弱化融合所产生冗余信息的特征通道,以减少冗余信息对模型特征提取的影响。

[Frw(ud,sd)=ud×sd]                    (3)

Mobilenetv2-YOLOv4-SAP网络结构如图3所示。

2.3 K-means++聚类算法确定锚框

YOLOV4的锚框机制主要是根据VOC数据集聚类得到的,该锚框分为三个尺度,每个尺度又分为三个不同的尺寸。针对交通标志检测,大多数的交通标志形状大小保持一致,利用原始的锚框机制会影响交并比IOU的计算值,导致无法筛选出最优预测框。而K-means算法需要选定合适的初始聚类中心作为初始值,初始聚类中心的选择会影响锚框生成的效果,因此本文采用了K-means++聚类算法保证初始聚类中心选择的离散型,从而提升锚框生成的效果。

本文K-means++算法流程:首先在目标框A中随机选取一个聚类中心点d,计算该聚类中心点d与A中每个样本[α]间的欧氏距离[D(α)],通过公式[D2(α)α∈AD2(α)]计算概率,选取最大概率的点作为下一个样本中心[a1]。重复上述操作,直至选出9个离散的聚类中心。计算9个选取的聚类中心与样本[a]的中心距离,并分别分到相应聚类中心对应的簇中,通过计算聚类中心d,直至聚类中心不再发生改变。

本文将交通标志输入至网络,提取3个不同尺度的特征,并保持原输入的分辨率大小不变以保证图像的特征信息不被压缩,网络通过K-means聚类算法生成8756个边界框来预测交通标志的位置和大小,再通过设定NMS为0.5过滤分数较低的框,保留IOU更大的边界框。

本文最终通过K-means++聚类算法重新生成9个新的锚框参数(32,40)、(50,112)、(64,52)、(112,108)、(164,177)、(198,156)、(284,217)、(326,358)、(576,731)用于交通标志的检测。

3 实验与结果分析

3.1 实验环境配置

本文采用的实验环境为Ubuntu 20.04操作系统。硬件配置:CPU为Intel i7-9700F,内存大小为32GB。GPU采用了NVIDIA GeForce RTX 2080Ti,显存为11GB的显卡。学习框架为PyTorch,编程语言为Python。

3.2 交通标志数据集

本文使用的数据是Kaggle Road sign detection比赛数据集,分为traffic light、stop、speedlimit以及crosswalk四个类别共877张图片,其中随机选取98张图片作为测试集数据,779张图片作为训练集数据。由于数据集的数据量过小,本文在该数据集的基础上实现了数据扩充,包括翻转、亮度调节、添加噪声、模糊处理等9种方法,最终得到数据集7000张。扩充后的数据如图4所示。

3.3 评价指标

本文采用了多个指标评价算法的性能,其中包括AP、recall、mAP以及模型大小和检测速率FPS。其中AP代表检测一个类别的平均准确率,recall代表算法召回率,mAP代表所有类别的平均检测准确率,FPS表示算法的检测速率,单位是帧/秒。各评价指标的计算公式如下:

[precision=TPTP+FP]                                (4)

[recall=TPTP+FN]                                (5)

其中precision代表一张图像中某一个类别的检测准确率,TP为预测为正类样本且预测正确的个数,FP为预测为正类样本且预测错误的个数,FN表示预测为错误的正类样本的数量。

[AP=1N1Nprecision]                                (6)

[mAP=1N1NAP]                                (7)

3.4 模型训练

整个训练过程分为100个epoch进行训练,由于训练过程网络参数过多,对网络收敛的条件要求高,本文采用分层训练的方法缓解参数过多带来的影响。在训练前50个epoch时,设置初始学习率为0.01、权重衰减系数为0.0005、动量参数为0.9进行粗训练。粗训练过程的Batchsize设置为16。在前50次epoch训练完成后,设置学习率为0.0001进行细训练,细训练的Batchsize设置为8。

改进算法在交通标志检测中的效果图如图5所示。

3.5 实验结果与分析

为了验证Mobilenetv2-YOLOv4-SAP网络在交通标志检测中的性能,本文对该算法与原YOLOv4算法、Mobilenetv1-YOLOv4網络、Mobilebnetv1-YOLOv4-SAP网络、Mobilenetv2-YOLOv4网络从准确率AP、平均准确率mAP、召回率recall、模型大小以及检测速率FPS上进行了对比实验。为了使实验结果具有客观性,本文在实验进行时,将数据集进行10次随机打乱后再进行测试,最终取10次测试结果的平均值作为本次对比实验的实验结果。实验结果在表1中进行对比展示。从表1可以看出,原YOLOv4算法的检测准确率较高,达到了95.6%,但是模型大小和检测速率的表现相对较差。YOLOv4算法的模型大小达到了244.29MB,不适用于嵌入式设备的使用,而检测速率仅达到了23帧/秒,不适用于对实时性要求较高的检测场景。轻量化网络模型Mobilenetv1-YOLOv4算法有效地缩减了YOLOv4算法的模型大小,达到了48.42MB且检测速率也提升至61帧/秒,可以满足嵌入式交通标志识别的要求。但是改进后的网络模型在识别精度上的表现较差,仅达到了92.84%,相比原YOLOv4的检测精度下降了2.76%。经过进一步研究,在融合轻量化网络模型Mobilenetv2网络后的网络模型Mobilenetv2-YOLOv4,其检测速率和精度得到了进一步地提升,分别为94.41%和64帧/秒,模型大小也降低为46.82MB,但是对比原YOLOv4网络的检测精度依旧下降了1.19%。在融合本文所提出的SAP模块后,Mobilenetv1-YOLOv4网络的检测精度提升了1.17%,达到了94.01%,同时模型大小仅仅增加了2MB,检测速率FPS下降了2帧/秒。本文算法在轻量化YOLOv4的网络模型Mobilenetv2-YOLOv4的基础上添加了本文所提出的SAP模块,在融合SAP模块后,本文算法使得检测精度相较于Mobilenetv2-YOLOv4提升了1.53%,模型大小增加了2.15MB,检测速率下降了3帧/秒。本文算法对比于原YOLOv4网络模型,在检测精度上得到了少量提升,提升了0.34%,但是在模型大小方面降低了195.39MB,同时检测速率提升了265%,达到了61帧/秒。

因此,本文提出的改进效果是明显的,改进后的YOLO网络在模型大小和检测速率上都得到了优化,且检测精度也略有提升,可以较好地完成对交通标志检测的轻量化和实时性要求。

4结束语

针对交通标志检测的实时性要求,本文在YOLOv4算法的基础上,借鉴轻量级神经网络Mobilenet,提出了一种改进YOLOv4的轻量级神经网络算法。在轻量级的基础上,本文提出了一种新的注意力机制SAP模块消除网络中信息冗余的问题,提升模型的检测精度,并引入CIoU弥补IoU在真实框与预测框没有交集时所带来的影响,加快损失收敛速度,提升检测精度。在数据集上采用多种方法对数据进行扩充验证模型识别的真实性,并针对交通标志数据集采用K-means++聚类方法重新设定锚框比例,提高模型的泛化能力,以使模型可以更好地应用于交通标志检测场景。通过实验表明,该算法在Kaggle Road sign detection比赛数据集中的表现相较于原YOLOv4算法在各方面都有提升,其mAP达到了95.94%,相较于原YOLOv4提升了0.34%,但在模型大小和检测速率上相较于原YOLOv4模型有着显著的提升,分别达到了48.97MB和61帧/秒,更加适用于嵌入式交通标志检测场景,但是在其他场景下的检测效果仍旧不及其他大型检测网络,如何让模型适用于更多的检测场景,依旧是一个有待解决的问题。

参考文献:

[1] Simonyan K,Zisserman A.Very deep convolutional networks for large-scale image recognition[J].arXiv preprint arXiv:1409.1556,2014.

[2] Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[J].Communications of the ACM,2017,60(6):84-90.

[3] Liu W,Anguelov D,Erhan D,et al.SSD:single shot MultiBox detector[C]//European Conference on Computer Vision. Berlin, Germany: Springer,2016:21-37.

[4] 徐迎春.基于YOLOv3改进的交通标志识别算法[J].数字技术与应用,2021,39(1):108-111,116.

[5] 刘胜,马社祥,孟鑫,等.基于多尺度特征融合网络的交通标志检测[J].计算机应用与软件,2021,38(2):158-164,249.

[6] 刘紫燕,袁磊,朱明成,等.融合SPP和改进FPN的YOLOv3交通标志检测[J].计算机工程与应用,2021,57(7):164-170.

[7] Zhang J M,Xie Z P,Sun J,et al.A cascaded R-CNN with multiscale attention and imbalanced samples for traffic sign detection[J].IEEE Access,2020,8:29742-29754.

[8] 江金洪,鮑胜利,史文旭,等.基于YOLO v3算法改进的交通标志识别算法[J].计算机应用,2020,40(8):2472-2478.

[9] Zuo Z R,Yu K,Zhou Q,et al.Traffic signs detection based on faster R-CNN[C]//2017 IEEE 37th International Conference on Distributed Computing Systems Workshops.June 5-8,2017,Atlanta,GA,USA.IEEE,2017:286-288.

[10] Zhang J M,Huang M T,Jin X K,et al.A real-time Chinese traffic sign detection algorithm based on modified YOLOv2[J].Algorithms,2017,10(4):127.

[11] Howard A G,Zhu M L,Chen B,et al.MobileNets:efficient convolutional neural networks for mobile vision applications[EB/OL].[2021-09-20].https://arxiv.org/abs/1704.04861.

[12] He K M,Zhang X Y,Ren S Q,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2015,37(9):1904-1916.

【通联编辑:唐一东】

收稿日期:2021-10-15

作者简介:王泽华(1995—),男,河北邯郸人,硕士,研究方向为计算机视觉;宋卫虎(1996—),男,河北邢台人,硕士,研究方向为计算机视觉;吴建华(1997—),男,河北邯郸人,硕士,研究方向为深度学习。

猜你喜欢

目标检测
多视角目标检测与跟踪技术的研究与实现
视频中目标检测算法研究
行为识别中的人体运动目标检测方法
移动机器人图像目标识别
基于背景建模法的运动目标检测
基于P3电位的目标检测研究
智能视频技术在电力系统领域的应用
相关K分布杂波中扩展目标积累检测性能分析
基于连通域标记的目标检测算法设计与实现
一种改进的峰均功率比判源方法