计算机系统应用  2023, Vol. 32 Issue (5): 172-179   PDF    
基于改进YOLOv5的昏暗小目标交通标志识别
李娇, 葛艳, 刘玉鹏     
青岛科技大学 信息科学技术学院, 青岛 266061
摘要:为了实时检测并识别路上的交通标志, 针对在不良光照情况影响下小型交通标志的识别精确度较低、误检、漏检严重的问题, 提出了一种基于改进YOLOv5的交通标志识别模型.首先在YOLOv5模型的浅层特征图层增加一次concat操作, 将浅层的特征信息结合中间特征图层作为一个检测头, 有利于小目标交通标志的识别效率. 其次将坐标注意力机制添加到YOLOv5模型中, 从而提高特征提取的效率. 对中国交通标志数据集TT100K进行数据扩充和暗光增强的操作, 最后在经过预处理的TT100K数据集上验证本文改进的模型检测效果. 实验结果表明本文改进的模型对小目标及昏暗情况的交通标志识别效率有很大的提升. 本文改进的YOLOv5模型与最初的YOLOv5模型均在扩充后的数据集上进行训练后的结果相比, 在准确率上提升了1.5%, 达到了93.4%; 召回率提升了6.8%, 达到了92.3%; mAP值提高了5.2%, 达到了96.2%.
关键词: 交通标志识别    YOLOv5模型    特征融合    坐标注意力    目标检测    
Traffic Sign Recognition for Dim Small Targets Based on Improved YOLOv5
LI Jiao, GE Yan, LIU Yu-Peng     
School of Information Science and Technology, Qingdao University of Science and Technology, Qingdao 266061, China
Abstract: In order to detect and recognize traffic signs on the road in real time, a traffic sign recognition model based on improved YOLOv5 is proposed to solve the problems of low recognition accuracy and serious false detection and missing detection of small traffic signs under the influence of poor lighting. First, a concat operation is added to the shallow feature layer of the YOLOv5 model, and the shallow feature information is combined with the middle feature layer and then serves as a detection head, which is conducive to the recognition efficiency of small traffic signs. Secondly, a coordinate attention mechanism is added to the YOLOv5 model to improve the efficiency of feature extraction. The Chinese traffic sign dataset TT100K is expanded, and the dark light is enhanced. Finally, the improved model detection effect is verified on the preprocessed TT100K dataset. The experimental results show that the recognition efficiency of the improved model for small and dim traffic signs is greatly improved. Compared with the results of the original YOLOv5 model trained on the expanded dataset, the accuracy of the improved YOLOv5 model in this study is improved by 1.5%, reaching 93.4%. The recall rate is increased by 6.8%, reaching 92.3%. The mAP value is increased by 5.2%, reaching 96.2%.
Key words: traffic sign recognition     YOLOv5 model     feature fusion     coordinate attention     object detection    

无人驾驶车辆的普及程度越来越高, 相应的交通事故也频频发生. 因此, 智能交通系统受到广泛关注. 交通标志牌是智能交通系统不可或缺的重要组成部分[1], 自动驾驶车辆的行驶速度越快, 系统越需要早期识别出交通标志牌并做出反应, 这意味着对于远距离小目标交通标志的识别研究势在必行. 交通标志牌的识别还受到光线的影响, 光线不好的情况导致交通标志识别效率降低, 其中包括背光、阴天等情况.

