APP下载

基于YOLOv4的车辆与行人检测网络设计

2023-05-31谭光兴岑满伟苏荣键

计算机仿真 2023年4期
关键词:尺度卷积深度

谭光兴,岑满伟,苏荣键

(广西科技大学电气与信息工程学院,广西 柳州 545616)

1 引言

随着机器视觉和人工智能的不断发展,自动驾驶技术已成为当今汽车发展的研究热点,其中前方道路的障碍物检测技术是自动驾驶汽车所面临的挑战。车辆和行人是汽车正常行驶时前方常见的障碍物,实现对车辆和行人的准确且实时检测已成为目标检测技术领域的研究热点[1]。考虑到设备平台资源有限,目标检测系统不宜占用较大内存,要求检测系统轻量、实时且精准。

如今,基于深度学习的目标检测算法不断发展,已经成为对车辆和行人检测主流的方法,主要分为two-stage和one-stage两种目标检测网络。two-stage目标检测网络主要是基于侯选区域的检测算法,Girshick等[2]最早提出R-CNN网络,先产生侯选区域,再对侯选区域进行分类和回归。之后提出Fast-RCNN[3],使用感兴趣区域池化结构对候选区域进行尺度同一化以及引入多任务损失函数,提升网络性能。Girshick等[4]基于区域侯选网络结构,再次提出Faster-RCNN网络。He等[5]提出Mask-RCNN算法,通过引入Mask分支和RoIAlign结构,取得较好地检测能力。虽然two-stage目标检测网络精度高,但检测速度相对较慢,实时性较差。one-stage目标检测网络是基于回归思想,采用端到端的检测方法,直接产生目标物的位置坐标和类别概率。Redmon等[6]提出YOLOv1算法,将整张图像送入网络训练,在输出层完成对目标物的分类和定位,检测速度得到提升。Liu等[7]提出SSD算法,引入先验框进行回归,并结合多尺度特征来提高目标物的检测能力。Redmon等[8]提出YOLOv2算法,使用K-Means聚类出先验框进行检测。随后再次提出YOLOv3[9],采用Darknet-53作为主干网络,采用特征金字塔结构,融合多尺度特征进行检测。Bochkovskiy等[10]提出YOLOv4算法,该网络汇集目前主流的优化技巧以及复杂的网络结构,能够精准地检测目标物,在YOLO系列算法中较为先进的。但是YOLOv4网络参数量和模型体积庞大,占用较大内存,难以在运算能力较弱的嵌入式设备实时地检测目标物。

在设备计算资源有限的情况下,目标检测网络需要综合考虑检测精度和检测速度两者问题。针对YOLOv4的不足之处,本文对其算法进行轻量化,用MobileNetV1轻量化网络替换主干网络,进一步将网络中的标准卷积替换为深度可分离卷积,减少模型参数量;为弥补精度损失的降低,构建与各预测层特点相适应的特征增强模块,借助跨深度卷积和空洞卷积结构来改善各预测层对车辆和行人尺度变化的适应能力。改进后的MobileNetV1-YOLOv4网络模型具有参数量少、体积小、速度快的优点,在精度上有一定地提升,提高了对小目标的检测能力。

2 网络模型分析

2.1 YOLOv4网络结构

YOLOv4[10]网络结构可以看成四个模块组成:特征提取模块、空间金字塔池化模块、路径聚合网络模块以及预测模块。相比YOLOv3的Darknet53主干网络,YOLOv4融入交叉阶段部分连接(Cross State Partial, CSP)[11],设计出CSPDarknet53特征提取结构,增强网络学习能力,也降低计算复杂度。加入空间金字塔池化模块(Spatial Pyramid Pooling, SPP)[12],融合局部和全局特征,增大网络感受野;为改善深层网络丢失浅层网络信息的问题,引入路径聚合网络(Path Aggregation Network, PANet)[13];预测模块结构上没有变化,依旧采用Yolo Head1、Yolo Head2、Yolo Head3检测头对不同尺度进行预测,得出最后的类别、置信度和预测边框信息。以输入尺寸为416×416,目标类别数为20的YOLOv4网络结构如图1所示。

图1 YOLOv4网络结构

在损失函数方面,YOLOv4使用CIOU作为目标边界框回归损失函数,避免出现预测框和真实框没有重叠部分而无法优化IOU损失的问题。CIOU综合考虑预测框和真实框的重叠面积、中心点距离以及长宽比,优化预测框回归精度和速度,损失函数如式(1)所示

(1)

其中

(2)

(3)

式中的p2(b,bgt)表示为预测框的中心点b与真实框的中心点bgt的欧氏距离,c表示为包围真实框和预测框的最小外接矩形的对角线距离。α是用来协调比例参数,υ是用来衡量长宽比一致性的参数,wgt、hgt表示真实框的宽高,w、h表示预测框的宽高。

2.2 MobileNet网络结构

