基于YOLOv3模型压缩的交通标志实时检测算法

2020-12-07 08:20鲍敬源薛榕刚
计算机工程与应用 2020年23期
关键词:对模型交通标志特征提取

鲍敬源,薛榕刚

1.海装武汉局驻武汉地区第二军事代表室,武汉 430070

2.武汉理工大学 计算机科学与技术学院,武汉 430070

1 引言

近年来,我国汽车保有量不断增加。汽车在给人们的生产生活带来极大方便的同时,也造成了一系列的社会问题,如交通拥挤、环境污染、交通事故等。特别是交通事故,在造成巨大直接经济损失的同时,给当事人及其家属造成无法挽回的伤害。在造成交通事故的各种原因中,疲劳驾驶所造成的交通事故最多。如何从技术上提高驾驶安全,减少交通事故的发生已经成为一个世界性的难题。

随着无人驾驶及辅助驾驶系统的兴起,从技术上减少因疲劳驾驶等原因引起的交通事故正成为现实。在无人驾驶及辅助驾驶系统中,交通标志检测是其中非常重要的一个环节[1]。当前对交通标志的检测方法主要有四类,基于颜色的方法、基于形状的方法、基于多特征融合的方法和基于深度学习的方法[2]。基于颜色的道路交通标志检测主要利用颜色阈值对图像进行分割,去除背景区域得到特征区域,再对特征区域所包含的图像进行识别分类。2009年,沙莎等人[3]结合RGB和HIS多颜色通道信息对交通标志进行检测,并通过曲线拟合的最小二乘法进行交通标志的精确定位与类型判别。2010年,Chourasia 等人[4]提出使用颜色质心匹配算法对交通标志进行检测,该算法使用YCbCr 空间进行颜色分割,可有效降低光照对图像分割的影响。基于形状的道路交通标志检测方法主要是利用交通标志固有的形状进行检测。2008 年,Keller 等人[5]使用一种基于形状的兴趣算子对交通标志进行检测,提取具有对称性的候选区域,并通过基于Harr 小波特征的分类器对图像进行分类,检测出速度标志。2011 年,何明一等人[6]结合交通标志颜色特征,通过边缘检测及非线性最小二乘技术对圆形交通标志进行检测。由于受天气、光照等因素的影响,仅仅通过颜色信息检测交通标志难以得到理想的检测结果。2015 年,汤凯等人[7]提出一种颜色特征、形状特征和尺度特征的多特征系统方法对交通标志进行检测。传统的道路交通标志检测方法检测速度快、对设备性能要求较低,但易受天气、拍摄角度等因素的影响,且需要手动提取目标特征。而基于深度学习的交通标志检测方法能够自动提取目标特征,且模型泛化能力较好。2017年,长沙理工大学张建明团队[8]提出了一种基于YOLOv2的实时交通标志检测算法,该算法能有效检测较小的交通标志,且其检测速度达到0.017 s/张,真正实现了实时检测。2019 年,Tabernik 等人[9]通过卷积神经网络对交通标志进行端到端的检测识别,取得了较好的效果。曲佳博等人[10]提出了一种集时空关系与多尺度卷积网络于一体的时空卷积神经网络。在保证准确率的前提下虽然有效地降低了参数输入,但检测时间相对较长。李东洁等人[11]针对YOLOv3 动态跟踪实时性较差的问题进行了主干网络的改进,同时创新性地提出了改进背景对目标跟踪的方法,对交通标志实时检测有重大的启发意义。宋艳艳等人[12]将YOLOv3 与残差网络相结合,证明了二者融合的有效性。

