APP下载

基于幻象网络的轻量化交通标志检测算法

2023-09-25鲍锐曹恒

电脑知识与技术 2023年22期
关键词:交通标志池化轻量化

鲍锐,曹恒

(安徽建筑大学 电子与信息工程学院,安徽 合肥 230601)

0 引言

交通标志对驾驶员有着指示和引导作用,是道路交通安全不可或缺的组成部分。对交通标志进行实时准确的检测,不仅能够在路况数据方面对辅助驾驶系统提供有效支持,而且在自动驾驶领域有着重要应用。

目前YOLOv4 检测算法具有较好的检测性能,在交通标志检测方面也取得了不错的效果。但网络结构复杂,参数量巨大,所占内存高达两百多兆,内存过大导致无法嵌入到移动设备中,使得算法实时进行检测成为难题。因此如何在保证交通标志检测精度的前提下,让算法达到实时性要求成为难题。本文对YOLOv4算法进行改进,对其进行轻量化处理,以较小精度损失为代价,极大缩减了网络模型大小,大幅度提升了检测速度,使得算法满足实际场景的实时性要求。

目前对网络进行轻量化的方法有不少,其中主流的方法有模型剪枝、模型压缩,以及设计轻量化网络等。模型剪枝主要是对网络中不太重要的结构层进行去除,来减少网络的参数量,使得网络检测速度得到提升;模型压缩主要通过张量分解减少参数量;设计轻量化网络主要是运用现有的主流轻量化网络对原网络的主干网络进行替换,减少检测模型的整体参数量,以达到检测速度的提升。江金洪[1]等人针对交通标志检测任务中模型计算量大、参数量多、难以达到实时性要求等问题,引入深度可分离卷积对YOLOv3[2]网络中的普通卷积进行替换,提升了交通标志检测的速率。张上[3]等人针对交通标志检测中存在检测速度慢、边缘部署难度高等问题,对CBAM和CA注意力机制融合,提升检测模型的抗干扰能力。通过FPGM 剪枝的方法去除网络不太重要的部分,降低参数,提高检测速度。

1 YOLOv4网络结构

YOLOv4[4]是单阶段检测算法的代表之一,具有较好的检测性能,是各应用领域常用的检测模型之一。其中包括特征提取网络、Neck 结构和Head 结构这几大部分。CSP[5]结构是主干网络CSPDarknet53 的重要组成模块可以解决重复梯度信息的产生。颈部(Neck)结构由FPN 特征金字塔结构和PANet[6]路径聚合结构组成,Neck 结构将FPN 模块与PANet 模块相结合,FPN 层和PAN 层分别用自上而下和自下而上的方式进行语义信息传递,这样可以实现不同尺度特征的信息融合,增强网络对多尺度目标的检测性能。Head作为最后的检测,在大小不同的特征图上预测不同尺寸的目标。

2 改进的轻量化网络G-YOLOv4s

本文将对改进的交通标志检测算法G-YOLOv4s进行详细介绍,网络结构图如图1所示。首先为了降低特征提取网络的参数量,用GhostNet轻量化网络替换原网络的主干网络,整体网络参数得到大幅下降。其次将原网络中的SPP 模块替换成速度更快的串行池化SPPF 模块,提高了整体网络的检测速度。最后将原网络Neck 结构中的普通卷积替换成深度可分离卷积,检测速度进一步提升。

图1 G-YOLOv4网络结构图

2.1 幻象网络GhostNet介绍

GhostNet[7]是目前广泛使用的轻量化网络,其基本组成单位为Ghost module。针对网络中大量的卷积运算,GhostNet 网络中的Ghost module 通过线性变换与标准卷积相结合,从而减少模型参数和计算量。相比于传统的卷积,Ghost module分两步走,首先将第一部分是由卷积层的一部分采用正常的卷积计算得到的,另一部分是由第一部分的特征图通过一系列的线性运算得到的,最后将两部分Concat 到一起,组合成新的输出层。标准卷积和Ghost module的结构对比如图2所示。

图2 标准卷积与Ghost module