MobileNet[14]是考虑专门将网络模型使用在嵌入式设备或者移动设备上,所提出的一种轻量化的网络模型,其核心思想是采用深度可分离卷积结构。相比标准卷积,深度可分离卷积结构主要分为深度卷积(Depthwise Convolution)结构和点卷积(Pointwise Convolution)结构。深度卷积(DW)对输入特征的每个通道分别用卷积核进行卷积,大幅度地减少卷积计算量;点卷积(PW)通过1×1卷积核整合深度卷积后的特征图信息,使每张的输出特征图信息都能包含每张输入特征图信息。标准卷积和深度可分离卷积的结构对比如图2所示。

图2 标准卷积和深度可分离卷积的结构

图2中DK和1为卷积核的尺寸大小,M和N分别为网络的输入通道数和输出通道数,通过图2的结构对比,能够计算出标准卷积的参数量为DK×DK×M×N,深度可分离卷积的参数量为DK×DK×1×M+1×1×M×N。由此可知深度可分离卷积和标准卷积的参数量之比为:

(4)

表1 MobileNetV1网络结构

3 改进的MobileNetV1-YOLOv4算法设计

3.1 模型轻量化设计

针对YOLOv4网络参数量过多、模型体积庞大,占用较大内存的问题,本文提出基于MobileNetV1-YOLOv4的车辆和行人检测网络,采用深度可分离卷积思想对模型进行轻量化。本文首先采用MobileNetV1来作为YOLOv4的主干网络,初步模型记为MobileNetV1-YOLOv4a,之后再进行深度网络轻量化,即将PANet和Yolo Head结构中的3×3标准卷积替换成为深度可分离卷积,模型记为MobileNetV1-YOLOv4。将YOLOv4和两种轻量化模型进行参数比较,统一输入尺寸为416×416×3,在本文中检测对象具体为为Car、Bus、Motorbike、Bicycle、Person,所以类别数为5,对比结果如表2所示。

表2 模型参数对比

由表2可知,YOLOv4模型在参数量和模型体积方面都十分庞大。通过对比后两者模型可以发现,仅使用MobileNetV1作为主干网络,网络参数量和模型体积就减少很多; 而进一步深度网络轻量化的模型在参数量和模型体积上大幅度较少,体积为46.88MB,参数量为12.28Million,相比YOLOv4模型,在参数量和体积上减少80.80%。因此,在整个YOLOv4网络模型中,本文将深层网络中的所有标准卷积全部替换成深度可分离卷积,构建MobileNetV1-YOLOv4网络。

3.2 特征增强模块

为提高对车辆和行人尺度变化的鲁棒性,增大特征图的感受野,提高网络对目标的检测能力,本文对MobileNetV1-YOLOv4进行改进,在预测层前引入特征增强模块,取消SPP模块以及之后的Concat结构,减少模型参数量。借鉴RFB模块的空洞卷积思想,利用不同大小和数量的标准卷积以及不同膨胀率的空洞卷积,构建多支路、多层卷积并行的特征增强模块,增强语义信息,帮助预测层提高对目标不同尺度的检测能力,同时提高对小目标的检测能力。

对于13×13尺度的特征增强模块1,建立四条输入通路和一条跨连接通路Shortcut,每条通路使用1×1卷积核将输入通道数从1024降维成256;其次每个通道采用不同数量和大小的卷积核进行跨深度卷积;接着分别经过膨胀率为1、2、3、5的空洞卷积,使每个通路获得不同的感受野大小,最后级联各支路,通道数仍为1024,丰富了语义特征信息,提高13×13尺度预测层对大目标的检测能力。为降低参数量,提高网络检测速度,将3×3和5×5卷积核拆分成3×1、1×3和1×5、5×1的卷积核。特征增强模块1结构如图3所示。

图3 特征增强模块1结构

26×26尺度的预测层是检测中间尺度的目标,在特征增强模块2中,采用了较小膨胀率的空洞卷积,第三、四通路使用3×1、1×3和1×3、3×1不同顺序的条形卷积,避免重复性地提取特征,同时条形卷积结构对车辆和行人检测更加敏感,其结构如图4所示。

图4 特征增强模块2结构

52×52尺度的预测层是主要是检测小目标的,该层拥有边缘、颜色等语义信息。考虑到浅层网络增大感受野会降低检测小目标的能力[15],本文设置膨胀率都为1,通过阶梯状的卷积层来提高浅层语义信息,增强网络特征表征力,其结构如图5所示。

图5 特征增强模块3结构

考虑特征增强模块加入不同的位置是否对检测精度有影响,做了对比实验。分别考虑将特征增强模块加入在PANet网络前和网络后,对比网络的模型体积和检测精度的高低,结果如表3所示。

表3 加入不同位置的特征增强模块实验对比

由表3可知,针对本文的车辆和行人检测,将特征增强模块融入到PANet网络后,精确度更高。故本文将三个特征增强模块分别融入到三个预测层前,改进的网络模型结构如图6所示,其中DW+PW为深度可分离卷积模块,其余网络中卷积核为3×3的标准卷积已经全部替换成深度可分离卷积。