随着深度学习网络规模的增大,模型计算复杂度随之增加,严重限制了模型在各种资源受限平台设备中的应用[13]。因此,对模型进行压缩优化,使模型的结构更小,参数量更少,运行速度更快,能够在资源受限平台中得以应用成为学术界和工业界研究的热点问题之一。深度学习模型的压缩方法可分为两大类,一类是基于紧凑型的网络结构,如 SqueezeNet[14]、MobileNet[15]、shuffleNet[16]等,这些紧凑型的网络结构使用1×1的卷积层进行通道变换以减少参数数量及计算量,从而达到压缩模型的效果。另一类是通过剪枝、量化、二值化神经网络等方式对模型进行压缩。Han等人[17]首先通过剪枝减少网络的连接数量,然后通过共享权重和权重进行索引编码来减小权重数量和存储空间,最后用霍夫曼编码的方式来编码第二阶段的权重和索引,这样可以进一步压缩空间。马治楠等人[18]采用剪枝的方法对深度学习模型进行压缩,使模型能够应用于嵌入式平台。二值化神经网络常用的方法有BinaryConnect[19]、XnorNet[20]等。2018年,徐喆等人[21]提出了一种基于比例的网络压缩知识提取算法,泛化能力强,根据类间关系进行训练,减少了训练时间。黄聪等人[22]设计了一种权值的剪枝方法以及可分的卷积,有效降低了计算量。

在资源受限平台中运行的模型应具备以下特点:第一,模型的结构更小,参数量更少,占用更少的内存空间;第二,模型运行速度更快,不占用平台的大量计算资源且运行速度满足实时性要求;第三,模型精度能满足相应场景的要求。只有平衡好模型占用内存大小、模型运行速度和模型精度这三方面,才能将卷积神经网络更好地应用于资源受限平台。本文采用FireModlue结构对YOLOv3 模型进行压缩,设计出Strong Tiny-YOLOv3模型。相比于 YOLOv3 模型,Strong Tiny-YOLOv3 模型的参数量、模型实际内存大小、检测实时性都有了大幅度的优化。且与现有的YOLOv3 模型的压缩模型TinyYOLOv3相比,Strong Tiny-YOLOv3在检测精度及检测速度方面都有提升。

2 相关工作

2.1 YOLOv3模型

为克服YOLOv1 模型[23]对小目标预测效果差的缺点以进一步提高模型的预测准确度,YOLOv3[24]在YOLOv1 和YOLOv2[25]的基础上做了进一步的改进,在网络中引入了基于多尺度预测的特征金字塔结构[26](FPN),如图1所示,小的物体会在浅层的特征图中被检测出来,大的物体会在较深的特征图中被检测出来。首先,使用k-means聚类算法得到9个先验框,每种尺度下各三个,每种尺度下的一个网格负责预测三个边界框。然后,使用darknet-53网络对图像进行特征提取,当提取到最深层特征时,进行输出,同时进行上采样,与另一尺度下的特征进行融合。这样,每层特征图中都会包含浅层的低级特征(如物体的边缘、颜色、初级位置信息等)和深层的高级特征(如物体的语义信息等),预测的准确度也会有所提高。另外,由于darknet-53 中加入了残差块,使网络的结构可以设置得更深,因而具有更强的特征提取能力。

图1 YOLOv3中的特征金字塔结构

YOLOv3网络模型的损失函数如公式(1)所示:

损失函数可分为三部分,bbox_loss代表模型的边界框损失,conf_loss代表模型的置信度损失,prob_loss则代表模型的预测类别损失。由于模型中三种类别的损失在损失函数中所占的比例不同,lcoord、lnobj为比例因子。公式(1)中,表示第i个网格的第j个先验框是否负责预测目标边界框的位置,若负责预测则其值为1,若不负责预测,则其值为0;表示第i个网格的第j个边界框不预测目标位。由于YOLOv3 在三种不同尺度下进行预测,所以最终的损失函数为三种尺度下loss的和。

2.2 Tiny-YOLOv3模型

Tiny-YOLOv3是YOLOv3网络的简化版本,其卷积层的数量比YOLOv3 小得多,因此Tiny-YOLOv3 模型所需的内存及计算量也相对较小,可部署在嵌入式设备中。但与YOLOv3 模型相比,由于特征提取能力不足,Tiny-YOLOv3的检测精度较低。

