摘" 要: 交通标志检测是自动驾驶领域的一个重要课题,其对于检测系统的实时性和精度都有非常高的要求。目标检测领域中的YOLOv3算法是业界公认在精度和速度上都处于前列的一种算法。文中以YOLOv3检测算法作为基础网络,提出一种双向嵌套级联残差单元(bid⁃NCR),替换掉原网络中顺序堆叠的标准残差块。双向嵌套级联残差单元的两条残差边采用相同的结构,都是一次卷积操作加上一次级联残差处理,两条边上级联的标准残差块的数量可以调节,从而形成不同的深度差。然后将两条边的结果逐像素相加,最后再做一次卷积操作。相较于标准残差块,双向嵌套级联残差单元拥有更强的特征提取能力和特征融合能力。文中还提出跨区域压缩模块(CRC),它是对2倍率下采样卷积操作的替代,旨在融合跨区域的通道数据,进一步加强主干网络输入特征图所包含的信息。实验结果表明:提出的模型在CCTSDB数据集上mAP(0.5)、mAP(0.5∶0.95)分别达到96.86%、68.66%,FPS达到66.09帧。相比于YOLOv3算法,3个指标分别提升1.23%、10.35%、127.90%。
关键词: 交通标志检测; 双向嵌套级联残差单元; 跨区域压缩模块; YOLOv3; 长沙理工大学中国交通标志检测数据集; 特征提取; 特征融合
中图分类号: TN911.73⁃34; TP391" " " " " " " " " "文献标识码: A" " " " " " " " " 文章编号: 1004⁃373X(2024)05⁃0176⁃06
Traffic sign detection method based on bi⁃directional nested cascading residuals
JIANG Jinmao, ZHONG Guoyun
(School of Information Engineering, East China University of Technology, Nanchang 330013, China)
Abstract: Traffic sign detection is an important topic in the field of autonomous driving, which has very high requirements for real⁃time performance and accuracy of the detection system. The YOLOv3 algorithm in the field of target detection is recognized as one of the leading algorithms in terms of accuracy and speed. In this paper, by taking YOLOv3 detection algorithm as the base network, a bi⁃directional nested cascaded residual (bid⁃NCR) unit is proposed to replace the standard residual blocks sequentially stacked in the original network. The two residual edges of the bid⁃NCR unit is of the same structure, both of which are one convolutional operation plus one cascaded residual processing, and the number of cascaded standard residual blocks on the two edges can be adjusted to form different depth differences. The results of the two edges are then added pixel by pixel, and another convolutional operation is performed, finally. In comparison with the standard residual blocks, the bid⁃NCR unit has stronger feature extraction capability and feature fusion capability. The cross⁃region compression (CRC) module, which is an alternative to the 2⁃fold downsampling convolutional operation, is proposed. It aims to fuse the channel data across regions to further enhance the information contained in the input feature map of the backbone network. The experimental results show that the model proposed in this paper achieves mAP(0.5) and mAP(0.5∶0.95) of 96.86% and 68.66%, respectively, and FPS of 66.09 frames on the dataset CCTSDB. In comparison with YOLOv3 algorithm, the three indicators are improved by 1.23%, 10.35% and 127.90%, respectively.
Keywords: traffic sign detection; bid⁃NCR unit; CRC module; YOLOv3; CSUST Chinese traffic sign detection benchmark (CCTSDB); feature extraction; feature fusion
0" 引" 言
汽车智能化是汽车产业一直在追寻的目标,而自动驾驶是汽车智能化不可或缺的一环。要实现自动驾驶,必须为汽车加上一双眼睛和配套的处理系统,这套处理系统需要像人一样识别交通标志。交通标志检测的实现方案主要有两大类:一类是基于计算机图形学的方案,比如依据颜色直方图、尺度不变特征变换特征、方向梯度直方图特征[1]等,以上方法最大的问题在于这些人工提取的特征高度依赖于特定的场景,泛化能力很差;另一类是基于深度学习的方案,比如文献[2]提出的基于多尺度卷积神经网络的方案,设计了一个多尺度空洞卷积池化金字塔模块用于采样。文献[3]对Tiny YOLOv4算法进行了改进,引入了跨阶段局部网络和SPP结构。基于深度学习的方案有两类技术路线:一类是文献[4]提出的RCNN算法,包括文献[5]提出的FasterRCNN和文献[6]提出的CascadeRCNN;另一类是文献[7]提出的YOLO系列算法和文献[8]提出的SSD算法。模型改进的思路大致也分为两种:一种是提出新的、更轻更强的模块对原网络进行重构,比如文献[9]提出Ghost Net模块,文献[10]提出双尺度注意力模块;另一种是先将原网络变浅、变窄,然后再采取其他措施提高精度,比如说文献[11]设计了一种叫copy⁃paste的数据增强方式,文献[12]设计了基于坐标注意力的CA机制。
1" 算法基础
1.1" YOLOv3网络
YOLOv3[13]网络由3个部分构成,负责提取特征的主干网络,负责融合多尺度特征的颈部网络,负责输出预测结果的头部网络。主干网络采用了相比YOLOv2[14]更深的残差网络,将五组残差块以1、2、8、8、4数量配比的形式进行堆叠。颈部网络采用特征金字塔结构对多尺度特征进行融合。头部网络则负责输出3个尺度的预测结果。
1.2" 残差思想
当神经网络被设计得越来越深,模型性能并没有随之越来越强,反倒是出现了性能衰退。文献[15]提到由于使用了非线性激活函数ReLU,当输入小于0时,神经元的输出直接被置为0,相当于神经元死亡,这一结果几乎不可逆,等价于发生了不可逆的信息损失,同时也意味着网络越深,信息损失越大。文献[16]实现了恒等映射这一机制,以此尽可能保证特征的完整。图1a)是残差块的基本结构。图1c)是图1b)的等价形式,但是参数量要少很多。
2" 基于双向嵌套级联残差单元的交通标志检测方法
2.1" 跨区域压缩模块
输入图像在进入YOLOv3主干网络之前需要进行一次2倍率下采样,但是卷积会导致原始图像在输入主干网络之前发生信息衰减。为了解决上述问题,本文提出跨区域压缩网络。该模块以原图像作为输入,对输入图像进行拼接,同样能达到2倍率下采样的效果。
具体来说,如图2所示,用一个步长为2的3×3网格在图像上每次选取9个相邻的像素点,将这9个像素点按照从上到下、从左到右的顺序,在通道方向上拼接成分辨率为1×1,通道数为27的特征图。一方面,该模块避免了输入图像在进入主干网络之前丢失纹理、颜色、位置等低层次信息;另一方面,该模块生成的特征图的每一个像素都融合了附近区域的信息,为主干网络提供了一个包含丰富信息的输入。
2.2" 双向嵌套级联残差单元
YOLOv3采用了较深的残差网络作为提取特征的主干网络,残差网络在深度增加的同时,精度虽然会随之增长,检测速度却也会相应下降。本文对残差结构进行了重新设计,提出双向嵌套级联残差单元,此单元将标准残差块的两条残差边也设计为残差结构。文献[17]也使用了嵌套残差的思想,他们在模块之间引入嵌套结构,但本文采用另外一种路线,即在标准残差块内部嵌套一个级联残差结构。如图3所示,首先对输入图像进行2倍率的下采样,并将通道数扩大2倍。该模块的两条残差边都是一次1×1卷积操作加上级联标准残差块。同时,两条残差边上标准残差块的数量可以独立进行调整。紧接着,将两条残差边的结果进行逐像素相加。图3b)是主干网络采用的深度差为2的双向嵌套级联残差单元。
两条残差边上的级联残差块的深度差使双向嵌套级联残差单元还可以融合有层次差的特征,将相对更深的语义特征和相对更浅的位置特征相融合,而这将为下一层双向嵌套级联残差单元提供融合更多全局信息和局部信息的特征图。
2.3" 基于双向嵌套级联残差单元的网络结构
本文提出的改进后的YOLOv3网络结构如图4所示。主干网络由CRC模块、4个bidNCR单元组成。将后面三级残差单元的输出作为颈部网络的输入。颈部网络采用FPN结构,并部分采用bidNCR。最后,由头部网络负责最终的输出。
3" 实" 验
3.1" 实现细节
本文提出的网络使用NVIDIA 3060 GPU(6 GB显存)和PyTorch框架实现。主干网络由ILSVRC上的预训练模型进行初始化。neck网络和head网络都采用随机初始化。本文将模型训练150个epoch,采用冻结训练的策略,即前75个epoch冻结主干网络的参数,只训练neck网络和head网络,后75个epoch则是整个网络参与训练。训练采用SGD优化器,权重衰减设为0.000 5,初始学习率为0.01,每个epoch降低上一个epoch学习率的3%。
3.2" CCTSDB数据集
本文采用长沙理工大学张建明团队建立的中国交通标志数据集。此数据集包括3个类别:警告标志、指示标志和禁止标志,如图5所示。
本文只选取前4 000张图像作为数据集,经过统计,三种类别图像的数量分别为警告标志1 999张,禁止标志1 901张,指示标志100张。按照1∶9的比例分割数据集,也就是验证集400张样本,训练集3 600张样本。最后,直接使用该数据集提供好的测试集,一共400张。
3.3" 评价指标
本文采用目标检测领域常用的3个标准来评价算法的性能表现。首先做一些定义:正确地将正样本预测为正样本,记为TP;正确地将负样本预测为负样本,记为TN;错误地将正样本预测为负样本,记为FN;错误地将负样本预测为正样本,记为FP。
[P=TPTP+FP] (1)
[R=TPTP+FN] (2)
[AP=01prdr] (3)
[mAP=1mi=1mAPi] (4)
[mAP0.5:0.95=110i=0.50.95mAPwhen IOU=i," " " " " " " " " " " " " " " " " " " i=0.5,0.55,0.6,…,0.95] (5)
式中:[P](Precision)表示分类正确的正样本数量占系统判定为正样本数量的比例;[R](Recall)表示分类正确的正样本数量占数据中真实的正样本数量的比例,在评判算法优劣时,需要综合考量[P]、[R]的结果;AP称为平均精度,通过计算PR曲线与坐标轴围成的面积求出,AP针对的是单个类别的平均精度;mAP则是求出测试集中所有类别对应AP的均值;mAP(0.5∶0.95)表示IOU阈值从0.5~0.95对应的mAP的均值。
3.4" 模型设置
本文设置了4个模型用于对照实验。模型1只将双向嵌套级联残差单元应用于主干网络,并且bidNCR1~ bidNCR4中两个级联残差块深度的比例分别为1∶1、2∶1、2∶1、1∶1,另外,在输入位置加上跨区域压缩模块;模型2在模型1的基础上加深了两个级联残差块的深度差异,将深度比例调整为1∶1、3∶1、3∶1、1∶1;模型3在模型2的基础上将双向嵌套级联残差单元应用于颈部网络,bidNCR5~bidNCR8中两个级联残差块的比例分别为1∶1、1∶1、1∶1、1∶1;模型4在模型3的基础上,去掉跨区域压缩模块。
4" 实验结果与分析
本文将3.4节中设置的4个模型和YOLOv3模型在CCTSDB数据集上一起进行评估。如表1所示,列出了5个模型在不同IOU阈值下的mAP值、三个类别交通标志的[P]、[R]值。设定IOU阈值的范围为0.5~0.9,变化步长为0.1。
从表1可知,不管IOU是多少,模型1~模型3的[P]值、[R]值、mAP值都在稳步提升。这说明双向嵌套级联残差单元在特征提取和特征融合方面都是有效的。[R]值的提升幅度比[P]值更大,而[R]值的增加,意味着有更多的正样本被找了出来,这对于提升模型的精度有较强的潜在影响。
比较模型1和模型2可知,加大级联残差块的深度差使模型精度提升3.06%;比较模型2和模型3可知,将双向嵌套级联残差单元应用于特征融合,其带来的性能提升比单纯增加两个级联残差块的深度差更大,精度提升6.16%;模型4在不同IOU阈值下的所有指标均出现了退化,这说明CRC模块确实为主干网络提供了一个信息密度更大的输入,从而提升了整个模型的性能。比较模型3和YOLOv3模型的结果可知,在低IOU阈值时,YOLOv3模型的[P]值超过了模型3,但是随着IOU阈值的增大,模型3的[P]值逐步反超了YOLOv3模型。而更重要的是,模型3的[R]值始终远远大于YOLOv3模型,[R]值单类别的平均增幅为31.28%。选择IOU=0.5时的模型3作为本文提出的最优模型。
本文还测试了一些单阶段和双阶段目标检测算法,对比结果如表2所示。
由表2可知,无论是SSD还是FasterRCNN,在性能表现上都有明显的偏向,SSD算法[R]值偏低,FasterRCNN算法虽然在[R]值上取得了3个最大值,但是单类别[P]值基本上都是低于50%。改进的Tiny YOLOv4模型的mAP指标为88.79%,排在第五的位置,但是FPS远超其他模型,比第二名的90.46帧提升了一倍多。而本文所提出的最优模型[P]值和[R]值都不是最高的,但都取得了不错的数据,除了禁令标志的[R]值为87.91%之外,其余的[P]、[R]值都在90%以上。在综合[P]、[R]值结果的mAP指标上,本文所提出的最优模型是最好的。FPS指标也排在第三的位置。
5" 结" 语
本文将YOLOv3算法起始阶段的下采样卷积操作换成了本文提出的跨区域压缩模块,一方面为主干网络提供了一个融合周围区域通道信息的输入,另一方面压缩后的特征图在通道数量上翻了9倍,信息密度更大。使用4个双向嵌套级联残差单元替代原网络中的5组级联残差块。双向嵌套级联残差单元相比单纯的堆叠标准残差块拥有更强的特征提取和特征融合能力,但是运算量和参数量反而变小了。另外,双向嵌套级联残差单元也部署到了颈部网络,用于特征融合。相比于YOLOv3算法,本文提升了头部网络3个侧输出的尺度,将预测框的数量增加了一倍多,从实验结果看,增加了召回率。
注:本文通讯作者为钟国韵。
参考文献
[1] 薛搏,李威,宋海玉,等.交通标志识别特征提取研究综述[J].图学学报,2019,40(6):1024⁃1031.
[2] 刘万军,李嘉欣,曲海成,等.基于多尺度卷积神经网络的交通标示识别研究[J].计算机应用研究,2022,39(5):1557⁃1562.
[3] 张小雪,黄巍.基于改进的Tiny⁃YOLOv4快速交通标志检测算法[J].电子设计工程,2022,30(19):139⁃143.
[4] GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation [C]// IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2014: 580⁃587.
[5] REN S Q, HE K M, GIRSHICK R, et al. Faster R⁃CNN: Towards real⁃time object detection with region proposal networks [J]. IEEE transactions on pattern analysis and machine intelligence, 2017, 39(6): 1137⁃1149.
[6] CAI Z W, VASCONCELOS N. Cascase R⁃CNN: Delving into high quality object detection [EB/OL]. [2018⁃08⁃31]. https://www.doc88.com/p⁃3292522358799.html.
[7] REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: Unified, real⁃time object detection [C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2016: 779⁃788.
[8] LIU W, ANGUELOV D, ERHAN D, et al. SSD: Single shot multibox detextor [EB/OL]. [2018⁃08⁃10]. https://download.csdn.net/download/qq_31329259/10594621?utm_source=iteye.
[9] 徐正军,张强,许亮.一种基于改进YOLOv5s⁃Ghost网络的交通标志识别方法[J].光电子·激光,2023,34(1):52⁃61.
[10] 陈德海,孙仕儒,王昱朝,等.一种改进YOLOv3的交通标志识别算法[J].河南科技大学学报(自然科学版),2022,43(6):31⁃36.
[11] 乔欢欢,权恒友,邱文利,等.改进YOLOv5s的交通标志识别算法[J].计算机系统应用,2022,31(12):273⁃279.
[12] 李文举,张干,崔柳,等.基于坐标注意力的轻量级交通标志识别模型[J].计算机应用,2023,43(2):608⁃614.
[13] REDMON J, FARHADI A. YOLOv3: An incremental improvement [EB/OL]. [2018⁃08⁃13]. http://arxiv.org/abs/1804.02767.
[14] REDMON J, FARHADI A. YOLO9000: Better, faster, stronger [C]// IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2017: 6517⁃6525.
[15] SANDLER M, HOWARD A, ZHU M L, et al. MobileNetV2: Inverted residuals and linear bottlenecks [C]// IEEE/CVF Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2018: 4510⁃4520.
[16] HE K M, ZHANG X Y, REN S Q. Deep residual learning for image recognition [C]// IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2016: 770⁃778.
[17] 李旭东,张建明,谢志鹏,等.基于三尺度嵌套残差结构的交通标志快速检测算法[J].计算机研究与发展,2020,57(5):1022⁃1036.
[18] 杜婷婷,钟国韵,江金懋,等.基于Darknet23和特征融合的交通标志检测方法[J].电子技术应用,2023,49(1):14⁃19.
[19] 张达为,刘绪崇,周维,等.基于改进YOLOv3的实时交通标志检测算法[J].计算机应用,2022,42(7):2219⁃2226.
[20] 王浩,雷印杰,陈浩楠.改进YOLOv3实时交通标志检测算法[J].计算机工程与应用,2022,58(8):243⁃248.
[21] ZHANG J M, WANG W, LU C Q, et al. Lightweight deep network for traffic sign classification [J]. Annals of telecommunications, 2020, 75(7/8): 369⁃379.