基于Yolov8s的交通标志检测方法改进
Improvement of Traffic Sign Detection Method Based on Yolov8s
DOI: 10.12677/csa.2024.1410200, PDF, HTML, XML,   
作者: 蔡汪洋:哈尔滨师范大学计算机科学与信息工程学院,黑龙江 哈尔滨
关键词: Yolov8sSIoU交通标志检测Yolov8s SIoU Traffic Sign Detection
摘要: 在交通标志检测任务中,交通标志的准确识别对于自动驾驶和智能交通系统至关重要。本文对Yolov8s模型改进并在CCTSDB2021数据集中进行实验以评估模型的性能,我们采取了以下改进,引入了专门针对小目标设计的检测头,该检测头通过优化特征图的尺度,增强了模型对小尺寸交通标志的识别能力。采用了SIoU损失函数,有助于提升小目标的定位精度。使用模块Star Block集成了一个轻量化模块LB,该模块通过减少参数量同时保持模型检测能力。在CCTSDB2021数据集上的实验结果表明,经过以上改进的Yolov8s模型在检测小尺寸交通标志时,不仅提高了检测准确率,而且减少了一定的参数量,展现了模型改进的有效性。
Abstract: In the traffic sign detection task, accurate recognition of traffic signs is crucial for autonomous driving and intelligent transportation systems. In this paper, we improve the Yolov8s model and conduct experiments in the CCTSDB2021 dataset to evaluate the performance of the model. We have made the following improvements: introducing a detection head specifically designed for small targets. This detection head enhances the model’s recognition ability for small-sized traffic signs by optimizing the scale of the feature map. The SIoU loss function is adopted, which helps to improve the positioning accuracy of small targets. Using the module Star Block, we integrated a lightweight module LB. This module reduces the number of parameters while maintaining the model’s detection ability. The experimental results on the CCTSDB2021 dataset show that the improved Yolov8s model not only improves the detection accuracy but also reduces a certain number of parameters when detecting small-sized traffic signs, demonstrating the effectiveness of model improvement.
文章引用:蔡汪洋. 基于Yolov8s的交通标志检测方法改进[J]. 计算机科学与应用, 2024, 14(10): 33-43. https://doi.org/10.12677/csa.2024.1410200

1. 引言

随着人工智能和科学技术的飞速发展,人工智能可以应用的方向很多,在图像识别中计算机视觉技术应用于图像和视频分析,包括面部识别、物体检测和医学成像分析。在自动驾驶中人工智能被用于汽车的自动驾驶系统,包括环境感知、规划线路等等。如今自动驾驶也越来越受到更多的研究者关注。在自动驾驶领域中交通标志的检测也是十分重要的,交通标志提供的信息为自动驾驶车辆提供了一些必不可少的导航信息,避免了潜在的交通事故。

对于无人驾驶技术的发展,交通标志检测的研究也在增加,并受到许多研究人员的青睐。交通标志作为交通道路上常见的标志,种类繁多,维持着整个交通秩序。无人驾驶车辆如何准确地识别交通标志并像驾驶员一样采取相应的行动,是交通标志检测方向需要考虑的一个实际问题。目前,交通标志检测中存在一些问题需要解决,道路上的交通标志大小不一,小物体难以检测,交通标志极易受到天气条件、遮挡、模糊等外部条件的影响,导致检测困难。

在传统的交通标志检测方法中,研究的重点在分类和提取特征上。这些方法通常利用交通标志的独特形状、颜色和边缘信息来实现检测和识别任务。由于特征提取的分类过程较为复杂,传统的交通标志检测算法可能较为复杂,这些方法可能难以满足实时检测的要求。此外许多传统算法可能需要针对特定的场景进行调整和优化,这可能会在一定程度上限制它们的通用性。

随着深度学习技术的发展,特别是基于卷积神经网络(CNN)的算法,已经在交通标志检测中展现出了巨大的潜力。这些方法能够自动从大量数据中学习复杂的特征表示,减少了对手工特征提取的依赖,提高了检测的准确性和鲁棒性。此外,深度学习方法通常具有更好的泛化能力和适应性,能够应对更加多变的检测环境。