文献[2-5]对交通标志检测、跟踪和分类进行了全面综述. 对交通标志检测与识别方法和近年来国内外学者解决各类复杂环境下交通标志检测与识别的方法、原理和步骤进行总结归纳, 还对相关的交通标志数据集做了统计分析. 随着深度学习的发展, 越来越多的学者致力于使用深度学习的方法实现复杂环境下交通标志的识别. Jain等人[6]在卷积神经网络中引入遗传算法, 识别准确率高达96%. Farag[7]提出基于CNN的综合分类器WAF-LeNet, 识别率提高且模型更小. Haque等人[8]提出一种轻量级的CNN结构, 参数至少减少了5倍. Santos等人[9]使用更快的R-CNN, 而且利用不同的架构来使用一个CNN进行分类, 该方法可应用到自动驾驶领域中. 吕禾丰等人[10]提出了一种改进YOLOv5算法的交通标志识别方法, YOLO系列算法[11-15]作为单阶段方法, 优点是速度快. 但其使用的数据集中只有3类交通标志, 不适合用于实际的项目中. 潘晓东等人[16]提到昼夜光线以及车速的变化也会影响交通标志图片的采集, 交通标志的可视距离随车速的提高而降低; 同一实验车速, 顺光条件下标志的视认性最佳, 其次为夜间反光标志, 逆光条件下的标志视认性较差. 因此需要预处理图片, 达到更好的识别效果. Khan等人 [17]提出了DASTM与TS检测器相结合, 这是YOLOv3的优化版本, 用于检测3类交通标志, 针对昏暗交通标志的检测效果有提升. 赵坤等人[18]针对复杂的弱光照图像提出了自适应增强算法, 召回率与准确率均有提升, 缺点是较为耗时, 模型较大. 冷晨等人[19]提出了一种轻量级的算法, 降低了模型参数量, 有利于模型适配于车载终端设备内存, 但是它的检测效率还是有待提高.交通标志目标在图像中尺寸较小、特征不全、与图像中背景差异大等特点, 针对小目标基于深度学习的交通标志检测算法性能仍需要进一步提升和优化. 俞涛[20]从数据, 学习率优化策略和网络结构3个方面改进YOLOv4, 改进后模型在检测小目标、多目标和实时性方面都有所提升.

目前已有的研究文献表明针对小目标以及昏暗情况下的交通标志识别精度还有很大的提升空间. 本文研究基于改进YOLOv5模型的昏暗光线以及小目标的交通标志识别模型. 本文基于YOLOv5模型进行改进, 首先在Neck模块中增加了一层较大尺度特征的小目标检测层, 获得更丰富的特征信息, 有利于提升小目标交通标志的检测效率. 其次在Backbone模块中添加坐标注意力机制, 有利于解决复杂环境下交通标志图像特征不明显的问题, 从而提高特征提取的效率. 然后对数据集进行暗光增强操作, 有利于昏暗情况下的交通标志识别效果的提升, 最后在预处理后的TT100K数据集上训练本文改进的模型并进行测试. 实验结果表明, 本文改进的模型对小目标及昏暗情况下的交通标志识别的效果有所提升.

1 YOLOv5模型

YOLOv5系列模型的不同主要表现在网络通道数和模块堆叠次数上, 分别由width_multiple和depth_multiple调控. 本文在考虑到网络的检测精度和嵌入式应用要求后, 实验以v6.0版本的YOLOv5s模型为基础进行改进. YOLOv5模型主要由Backbone、Neck及Head这3部分组成.

Backbone模块的作用是对图片的特征进行提取, 其包括Conv、C3和SPPF结构. 其中C3由多个Conv和多个Bottleneck模块组成, 在YOLOv5v6.0网络中设计了两种C3结构: C3_T_x结构位于Backbone, C3_F_x结构位于Neck, 其中x表示模块堆叠次数, 二者的区别在于Bottleneck中shortcut的取值, T表示shortcut取值为True, F表示shortcut取值为False. Bottleneck、C3_T_x模块结构如图1所示.

图 1 Bottleneck、C3_T_x模块

Neck模块由两部分组成: 特征金字塔网络和路径聚合网络, 这两种网络结构的结合实现了高层特征与低层特征融合互补, 有利于强化模型特征提取能力. Head模块是一个检测网络, 检测网络主要用于模型的最终检测部分.

2 基于改进YOLOv5的交通标志识别模型

本文基于YOLOv5模型进行改进, 首先在Neck模块中增加了一层较大尺度特征的小目标检测层, 获得更丰富的特征信息, 有利于提升小目标交通标志的检测效率. 其次在Backbone模块中添加坐标注意力机制, 有利于解决复杂环境下交通标志图像特征不明显的问题, 从而提高特征提取的效率. 本文改进后的用于交通标志识别的YOLOv5模型结构如图2所示, 粗体框加粗体文字表示的地方即为改进的部分. 用CABottleneck模块(添加了坐标注意力机制的残差模块)替换了C3_T_x模块里的Bottleneck后得到的模块结构命名为C3CA模块.

