基于改进YOLOv8的交通标志检测与识别算法研究
2024-12-20曾海峰
关键词:CBMA注意力机制;数据增强;损失函数优化;Swin-Transformer网络;交通标志检测与识别;YOLOv8
0 引言
交通标志检测与识别技术在智能交通系统(ITS) 和自动驾驶领域发挥着至关重要的作用。这些技术不仅能够提高道路安全,还能增强驾驶的便捷性和自主性。近年来,国内学者在该领域进行了广泛研究,提出了一系列创新的方法和技术,旨在提高交通标志检测与识别的准确率和鲁棒性。
1) YOLO系列的改进。文献[1]通过增加上采样和输出层数、引入注意力机制以及使用惩罚函数,提高了小目标交通标志的检测精度和定位能力;文献[2] 通过引入基于颜色衰减先验的自适应伽马变换图像预处理算法和坐标注意力机制,提高了雾霾环境下的检测精度;文献[3]通过重参数模块、注意力机制以及IoU-Aware查询选择等改进,显著提升了检测精度和效率;文献[4]通过引入Tiny Head检测头、C2f CA模块以及SIoU损失函数,增强了小目标检测能力和模型鲁棒性。文献[5]结合小目标过采样训练数据生成方法、图像分块和几何透视检测预处理,提高了全景图像中交通标志的检测精度和速度。
2) 多尺度特征融合。文献[6]设计了基于空洞混合注意力机制的多尺度注意力特征融合模块,增强了模型对小目标的检测能力;文献[7]通过不同尺度图像的特征提取,丰富了图像特征,提高了识别率;文献[8] 采用了Bi-FPN网络进行多尺度特征融合,从而提高了小目标的检测精度和效率;文献[4]使用SPPCSPC替代SPPF模块,进一步增强了网络对不同尺度特征信息的提取能力。
本文旨在设计一种基于改进YOLOv8的交通标志检测与识别算法,以提高算法在复杂场景下的识别精度、鲁棒性和实时性,为智能交通系统和自动驾驶技术的进一步发展提供技术支持。
1 交通标志检测基础
1.1 交通标志的特征及检测
交通标志作为道路安全设施的重要组成部分,具有统一性、规范性和多样性等特征。统一性:全国实行统一的道路交通标志,确保各地标志的一致性,便于驾驶人识别和遵守;规范性:交通标志的设置需符合道路交通安全和畅通的要求及国家标准,保持清晰、醒目、准确和完好;多样性:根据用途和需要,交通标志分为指示标志、警告标志、禁令标志、指路标志、旅游区标志、道路施工安全标志以及辅助标志等多种类型。
随着计算机视觉和图像处理技术的发展,交通标志的识别与检测技术日益成熟。传统的检测方案包括:1) 基于颜色的检测。不同类型的3e7dd422c0490b6a0c8b5e675eb42e44交通标志通常采用特定的颜色组合,如警告标志多为黄色背景加黑色图案,禁令标志多为红色背景加白色图案,可通过从图像中提取出特定颜色组合的区域实现识别。2) 基于形状的检测。交通标志通常具有规则的几何形状,如圆形、三角形和矩形等。通过边缘检测、形态学处理等技术,可从图像中提取出具有特定形状的区域。3) 基于多特征融合的检测。由于单一特征可能受光照、遮挡等因素影响,因此多特征融合成为提高识别准确率的重要手段,这种方法结合了颜色、形状和纹理等多种特征,通过综合评估实现对交通标志的准确识别。然而,传统的识别与检测技术往往存在识别准确率低、易受环境因素影响和泛化能力弱等问题。
1.2 卷积神经网络的应用
卷积神经网络的核心在于卷积层的使用。卷积层通过局部连接和权值共享的方式,有效减少了网络参数的数量,降低了计算复杂度,同时能够自动从输入数据中提取出层次化的特征表示。卷积神经网络通常由卷积层、池化层和全连接层等组成,通过堆叠组合,可以构建出具有强大学习能力的深度网络模型。
1.2.1 卷积神经网络在智慧交通领域的应用
1) 交通标志检测与识别。卷积神经网络通过对交通标志图像进行预处理(如灰度化、归一化等),并设计合适的网络结构,能够自动从图像中提取交通标志的特征,实现快速准确地识别。
2) 车辆检测与跟踪。卷积神经网络通过自动学习车辆的特征表示,能够在复杂多变的交通场景中实现高效的车辆检测。同时,结合循环神经网络或长短期记忆网络等序列模型,能够实现车辆的连续跟踪,为智能交通管理提供有力支持。
3) 行为分析与异常检测。卷积神经网络通过对监控视频进行分析,可以自动识别行人的行走轨迹、驾驶员的驾驶行为等关键信息,进而判断是否存在异常行为。例如,通过识别驾驶员的疲劳驾驶和分心驾驶等行为,及时发出警告,从而有效降低交通事故的风险。
1.2.2 卷积神经网络在智慧交通领域的发展
卷积神经网络在智慧交通领域的应用不断深化和拓展,其发展趋势表现为:① 轻量化与高效化。针对实际应用中的实时性要求,开发更加轻量化和高效的卷积神经网络模型,减少计算量和存储需求,提高系统的响应速度;② 多源信息融合。为了进一步提高识别的准确率和鲁棒性,将更多地融合多源信息,实现多模态数据的协同处理;③ 跨场景适应性。针对不同交通场景的特点和需求,开发具有更强跨场景适应性的卷积神经网络模型,以应对复杂多变的交通环境;④ 集成学习与知识蒸馏。通过将多个卷积神经网络模型进行集成学习,或利用知识蒸馏技术将大模型的知识迁移到小模型中,可以进一步提高模型的性能和泛化能力。
1.3 目标检测算法
目标检测旨在从图像或视频中准确识别特定类别的目标,并确定其位置。其算法主要分为单阶段检测和两阶段检测。
1.3.1 单阶段检测算法
单阶段检测算法直接从输入图像中预测目标的类别和位置,省略了候选区域生成和特征提取的中间步骤,因此具有较高的计算效率和实时性。其代表算法包括YOLO系列和SSD。
YOLO算法于2015年首次提出,其核心在于将目标检测任务视为一个单一的回归问题。YOLO将输入图像划分为S×S的网格,每个网格负责预测B个边界框及其置信度和C个类别的概率。SSD算法于2016年提出,结合了YOLO的回归思想和Faster R-CNN的锚点机制。SSD在不同尺度的特征图上预测边界框,并利用不同尺度的特征图来检测不同大小的目标。此外,SSD还采用非极大值抑制来去除重复的边界框,进一步提高了检测的准确性。然而,与YOLO系列相比,SSD在特征提取和边界框回归方面可能稍显复杂。
1.3.2 两阶段检测算法
两阶段检测算法首先将输入图像划分为一系列候选区域,然后对这些候选区域进行分类和定位,从而实现较高的检测精度,但其计算效率相对较低。其代表算法包括R-CNN、Fast R-CNN和Faster RCNN等。
R-CNN系列算法使用选择性搜索算法生成候选区域,通过精细的候选区域生成和特征提取,能够在复杂场景下实现较高的检测精度。Fast R-CNN在RCNN的基础上引入了ROI Pooling层,实现特征图的共享,显著提高了检测速度。同时,Fast R-CNN提出了区域候选网络,实现了候选区域的快速生成,进一步提升了检测速度和精度。然而,这类算法由于需要分两步进行检测,其计算效率相对较低,难以满足实时性要求较高的应用场景。
2 改进YOLOv8的交通标志检测识别模型设计
2.1 YOLOv8检测模型
1) YOLOv8的网络结构主要由三部分组成:Back⁃bone、Neck和Head。
Backbone 部分参考了CSPDarkNet 结构,采用了C2f模块替代C3模块。C2f模块通过更有效的结构设计减少了冗余参数,提高了计算效率。首先,通过Conv1层对输入tensor进行拆分,将其分成两部分:一部分直接通过Bottleneck 模块,而另一部分则通过shortcut连接。每个Bottleneck的输入Tensor的通道数仅为上一级的0.5倍,显著降低了计算量。此外,第一个卷积层的核大小改为3×3,提升了特征提取能力。
Neck部分采用了PANet结构,这是一个双向通路网络,通过自底向上和自顶向下的路径聚合增强了特征图的表达能力。与FPN相比,PANet引入了自下向上的路径,使得底层信息更容易传递到高层,从而提高了对不同尺寸目标的检测能力。YOLOv8还通过SPPF模块进行不同尺度的池化操作,进一步提高了特征提取的鲁棒性。
Head部分负责最终的目标检测和分类任务,并将回归分支和预测分支分离。这种设计使得收敛速度更快,检测效果更佳。针对回归分支,YOLOv8使用了Distribution Focal Loss 策略,将坐标预测从确定性单值转变为分布形式,解决了边界模糊的问题。此外,采用了Anchor-Free机制,减少了锚框的超参数设置,简化了训练过程。
2) YOLOv8是一种SOTA模型,旨在快速、准确且易于使用。YOLOv8优异的检测性能主要归功于其优化的网络结构和创新的损失函数设计。通过引入新的骨干网络,YOLOv8能够更有效地提取图像特征,从而提高检测精度。同时,新的检测头和损失函数的设计也使得模型在训练过程中更加稳定,收敛速度更快。
此外,YOLOv8的检测精度主要得益于其改进的特征融合策略和更精细的锚框设计。采用PANet结构进行特征融合,通过自底向上和自顶向下的路径聚合,增强了特征图的表达能力,使得模型能够更好地处理不同尺寸的目标。同时,采用Anchor-Free机制,减少锚框的超参数设置,简化训练过程,提高模型的泛化能力。
再者,YOLOv8的推理速度主要体现在其轻量级的网络设计和高效的计算策略上。通过减少网络结构中的冗余参数和计算量,提高了模型的推理速度,使其在实际应用中能够满足实时检测的需求。
2.2 CBMA 注意力机制
2.2.1 CBAM 注意力机制概述
CBAM(Convolutional Block Attention Module) 注意力机制由通道注意力模块(CAM) 和空间注意力模块(SAM) 组成。
1) 通道注意力模块(CAM) 对每个通道进行全局平均池化和全局最大池化,然后将这两个池化结果输入到一个共享的全连接层中,最后通过Sigmoid激活函数输出一个通道注意力权重向量。这个权重向量用于加权输入特征图的每个通道,以强调重要特征并抑制不重要特征。
2) 空间注意力模块(SAM) 对每个通道进行平均池化和最大池化,然后将这两个池化结果拼接后通过一个卷积层,最后通过Sigmoid激活函数输出一个空间注意力权重张量。这个张量用于加权输入特征图的每个像素,以强调重要区域并抑制不重要区域。
2.2.2 融合CBMA 机制改进YOLOv8
1) 网络结构集成。CBAM模块可以作为一个即插即用的组件,在YOLOv8的主干网络、颈部网络或检测头中的适当位置插入。本文选择将CBAM模块插入到YOLOv8颈部网络的特征融合层之后,能够在不同尺度的特征图上同时应用通道注意力和空间注意力,进一步提升特征图的表达能力。此外,可以在检测头之前插入CBAM模块,以进一步增强用于目标检测的特征图。
2) 参数与训练。由于CBAM模块引入了额外的参数和计算量,需要对模型参数进行相应的调整,如增加训练过程中的迭代次数、调整学习率等超参数,以确保模型能够充分学习并收敛到最优解。
2.3 Swin-Transformer 网络
2.3.1 Swin-Transformer 网络概述
Swin-Transformer是一种基于Transformer架构的图像分类和目标检测模型,它通过引入分层的窗口机制来处理图像,解决了传统Transformer在处理大尺寸图像时的计算和内存开销问题。Swin-Transformer网络结构包括Patch Embedding 层、多个Stage 和一个Head层。每个Stage由多个Swin Transformer Block组成,每个Block包含一个窗口化的Transformer模块和一个跨窗口的注意力模块,这种设计使其在保持高精度的同时,具有更高的计算效率和可扩展性。
2.3.2 融合Swin-Transformer 网络改进YOLOv8
1) 主干网络替换。将YOLOv8的主干网络替换为Swin-Transformer 网络结构,充分利用Swin-Transformer在特征提取方面的优势,提升模型对图像细节和全局信息的捕捉能力。通过修改YOLOv8的配置文件(如YAML文件),将原有的主干网络参数替换为Swin-Transformer的相关参数,并相应地调整网络层的连接关系。
2) 特征融合与增强。在YOLOv8的颈部网络中融合Swin-Transformer提取的特征,通过特征金字塔网络(FPN) 或路径聚合网络(PAN) 等结构将不同尺度的特征图进行有效融合,以增强模型对多尺度目标的检测能力。此外,结合检测头部分引入的注意力机制,进一步加强对关键特征的关注,提高检测的准确性和鲁棒性。
3) 训练与优化。由于引入了更多的参数和计算量,需要对模型进行重新训练和优化,如调整训练过程中的学习率、批处理大小、迭代次数等超参数,以确保模型能够充分学习并收敛到最优解。同时,可以采用数据增强、正则化等策略来提高模型的泛化能力,减少过拟合现象的发生。
2.4 YOLOv8损失函数的优化
2.4.1 YOLOv8损失函数概述
YOLOv8的损失函数是一个多任务损失函数,综合考虑了目标分类、定位和置信度预测等多个方面,确保模型在训练过程中能够全面优化这些关键任务。
1) 分类损失:YOLOv8特别采用N个目标的二元交叉熵损失求和再取平均的方式,更准确地反映每个目标的分类准确性,适用于多类别分类场景。
2) 定位损失:YOLOv8使用平方根误差损失函数或平滑L1损失直接计算边界框中心坐标和尺寸的误差。
3) 置信度损失:YOLOv8使用二进制交叉熵损失函数来计算置信度损失,通过比较模型预测的目标存在概率与真实标签的差异来衡量模型的置信度准确性。
2.4.2 YOLOv8损失函数的优化
1) 引入先进的损失函数变体。
① 定位损失优化:引入如GIoU、DIoU、CIoU等变体,考虑边界框的重叠比例、中心点距离、长宽比等因素,使得定位更加全面和准确。
② 分类损失优化:采用Focal Loss等变体,通过降低易分类样本的权重,使模型更加关注难分类样本,从而提高分类的准确性和鲁棒性。
③ 置信度损失优化:引入动态权重调整机制,根据模型的预测置信度动态调整损失权重,使得模型在训练过程中更加关注置信度预测不准确的样本。
2) 结合多任务学习进行联合优化。
通过设计合适的损失函数组合来同时优化多个任务的性能。例如,在关键点检测任务中使用欧几里得距离损失来评估预测关键点与实际关键点之间的相似性;在实例分割任务中则可以使用Dice损失或交叉熵损失来评估分割结果的准确性。通过联合优化这些任务的损失函数组合,可以进一步提升模型的整体性能。
3) 利用梯度下降优化算法进行参数调优。
选择合适的梯度下降优化算法(如Adam、SGD 等)并进行适当的参数调优,对于提高YOLOv8模型的收敛速度和最终性能至关重要。在实际应用中,可以根据数据集规模、硬件设备以及训练目标等因素选择合适的优化算法,并调整其学习率、动量等参数,以获得最佳的训练效果。
3 数据集的选择与增强
在选择数据集时,需要考虑数据集的规模、多样性、图像质量等因素。对于交通标志和交通信号灯目标检测任务,数据集的规模越大,模型的泛化能力越强。此外,数据集的多样性也非常重要,它能够提升模型对不同场景的适应能力。常用的交通标志数据集有:
1) GTSRB数据集(德国):包含43种交通信号,共51 839张图片,其中训练图片39 209张,测试图片12630张,图片尺寸在15×15至250×250像素之间。
2) LISA数据集(美国):包含交通标志和交通信号灯。该数据集规模较大,标注信息包括交通标志和交通信号灯的类型、位置、尺寸等。
3) TT100K数据集(清华大学与腾讯合作制作):包含约10万张腾讯街景全景图,其中约1万张包含交通标志。该数据集规模庞大,标注详细,覆盖了多种天气和光照条件,适用于复杂场景下的交通标志识别。
4) CTSDB数据集:是国内较受欢迎的交通标志数据集之一,包含6 164个交通标志图像,分为58类。数据集分为训练数据库(4 170 张图像)和测试数据库(1 994张图像)。图像采集于不同天气和光照条件下,并包含部分遮挡情况,适用于国内交通标志识别的研究。
5) CCTSDB 数据集:来自长沙理工大学,是在CTSDB数据集的基础上扩充而来。标注数据分为指示标志、禁止标志和警告标志三大类,适用于中国道路实际场景下的交通标志识别研究。
在实际应用中,交通标志检测与识别面临着光线变化、背景复杂、物体遮挡、尺寸不一等诸多挑战。因此,数据增强成为提高模型训练效果的重要策略。数据预处理通过随机调整图像的亮度和对比度,可以模拟不同光照条件下的场景,使模型能够适应各种光线变化;通过调整图像的色相、饱和度和明度,可以模拟不同光源下的色彩效果,提高模型对色彩变化的鲁棒性;随机缩放和裁剪图像可生成不同大小的交通标志样本,从而提高模型对小目标和远距离目标的检测精度;通过Mosaic增强可以显著增加训练数据的多样性和复杂性,使模型在训练阶段能够接触到更多样化的场景;通过CutMix增强可以模拟交通标志被其他物体遮挡或重叠的场景,提高模型对遮挡和重叠目标的检测能力。
4 结束语
实验结果表明,改进的YOLOv8在交通标志的识别率、精确率、识别速度以及小目标的识别率等方面表现良好。从识别率来看,改进后的模型在复杂场景下显示出较高的识别率,与原型算法相比,mAP和F1 分数分别提升了5.4%和4.8%;在大、中、小目标的准确率方面,分别提升了5.8%、4.2%和6.4%。从识别速度来看,改进后的模型在实际场景下的平均FPS达到93帧/秒,与原型算法相比略有下降。从模型鲁棒性来看,改进后的算法具有较强的适应性和稳定性,能够在模糊失真、光线变化、目标尺寸变化以及小目标密集等复杂情况下进行有效检测。展望未来,本研究将围绕在保证模型性能的同时,致力于实现模型的轻量化与压缩,以便于在智能终端上的部署与使用,进一步降低设备的硬件成本和提升识别效率。