APP下载

一种基于YOLOv5改进的雨天环境交通标志识别检测

2022-11-17王旭

现代信息科技 2022年20期
关键词:交通标志卷积深度

王旭

(太原师范学院 计算机科学与技术学院,山西 晋中 030619)

0 引 言

交通标志识别是城市智能交通系统中一个非常重要的环节,其中交通标志的种类高达上百种,按语义可以划分为警告、指示、禁令、和道路标志四种。所以,实现高效率和高精确度的交通标志识别对无人驾驶和智能驾驶来说至关重要。当天气环境恶劣时,比如雨天,车载摄像头采集的信息会因为视觉效果差而产生很大的噪声,从而导致识别明显精度降低。因此,目前的交通标志识别应用研究仍然具有很大的挑战。

目标检测问题,它主要是解决从图像中获取物体类型以及位置关系,其位置通常要用一个框来标注出来。目标检测有两种算法:一种是one-stage,它将目标检测问题转换成回归问题,直接通过主干网络给出位置信息和类别信息,网络的准确度低,但是速度快,其代表算法有如YOLO[1]算法系列;另一种是two-stage,主要通过一个卷积神经网络来完成目标检测过程,其主要训练两个部分,第一步训练RPN 网络,第二步训练目标区域检测的网络,网络的准确度高,但是检测速度慢,其代表算法有R.Girshick et ald 等人在2014年提出的R-CNN 算法[2]。文献[3]提出了一种基于YOLOv5 模型的交通标志识别方法,采用融入了遗传学习算法和K-means聚类算法,并且引入了stem 模块和ShufflenetV2 的基础单元网络,在保持精度不降的情况下,提高了识别速度,但是依然不满足实时性的要求;文献[4]通过消减特征金字塔深度、限制最高下采样倍数,以及引入数据增强和全局非极大值抑制来改进YOLOv5网络,进而实现高效的识别交通标志,但是识别的种类还是较少。

因此,为了提高雨天天气下交通标志识别的性能,本文针对YOLOv5 网络进行改进研究。首先,采用雨天图像处理技术将视频进行去雨化处理;其次,在原始YOLOv5 网络中增加网络深度,控制下采样倍数,来提高小目标检测精度,并且适配残差网络深度,加快模型检测速度;最后,通过实验和对比实验验证模型的性能。

1 去雨算法及YOLOv5 算法分析

1.1 去雨算法分析

图像去雨算法一直是计算机视觉的研究重点。去雨算法目前主要分为两大类,一类是基于视频的去雨算法,它通过分析连续帧之间图像的差异,根据时空关系对雨条纹进行检测,从而达到去雨效果;一类是基于单幅图像的去雨算法,它包含基于稀疏编码和字典学习的去雨算法和基于深度学习的去雨算法两种。基于稀疏编码和字典学习的去雨算法在遇到图像中的雨水和背景非常接近的时候,就很难去除干净。所以本文采用的是基于深度学习的去雨算法。

在基于深度学习的去雨算法研究中,文献[5]利用注意力机制可以缓解梯度消失和模型退化的优点,结合多尺度通道混洗深度可分离卷积实现网络轻量化设计,显著的提高网络的运行效率;文献[6]将两种类型的残差块网络相结合,用于提取有雨图像的深层信息,有效的提升了图像的清晰度,但是运行效率较低。本文考虑交通标识识别的实时性,基于Dongwei[2]提出的多阶段解决问题的思路,构建了简单的PRN(Progressive Residual Network)模型,用与对雨天图像进行深度学习和处理。

由于雨天交通图像的数据比较少,本文通过Photoshop软件对图像进行处理,如图1所示,然后将增强后的图像输入到PRN 模型中,得到去雨后的图像如图2所示。

图1 雨天图像

图2 去雨图像

1.2 YOLOv5 算法原理

YOLO 算法的全称为“You Only Look Once”,它是一种将回归问题运用到目标检测上的方法。该方法首先通过卷积神经网络(CNN)将图像划分为多个网格,然后对每一个网格的可能的种类和边界进行预测。此外,YOLO 算法还可以对网格中是否存在对象进行预测,并在训练中通过将边界框重合而获取“置信度”小于阈值的边界框。目前为止,YOLO 算法的改进已经发展到第五代,即YOLOv5 算法。

YOLOv5 的网络结构如图3所示,主要是由三部分组成,分别为Backbone、Neck 和Head。

图3 YOLOv5 网络结构图

