基于改进的Tiny-YOLOv4 快速交通标志检测算法

2022-10-11 07:37张小雪
电子设计工程 2022年19期
关键词:交通标志特征提取算法

张小雪,黄 巍

(1.武汉工程大学计算机科学与工程学院,湖北 武汉 430073;2.武汉工程大学智能机器人湖北省重点实验室,湖北武汉 430073)

交通标志检测系统部署在车辆等资源受限平台上,这些平台没有较强的运算能力及较大的内存[1]。因此,交通标志检测模型不能太大,不然无法部署在这些资源受限的平台上。文献[2]引入了FireModule以及short-cut 对模型进行压缩优化,减少了模型占用的内存空间,提高了检测速度,但是检测精度下降了。为了提高交通标志的检测精度,文献[3]提出了融合注意力机制的Cascaded R-CNN 算法,在CCTSDB数据集上的准确率超过了99%,但是检测速度只有7.6 FPS。考虑到实际交通场景的检测需求,设计的交通标志检测算法要兼顾精度高、速度快、模型容量小的特点。因此,该文对Tiny-YOLOv4 算法进行研究,改进了Tiny-YOLOv4 算法以提高模型的检测精度,同时兼顾交通标志检测的速度和模型内存容量要求,提高交通标志检测算法的综合性能。

1 改进Tiny-YOLOv4网络

1.1 Tiny-YOLOv4网络

主流的检测算法可以分为基于候选区域的目标检测算法,如Faster RCNN[4]、R-FCN[5]、Mask RCNN[6]等,基于回归的目标检测算法,如SSD[7]、YOLOv1[8]、YOLOv2[9]、YOLOv3[10]、YOLOv4[11]等。Tiny-YOLOv4是YOLOv4 的简化,网络模型相对简单,速度较YOLOv4 提升了多倍,对硬件的要求不高,但检测精度有所下降。

Tiny-YOLOv4 网络结构如图1 所示,它由主干特征提取网络和特征金字塔网络(FPN)[12]两部分组成。主干特征提取网络采用了跨阶段局部网络(CSPNet)[13],实现了更丰富的梯度组合,保证了网络的学习能力。通过特征金字塔网络,得到13×13 和26×26 大小的预测特征图,两种不同尺度的预测同时构成Tiny-YOLOv4 网络的检测输出结果。

1.2 改进FPN

通常情况下卷积神经网络的层数越深,它就可以挖掘出图像中更高级抽象的语义特征。但是随着网络层数加深,经过多次卷积后,可能会导致检测目标特征的削弱和消失,特征不能被很好地表征[14]。Tiny-YOLOv4 网络是基于网格点对一定区域进行检测。当输入图像的分辨率大小是416×416 时,经过特征提取网络和FPN 后会得到两个预测特征层,大小分别是13×13、26×26。13×13 特征图的每一个像素点的感受野大小为32×32,交通标志属于小目标物体,它在整张图片中占用的尺寸很小,因此它在13×13 特征图上占有的空间很小甚至消失,很难在13×13 特征图上被检测出。26×26 特征图上的每一个像素点的感受野大小为16×16,对于小尺寸的交通标志,它在26×26 特征图上占有的空间也很小甚至消失。交通标志目标通常比较密集,在同一个网格内的交通标志目标可能在卷积后被映射到同一个区域,这样会导致一些小目标不能被检测出来。原网络的两个预测特征层对小目标检测和密集交通标志检测的效果不佳,因此,删除尺度为13×13 和26×26 的预测特征层,改用52×52 和104×104 更大尺度的预测特征层,提高小目标交通标志和密集交通标志的检测精度。

目标检测网络浅层高分辨率特征图提取的是图像的细节信息[15],如边缘、位置信息等。而深层低分辨率特征图提取的是图像的抽象信息。为了使52×52 和104×104 预测特征层既包含丰富的位置细节信息又包含目标抽象语义信息,在原网络的基础上,将26×26 特征图上采样与特征提取网络的第三次下采样得到的52×52 特征图进行融合,得到52×52 的预测特征图,将52×52 的特征图继续上采样与特征提取网的第二次下采样得到的104×104 特征图进行特征融合,得到104×104的预测特征图。改进后的特征金字塔网络(FPN)使得浅层高分辨特征图融入了深层低分辨率特征图中的抽象语义信息,增强了表达目标特征的能力。