图 2 改进后的YOLOv5模型

2.1 增加小目标检测模块

Neck模块里对经过一系列操作的 $ 80\times 80 $ 的特征图与Backbone模块中的第3层特征图进行concat融合, 得到新的特征图, 在这之后加入小目标检测模块. 小目标检测模块结构如图3所示. 利用浅层特征图包含信息较丰富的特点, 将浅层特征图与经过卷积、上采样的特征图层相融合, 获得更丰富的特征信息, 有利于提高模型对小型交通标志牌的识别效率.

小目标检测模块包括卷积、上采样、C3_F_x结构, 上述中提到的新的特征图作为小目标检测模块的输入, 经过C3_F_x、卷积、上采样操作后得到 $ 160 \times 160 $ 的特征图, 再与Backbone模块中的第2层特征图进行融合, 然后进行C3_F_x操作. 得到的结果输出分为两条支路, 其中之一作为一个新的检测头输出特征信息, 用于检测交通标志大小在 $ 4 \times 4 $ 以上的目标; 另一个经过卷积后与还未进行上采样的特征图做融合处理, 作为输入传回Neck中.

图 3 小目标检测模块

2.2 引入坐标注意力机制

坐标注意力(coordinate attention, CA)[21]可以嵌入位置信息到通道注意力, 从而使得网络模型获取更多特征信息. CA模块结构如图4所示, 具体过程可分为坐标信息嵌入和坐标注意力生成两个部分.

图 4 CA模块

2.2.1 坐标信息嵌入

全局平均池化有助于模型捕获全局信息, SE模块中就使用了这种方法. 全局池化方法的公式如式(1)所示, 对于输入 $ x $ , 它来自具有固定内核大小的卷积层, 其维度为 $ C \times H \times W $ ( $ C $ 为通道数, $ H $ 为高, $ W $ 为宽), 可以视为局部描述符的集合, $ {x_c}(m, n) $ 表示高度为 $ m $ 宽度为 $ n $ 时第 $ c $ 个信道的输入信息.

$ {Z_c} = \frac{1}{{H \times W}}\sum\nolimits_{m = 1}^H {\sum\nolimits_{n = 1}^W {{x_c}(m, n)} } $ (1)

全局池化方法将全局信息压缩到通道描述符中, 导致难以保存位置信息. 为了提升注意力模块捕捉具有极其准确位置信息的长距离空间依赖交互的能力, 利用以下方式分解了全局池化, 转化为一维水平和一维垂直平均池化.

沿着水平方向和垂直方向做平均池化操作的计算见式(2)和式(3):

$ Z_c^h(h) = \frac{1}{W}\sum\nolimits_{0 \leqslant n < W} {{x_c}(h, n)} $ (2)
$Z_c^w(w) = \frac{1}{H}\sum\nolimits_{0 \leqslant m < H} {{x_c}(m, w)} $ (3)
2.2.2 坐标注意力生成

通过坐标信息嵌入中的变换后, 把水平和垂直方向的信息以一维向量的形式表示. 在式(4)中 , 将两个方向的向量信息通过 $[{{\textit{z}}^h}, {{\textit{z}}^w}]$ 操作进行拼接, 再通过 $ {F_1} $ 卷积操作对方向信息进行压缩, 最后使用 $ \delta $ 进行非线性激活处理, 得到的 $ f $ 是包含水平和垂直方向编码信息的中间特征图.

$ f = \delta ({F_1}([{{\textit{z}}^h}, {{\textit{z}}^w}])) $ (4)

沿空间维度将 $ f $ 分割为 $ {f^h} $ $ {f^w} $ 两个张量, 然后使用两个 $ 1 \times 1 $ 卷积变换函数对 $ {f^h} $ $ {f^w} $ 进行变换操作, 使得 $ {f^h} $ $ {f^w} $ 与输入 $ x $ 保持相同的通道数, 如式(5)和式(6)所示, 其中 $ \sigma $ 是Sigmoid函数, 作用是降低模型复杂度. 计算结果就是水平方向和垂直方向的注意力张量.

$ {g^h} = \sigma ({F_h}({f^h})) $ (5)
$ {g^w} = \sigma ({F_w}({f^w})) $ (6)