Tiny-YOLOv3网络结构如图2所示,网络主要是由卷积层和池化层组成。卷积层一共有13 层,负责对图像提取特征,最大池化层有6 层,对特征图进行下采样操作。Tiny-YOLOv3 模型在两个尺度下对目标进行预测,通过卷积、池化得到13×13的特征图后,再进行全连接操作输出预测结果。同时,对13×13的特征图进行上采样,与26×26 的特征图融合后,进行另一尺度下的预测。与YOLOv3 相同,Tiny-YOLOv3 模型中,每个单元格负责预测三个边界框。Tiny-YOLOv3 模型的参数量约为9×106,是YOLOv3 模型参数量的14.3%,模型参数量的减少也会使计算量相应地降低。

图2 Tiny-YOLOv3网络结构图

3 Strong Tiny-YOLOv3

3.1 基于FireModule的网络结构

Tiny-YOLOv3网络模型的深度较浅,因而对图像特征提取能力不足,在检测精度上相比于YOLOv3模型有很大的降低,且Tiny-YOLOv3 模型中存在卷积核数量为512 和1 024 的卷积层,这些卷积核所包含的参数在模型参数中占很大比例。因而,需提高Tiny-YOLOv3模型的特征提取能力,同时,尽可能地对模型进行进一步的压缩。

Iandola 等人[14]提出的 SqueezeNet 将模型中 3×3 的卷积核采用1×1的卷积核来代替,这一操作可有效减小模型的参数量。同时,对于3×3 的卷积核,其参数量为3×3×M×N,M、N分别为输入特征图与输出特征图的通道数,通过减小M、N的数量可有效减小模型的参数量和计算量。

SqueezeNet是由若干FireModule结合卷积神经网络中卷积层、降采样层和全连接层组成,其中,FireModule是SqueezeNet网络的主要结构。FireModule是由Squeeze部分和Expand 部分组成,其结构如图3(a)所示,其中Squeeze 部分是由一组连续的1×1 的卷积组成,负责对模型进行压缩,也被称为瓶颈层,Expand部分是由一组连续的1×1卷积和一组连续的3×3卷积组成,负责对模型进行扩充。FireModule 的输出结果为Expand 部分两层卷积结果的合并。为详细解释FireModule的结构,以Tiny-YOLOv3 中第五个卷积层为例进行说明。图像在Tiny-YOLOv3模型中经过四层卷积池化后,特征图大小为26×26×128,第五层卷积层卷积核为3×3×256。若使用如图3(b)所示的FireModule替换Tiny-YOLOv3 第五层卷积层,则输入特征图首先经过Squeeze层1×1×32的卷积核进行通道变换后输出26×26×32的特征图。该特征图再分别与Expand 层的1×1×128 与3×3×128 的卷积核进行卷积,得到两个26×26×128 的特征图,将这两个特征图进行连接即可得到26×26×256的特征图,与Tiny-YOLOv3 模型第五层卷积后的输出结果相同。Fire-Module 中 Squeeze 部分1×1 卷积核的通道数记为s1,Expand 部分 1×1 和 3×3 的卷积核通道数分别记为e1和e3。在FireModule中,作者建议s1<e1+e3,SqueezeNet模型中,作者使用的策略是4×s1=e1=e3。

图3 FireModule结构介绍图

SequeezeNet 中使用FireModule 对模型进行压缩,取得了良好的效果,且由于网络结构变宽加深,模型的精度没有受到影响。本文中,尝试采用FireModule 对YOLOv3 模型进行压缩,以减少模型的参数量及计算量,使模型能够在嵌入式设备中达到实时检测的效果,且尽可能减少模型压缩对检测精度造成的影响。在介绍本文提出的压缩模型前,首先介绍模型参数的计算方法,以便更好地对模型参数做出比较,确定模型压缩效果。卷积层参数量的计算公式如下:

其中,W为某卷积层卷积核的参数量,m为卷积层输入特征通道数,n为卷积层输出特征通道数,k为卷积核的大小,b为偏置项的数量,其值为1。对于FireModule,其参数计算方式如下:

Wfire为FireModule层的参数量,ks1为Squeeze层卷积核大小,其值为1,s1为Squeeze 层输出通道数,ke1和ke3为Expand层的卷积核的大小,其值分别为1和3,e1、e3为Expand 层的两个卷积层输出通道的数量。若不考其他因素的影响,将Tiny-YOLOv3 中的卷积层全部使用FireModule层替换,且4×s1=e1=e3,则其参数如表1所示。

表1 Tiny-YOLOv3卷积层及对应FireModule参数量对比

由表1 可计算出Tiny-YOLOv3 卷积层的参数量约为8.65×106,卷积层对应FireModule层的参数量为1.27×106,参数量可减少约85%。由此可见,采用FireModule来代替卷积层后,其带来的参数缩减效果非常明显,即便是在卷积核尺寸为1 时,FireModule 也能明显减少卷积核的参数量。究其原因,是因为FireModule瓶颈层的特征图输出通道仅为该卷积层特征图输出通道的1/8,且由于瓶颈层输出通道数量减少,会使Expand 层的输入特征图通道数量减少,因而能减少整体参数量。

本文首先对FireModule进行优化,从而可以进一步减少参数量。SqueezeNet中FireModule的Squeeze层输出通道数量为s1,Expand层输出通道数量为e1+e3,且4×s1=e1=e3。若进一步增大s1与e1和e3之间的比例关系,则模型的参数量可得到进一步压缩,与此同时,特征图可能会损失较多的信息,所以,优化的关键点在于找到s1与e1和e3之间的最佳比例。本文在GTSDB 数据集上进行了三组实验,s1与e1和e3之间的比例关系分别设为4、6、8。当比例关系取不到4、6、8 时,则取较为接近4、6、8的数,实验结果如表2所示。由表2可知,当s1与e1和e3之间的比例关系取4 或6 时,模型在GTSDB数据集上的mAP差别不大,比例关系为8时,则模型mAP 有明显降低。因此,在本实验中,将Squeeze层输出通道与Expand层输通道之间的关系改为4×s1≤e1=e3≤6×s1,即减小 FireModule 瓶颈层的输出通道数,也就是Expand层的输入通道数,从而减小模型参数量。如对于表1 中的Conv7,使用改进的FireModule 来代替卷积层后,其参数量变为512×86+86+86×512+512+3×3×86×512+512=485 462,相比优化前的参数量722 048减小32.8%。使用改进后的FireModule 对YOLOv3 模型进行压缩,压缩后的YOLOv3 模型称为Strong Tiny-YOLOv3,其网络结构如图4所示。

表2 GTSDB数据集上s1 与e1和e3 比例关系实验

Strong Tiny-YOLOv3 通过引入 FireModule 来减小模型参数,实现对模型的压缩,同时,由于FireModule的引入,模型的深度较Tiny-YOLOv3有所增加,模型的特征提取能力也更强。Strong Tiny-YOLOv3 模型的前半部分与Tiny-YOLOv3 模型结构形同,由卷积层和池化层交替组成。随着层数的加深,特征图的通道数越来越多,由其导致的参数规模也越来越大。将Tiny-YOLOv3模型中尺寸为3×3 通道数不小于256 的卷积层替换为FireModule,同时,为提高模型的特征提取能力,增加了多个FireModule层对26×26及13×13的特征图做进一步特征提取。Strong Tiny-YOLOv3 模型深度为31 层,相比于Tiny-YOLOv3增加了12层,其各层具体信息如表3所示。Strong Tiny-YOLOv3 模型的参数量为1.1×106,比Tiny-YOLOv3模型减小87.3%。

3.2 加入short-cut

在网络训练过程中,网络的深度对模型训练结果存在着深远影响,深度网络表征能力强。理论上,网络深度同误差成反比关系,即网络越深误差越小。原因是根据浅层模型作恒等映射可以构造深层模型的解。但是,网络深度增加伴随着反向传播过程中运算不稳定性因素上升,易产生梯度爆炸或梯度扩散,导致实际结果与预期结果大相径庭。虽然加入正则化可以缓解梯度爆炸和梯度扩散的问题,但是随着深度的增加仍然会产生退化问题。