Backbone,译作骨干网络,它的主要作用是进行特征提取。Backbone 包含Focus、Conv、Bottleneck、C3 以及SPP等多个模块,如图4所示。Focus 模块的主要作用是进行切片操作,类比于临近下采样。Focus 对图像每隔一个像素取一个值,然后就变成四张图像,然后拼接起来,再进行卷积操作,从而得到没有信息丢失的下采样特征图。Conv 模块的主要作用是对输入图像进行卷积、BN 和激活函数操作。Bottleneck 模块的主要作用是先将通道数减小再扩大,然后根据shortcut 参数设置来判断是否需要进行残差链接,最后用add 进行特征融合,使得融合后的特征不变。C3 模块是对残差特征进行学习的主要模块,其结构分为两支,一支使用多个Bottleneck 堆叠和3 个标准卷基层;另一支仅经过一个卷积模块,最后两支进行concat 操作。SPP 模块又称空间金字塔池化,它首先通过一个标准卷积模块将输入通道减半,其次进行三种不同尺寸的最大池化操作,最后将池化结果和未池化操作的数据进行concat 拼接合并。

图4 YOLO5 主要结构图

Neck 的主要作用是对图像特征进行混合和组合,生成特征金字塔,其核心结构为FPN(特征金字塔)和PAN(路径聚合网络)。FPN 首先需要在卷积神经网络中提取提取特征图构建特征金字塔,随后自顶向下利用上采样操作融合特征金字塔的特征图。但是FPN 只是自顶向下地将高层的语义信息传递回浅层的特征图,缺少目标的位置信息。PAN 是对FPN 结构的一个补充,它在FPN 结构的基础上加入了一个自底向上的金字塔,而自底向上的结构通过将浅层丰富的位置信息映射叠加到深层特征来进行特征融合,准确的保留了空间信息。FPN 与PAN 两者相互结合,充分实现了网络上下信息流的融合,提升网络的检测能力。

Head 的主要作用是对图像特征进行预测,应用锚定框,生成带有类概率、对象得分和边界框的最终输出向量。

2 YOLOv5 算法改进

2.1 Backbone 改进

Backbone 的主要作用是在不同图像的细粒度上通过聚合形成图像特征。在YOLOv5 网络中,由于小目标所占像素很少,经过Backbone 多次卷积后,容易导致对其提取得到的特征不明显。

针对这一问题,本文提出的YOLOv5 改进算法,在初始Backbone 基础上,为小目标检测专门增加几个特征提取层,旨在继续对特征图像进行上采样处理,使得特征图继续扩大。然后连接Neck 层,以此获取小目标更明显的特征图,实现对小目标检测进行检测的目的。改进后的Backbone 如图5所示。

图5 改进后的Backbone 模块

2.2 特征金字塔改进

交通标志识别任务主要以小目标检测为主,YOLOv5算法中的特征金字塔采用PAN 与FPN 相结合的结构。其中,PAN 自底向上传达信息,主要传递强定位特征。FPN与PAN 相反,FPN 自顶向下将高层信息通过上采样进行融合和传递,主要传递强语义特征。由于其感受野较大,提取的特征比较抽象,导致很容易丢失细节信息,所以YOLOv5算法中的特征金字塔容易将小目标淹没,因此并不适合交通标志识别。

由于增加FPN 和PAN 的深度可以增强细节信息和定位信息,因此,本文对YOLOv5 算法中FPN 与PAN 结构进行了改进,增加了4、8、16、32 倍的下采样和上采样,改进后的FPN 和PAN 结构如图6所示。

图6 改进后FPN 和PAN 结构

2.3 残差网络深度适配

残差网络的主要作用是解决由于网络层数太深所产生的链式求导连乘因子项太多而导致的梯度爆炸和梯度消失问题,以及网络的退化问题。随着网络深度的加深,精度也会随之因为饱和而导致再下降的问题。此外,随着残差网络的深度加深,也会产生许多额外的计算开销,从而影响检测的速度。Bottleneck 作为残差网络的核心,它的深度适配需要根据不同的检测目标做出相应的调整。针对小目标检测,在实验过程中,通过不断测试,分别在改进后的Backbone 的第7 层上和改进后的Neck 的第21 层适配一个Bottleneck 就可以获得一个非常好的检测结果,并且还可以有效减少计算开销。

2.4 初始锚框获取

YOLOv5 算法在训练之前需要手动给出初始锚框,然后通过训练基于训练数据输出预测框,这意味着初始锚框的选择对于网络的训练过程以及训练结果是一个非常重要的影响因素。为了能够更客观的获取初始锚框,本文使用了改进的K-means++聚类算法,将算法中的欧拉距离评价指标改成IOU 评价指标。改进后初始锚框为:

- [ 11,12,15,16,20,21 ]# P3/4

- [ 25,26,31,33,38,40 ]# P4/8

- [ 49,50,63,65,93,92 ]# P5/16

- [ 96,68,86,152,180,137]# P6/32

3 试验结果与分析

3.1 实验平台

实验环境配置如表1所示。

表1 本文实验环境配置

3.2 数据集描述