基于深度学习的目标检测算法主要分为两种类型:两阶段目标检测和一阶段目标检测。两阶段目标检测指的是检测的方式主要有两个步骤:第一步先提取物体区域,第二步再对区域使用CNN网络进行分类和识别。将传统的方法与CNN相结合提出了R-CNN [1],这个方法使用区域提议与选择性搜索。然而在训练期间从选择性搜索中绘制许多边界框会带来巨大的计算负担。因此,研究者们开始尝试设计更轻量级的网络,并且保持模型的检测性能。因此,在R-CNN的基础上提出了Fast R-CNN [2]和Faster R-CNN [3]。Faster R-CNN相比于Fast R-CNN的区别是使用了RPN (Region Proposal Network)建议区域生成网络来预测候选区域,具有RPN和CNN的网络结构,相比于Fast R-CNN降低了计算成本,但在实际中仍然相对不方便。一阶段检测器为了克服二阶段检测器操作时间慢的问题,一阶段检测器在提取图像中的特征信息时直接交给分类器分类并预测出结果。张、宋等人[4]利用卷积和Transformer的优势,构建了能够提取多尺度特征的模型。该模型能够提取不同尺度的特征,有助于处理不同大小的目标,有助于提升模型性能。但Transformer模型通常具有较高的计算复杂性,可能需要更多的计算资源。兰,王等人[5]通过减少网络宽度和深度,降低了模型的参数量,使得模型更加轻量化。特别增加了小目标检测层,提升了对小尺寸交通标志的检测精度。虽然轻量化有助于减少模型大小,但过度轻量化可能会影响模型的检测精度。Zhao L等人[6]构建了轻量级的特征提取网络,减少了模型的参数量和计算复杂度,尽管增强了小目标的检测能力,但在轻量级的模型中,小目标的检测性能仍有改进空间。

2. 相关工作

2.1. Yolo系列介绍

Yolo (You Only Look Once) [7]系列是一种流行的一阶段检测算法,它的第一个版Yolov1本由Joseph Redmon等人在2016年提出的,第一个版本采用的方法主要是将输入的图像划分为一个个的小格子,每个格子负责检测该格子内的目标。每个小格子会预测出许多个边界框和每个边界框对应的置信度,置信度高代表的含义是边界框中含有目标的概率大,同时也表示边界框与实际目标的匹配程度越高。Yolov2 [8]相比于Yolov1使用了更深的网络结构Darknet-19,引入了锚框来更好地预测不同尺寸的目标。Yolov3 [9]中引入了多尺度预测的方法,通过三个不同的尺度网络来检测不同大小的目标。提高了检测器对不同大小目标的检测性能。Yolov4 [10]由Alexey Bochkovskiy等人在2020年提出,其中采用了CSP-Darknet53作为主干网络,通过CSPNet (Cross Stage Partial Network)来减少计算量,进一步提升了模型的性能。Yolov5 [11]由Ultralytics团队开发,使用PANet (Path Aggregation Network)和CSPNet使网络更加的高效。Yolov6 [12]是由Li等人在2022年提出的,它是在Yolov5的基础上改进,使用了一个有效的解耦头,提高了检测性能。随后又提出了许多版本之后陆续发布了多个版本,如YoloR [13]、YoloX [14],Yolov7 [15]。Yolov8 [16]是Ultralytics团队在Yolov5的基础上提出的。Yolov8共有3个大部分:主干、颈部、头部。在主干中借鉴了Csp的思想,将Yolov5中的C3模块替换成了C2f模块,进一步实现了轻量化,在头部中,Yolov8换成了解耦头的结构,将分类和检测头分离。提高了模型的检测精度。本文使用的是Yolov8中的s模型用来改进的。

2.2. 损失函数