图4 Strong Tiny-YOLOv3网络结构图

ResNet 网络中首次利用跨越多层的short-cut 构建优秀模型解决了退化问题。传统神经网络采用堆叠式网络架构进行的是仿射变换-非线性变换,但是传统神经网络中恒等映射并不容易拟合。为了解决该问题,通过加入short-cut构造恒等映射条件,由传统的拟合恒等映射转化为优化残差,计算由传统的乘法实现了加法的转变,计算更加稳定,缓解了深度与退化的矛盾,实现了深度与精确度的双飞跃。之后,YOLOv3对ResNet残差块进行了优化。为此,借鉴YOLOv3 中残差块的思想,本文在Strong Tiny-YOLOv3的Fire Module层之间引入short-cut,来增强网络的特征提取能力。加入short-cut后,Strong Tiny-YOLOv3 模型的网络结构如图5 所示。对于FireModule层来说,前一个FireModule层的输入与其输出相结合作为其下一个FireModule 层的输入。这样,网络中的信息流可以通过short-cut 进行跨层传递,在网络的前向传播过程中,short-cut可帮助网络中的特征进行恒等映射,在反向传播过程中,short-cut 可帮助传到梯度,让模型成功训练。

表3 Strong Tiny-YOLOv3各层具体信息

图5 加入short-cut的Strong Tiny-YOLOv3网络

3.3 数据集及实验设置

本文实验数据集全部采用德国交通标志检测数据集(German Traffic Sign Detection Benchmark,GTSDB)和中国交通标志检测数据集(CSUST Chinese Traffic Sign Detection Benchmark,CCTSDB),两种数据集的具体数量如表4所示。

表4 实验数据详情

GTSDB数据集共包含900张图像,其中训练集600张,测试集300张,图像分辨率为1 360×800。该数据集包含的道路场景图像背景复杂,包含大部分的光照变化情况及各种拍摄角度,且存在背景干扰遮挡及照片运动模糊等情况。GTSDB 数据集可分为三类:指示标志(mandatory)、警告标志(danger)、禁止标志(prohibitory)。如图6 所示[16],指示标志一般为圆形,标志为白色,底色为蓝色;警告标志为三角形,红色外圈,底色为白色;禁止标志为圆形,红色外圈,白色底色。每张图像中,交通标志的大小为16×16到128×128。

CCTSDB数据集包含15 734张图像,其中对13 829张图像做了标签。测试集共包含400张图像,数据量较少。因此,本文实验中从标签数据中选取10 000张图像作为训练集,其余3 829 张图像作为测试集。如图7 所示[16],CCTSDB数据集同样分为三大类:指示标志、警告标志、禁止标志。

图6 GTSDB数据集中交通标志种类

图7 CCTSDB数据集中交通标志种类

实验中,采用PASCAL VOC标准对模型进行测评,即计算预测框与真实框的IoU等于0.5时的mAP。mAP的计算方法如下:假设N个样本有M个正例,就会得到M个召回率的值R(1/M,2/M,…,M/M) ,对每个召回率取最大的准确率P,然后对这M个P值取平均值,最后得到AP 值即为mAP。由于实验中分别使用FireModule及short-cut对模型进行改进,为比较不同方法对模型检测效果的提升作用,Strong Tiny-YOLOv3模型的基本结构称为Strong Tiny-YOLOv3-A,加入short-cut后的Strong Tiny-YOLOv3称为Strong Tiny-YOLOv3-B。

为了更加真实地测试Strong Tiny-YOLOv3模型在资源受限平台上的检测效果,本实验在PC机上进行。实验在Intel®Core™ i5-7200U CPU上进行训练,其内存为8 GB。同时,采用Intel®Core™ i5-7200U CPU和NVIDIA的 GeForce 940MX 进行测试,GeForce 940MX 实际上是一款移动独立显卡,其内存容量为2 GB,包含384 个核心流处理器,并支持CUDA的相关计算功能。在实验过程中,Tiny-YOLOv3 模型的训练次数为50 轮,Strong Tiny-YOLOv3模型的迭代次数为100轮。

