基于Yolo V4的拥挤路段车辆检测

2022-01-22 11:21周万奇李丹
电子测试 2021年24期
关键词:主干卷积车辆

周万奇,李丹

(四川大学锦城学院,四川成都,611731)

0 引言

中国是一个领土面积大且人口数量众多的国家,随着人们的生活水平不断提高家家户户都拥有汽车。因此交通问题便是人们所关心的问题例如:车与车之间的矛盾、人与车之间的矛盾。若是用人去解决这样的矛盾,这需要花费很多的人力。因此我们需要去用智能化的方法去解决这样的问题。

对于目前来说,能做智能化的去感知交通情况的相关算法有很多。都可以去完成目标检测。例如较为经典的R-CNN、Faster R-CNN等基于候选框生成检测的。这些较为经典的算法对于目标检测来说都有很高的精确度,但是他们的速度相对于Yolo V4来说使比较慢的。但是在车流量都较为密集的地方,我们还是需要一个速度较为块,且精度不低的算法去实现目标的快速检测。因此选择Yolo V4是一个不错的选择,它基于Yolo V3进行的改进。不仅在速度得到了提升,在精度方面也得到了提升。进而更好的对人和车进行检测。

1 Yolo V4算法原理

大多数基于CNN的目标检测只能使用在推荐的系统上。虽然精确但是较为缓慢。但是车流量和人流量高的地方,这是需要快速去识别的。因此选择Yolo v4相对于来说是比较符合需求的。Yolo V4是一种单阶段目标检测的算法,该算法在Yolo v3的基础上添加了一些新的改进思路并且在原论文中给出两个很好的概念Bag of freebies(目标检测器在不用增加推理成本,让精确度更好)和Bag of specials(仅增加少量推理成本但可以显著的提高对象检测准确性),同时YOLO V4在coco数据集上不仅达到了43.5%Ap而且能达到65FPS。使得其速度与精度都得到了极大的性能提升。Yolo V4算法主要有三个大部分组成。第一个部分就是其主干网络部分,主干网络采用的是CSPDarkNet53用来提取模型中的特征还有DropBlock,马赛克数据增强。第二个部分是脖子部分(neck)包括SPP和PANet。第三个部分就是Yolo head部分,里面包含损失函数GIOU_Loss。图1是YoloV4的整个网络结构。

图1 Yolo V4网络结构

在主干网络部分,YoloV4没有继续的沿用YoloV3的主干网络DarkNet,而是采用了CSPDarknet53网络。该网络的输入图像大小为608*608,图片输入到网络中后,会对图片进行预处理,也就是把输入的图片大小缩放到网络的输入大小。同时网络中拥有52个卷积。输入的图片先经过有32个过滤器的卷积核去卷积,将得到的特征层在经过5个残差单元,并且在每个单元中会去进行重复的卷积操作且多是先进行1*1在继续进行一个3*3的卷积操作,而且每个单元分别重复卷积操作的次数为(1、2、8、8、4),再将在这一步分得到的3个输出结果分别做不同的处理,使用CSPDarknet53的优点有三方面1:增强了CNN的学习能力,在轻量化的同时保持准确性、2:降低了计算瓶颈、3:降低内存成本。虽然整个的主干网络看起来和Yolo v3差不多,但是再DarknetConv2D中把激活函数进行了替换,改为了Mish函数。

使用Mish函数是因为Mish函数是个无界函数,同时梯度更加的平滑,能让更好的信息进入到神经网络中去。

此外除了激活函数的改变,还将残差网络的结构也进行了改变。使用的是CSPNet网络,将残差块拆分成两个部分。主要部分就继续进行残差堆叠,另一边则是一个残差边,最后与主要部分进行结合输出。CSPNnet结构如图2所示

图2 CSPNet结构以及对比图

在主干网络部分,会对3个特征层进行利用,分别是主干网络中的倒数3层如图1所示。其中(19,19,1024)的特征层会被送入到SPP采用1*1、1*5、9*9、13*13的最大池化方式,进行多尺度融合。SPP可以将模型的感受野增大,将最显著的上下文特征分离出来。然后将得到的特征层,和(76,76,256)、(38,38,512)一同放入到 PANet。进入到PANet中的特征层,会完成特征金字塔从下到上和从上到下的的特征提取,在里面不断的拼接、卷积、上采样与下采样。最后得到3个输出,也就是图1中的yolo head。

在yolo head中anchor机制与yoloV3相同,主要改进的是训练时损失函数。使用的是CIou_loss。为什么要选择CIOU_Loss呢?在选择IOUloss的情况下当预测框和目标框不相交时,IOU=0,无法反映两个框之间的距离,无法进行优化,若时当两框进行完全重合时,无法区分两者相交的情况。而GIOU_Loss虽然可以解决梯度消失的问题,但会消耗大量的时间在预测框与真实框接触上,影响收敛的速度。