1.3 改进主干特征提取网络

为了增强Tiny-YOLOv4 主干特征提取网络的特征提取能力,使得特征图中包含目标更多的信息,将第二次卷积替换为CSPNet 结构,如图2 所示。该结构中包含残差结构,实现了更丰富的梯度组合。替换后,网络的深度加深,网络的学习能力也提高了,此时两次下采样得到的104×104 特征图相比原网络包含目标更多的特征信息。在最后一层CSPNet 结构后加入SPP 结构,如图3 所示。对输入特征图分别进行5、9、13 三种尺寸的最大池化,然后将池化后的结果与输入特征图进行堆叠,实现了局部特征和全局特征的融合,这样可以提取每一张图片多方面的特征,提高交通标志的检测精度,并且也不会增加额外的参数。同时将原来主干特征提取网络的最后一层卷积的卷积核大小由3×3 改成1×1,进一步减少模型的参数量和计算量。

图2 CSPNet 结构

图3 SPP 结构

1.4 改进后的Tiny-YOLOv4网络

改进后的Tiny-YOLOv4 网络结构如图4 所示。图中各个模块含义如下:DBL 模块包括卷积、批标准化及带泄露修正线性单元(Leaky ReLU)激活函数;CSPNet 结构如图2 所示,是跨阶段局部网络;SPP代表空间金字塔池化,如图3 所示;UpSampling 表示上采样,使用最近邻插值;Concat 表示对特征图进行堆叠;Conv 表示一次卷积。

图4 改进的Tiny-YOLOv4网络结构

2 实验与分析

2.1 实验配置与数据集

文中实验在服务器上训练,服务器上有四个GPU,型号为NVIDIA 1080Ti。服务器采用的操作系统为Ubuntu 系统,版本为16.04,文中实验的算法由Keras 框架实现。训练过程参数设置如下:输入图片的大小为416×416像素;采用Adam 优化器,初始学习率为0.000 1,训练150个epoch,批量大小为8张。实验采用的数据集是长沙理工大学中国交通标志检测数据集(CCTSDB),CCTSDB数据集分为训练集的15 724张图片和测试集的400 张图片,如图5 所示,包含警告、禁止、指示三种类型标志。

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

Tiny-YOLOv4模型默认的锚点框是针对COCO数据集的,不适合该实验数据集,因此,实验使用K-means聚类算法对CCTSDB 数据集进行聚类分析,得到适合该实验数据集的锚点框。104×104 预测特征层对应的锚点框是(8,23)、(8,15)、(12,20);52×52 预测特征层对应的锚点框是(17,30)、(29,43)、(56,79)。

2.2 评价指标

实验以精确率(Precision,P)、召回率(Recall,R)、F1值、平均检测精确度(mean Average Precision,mAP)以及每秒检测帧数(Frame Per Second,FPS)作为评价指标。

TP 表示实际是正样本并且预测正确的样本数,FN 表示实际是正样本但是预测错误的样本数,FP 表示实际是负样本但是预测错误的样本数[16]。准确率的计算公式如式(1)所示:

召回率的计算公式如式(2)所示:

F1值可以对Precision和Recall进行整体评价,能够评价不同算法的优劣。F1 值的计算公式如式(3)所示:

AP(Average Precision)能够衡量模型在每个类别上性能的优劣。AP 的计算公式如式(4)所示:

mAP 是所有类别上AP 的平均值,它能够衡量模型在所有类别上性能的优劣,mAP的计算公式如式(5)所示。FPS 是每秒检测图片数,用来评价一个检测模型的检测速度,FPS 越大,检测速度越快。

2.3 实验结果与分析

2.3.1 消融实验

为了验证前述各部分改进方法的有效性,在CCTSDB 数据集上进行消融实验,以Tiny-YOLOv4网络为基础,组合使用前述的CSPNet、SPP、改进的FPN 来验证不同改进方法对于网络性能的提升。以Precision、Recall、F1 和mAP(IOU 阈值取0.5)为评价指标,消融实验结果如表1 所示。

表1 CCTSDB数据集上的消融实验结果

