1. 引言
在当今智能交通系统日新月异的时代背景下,随着城市化进程的加速和交通流量的急剧增长,交通多目标检测作为智能交通系统的核心组成部分,其重要性日益凸显[1]。这一技术不仅需要应对复杂多变的交通环境,如繁忙的城市街道、高速公路、交叉路口等,还需在极端天气、夜间或光照变化等条件下保持稳定的性能。然而,传统的交通多目标检测方法往往受限于计算资源的有限性和处理速度的滞后性,难以实时、准确地捕获和识别道路上的多个目标,如车辆、行人及非机动车等。此外,随着物联网、大数据和云计算等技术的飞速发展,智能交通系统对数据处理能力和实时响应速度的要求日益提高。传统的检测方法因其较高的计算复杂度和资源消耗,已难以满足现代交通系统对于高效性、准确性和轻量化的迫切需求。因此,研发一种能够在保证检测精度的同时,显著降低计算负担和资源消耗的轻量化交通多目标检测算法,成为了当前智能交通领域研究的热点和难点[2]。
YOLO算法是一种将目标检测任务转化为单次回归问题的算法,其采用了端到端的训练方式能够快速处理图像,并在保持较高准确性的同时实现实时目标检测[3]。虽然YOLO系列算法应用广泛,但是由于网络模型较大、参数量较多、运算推理速度较慢等原因,使得其在一些实时性要求很高的场景应用中会受到限制。随着YOLO系列算法技术的迅猛进步,YOLOv8算法在目标检测领域内已展现出卓越的性能优势。YOLOv8算法在目标检测领域,特别是在交通场景下的多目标检测中,展现出了显著的优势。在交通场景下,YOLOv8能够快速准确地检测出多个目标,如车辆、行人等,这对于实现交通监控、流量分析和安全预警等关键任务至关重要。其高效的推理速度使得YOLOv8能够在视频流中实时检测目标,即使在复杂的交通环境中也能保持稳定的性能。此外,YOLOv8采用了更加轻量级的网络架构,通过减少冗余计算和优化网络结构,进一步提高了模型的推理速度,这使得它在移动设备和嵌入式系统上也能表现出色。除了速度优势外,YOLOv8在检测精度上也取得了显著提升。它引入了新型的EfficientRep主干网络和优化的PANet特征融合方式,增强了多尺度特征的融合能力,从而提高了目标检测的鲁棒性。在智能交通系统中,YOLOv8还可以与DeepSORT等跟踪算法无缝集成,实现多目标车辆的实时跟踪和计数。这种集成方式不仅提高了系统的整体性能,还为交通规划、拥堵管理和事故预防提供了有力的技术支持。因此,YOLOv8算法在交通场景下的多目标检测中具有广泛的应用前景和重要的实用价值。在保持YOLOv8高检测精度的同时,许多学者针对如何降低YOLOv8算法的复杂度做了大量的研究工作。论文[4]提出一种面向复杂自然场景的轻量级道路病害检测模型,将C2f融合可变形卷积设计C2f_DCNv3模块,增强对物体形变的建模能力,并对输入特征信息进行降维处理,有效降低模型参数量和计算复杂度。论文[5]提出一种基于轻量化YOLOv8n的动态视觉SLAM算法,利用加权双向特征金字塔网络对YOLOv8n模型进行轻量化改进,减少其参数量。论文[6]提出一种基于轻量级YOLOv8n网络的PCB缺陷检测算法,通过删除大目标检测层,显著减小模型体积,将C2f模块替换为C2f-GhostD模块,提升特征提取效率,在检测网络使用POne-Detect模块,提升网络精简度。
鉴于上述研究背景,本文旨在解决交通领域多目标实时检测中的关键问题,提出了一种基于改进YOLOv8的轻量化算法。该算法在YOLOv8算法的基本架构上,通过将多种不同的策略与YOLOV8算法进行有效融合,一方面能够有效降低算法的复杂度,另一方面能够尽可能地保持算法的高检测精度。
2. 本文总体方案
2.1. 本文所提算法网络结构
YOLOv8,作为目标检测领域内的一种革新性深度学习方案,它不仅沿袭了YOLO系列一贯的高效与精准,更在算法架构上实现了突破性优化与技术革新,从而显著增强了目标识别的精确度和处理速度。该算法的核心策略依托于精心设计的卷积神经网络架构,专注于高效特征抽取与目标定位。其独到之处在于采纳了一种创新的双路并行预测机制与密集连接的卷积层结构,此设计有效提升了算法对不同尺寸目标物的识别能力。进一步地,YOLOv8融合了级联处理与金字塔架构的精髓,通过构建多层次的特征映射图,实现了跨尺度物体的精准检测。这一策略不仅增强了算法对物体大小变化的适应性,还确保了在各种尺寸范围内的目标检测上均能保持优异表现,展现了卓越的尺度鲁棒性。综上所述,YOLOv8以其独特的网络设计与先进的技术集成,在目标检测领域树立了新的性能标杆。
本文基于YOLOv8算法的基本架构进行改进,改进后的算法网络模型如图1所示,主要包括三个部分:骨干网络(Backbone)、颈部网络(Neck)和头部网络(Head)。本文所提算法的主要改进是设计了FasterC2f模块,用其替代了YOLOv8算法中的C2f模块,另外本文对头部网络的检测模块进行了设计,提出了Lightweight Shared Convolutional Detection-LSCD检测头模块(LSCD Detect),该模块替代了YOLOv8原来的检测头模块。FasterC2f模块和LSCD Detect模块的具体结构在2.2节和2.3节具体描述,另外在图1所示的网络结构中,Conv、SPPF、Concat和Upsample模块的操作流程和YOLOv8一样,在此本文不做过多说明。
2.2. FasterC2f模块
FasterNet是一种高效的神经网络架构,旨在提高计算速度而不牺牲准确性,特别是在视觉任务中。它通过引入一种新型的技术——部分卷积(PConv)来优化计算和内存访问,从而实现了在多种设备上比其他现有神经网络更快的运行速度,同时保持了较高的准确度[7]。部分卷积(Partial Convolution, PConv)是一种卷积神经网络中的操作,旨在提高计算效率和对不完整数据的处理能力。其核心思想在于不是对输入的所有数据进行统一的卷积操作,而是根据数据的有效性(即数据是否缺失)动态调整卷积核的作用区域。
Figure 1. Network structure of the proposed algorithm
图1. 本文所提算法的网络结构
Figure 2. Operation process of PConv module
图2. PConv模块操作流程
部分卷积(PConv)的操作流程如图2所示,PConv模块设计了一种高效的数据处理策略,其中仅挑选输入通道的一部分(如图所示的前
个通道)来执行标准的卷积(Conv)操作,旨在捕获空间维度的特征信息,而保持其余通道的数据原封不动,不进行任何变换。在处理具有连续或规律特性的内存访问模式时,此模块倾向于优先选取起始或末尾连续排列的通道作为特征图的代表性子集来进行计算,以此优化资源利用并聚焦于关键特征提取。
本文旨在通过融入FasterNet网络的特有部分卷积策略,对YOLOv8算法框架进行优化,以减少不必要的计算开销,促进网络模型向轻量级方向发展。鉴于部分卷积机制的核心实现位于FasterNet的FasterNet Block组件内,本文的改进策略是将这一高效组件创新性地嵌入到YOLOv8的C2f层中,具体操作为以FasterNet Block替换C2f层原有的Bottleneck结构,进而衍生出一种新型轻量化模块,我们称之为FasterC2f模块,其详细架构如图3所示。最终,通过全面替换YOLOv8网络架构中的C2f模块为FasterC2f模块,本文成功实现了对YOLOv8算法的深度轻量化改造。
Figure 3. FasterC2f modular structure
图3. FasterC2f模块结构
2.3. LSCD Detect模块
本文设计了一种基于群归一化GroupNorm和共享卷积的轻量化检测头模块(Lightweight Shared Convolutional Detection-LSCD Detect模块),其网络结构如图4所示。本文使用GroupNorm代替YOLOv8算法里的BatchNorm,主要原因为:GroupNorm具有更好的适应性,能够保持通道之间的相对关系,提高模型的鲁棒性,可以减少对小批量大小的依赖等优点[8]。另外,文献[9]中已经证明,在某些目标检测任务中,GroupNorm可以有效地提升检测头定位和分类的性能。共享卷积是卷积神经网络(CNN)中的一个核心概念。共享卷积的精髓在于卷积核的复用性,具体而言,该机制确保了在处理图像时,不论卷积核作用于图像的哪个区域,均会采用一套固定的权重参数进行卷积操作。这种权重共享的核心优势体现在两大方面:首先,它极大地缩减了模型训练过程中所需优化的参数总量,进而加速了计算过程,提升了整体效率;其次,通过减少参数数量,还间接降低了模型对训练数据过度依赖的风险,即减轻了过拟合现象。此外,由于卷积核在整个图像上保持一致的权重设置,共享卷积能够更为精准地捕捉图像中的局部特征模式,同时保持这些特征的空间布局信息不被破坏,从而增强了图像特征提取的有效性和准确性。
在图4所示的LSCD Detec模块的网络结构中,GN_Conv 1 × 1模块表示的是群归一化GroupNorm+卷积Conv操作,其中1 × 1表示卷积核大小为1 × 1。两个黄色群归一化卷积模块GN_Conv 3 × 3共享权重,三个蓝色预测框卷积模块Conv_Box共享权重,三个红色分类卷积模块Conv_Cls共享权重。在每个Conv_Box模块后面连接着Scale模块,Scale模块主要是一个缩放系数,用来匹配对不同尺度目标的检测。
2.4. Wise-IoU
Wise-IoU是一种用于目标检测中边界框回归的损失函数,它结合了动态非单调机制和合理的梯度增
Figure 4. LSCD Detec module
图4. LSCD Detec模块
益分配策略,以提高模型的泛化能力和整体性能[10]。Wise-IoU参数示意图如图5所示,Wise-IoU共有三个版本,即Wise-IoUv1、Wise-IoUv2、Wise-IoUv3,不同版本适用的场景各有不同,本文使用Wise-IoUv3 (简写为WIoUv3)损失函数替代原YOLOv8模型所使用的IoU,Wise-IoUv3通过定义一个动态聚焦机制(FM),根据锚框的离群度(即预测框与真实框之间的IoU值)来动态调整梯度增益,有助于模型在训练过程中更加关注普通质量的锚框,减少极端样本对训练过程的负面影响,从而获得更准确的检测结果。
Figure 5. Schematic diagram of Wise-IoU
图5. Wise-IoU示意图
WIoUv1的计算公式如下所示:
(1)
(2)
其中,
表示IoU损失,x和y为锚框的中心点坐标,
和
表示目标框的中心点坐标,
和
表示最小包围框的宽和高,
为惩罚项。为了防止
产生阻碍收敛的梯度,将
和
从计算图中分离(上标*表示此操作)。
WIoUv3是在WIoUv1的基础上计算而来的,其计算公式如下:
(3)
(4)
(5)
其中,
表示表示锚框的异常程度,
表示IoU损失的梯度增益,
表示IoU损失的滑动平均,
和
为人为设定的超参数,用于控制比例参数r的取值,本文参照原论文的选取方式,通过实验对比,当两者分别选取为1.7和2.7时,模型的检测效果比较好。
3. 仿真实验与结果分析
3.1. 实验数据集
本次实验采用的数据集是VisDrone数据集,该数据集是一个专注于无人机视觉目标检测和追踪的大型数据集,由天津大学机器学习和数据挖掘实验室AISKYEYE团队收集。该数据集包含了大量的无人机拍摄图像和视频,涵盖了各种复杂环境和视角下的目标,如行人、车辆等。这些数据的多样性和丰富性为交通领域的目标检测提供了宝贵的资源。VisDrone数据集包括10个类别:行人、人群、自行车、汽车、货车、卡车、三轮车、遮阳三轮车、公共汽车和摩托车,同时还包括了许多有用的场景信息,例如天气、地形和时间等。该数据集包括6471张训练集图片、548张验证集图片、1610张测试集图片。图6中展示的是该数据集中的部分代表性图像,直观呈现了数据集的多样性和丰富性。
3.2. 仿真实验
为评价本文所提算法的有效性,以全类平均精度(mean Average Precision, mAP)、每秒钟检测帧数(Frames Per Second, FPS)、每秒10亿次浮点运算数(Giga Floating-point Operations Per Second, GFLOPs)、模型层数(Layers)和参数量(Parameters/M)作为评估指标。其中,mAP作为评价模型检测精度提升的效果,其值越大代表模型检测精度越高;FPS代表模型每秒钟能够检测图像的张数,数值越大则反映模型实时性越好;GFLOPs、Layers和Parameters反映模型轻量化程度,这些值越小则代表模型轻量化程度越高,对硬件性能要求就越低。
本文采用消融实验对不同模型进行性能对比:
1) YOLOv8n:原始的YOLOv8算法,作为基本参考模型;
2) F-YOLOv8n:用FasterC2f模块替换YOLOv8n算法中的C2f模块,得到的模型;
3) LSCD-YOLOv8n:用LSCD检测头替换YOLOv8算法的原有检测头,得到的模型;
4) F-LSCD-YOLOv8n:将前面FasterC2f模块和LSCD检测头两种策略同时应用到YOLOv8算法,得到的模型;
Figure 6. Dataset images
图6. 数据集图片
5) W-F-LSCD-YOLOv8:将FasterC2f模块、LSCD检测头和WIoUv3损失函数三种策略同时应用到YOLOv8算法,得到的模型。
本文的实验是在下述条件下进行的:Python-3.8.18,torch-1.13.1 + cu116,CUDA:0 (NVIDIA GeForce RTX 3080, 10,240 MiB)。消融实验结果如表1所示,所示结果是网络模型进行融合后的数值。
Table 1. Performance comparison of different models
表1. 不同模型性能对比
模型 |
FasterC2f |
LSCD |
WIoUv3 |
mAP50 |
FPS |
GFLOPs |
Layers |
Parameters/M |
YOLOv8n |
|
|
|
33.7%★ |
97.7 |
8.1 |
168 |
3.01 |
F-YOLOv8n |
√ |
|
|
32.0% |
98.8 |
6.3 |
198 |
2.30 |
LSCD-YOLOv8n |
|
√ |
|
32.9% |
101.2★ |
6.5 |
157★ |
2.36 |
F-LSCD-YOLOv8n |
√ |
√ |
|
31.7% |
97.9 |
5.5★ |
175 |
2.00★ |
W-F-LSCD-YOLOv8n |
√ |
√ |
√ |
32.9% |
99.2 |
5.5★ |
175 |
2.00★ |
在表1中,√表示采用该种策略,★表示在该列性能对比中最优的模型,基于表1的实验数据进行分析,得到以下分析结果:
1) 对比F-YOLOv8n和YOLOv8n,可以看到使用FasterC2f模块代替C2f模块后得到如下主要影响:运算量GFLOPs从8.1降到了6.3,降低了22.2%,参数量Parameters/M从3.01降到了2.30,降低了23.6%,检测精度mAP50从33.7%降到了32.0%,降低了1.7%。
2) 对比LSCD-YOLOv8n和YOLOv8n,可以看到使用LSCD检测头后得到如下主要影响:运算量GFLOPs从8.1降到了6.5,降低了19.8%,参数量Parameters/M从3.01降到了2.36,降低了21.6%,检测精度mAP50从33.7%降到了32.9%,降低了0.8%。
3) 对比F-LSCD-YOLOv8n和YOLOv8n,可以看到使用LSCD检测头后得到如下主要影响:运算量GFLOPs从8.1降到了5.5,降低了32.1%,参数量Parameters/M从3.01降到了2.0,降低了33.6%,检测精度mAP50从33.7%降到了31.7%,降低了2%。
4) 对比W-F-LSCD-YOLOv8n和F-LSCD-YOLOv8n,可以看到使用WIoUv3损失函数后,主要是检测精度mAP50从31.7%降到了32.9%,提高了1.2%,运算量GFLOPs和参数量Parameters/M并没有变化。
综合上述四条分析结果,可以得出如下结论:1) FasterC2f策略和LSCD策略都能大幅降低网络模型的参数和运算量,可以有效地实现网络的轻量化,但是都会一定程度地降低网络的检测精度。2) 同时应用FasterC2f策略和LSCD策略能够最大程度地实现网络轻量化的目的,同时造成了精度损失也是最大。3) WIoUv3策略能够在不增加网络复杂度和运算量的前提下能够有效地提升网络的精测精度,因此融合使用这三种策略能够有效地实现网络的轻量化,并能保持一个较高的检测精度,综合来看W-F-LSCD-YOLOv8n是一种不错的策略。
另外需要补充说明的两点是:1) 上述模型在FPS性能上的差别并不大,在使用过程中,采用的是每种模型进行3次实验取平均值,在实验过程中,每个FPS的数值都会有5点之内的波动,并不是固定不变。2) Layers这个层数并不能直接反映网络的复杂度,只是一个参考值,因为有的网络模型虽然层数较多,但很多层的计算量反而很小。
Figure 7. Testing situation of the proposed algorithm
图7. 本文所提算法的测试情况
在测试集上,验证本文所提算法的交通多目标检测能力。图7显示的是本文所提算法在测试集上的检测情况,从图7中可以看到:1) 无论在白天还是在黑夜,本文所提算法都能准确地识别目标;2) 对于同一场景下的不同类型的目标(如行人、车辆),本文所提算法能够准确地识别;3) 对于同一场景下的多个密集小目标,本文所提算法能够准确地识别;4) 在不同类型的交通场景下(如公路、广场、停车场),本文所提算法都能准确地识别目标。综上所述,本文所提算法具有广泛的场景适用性、多类型多目标同时检测的能力和对密集小目标的精确识别能力。
4. 结论
针对交通领域多目标实时检测的问题,本文提出了一种创新性的多机制融合的轻量化检测算法,该算法以YOLOv8算法为基础框架,通过一系列精心设计的改进策略,实现了在保证检测精度的同时,显著降低了模型的复杂度与运算量。本文的核心贡献主要体现在以下三个方面:首先,设计了FasterC2f模块,该模块作为对YOLOv8中原生C2f模块的有效替代,通过巧妙的降维策略对输入特征图进行处理,不仅大幅减少了模型参数数量,还降低了计算复杂度,为实现算法的轻量化奠定了坚实基础;其次,提出了轻量化检测头结构LSCD Detect,通过引入共享卷积机制,在显著降低检测头参数量的同时,增强了特征图间的全局信息融合能力,维持并提升了检测精度。最后,针对损失函数进行了优化,引入了Wise-IoU机制,该机制在不增加算法复杂度的前提下,通过更精细化的边界框回归损失计算,进一步提升了检测精度,使得本文算法在交通多目标检测任务中的表现更为优异。通过实验验证了本文所提算法不仅在模型体积和计算量上实现了显著的轻量化,而且在保持较高检测精度的同时,展现出了广泛的场景适用性、多类型多目标同时检测的能力和对密集小目标的精确识别能力。这一研究成果不仅为交通多目标检测领域提供了一种高效、轻量化的解决方案,也为未来深度学习模型在资源受限环境下的应用提供了新的思路与方向。
基金项目
贵州交通职业大学2024年度校级科研项目:基于深度学习的交通多目标实时检测算法研究(2024YB02ZK)。省级科研平台项目资助(黔科合平台人才-CXTD [2021] 008)。贵州交通职业大学高层次人才科研启动基金项目:复杂交通环境下的多目标检测研究(KYQD2022004)。