图6 改进后的网络模型结构

4 实验分析

4.1 实验数据及环境配置

本文研究对象为Car、Bus、Motorbike、Bicycle、Person。实验所采用的训练数据是PASCAL VOC 2007和VOC 2012的train+val数据集,考虑Bus、Motorbike、Bicycle对象在VOC数据集中样本较少,从COCO2014数据集中选取了部分,然后转换为VOC格式。测试数据采用VOC2007test数据集,选取符合要求的车辆和行人数据,共有2734张图片。训练数据集总共8937张,标注对象共有24715个。在实验数据加载阶段,统一输入尺寸为416×416,对读取的图片进行数据增强的随机预处理,如图片翻转、缩放或色域变换等,丰富数据。

本实验在PC机Win10系统下进行操作,深度学习框架为Pytoch1.2,编程语言为Python3.7。在CPU为Inter(R) Xeon(R) Gold 6130,内存为32G, GPU为NVIDIA RTX 2080Ti的服务器对网络进行训练。

4.2 实验结果分析

本次实验使用精度评价指标AP(Average Precision )、mAP(Mean Average Precision)、模型体积以及网络推理速度评价指标FPS(frame per second)来对网络性能进行评估。其中AP值代表某一类目标的平均分类精确率,mAP是对本文五个类别的AP求均值,称作为平均精确率均值。为验证本文算法的检测能力,与Faster-RCNN、YOLOv4、MobileNetV1-YOLOv4网络进行对比,其中Faster-RCNN输入尺寸为1000×600,其余网络输入尺寸为416×416,在NVIDIA GTX1080的GPU上,对比目标精度AP、模型体积、检测速度FPS、平均精准率均值mAP,结果如表4和表5所示。

表4 算法对车辆和行人的检测AP结果(%)

表5 算法对模型大小、FPS、mAP检测结果

由表4和表5可知, MobileNetV1-YOLOv4网络相比Faster-RCNN网络有着较高的检测精度,相比YOLOv4网络,虽然目标检测精度略有降低,但模型大小减少了80.79%,检测速度提升近1.22倍,表明深度可分离卷积模块在精度损失较小的情况下,能大幅度降低网络参数量,提升网络的目标检测速度。本文在MobileNetV1-YOLOv4算法基础上进一步改进,在预测层网络前加入三个与不同尺度特点相适应的特征增强模块。在单类别目标上的检测精度均得到提升,mAP为86.32%,相比改进前的网络mAP提高1.29%,表明特征增强模块能增强语义信息,有效提高对车辆和行人的检测能力;模型大小进一步减小,仅为45.28MB,相比YOLOv4模型体积减少为81.44%;检测速度为44FPS,相比YOLOv4网络提升91.30%。改进后的网络在检测速度和模型体积方面优于YOLOv4模型,检测精度优于改进前的MobileNetV1-YOLOv4网络,故本文算法更符合设备平台对目标检测精度和速度的综合要求。

将MobileNetV1-YOLOv4网络和本文算法对实际场景中的车辆和行人检测结果进行对比,如图7所示。图7的左边一列是MobileNetV1-YOLOv4检测结果,右边一列是本文算法的检测结果。通过实验对比发现,MobileNetV1-YOLOv4在道路环境下漏检了尺度较小的车辆和行人,而本文算法通过特征增强后能够检测出较小目标,精度得到提升且定位更准确,体现出本文算法精度高以及对车辆和行人尺度变化有较好的鲁棒性。

图7 MobileNetV1-YOLOv4与本文算法对比

5 结语

考虑在计算资源有限的设备平台上,需要兼顾目标检测精度和检测速度两方面,因此本文提出了一种融入特征增强模块的MobileNetV1-YOLOv4车辆和行人检测网络。将YOLOv4网络模型中的主干网络替换成MobileNetV1,对路径聚合网路和预测层网络进行轻量化,使得参数量和模型体积大幅度减少,相比YOLOv4网络,模型推理速度得到大幅度提升。在MobileNetV1-YOLOv4网络的三个预测层前,分别加入与不同尺度特点相适应的特征增强模块,利用跨深度卷积和空洞卷积结构,能够充分利用多尺度信息,丰富网络深度语义信息,构造出不同大小的感受野,提高网络的检测性能和适应目标尺度变化的能力。实验结果表明,本文算法相比MobileNetV1-YOLOv4原网络在检测速度损失较少的情况下,检测精度提高1.29%,提高了对小目标的检测性能,对尺度变化大的目标具有较好的鲁棒性,满足实时高效的检测要求。

猜你喜欢

尺度卷积深度
基于3D-Winograd的快速卷积算法设计及FPGA实现
深度理解一元一次方程
财产的五大尺度和五重应对
从滤波器理解卷积
深度观察
深度观察
深度观察
基于傅里叶域卷积表示的目标跟踪算法
宇宙的尺度
9