本文采用的数据集是中国交通标志数据集TT100K。TT100K 从中国5 个不同城市的10 个区域,采用高清摄像头多角度拍摄获取,代表性较强。从TT100K 中筛选的45 种交通标志如图7所示。45 种交通标志的数量分布情况如图8所示。

图7 交通标志

图8 交通标志种类分布

3.3 评价指标

3.3.1 模型精度评价指标

本文采用的模型精度评价指标为:F1-score,mAP@0.5和mAP@0.5:0.95。

F1-score 基于精确率(P)和召回率(R)的调和平均定义。而P 和R 则根据混淆矩阵中其真实类别与模型预测类别中真正例(true positive),假正例(false positive),真反例(true negative),假反例(false negative)计算的,其混淆矩阵如表2所示。

表2 混淆矩阵

精确率(P)的定义为所有预测值为正例的样本里,真实值为正例的样本所占比例,计算见式(1):

召回率(R)的定义为所有真实值为正例的样本里,预测值为正例的样本所占比例,计算见式(2):

F1-score 是结合精确率和召回率,作为一个综合的评价指标,它尽可能的考虑精确率(召回率)高的情况下,召回率(精确率)也尽可能的高。计算见公式(3):

评价指标AP@0.5 与mAP@0.5:0.95 的计算都与AP 有关。AP@0.5 是混淆矩阵IOU 的阈值取0.5 的情况,用于衡量算法在每个类别上的好坏。计算见式(4):

式中pi为每一个类别的概率,n为总类别数。

mAP@0.5 为所有类别上AP@0.5 值的平均值,mAP@0.5 的值越高代表在高召回率下模型的精确度越高,模型也更好。mAP@0.5 的计算如式(5)所示:

mAP@0.5:0.95 指IOU 的阈值从0.5 按照0.05 的步长增长到0.95 时所有mAP@0.5 的平均值。mAP@0.5:0.95 的值越大,表示模型的预测框和真实框越逼近,检测效果越好。mAP@0.5:0.95 的计算见式(6):

3.3.2 模型检测速度评价指标

FPS 是指每秒传输的帧数,每秒帧数越多,流畅度越高。通常,要想人眼可接受的帧数是30FPS。计算见式(7):

3.4 试验结果与分析

3.4.1 YOLOv5 改进模型性能实验

为测试本文所提出的改进后的YOLOv5 模型的性能,本文通过将YOLOv5s 模型和文献[4]提出的YOLOv5 改进模型与本文所给的YOLOv5 改进模型进行了对比实验,实验结果如表3所示。

表3 实验结果

实验结果显示,本文提出的YOLOv5 改进模型在整体评价指标上都有显著的提升,相比于YOLOv5s 模型,在分类数将近两倍的情况下,mAP@0.5:0.95 提升了9.5%,这表明模型的预测框和实际框精度大幅提升;F1-score 提升了8.4%,这表明模型预测更多类别的精确度有显著提升。相比于文献[7]提出的的YOLOv5 改进模型,在比原来25 个分类数又增加15 个分类数的情况下,F1-score 和mAP 在也有将近1%的提升,同时将FPS 提升了40%,意味着该模型能够更好的满足实时性需求。

3.4.2 雨天环境下模型性能测试实验

为验证雨天环境下改进后YOLOv5 模型的鲁棒性,本次实验首先将一千张交通图像通过Photoshop 进行雨条纹处理,然后将得到的图像输入到改进后的PRN 模型中进行去雨处理,最后将结果输入到改进后的YOLOv5 模型中进行测试,实验结果如表4所示。

表4 雨天环境下实验结果

由实验数据可知,图像进行雨天条纹增强后,经过本文模型处理识别后,F1-score 以及mAP 并没有明显的下降,说明改进后的模型具备在雨天恶劣天气下提取特征的能力,可以克服雨天雨纹引起的精度下降的问题。

4 结 论

去雨算法PRN 模型和改进YOLOv5 模型,在一定程度上解决了雨天交通标志识别的精确度低,速度慢的问题;首先,增加网络深度,解决了小目标特征提取的信息丢失问题;其次,通过调整backbone 中残差网络的深度,减少计算量,加快模型检测速度;最后,限制下采样倍数,以此来解决小目标难识别的问题;针对雨天,提出PRN 模型进行结合,在一定程度上解决了雨天雨痕干扰对图像的干扰。对比其他模型,本文模型有着更高的精确度和速度。但是,本文依然存在一些缺陷,雨天图像处理效果并不好,面对现实中的雨痕,PRN 模型并不能很好的处理;对于实际交通标志中上百种类别,40 种的数量还是较少,模型可以进行进一步的扩展。在接下来的实验中,我们将会针对这几点进行改进。

猜你喜欢

交通标志卷积深度
基于双向特征融合的交通标志识别
四增四减 深度推进
深度思考之不等式
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
简约教学 深度学习
基于傅里叶域卷积表示的目标跟踪算法
交通标志小课堂
我们欢迎你!