将沿水平和垂直方向的注意力同时应用于输入张量, 得到最终的输出 $ y $ , 如式(7)所示:

$ {y_c}(m, n) = {x_c}(m, n) \times g_c^h(m) \times g_c^w(n) $ (7)

将坐标注意力与YOLOv5算法中的C3_T_x模块相结合, 即将CA添加至C3_T_x模块的Bottleneck中, 得到的CABottleneck模块结构如图5所示, 在卷积处理后进行了坐标注意力机制变换, 再与输入进行concat操作. 优化计算的同时, 融合更多的特征信息, 这有利于解决复杂环境下交通标志图像特征不明显的问题, 从而提高特征提取的效率.

图 5 CABottleneck模块

3 实验与结果分析 3.1 实验数据集 3.1.1 数据集概述

本文实验数据集采用由清华大学与腾讯公司联合制作的Tsinghua-Tencent 100K (TT100K)数据集[22]. TT100K数据集是中国交通标志数据集, 其具有基数庞大、语义信息丰富、高清像素的优点, 但各种交通标志牌之间数量差距悬殊, 在TT100K中, 存在的小目标交通标志较多, 也有昏暗背光的交通标志存在, 不利于识别.

3.1.2 数据集筛选

本文只筛选出TT100K数据集中具有重要语义信息的45种交通标志, 统计这45种交通标志的数量分布, 每种交通标志数量均在100以上, 其中过半交通标志的数量不足300, pn (区域禁停)交通标志的数量最多, 有2851个; w32 (施工)交通标志的数量最少, 仅有104个. 所有交通标志共计23182个交通标志, 筛选出的交通标志中有近半属于小目标(长宽均值≤32, 即小目标[23]).

3.1.3 数据集预处理

过半类别的交通标志数量较少, 不利于模型的训练, 所以在本文中利用数据增强技术对TT100K数据集(共9170张)做扩充处理, 得到TT100K-AUG数据集(共55020张). w32 (施工)交通标志的数量由104个增加到624个, 所有交通标志种类均得到大幅度增加. 更多的具有复杂环境信息的数据集使得模型训练效果更佳. 扩充后的交通标志数量分布及长宽均值区间分布分别如图6图7所示.

图 6 扩充后的交通标志数量分布

图 7 扩充后的交通标志长宽均值区间分布

基于Python脚本实现暗光增强技术, 对TT100K数据集进行操作, 主要针对图片中暗光区域进行亮度增强, 对光照明亮的区域影响较小, 有利于模型对交通标志识别的效率提升, 图8是进行暗光增强处理前后的效果对比图.

3.2 实验配置

TT100K-AUG数据集, 共55020张图片, 约占20 GB内存, 仅使用CPU无法通过深度学习的方式拟合神经网络模型. 因此, 在GPU上对改进网络进行训练和测试. 本文实验均在Ubuntu 16.04.7LTS操作系统下进行, GPU型号为NVIDIA GeForce RTX 3090, 内存为128 GB, CUDA版本为11.1, cuDNN版本为8005, OpenCV版本为4.6.0.66.

图 8 暗光增强处理前后的效果对比图

3.3 实验结果 3.3.1 模型性能衡量指标

本文选用精确率(precision, P)、召回率(recall, R)及平均精度(mAP)作为模型性能衡量指标, P即所有预测值为positive实际值为positive的情况所占比例, 衡量了模型错检情况. R即所有实际值为positive预测值为positive的情况所占比例, 衡量了模型漏检情况. mAP的计算与AP值相关, $ AP@0.5 $ 是IoU阈值取 $ 0.5 $ 时, 对于每类具有 $ m $ 个正例的样本, 一个正例就对应一个P值(Pi), 对 $ m $ $ {P_i} $ 求平均即得每类的 $ AP@0.5 $ , 计算公式见式(8):

$ AP@0.5 = \frac{1}{m}\sum\nolimits_{i = 1}^m {{P_i}} $ (8)

$ mAP@0.5 $ $ n $ 个类别的 $ AP@0.5 $ 求平均值, 其用来预判模型精确率随召回率变化的趋势, 计算公式见式(9):