4 实验结果分析

4.1 算法mAP分析

表5 为 YOLOv3、Tiny-YOLOv3 及 Strong Tiny-YOLOv3-A及Strong Tiny-YOLOv3-B四种模型在GTSDB和CCTSDB 数据集上的实验结果。由表5 可知,在GTSDB数据集上,YOLOv3模型的检测mAP为91.2%,Tiny-YOLOv3 模型的检测mAP 为67.44%,模型压缩后检测精度下降幅度较大;而Strong Tiny-YOLOv3-B模型的检测mAP为75.53%,比Strong Tiny-YOLOv3-A模型提高了6.59 个百分点,表明模型加入short-cut 后,检测mAP 有了加大幅度的提升。同时,与Tiny-YOLOv3 模型相比,Strong Tiny-YOLOv3-B 模型的检测mAP 提高了12%。在CCTSB数据集上,YOLOv3模型的检测mAP为93.2%,Tiny-YOLOv3模型和Strong Tiny-YOLOv3模型的检测mAP下降相对较小,且StrongTiny-YOLOv3-B模型的检测mAP比Tiny-YOLOv3模型提高了3.8%。在GTSDB 数据集上,Strong Tiny-YOLOv3-B 的检测精度提升最为明显。

表5 几种模型在两数据集上的mAP对比

由实验结果可知,Strong Tiny-YOLOv3-A 模型由于FireModule 的引入,模型的深度较Tiny-YOLOv3 有所增加,模型的特征提取能力也更强,所以相较Tiny-YOLOv3,其模型压缩后的检测精度略有提升。Strong Tiny-YOLOv3-B 在 Fire Module 层之间 引入 short-cut,网络的特征提取能力得到进一步增强。但是相较于YOLOv3,Strong Tiny-YOLOv3-B 在数据集 GTSDB 上mAP下降15.7%,在数据集CCTSDB上mAP下降7.6%。所以本文算法相较于YOLOv3,检测精度没有达到预期的效果,仍有很大的提升空间。

4.2 模型参数量与实际存储大小分析

由 3.1 节分析可知,Strong Tiny-YOLOv3 模型的参数量为1.1×106。YOLOv3模型参数量约为62.8×106,相比减少98.3%。Tiny-YOLOv3 模型的参数量约为8.65×106,相比减少87.3%。模型参数量的减少也会使计算量相应的降低,从而有更高的检测速度。

由于资源受限平台的内存资源有限,势必要求模型占据很小的内存空间,本文对比了Strong TinyYOLOv3模型与YOLO 系类模型的实际内存,如表6 所示。与YOLOv1、YOLOv2、YOLOv3模型大小相比,Tiny-YOLOv3和Strong Tiny-YOLOv3 模型要小得多。Strong Tiny-YOLOv3模型的内存大小为7.5 MB,约为YOLOv3模型的1/32。与Tiny-YOLOv3相比,Strong Tiny-YOLOv3模型占用的存储空间减小26.5 MB,相比于Tiny-YOLOv3减小了77.9%。

4.3 模型Bflops结果分析

BFlops(Billion Float Operations Per Second)是描述某次卷积运算需要多少个十亿次浮点运算,是影响模型训练及测试耗时的一个重要指标,可用来衡量深度学习模型的时间复杂度。可通过计算模型每一层的BFlops,然后将它们全部相加得到整个模型的BFlops。单个卷积层的BFlops计算公式如下:

其中,2 表示一次乘法和一次加法的浮点数运算,ci表示卷积输入通道数,co表示输出通道数,k为卷积核的大小,wout表示卷积输出特征图的宽,hout表示卷积输出特征图的高。整个模型的BFlops 可通过如下公式计算得到:

其中n为模型卷积层总数。

表7列出了Strong Tiny-YOLOv3模型各个层的BFlops值,计算可知Strong Tiny-YOLOv3模型的BFlops为1.924。其中,9层FireModule包含卷积层的深度为18,占整个模型深度的58%,其BFlops 为0.41,仅占整个模型BFlops的21.3%。也就是说,Strong Tiny-YOLOv3 模型中的FireModule在增加网络深度,提高模型特征提取能力的基础上,还能有效减少模型的计算量,提高模型的检测速度。由表8可知,Strong Tiny-YOLOv3模型的BFlops约为YOLOv3模型的1/27,且相比于Tiny-YOLOv3模型减少了65%,更适用于资源受限平台。

4.4 算法实时性分析

Strong Tiny-YOLOv3 由于 FireModule 的引入,模型的深度较Tiny-YOLOv3 有所增加,模型的特征提取能力也更强。但是由4.2节与4.3节可知,优化后的Fire-Module对YOLOv3模型进行压缩,减少了模型的参数量及计算量,相比YOLOv3 和Tiny-YOLOv3,有更高的检测速度。本文在Intel®Core™ i5-7200U CPU和GeForce 940MX 两平台上对视频信息进行检测,并计算对比YOLOv3模型、Tiny-YOLOv3模型和Strong Tiny-YOLOv3模型在两平台上的检测速度,验证本文的设想。由表9可看出,在Intel®Core™ i5-7200U CPU和GeForce 940M两资源受限型平台上,Tiny-YOLOv3 模型和Strong Tiny-YOLOv3 模型的检测速度明显优于YOLOv3 模型。在Intel®Core™ i5-7200U CPU平台上,Strong Tiny-YOLOv3 的检测速度是 YOLOv3 模型的 10.92 倍,相比于TinyYOLOv3 的检测速度提高了17.2%。在GeForce 940MX 平台上,Strong Tiny-YOLOv3 的检测速度为33.78 帧/s,约为 YOLOv3 的 8.64 倍,比 Tiny-YOLOv3 模型的检测速度提高了22.8%。实验结果表明,Strong Tiny-YOLOv3 模型有较高的检测速度,在资源受限平台GeForce 940MX上的检测速度能够满足实时检测的需求。

表6 算法模型尺寸对比

表7 Strong Tiny-YOLOv3模型各层BFlops值

表8 不同算法BFlops对比

表9 算法实时性能对比 帧·s−1

5 结束语

本文提出了一种YOLOv3 模型的压缩模型Strong Tiny-YOLOv3 模型。Strong Tiny-YOLOv3 模型中使用改进后的FireModule及short-cut对模型进行压缩优化,使YOLOv3模型的参数量从62.8×106减少为1.1×106,模型实际内存大小从241.1 MB 减少为7.5 MB,且模型检测的速度得到大幅度提升。在GTSDB 和CCTSDB 数据集上,Strong Tiny-YOLOv3模型的检测速度、检测精度都比YOLOv3 的压缩模型Tiny-YOLOv3 要好。压缩后的Strong Tiny-YOLOV3 模型不需要高性能GPU 也能实现实时检测,能够部署在车辆中对交通标志进行检测。模型压缩必然会导致其检测精度的降低,与YOLOv3相比,检测精度还有较大差距,下一步继续对模型的压缩方法进行研究,以尽可能减小模型压缩后的精度损失。

猜你喜欢
对模型交通标志特征提取
基于双向特征融合的交通标志识别
基于Gazebo仿真环境的ORB特征提取与比对的研究
顶风扎点
基于Daubechies(dbN)的飞行器音频特征提取
Bagging RCSP脑电特征提取算法
交通标志小课堂
蒙医开窍补肾针刺法对模型大鼠胸腺、脾脏指数的影响
蒙医催熟疗法对模型大鼠炎症因子影响的实验研究
脉冲接种下的双时滞的SIRS模型的稳定性与持久性
基于MED和循环域解调的多故障特征提取