CIOU_Loss是在DIOU_loss的基础上进行改进的,加入了影响因子,将目标框回归函数该考虑的重要因素:重叠面积、中心距离、长宽都考虑进去了。采用这样的回归方式,使得预测框回归的速度和精度要更高一些。

2 数据集制作

在数据集制作方面,在网络上收集了1000张不同车况的图像(收集的照片未被标注)。并且自己使用Label Image进行手动标注。分别制作了两个数据集。数据集1:前500张,训练集:验证集:测试集比为8:1:1、数据集2:全部1000张图像,训练集:验证集:测试集比为8:1:1。

图3 数据集制作

3 实验结果与分析

3.1 实验数据

本文采用的是数据集是在网上进行收集的图片,并且自己进行手动标签。一共1000张图片。

3.2 实验平台

本实验平台配置为:显卡为英伟达1050Ti,显存为4G,CPU为Inter Core i7-8750H,内存为16g,Windows10操作系统,环境为Pyortch。

3.3 实验过程及分析

由于实验平台的问题,在训练数据集1时,应为数量较少输入图像大小为608*608,数据集2输入图像大小为416*416。应为本文主要针对的汽车的检测,因此在分类上只分了car的类输入网络中去训练。但在数据集中,车的类型并不只是单一的只有小型汽车,还有卡车消防车等汽车类型。同时为了在一些复杂化环境下也可以检测到汽车,在数据集中放入了一些恶劣环境下的汽车图片。同时在进行预测时还使用到视频去预测。因此本模型不仅可以在静态的图片上进行预测,同时也可以在视频上进行检验。

同时在元数据的基础上使用了Yolo V4的小ticks,在原有的数据上进一步的进行了数据增广,通过mosaic的方法对图像进行了随机裁剪,缩放等一些操作,这样可以为模型更好的去增加鲁棒性。在训练时训练了不同的模型,对有的模型加入了平滑标签,有的没有加入。

同时在训练自己的数据集之前,我还对VOC的数据集进行了训练,epoch为30,学习率为0.0001同时进行了预测。同时采用了YOLOv4的权重文件作为车辆检测的预训练模型,并且采用了自己制作的数据集中944张图片作为训练集。图4分别时在VOC数据集上训练的LOSS变化(右)和在自己数据集上训练的Loss变化(左)。可以看出到后面越接近结束时Loss值趋近于收敛。由于在本次实验在中没有进行对损失进行归一化处理所以损失值看来较为大。但影响不大,最终看的还是Loss是否趋于收敛。

在实验中对于自己数据集训练,训练了2个模型。模型1:学习率为0.00001,没有平滑标签,输入网络的图像大小为608*608,epoch为30数据集图片数量只有446张图像进行训练和检验。模型二学习率为0.0001、平滑标签为0.01、epoch为50、输入网络的图像大小为418*418,用于训练和检验图像增加到944。两模型Batch_size都为4,且对于两个模型,在训练时都是进行了冻结的处理目的都是对为了让模型在训练数据集的时候加快模型的训练,让我们更快的看见结果。图5为两个模型loss值得变化的对比。

图4 左:制作的数据集,右:VOC数据集

图5 左图为模型2,右图为模型1

之后得到了模型选取较为好的权重文件,放入到预测部分去对同一张图去进行对车辆在路口的识别。图6为两个模型识别的对比图。

图6 左图为模型1下进行的检测、右图为模型2下进行的检测

从图中可以看出模型二的识别效果时较为好的,能识别出大部分的车车辆,且精确度也要相较于模型2有所提升。而模型1由于数据集较为小的原因,并不能完全的都将车辆的全部识别。对于有些遮挡的车辆并不能很好的识别出来,只能前面比较清晰的车辆识别出。

4 模型应用流程

拥挤路段车辆检测应用流程如图7所示。系统与各路口的摄像头相连,通过路口的摄像头返回实时的图像或者视频,将视频或图像进行处理后放入模型中进行检测、统计车流量。将统计的车车流量返回到系统中进行判断,是否发出超量预警。因此系统能较好的实时统计车流量,并告知出行人员让其自行判断出行路线。

图7 拥挤路段车辆检测应用流程图

5 结束语

从上述实验结果看来,将Yolo V4算法运用在拥挤道路上对于车辆检测是较为有效的。能够较好的去识别车辆,并且能统计车辆数。

因为在本次实验中所用的数据的量较为小,在精准度方面并不是特别的突出,若是收集更多的数据,在更好的设备上进行数据的训练,相信精确度和速度都会得到更多的提升,对于模型的评估也会更好。对于训练出更好的模型我们也可以运用在更多更复杂的环境下从而让其实用性变得更加强。

猜你喜欢
主干卷积车辆
抓主干,简化简单句
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
车辆
基于傅里叶域卷积表示的目标跟踪算法
左主干闭塞的心电图表现
冬天路滑 远离车辆
整合内容 构建高效课堂——开展非线性主干循环活动型单元教学模式
提高车辆响应的转向辅助控制系统
全国主干公路网交通安全监控信息共享平台构建研究