$ mAP@0.5 = \frac{1}{n}\sum\nolimits_{k = 1}^n {AP@{{0.5}_k}} $ (9)
3.3.2 实验结果分析

将扩充过后的TT100K数据集按8:2的比例划分训练集和测试集, 在训练集上对本文改进模型进行训练, 其识别效果见图9.

图 9 本文改进模型识别结果图

在测试集上对本文改进模型与原模型进行对比测试, 为了验证改进的各个步骤对交通标志识别模型预测效果的影响, 对进行不同处理步骤的模型做实验评估. 表1所示为进行不同改进步骤的YOLOv5模型与原始模型的检测结果对比, 其中“ √ ” 表示执行相应步骤对YOLOv5模型做改进. 表中YOLOv5_CA、本文改进模型分别表示添加CA模块、添加CA模块和小目标检测模块. 表1中可以看出, 每增加执行一个改进步骤对原模型的识别效率都会有所提升, 其中数据集扩充表现尤为突出, 小目标检测模块的提升效果其次, 添加CA模块与进行暗光增强的处理也都会对模型识别效果有所提升.

表 1 各步骤精度评估对比 (%)

本文将改进的模型与YOLOv5模型进行对比实验, 还与其他常规的目标检测方法进行了对比实验. 实验结果表明, 本文提出的交通标志识别模型在精确率、召回率和mAP@0.5指标上优于大部分最新的交通标志识别模型. 具体对比情况见表2.

本文改进模型与YOLOv5模型均在扩充后的数据集上进行训练后的结果相比, 在准确率上提升了1.5%, 达到了93.4%;召回率提升了6.8%, 达到了92.3%; mAP值提高了5.2%, 达到了96.2%.

表 2 多种模型对比 (%)

本文还将改进模型分别与基于YOLOv3、PVANet、YOLOv5、YOLOv4、CSPDarknet改进的小目标检测模型做比较, 具体对比情况见表3. 从表3中可以看出本文改进模型在 $ mAP@0.5 $ 指标上要比其他论文中提出的小目标检测模型更高.

表 3 多种小目标检测模型对比 (%)

4 结论与展望

为了提升对昏暗小目标交通标志的识别效率, 本文基于YOLOv5模型进行改进, 在Bottleneck模块中添加了注意力机制, 在Neck模块增加了一层较大尺度特征的小目标检测层, 以提升小目标交通标志的检测效率. 对数据集进行暗光增强操作, 有利于昏暗情况下的交通标志识别效果的提升, 最后在预处理后的TT100K数据集上训练模型并进行测试. 实验结果表明, 本文改进的模型对小目标及昏暗情况下的交通标志识别效果有所提升, 且优于大部分最新的交通标志识别模型. 但是该模型还是存在一定的局限性, 暗光增强部分技术的落地性较弱, 相关操作所需时间还是不能与识别实时性充分匹配, 需要进一步研究更快速可靠的暗光增强技术. 并且该模型由TT100K中的45类交通标志训练而来, 意味着它所能识别的交通标志牌比较有限.