如果输入检测图片的尺寸是h×w×c,特征图输出的尺寸是h×w×n,卷积核大小为k×k。则标准卷积所需要的参数量为n×h'×w'×c×k×k。在Ghost模块中,将输出特征图分为s个模块,其中一个模块是线性操作得到的,其他s-1个模块通过普通卷积得到的。则Ghost模块中的计算量Q 如公式(1) 所示。则与标准卷积对比参数量比值r如公式(2) 所示。通过公式(2) 可以看出,在同等输入的条件下,经过Ghost 模块的输出,计算量降低为原本1/s,有效降低了网络的计算量,提高了网络的运算量。

对比原网络中的CSPDarket53,本文对GhostNet进行改进处理。将GhostNet 网络最后三层包括平均池化、卷积以及全连接层移除。并将网络中的输出52×52×52,26×26×112,13×13×960 这三组特征作为交通标志目标的三个不同尺度特征用于特征融合。

2.2 轻量化特征金字塔池化SPPF

SPP[8]模块在YOLOv4网络中作用明显,可以减少网络的过拟合,使得网络更容易收敛,但同样也导致网络参数增多导致检测速度下降。为了解决这一问题,本章改进原SPP 模块,将并联的5×5、7×7、13×13的三个并联池化层改为三个5×5 的串联池化层。在得到相同输出特征的情况下,有效减少了SPP模块的参数量。SPPF(Spatial Pyramid Pooling-Fast)模块的网络结构图如图(3) 所示。

图3 SPPF网络结构图

在YOLOv4 网络中SPP 模块主要是将13×13×512分别通过5×5、9×9、13×13 的最大池化得到13×13×2048 的固定大小特征向量。SPPF 对SPP 模块并行池化的方式进行改进,用两个5×5的最大池化进行串行可以得到和并行池化中9×9最大池化相同的效果,用三个5×5的最大池化层串行可以得到和并行池化13×13最大池化后一样的特征。通过串行三个5×5的最大池化层取得了SPP模块并行池化相同的效果,但极大减少了计算的复杂度和模型计算所需的参数量,提高了计算效率。因此本章将SPP模块用更轻量化的SPPF代替,有效提高了检测速度,使模型更加轻量化。

2.3 深度可分离卷积模块

深度可分离卷积(Depthwise Separable Convolution)[9]是由谷歌公司提出的一种轻量化卷积结构,将标准卷积拆分成通道卷积和逐点卷积两个单独的卷积过程是深度可分离卷积的基本思想,用两个独立的卷积层代替标准卷积层,可以有效减少计算量,加快算法推理速度。标准卷积与深度可分离卷积的卷积过程如图4所示。

图4 普通卷积和深度可分离卷积对比

假设标准卷积和深度可分离卷积输入特征图统一尺度是H×W×M,卷积核的大小为K×K×M,输出特征图的尺度为H×W×N。则标准卷积的参数量C1如公式(3) 所示。

深度可分离卷积由通道卷积和逐点卷积两部分组成。对输入的检测特征通过卷积核为K×K×1 的卷积核进行卷积操作,再通过大小为1×1×M的卷积核进行逐点卷积得到尺度为H×W×N的特征图,通道卷积的参数量C2如公式(4) 所示,逐点卷积的参数量C3如公式(5) 所示。深度可分离卷积与普通卷积的比值U如公式(6) 所示。

由公式(6) 可以看出,如果卷积过程使用3×3的卷积核,则普通卷积由深度可分离卷积替代可节省8/9的计算量,极大减少了卷积过程中所需的参数量。

在YOLOv4网络中,Neck结构在特征提取和特征融合过程中需要进行很多次3×3 的普通卷积对尺度和通道数进行调整,需要大量参数用于卷积运算,导致网络结构冗余。为了解决这一问题,本文将Neck结构中的3×3普通卷积替换成深度可分离块,在损失少量检测精度的前提下,极大减少了模型的训练参数,算法的实时性得到明显提升。

3 实验结果对比与分析

3.1 实验数据集介绍及处理

本文数据集采用长沙理工大学制作的中国交通场景数据集CCTSDB(Chinese Traffic Sign Detection Benchmark)[10],该数据集包含中国城市道路、高速路口等拍摄的图片,图片中的交通标志目标有受光线影响、背景干扰造成模糊等问题。将数据集中的交通标志分为指示标志(mandatory)、警告标志(warning)、禁止标志(prohibitory)这三种类型。对数据集进行划分,训练集、测试集、验证集按8∶1∶1 的比例进行划分,CCTSDB数据集数据详情如表1所示。

表1 CCTSDB数据集数据详情

3.2 实验环境参数配置和评价指标