本文使用的损失函数是SIoU [17],在GIoU和DIoU以及CIoU中没有考虑到真实框与预测框之间的方向,导致收敛速度较慢。为了解决这个问题SIoU被提出,它在传统的IoU损失函数基础上增加了对方向的考虑,他主要包括四个部分:

(1) 角度损失(Angle cost),定义如图1所示:

如果 α π 4 ,则收敛过程将先将 α 最小化,否则最小化 α ,否则最小化 β 。当中心点在x轴或y轴上对齐时,Λ = 1。

Λ=12 sin 2 (arcsin( x ) π 4 (1)

x= c h δ =sin( α ) (2)

δ= ( b c x gt b c x ) 2 + ( b c y gt b c y ) 2 (3)

c h =max( b c y gt , b c y )min( b c y gt , b c y ) (4)

其中 ( b c x gt , b c y gt ) 为真实框中心坐标 ( b c x , b c y ) 为预测框中心坐标。

(2) 距离损失(Distance cost)如图2所示:

Figure 1. Angular loss structure diagram

1. 角度损失结构图

Figure 2. Distance loss structure diagram

2. 距离损失结构图

Δ= t=x,y ( 1 e γ ρ t ) (5)

ρ x = ( b c x gt b c x c w ) 2 , ρ y = ( b c y gt b c y c h ) 2 , γ=2Λ (6)

其中 ( c w , c h ) 为真实框和预测框最小外接矩形的宽和高。

(3) 形状损失(Shape cost)

Ω= t=w,h ( 1 e ω t ) θ (7)

ω w = | w w gt | max( w, w gt ) , ω h = | h h gt | max( h, h gt ) (8)

( w,h ) ( w gt , h gt ) 分别为预测框和真实框的宽和高,θ控制对形状的关注度,它的范围在 [ 2,6 ]

(4) IoU损失(IoU cost)

IoU= | B B GT | | B B GT | (9)

L=1IoU+ Δ+Ω 2 (10)

2.3. 小目标检测层

为了增强对小型交通标志等浅层对象的检测效果,我们在网络中增加了一个专门针对小物体的检测层,以便更好地提取和识别这些目标。我们为了提取到特定特征图的检测,在颈部网络中我们添加小目标检测层,以扩展特征图的范围,并将所获得的特征图与浅层特征进行特征融合。这样可以得到更大的特征图,增强对小目标检测的能力。

2.4. LB模块

本文中我们使用Star Block [18]替换C2f中的BottleNeck命名为LB模块,Star Block是StarNet架构中的一个关键构建块,其结构设计利用了星操作(Star operation),即元素级别的乘法操作,来增强特征表示。通过星形操作实现了在紧凑的网络结构中进行高效的特征表示和学习,这使得StarNet在资源受限的设备上具有很好的应用潜力。LB模块的结构图如图3所示:

Figure 3. LB module structure diagram

3. LB模块结构图

3. 本文所提出的网络结构

我们提出了一种基于Yolov8s的交通标志检测网络。本文提出的网络结构如图4所示。本文提出的网络结构主要有三部分,主干,颈部,头部。经改进后的颈部能够提取出更多对检测交通标志种类有帮助的特征,并且同时减少了一定程度的参数量。同时添加了小目标检测层,加强了模型对小目标检测的能力。本章重点介绍颈部和小目标检测层的改进方法。

为了使模型检测的精度更高,我们对模型进行了改进。

(1) 为了提高模型对小目标的检测能力,本文添加了小目标检测层,如图3红色虚线框所示,并且检测头由3个变为4个,提升模型对小目标检测能力,但是同时增加了一定程度的计算量。

(2) 在LB模块中,我们使用了Star Block替换了C2f中的BottleNeck,从而使模型降低了一定程度的参数量。

(3) 使用SIoU损失函数,引入真实框和预测框之间的方向信息。能够更好地适应不同形状的目标框,提高了模型在复杂场景下的检测性能。

Figure 4. Proposed method of network structure diagram in this paper

4. 本文提出的方法的网络结构图

4. 实验分析

为了对本文所提出的网络性能予以评价,我们在CCTSDB2021数据集上展开了实验,具体的实验步骤和结果如下所示。

4.1. 实验细节

4.1.1. 实验环境及参数设置

实验环境是Ubuntu 18.04, GPU:RTX 3090(24GB) * 1,CPU:12 vCPU Intel(R) Xeon(R) Platinum 8255C CPU@2.50 GHz,内存43 GB程序使用python3.8编写,网络框架采用torch1.10.0+cu111。训练次数均默认设置为100。BatchSize = 16,基本学习率为0.01,优化器为SGD,动量为0.937,权重衰减为0.0005,在所有实验中,输入图像的大小为640 × 640像素。

4.1.2. 评价指标

采用精度、召回率、mAP@0.5、mAP@0.5:0.95、Param、FLOPs这几个客观指标来评价模型的有效性。mAP50是平均精度均值。它是目标检测中常用的综合评价指标。其中“0.5”、“0.95”分别表示交并比(Intersection over Union, IoU)的阈值为0.5和0.95。它衡量了模型在不同类别上预测的准确性和召回率的综合表现。P (Precision)精确率,它表示在所有被预测为正例的样本中,真正的正例所占的比例。反映了模型预测为正例的准确性。R (Recall)召回率,它表示所有真实的正例中,被模型正确预测为正例的比例,反映了模型找到所有正例的能力。Param (Parameters)参数量,它用来衡量模型所包含的参数数量,参数数量较少通常意味着模型较为简洁,在计算效率上有一定的优势。Flops (Floating Point Operations)浮点运算,它用来评估模型在运行时所需要的计算量的大小,反映了模型的计算复杂度。

Precision= TP TP+FP (11)

Recall= TP TP+FN (12)

AP= 0 1 P( r )dr (13)

mAP= i=1 k AP i k (14)

其中TP (True Positive)真阳性,它表示被正确检测为目标的样本,即模型预测为正并且实际也是正的情况。FP (False Positive)假阳性,它表示被错误地检测为目标的样本,即模型预测为正但实际情况是负的情况。FN (False Negative)假阴性,它表示实际是目标但是模型没有检测到的样本,即模型预测为负但实际情况是正的情况。

4.2. 数据集设置

CCTSDB2021数据集是由长沙理工大学的相关学者及团队制作而成的,该数据集的训练集有16,356张图像,包括13,876个禁止标志、4598个警告标志和8363个强制性标志。测试集包含1500张图像。交通标志信息总共分为三类:Prohibitory (禁令标志)、Warning (警告标志)、Mandatory (指示标志)。

图5所示为CCTSDB2021数据集分析可视化的结果,从图中我们可以看到在实例数量上,Prohibitory类别上的实例数量最多,在标签大小上,标签大部分是偏小的。

5. 实验结果

我们将CCTSDB2021 [19]数据集中的1500张测试集按照交通标志尺寸分为5个种类,分别与Yolov8s进行了比较,结果如表1所示。

表1所示,我们对比了Yolov8s和本文提出的方法在五种不同的尺寸下的精确度Precision和召回率Recall。我们可以看出在XS和S小目标上本文提出的方法与Yolov8s相比在精确度Precision和召回率Recall上有显著的提升。说明了本文提出的方法在小型的交通标志检测上表现较好。

图6所示我们可以看出在Mandatory这种类别下本文提出的方法相较于Yolov8s提升了1.1%,在Prohibitory这种类别下较于Yolov8s提升了4.3%,在Warning这种类别下较于Yolov8s提升了1.4%,在mAP50上本文提出的方法较于Yolov8s提升了2.3%。在F1曲线图上本文提出的方法较于Yolov8s提升了1%,进一步说明了本文提出的方法在CCTSDB2021上具有良好的表现。

图7所示为本文提出的方法与Yolov8s在Prohibitory (禁令标志)、Warning (警告标志)、Mandatory (指示标志)。三种不同的交通标志类别上的检测结果。其中第一行为在夜间的Mandatory类别的检测结果,Yolov8s的检测结果为0.80,本文提出的方法检测结果为0.82,第二行为在雪天Warning (警告标志)类别的检测结果,Yolov8s的检测结果0.28,本文提出的方法检测结果为0.46。第三行为在多云情况下

Figure 5. CCTSDB2021 data set label and instance number distribution

5. CCTSDB2021数据集标签和实例数量分布情况

Table 1. The comparison results of the improved model and Yolov8s in the test set of CCTSDB2021 data set classified by size

1. 改进后的模型与Yolov8s在CCTSDB2021数据集中的测试集按尺寸分类的比较结果

Model

XS

S

M

L

XL

P

R

P

R

P

R

P

R

P

R

Yolov8s

0.825

0.706

0.922

0.832

0.952

0.904

0.977

0.898

0.982

0.930

Our

0.945

0.759

0.941

0.855

0.926

0.893

0.885

0.943

0.946

0.887

Prohibitory (禁令标志)类别的检测结果。Yolov8s的检测结果为0.81,本文提出的方法检测结果为0.85。这进一步说明了本文提出的方法在CCTSDB2021数据集上的三种类别的检测结果相较于Yolov8s表现优异。

表2所示本文所提出的方法在召回率、mAP@0.5、mAP@0.5:0.95上取得了最佳的性能效果,虽然在参数量上并不是最少的,但是相较于Yolov8s是有所减少的,这进一步表现了本文所提方法具有良好的性能表现。

Figure 6. (a) The P-R diagram and F1 curve of Yolov8s detection results; (b) the P-R diagram and F1 curve of the method proposed in this paper

6. (a)为Yolov8s检测结果的P-R图和F1曲线图;(b)为本文提出的方法P-R图和F1曲线图

Table 2. The comparison results of the method proposed in this paper and the Yolo series models on the CCTSDB2021 dataset

2. 本文所提出方法与Yolo系列模型在CCTSDB2021数据集上的比较结果

Model

Precision

Recall

mAP@0.5

mAP@0.5:0.95

Params (M)

FLOPs (G)

Yolov8s

0.873

0.759

0.817

0.528

11.1

28.4

Yolov8n

0.871

0.701

0.774

0.479

3.0

8.1

Yolov6s

0.894

0.730

0.793

0.495

16.3

44.0

Yolov5s

0.888

0.686

0.762

0.466

7.2

15.8

Yolov3-tiny

0.812

0.470

0.559

0.341

12.1

18.9

Ours

0.891

0.765

0.840

0.550

9.8

34.9

Figure 7. (a) is the original image, (b) is the detection result of Yolov8s, and (c) is the detection result of the method proposed in this paper

7. (a) 为原始图像,(b) 为Yolov8s检测的结果,(c) 为本文提出的方法检测的结果

6. 消融实验

表3所示在消融实验中N4这种组合方法所取得的性能为最佳,在Recall、mAP@0.5、mAP@0.5:0.95以及Params评价指标上取得了最好的性能结果。

Table 3. Different improved methods based on YOLOv8s (N1 is Yolov8s)

3. 不同基于YOLOv8s改进的方法(N1为Yolov8s)

方法

小目标检测层

LB

SIoU

Precision

Recall

mAP@0.5

mAP@0.5:0.95

Params (M)

FLOPs (G)

N1

0.873

0.759

0.817

0.528

11.1

28.4

N2

0.892

0.759

0.833

0.539

10.6

36.6

N3

0.891

0.762

0.832

0.540

9.8

34.9

N4

0.891

0.765

0.840

0.550

9.8

34.9

7. 结论

综上所述,通过引入小目标检测头、采用SIoU损失函数以及集成轻量化模块LB改进,Yolov8s模型在CCTSDB2021数据集上针对小尺寸交通标志的检测取得了显著成效,提高了准确率,为自动驾驶和智能交通系统中交通标志的准确检测提供了有力支持,具有重要的应用价值和实践意义。本文提出的方法虽然在参数量上有所下降,但是在计算量上是有一定的增加的,如何平衡好模型轻量化和检测的精度问题仍然是一个值得研究的问题。

参考文献

[1] Girshick, R., Donahue, J., Darrell, T. and Malik, J. (2014) Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation. 2014 IEEE Conference on Computer Vision and Pattern Recognition, Columbus, 23-28 June 2014, 580-587.
https://doi.org/10.1109/cvpr.2014.81
[2] Girshick, R. (2015) Fast R-CNN. 2015 IEEE International Conference on Computer Vision (ICCV), Santiago, 7-13 December 2015, 1440-1448.
https://doi.org/10.1109/iccv.2015.169
[3] Ren, S., He, K., Girshick, R. and Sun, J. (2017) Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. IEEE Transactions on Pattern Analysis and Machine Intelligence, 39, 1137-1149.
https://doi.org/10.1109/tpami.2016.2577031
[4] 张文剥, 宋凯, 等. 基于Transformer的交通标志检测模型研究[J]. 华东交通大学学报, 2024, 41(1): 61-69.
[5] 兰红, 王惠钊. 结合轻量化与多尺度融合的交通标志检测算法[J/OL]. 计算机工程: 1-13.
https://doi.org/10.19678/j.issn.1000-3428.006768269, 2024-09-29.
[6] Zhao, L., Wei, Z., Li, Y., Jin, J. and Li, X. (2023) Sedg-yolov5: A Lightweight Traffic Sign Detection Model Based on Knowledge Distillation. Electronics, 12, Article 305.
https://doi.org/10.3390/electronics12020305
[7] Redmon, J., Divvala, S., Girshick, R. and Farhadi, A. (2016) You Only Look Once: Unified, Real-Time Object Detection. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, 27-30 June 2016, 779-788.
https://doi.org/10.1109/cvpr.2016.91
[8] Redmon, J. and Farhadi, A. (2017) YOLO9000: Better, Faster, Stronger. 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Honolulu, 21-26 July 2017, 6517-6525.
https://doi.org/10.1109/cvpr.2017.690
[9] Redmon, J. and Farhadi, A. (2018) YOLOv3: An Incremental Improvement. arXiv: 1804.02767.
[10] Bochkovskiy, A., Wang, C.Y. and Liao, H.Y.M. (2020) YOLOv4: Optimal Speed and Accuracy of Object Detection. arXiv: 2004.10934.
[11] Jocher, G., Stoken, A., Chaurasia, A., et al. (2021) Ultralytics/yolov5: v6. 0-YOLOv5n Nanomodels, Roboflow Integration, TensorFlow Export, OpenCV DNN Support. Zenodo.
[12] Li, C., Li, L., Jiang, H., et al. (2022) YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications. arxiv: 2209.02976.
[13] Wang, C.Y., Yeh, I.H. and Liao, H.Y.M. (2021) You Only Learn One Representation: Unified Network for Multiple Tasks. arXiv: 2105.04206.
[14] Ge, Z., Liu, S., Wang, F., et al. (2021) YOLOX: Exceeding Yolo Series in 2021. arXiv: 2107.08430.
[15] Wang, C., Bochkovskiy, A. and Liao, H.M. (2023) Yolov7: Trainable Bag-Of-Freebies Sets New State-Of-The-Art for Real-Time Object Detectors. 2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Vancouver, 17-24 June 2023, 7464-7475.
https://doi.org/10.1109/cvpr52729.2023.00721
[16] YOLOv8.
https://github.com/ultralytics/ultralytics
[17] Gevorgyan, Z. (2022) SIoU Loss: More Powerful Learning for Bounding Box Regression. arXiv: 2205.12740.
[18] Ma, X., Dai, X., Bai, Y., et al. (2024) Rewrite the Stars. arXiv: 2403.19967.
[19] Zhang, J.M., et al. (2022) CCTSDB 2021: A More Comprehensive Traffic Sign Detection Benchmark. Human-Centric Computing and Information Sciences, 12, Article 23.