参考文献
[1]
Satılmış Y, Tufan F, Şara M, et al. CNN based traffic sign recognition for mini autonomous vehicles. Proceedings of the 39th International Conference on Information Systems Architecture and Technology. Cham: Springer, 2019. 85–94.
[2]
Wang CY. Research and application of traffic sign detection and recognition based on deep learning. Proceedings of the 2018 International Conference on Robots & Intelligent System (ICRIS). Changsha: IEEE, 2018. 150–152.
[3]
Wali SB, Abdullah MA, Hannan MA, et al. Vision-based traffic sign detection and recognition systems: Current trends and challenges. Sensors, 2019, 19(9): 2093. DOI:10.3390/s19092093
[4]
陈飞, 刘云鹏, 李思远. 复杂环境下的交通标志检测与识别方法综述. 计算机工程与应用, 2021, 57(16): 65-73. DOI:10.3778/j.issn.1002-8331.2103-0380
[5]
李铭兴, 徐成, 李学伟. 交通标志识别研究综述. 中国计算机用户协会网络应用分会2021年第二十五届网络新技术与应用年会论文集. 重庆: 《计算机科学》编辑部, 2021. 201–204.
[6]
Jain A, Mishra A, Shukla A, et al. A novel genetically optimized convolutional neural network for traffic sign recognition: A new benchmark on Belgium and Chinese traffic sign datasets. Neural Processing Letters, 2019, 50(3): 3019-3043. DOI:10.1007/s11063-019-09991-x
[7]
Farag W. Recognition of traffic signs by convolutional neural nets for self-driving vehicles. International Journal of Knowledge-based and Intelligent Engineering Systems, 2018, 22(3): 205-214. DOI:10.3233/KES-180385
[8]
Haque WA, Arefin S, Shihavuddin ASM, et al. DeepThin: A novel lightweight CNN architecture for traffic sign recognition without GPU requirements. Expert Systems with Applications, 2021, 168: 114481. DOI:10.1016/j.eswa.2020.114481
[9]
Santos DC, da Silva FA, Pereira DR, et al. Real-time traffic sign detection and recognition using CNN. IEEE Latin America Transactions, 2020, 18(3): 522-529. DOI:10.1109/TLA.2020.9082723
[10]
吕禾丰, 陆华才. 基于YOLOv5算法的交通标志识别技术研究. 电子测量与仪器学报, 2021, 35(10): 137-144. DOI:10.13382/j.jemi.B2104449
[11]
Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 779–788.
[12]
Redmon J, Farhadi A. YOLO9000: Better, faster, stronger. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017. 7263–7271.
[13]
Wang P, Zhu L, Zhu QJ, et al. An application of back propagation neural network for the steel stress detection based on Barkhausen noise theory. NDT & E International, 2013, 55: 9-14.
[14]
Redmon J, Farhadi A. YOLOv3: An incremental improvement. arXiv:1804.02767, 2018.
[15]
Bochkovskiy A, Wang CY, Liao HYM. YOLOv4: Optimal speed and accuracy of object detection. arXiv:2004.10934, 2020.
[16]
潘晓东, 林雨, 郭雪斌, 等. 逆光条件下交通标志的可视距离研究. 公路交通科技, 2006, 23(5): 118-120, 137.
[17]
Khan JA, Yeo D, Shin H. New dark area sensitive tone mapping for deep learning based traffic sign recognition. Sensors, 2018, 18(11): 3776. DOI:10.3390/s18113776
[18]
赵坤, 刘立, 孟宇, 等. 弱光照条件下交通标志检测与识别. 工程科学学报, 2020, 42(8): 1074-1084.
[19]
冷晨, 王萍. 基于通道变换轻量化YOLOv5s交通标志识别算法. 计算机科学与应用, 2022, 12(6): 1529-1537.
[20]
俞涛. 基于深度学习无人驾驶交通安全标志检测与识别研究[硕士学位论文]. 上海: 上海应用技术大学, 2021.
[21]
Hou QB, Zhou DQ, Feng JS. Coordinate attention for efficient mobile network design. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Nashville: IEEE, 2021. 13708–13717.
[22]
Zhu Z, Liang D, Zhang SH, et al. Traffic-sign detection and classification in the wild. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 2110–2118.
[23]
谭波, 王正家. 基于多尺度区域卷积神经网络小交通标志识别算法. 现代电子技术, 2021, 44(15): 59-64. DOI:10.16652/j.issn.1004-373x.2021.15.012
[24]
李有为. 基于小目标检测的自然场景交通标志识别[硕士学位论文]. 成都: 电子科技大学, 2020.
[25]
周苏, 支雪磊, 刘懂, 等. 基于卷积神经网络的小目标交通标志检测算法. 同济大学学报(自然科学版), 2019, 47(11): 1626-1632. DOI:10.11908/j.issn.0253-374x.2019.11.012
[26]
胡均平, 王鸿树, 戴小标, 等. 改进YOLOv5的小目标交通标志实时检测算法. 计算机工程与应用. 2023, 59(2): 185–193.
[27]
张福东. 基于深度学习的交通标志小目标检测与识别研究[硕士学位论文]. 天津: 天津理工大学, 2022.
[28]
李烨, 顾晨峰. 基于注意力机制的多尺度小目标交通标志检测. 小型微型计算机系统, 2022, 43(2): 381-386.