本章实验在Windows 操作系统下进行实验,表2为实验环境参数,采用mAP、FPS、模型大小作为实验的评价指标。

表2 实验环境参数

3.3 实验结果分析

3.3.1 损失函数的变化

如图5为G-YOLOv4s的损失函数变化曲线图,从图中可以看出损失函数平稳下降,在前25次Epoch过程中损失函数下降幅度较大,到了训练后期曲线趋于平稳下降状态,直到迭代到200Epoch 后训练结束,曲线趋于平稳,收敛效果好。

图5 G-YOLOv4s的损失函数变化曲线

3.3.2 改进模块的消融实验

为了验证各模块对本文算法的影响,本文进行消融实验来评估不同模块在相同实验参数下的性能表现,结果如表3所示。

表3 各模块对检测算法的影响

表3为四组网络模型在CCTSDB数据集上的实验数据对比,其中第一组为原YOLOv4 的检测结果。第二组YOLOv4-R 模型在第一组的基础上将主干网络替换成GhostNet,可以看出网络模型大小相比原模型减少了46%,速度FPS 得到了大幅度提升。第三组YOLOv4-RS 模型在第二组的基础上将SPP 模块替换成更轻量化的SPPF 模块,相比第二组实验模型大小减少了2.16M,精度仅仅下降了0.10 个百分点,速度FPS 得到小幅度提升。第四组YOLOv4-RSD 模型是在第三组实验的基础上将Neck 结构中的普通卷积替换成深度可分离卷积块,可以相比第三组在精度少量损失的前提下,模型大小减少了68%,整体网络速度进一步得到大幅度提升。由实验结果可以看出,改进的G-YOLOv4s 相比原YOLOv4 算法模型在精度少量损失的前提下,模型大小减少了83%,检测速度得到大幅度提升。

3.3.3 不同检测算法的性能对比

本文选取Faster RCNN、SSD、YOLOv3、YOLOv4-Tiny 这几种在各检测领域应用比较广泛的检测算法与本章算法进行对比实验来验证算法的实用性,实验在CCTSDB数据集上进行,实验结果如表4所示。

表4 各主流检测算法在CCTSDB的检测结果

由表4可以看出,Faster RCNN,YOLOv3算法在精度和速度方面均没有本文算法有优势。轻量化网络YOLOv4-tiny 虽然速度比本文算法占优势,但精度却比本文算法相差了2.4 个百分点。本文算法对比原YOLOv4 算法,模型大小相比原网络减少了83%,FPS提高了一倍。从实验结果可以看出本文算法在精度,检测速度和模型大小方面都更适用于实时检测。

为了验证本章算法是否符合实际驾驶环境中的需求,将CCTDSB 数据集中受光线亮度影响、遮挡等在特殊环境下拍摄的图片进行筛选,选取960张图片作为实验数据集进行实验,实验结果如图5所示。可以看出G-YOLOv4s 算法在光线昏暗、雨天、背景遮挡、强光照射这些实际场景中都取得了不错的检测效果,符合实际驾驶环境的需求。

图5 实际驾驶环境下G-YOLOv4的检测效果

4 结束语

本文针对YOLOv4 网络模型参数量大,结构复杂无法实时地对交通标志进行检测的问题,提出了GYOLOv4s 网络。首先为了降低特征提取网络的参数量,用GhostNet 轻量化网络代替原YOLOv4 网络的主干网络,整体网络参数得到大幅度下降。其次将原网络中的SPP 模块替换成速度更快的串行池化SPPF 模块,进一步降低网络的参数量。最后引入深度可分离卷积代替普通卷积,使得检测速度进一步提升。通过消融实验,反映各改进模块对模块性能的影响。最后通过和几种应用比较广泛的检测算法进行对比实验,体现出本文算法的实用性。

本文算法在降低少量精度的前提下,降低模型内存大小,提升算法检测速度。但仍存在一些不完善的地方,未来将在车载设备中部署方面做工作。

猜你喜欢

交通标志池化轻量化
面向神经网络池化层的灵活高效硬件设计
基于Sobel算子的池化算法设计
基于双向特征融合的交通标志识别
汽车轻量化集成制造专题主编
基于卷积神经网络和池化算法的表情识别研究
瞄准挂车轻量化 锣响挂车正式挂牌成立
用户:轻量化挂车的使用体验