对比Tiny-YOLOv4和模型CSPNet、SPP、改进FPN可知,CSPNet、SPP、改进FPN 对于模型的性能均有所提升,在mAP 上分别提高了2.21%、1.7%、6.32%。Tiny-YOLOv4 在应用了全部改进方法后实现了最佳的检测性能,在Precision、Recall、F1、mAP 上均取得了最优的结果,与原网络模型相比,分别提升了12.14%、6.38%、9%,13.4%。根据消融实验结果可知,CSPNet、SPP、改进FPN 对于网络性能的提升是有效的。

2.3.2 与其他目标检测算法对比

为了进一步验证改进后算法在检测精度、检测速度以及模型内存容量上的综合性能效果,该文选 取YOLOv4、Tiny-YOLOv4、RetinaNet-Resnet50、Strong Tiny-YOLOv3[2]、Cascaded R-CNN[3]五种目标检测算法与该文算法进行对比,对比实验在CCTSDB 数据集上进行,选择Precision、Recall、F1、mAP、FPS、模型内存容量六项指标对各个算法进行评价,对比实验结果如表2 所示。Strong Tiny-YOLOv3 和Cascaded R-CNN 的实验结果来文献[2-3]。

表2 CCTSDB数据集上对比实验结果

Cascaded R-CNN 模型在Precision 和F1 上取得了最优结果,但是该模型的检测速度最慢;YOLOv4模型在Recall和mAP上取得了最优结果,但是该模型的检测速度与该文算法相比太慢,并且该文算法的mAP与其相比只相差1.09%,差距并不大,而检测速度约是其5 倍,模型内存容量相比其减少了233.2 MB;Tiny-YOLOv4 模型在FPS 上取得了最优结果,但是该文算法与其相比,FPS 相差不大,且模型内存容量相比其减少了11.8 MB,mAP 相比其增加了13.4%,在Precision、Recall、F1上的检测效果均比其好;Strong Tiny-YOLOv3 模型在模型内存容量上取得了最优结果,但是该文算法与其相比,模型内存容量相差不大,检测速度约是其6 倍,且模型的mAP 值相比其也提升了3.23%。

虽然改进Tiny-YOLOv4 模型在单个指标上均未达到最优结果,但综合检测精度、检测速度以及模型内存容量三个方面评价,改进Tiny-YOLOv4 模型的效果优于其他检测模型,它的检测精度为88.79%mAP,检测速度达到了200 FPS,可以快速检测交通标志,模型内存容量为10.8 MB,可以搭载在车辆等资源受限的平台上,对平台的计算量和内存容量要求不高。

2.3.3 图片检测结果

为了进一步证明改进Tiny-YOLOv4 网络的检测效果,随机抽取测试集中的三张图片进行测试,结果如图6 所示。

图6 改进Tiny-YOLOv4前后的检测结果

从图6 可以看出,图6(a)没有检测出两个尺寸比较小的交通标志,而图6(b)检测出了两个尺寸比较小的交通标志;图6(c)和图6(d)都漏检了一个交通标志,而图6(d)和图6(f)可以正确地检测出所有的交通标志。因此,改进Tiny-YOLOv4 检测算法可以提高对小目标交通标志的检测率,降低交通标志检测的漏检率。

3 结论

考虑到实际交通场景的检测需求,设计的算法要兼顾精度、速度、模型容量的要求,该文基于Tiny-YOLOv4 算法提出了改进Tiny-YOLOv4 快速交通标志检测算法。对原网络的主干特征提取网进行改进,引入了CSPNet 和SPP 模块,加深了主干特征提取网络的深度,减少了网络的参数量,增强了主干特征提取网的学习能力。改进FPN 结构,选用更大尺度的预测特征层,增强了对小目标交通标志和密集交通标志的检测精度,进一步减少了模型的参数量。从CCTSDB 数据集上进行的消融实验可以看出,这三种改进方法对于原网络性能提升的有效性。通过该文算法与其他交通标志检测算法在CCTSDB 数据集上的对比实验可知,该文算法在检测精度、检测速度以及模型内存容量综合性能上达到最佳,能够同时兼顾三方面的要求。

猜你喜欢
交通标志特征提取算法
同步定位与建图特征提取和匹配算法研究
基于双向特征融合的交通标志识别
Travellng thg World Full—time for Rree
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
基于曲率局部二值模式的深度图像手势特征提取
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
交通标志小课堂
我们欢迎你!