一种基于YOLOV5的轻量级自动驾驶目标检测方法

专利2025-07-31  13


本发明涉及自动驾驶目标检测领域,提出一种基于yolov5的轻量级自动驾驶目标检测方法。


背景技术:

1、自动驾驶技术在近年来取得了长足的发展,其在改善交通安全、提高交通效率和改善出行体验等方面具有巨大潜力。目标检测作为自动驾驶系统中的一个重要组成部分,负责识别和定位道路上的各种交通参与者(如车辆、行人和自行车等),是实现自动驾驶功能的关键。

2、目标检测领域的研究已经取得了显著的进展,特别是深度学习技术的应用极大地提高了检测的准确性和速度。yolo(you only look once)作为一种革命性的目标检测方法,以其高效的检测速度和良好的准确率,在实时目标检测领域占据重要地位。yolov5作为该系列的较新版本,进一步提高了检测性能,同时优化了模型结构,以适应更广泛的应用需求。

3、在自动驾驶的应用中,除了追求高准确率和高速度外,对算法的资源消耗也有严格的限制。自动驾驶系统通常部署在计算资源有限的车载计算平台上,这就要求目标检测算法不仅要高效准确,还要具有较低的计算复杂度和内存需求。基于深度学习的目标检测算法,如yolo、faster r-cnn等在准确性方面取得了显著的进步,但其复杂的网络结构和大量的参数导致模型体积庞大、计算量大、推理速度慢,难以在实时性要求较高的自动驾驶场景下实现良好的性能。一些轻量级的目标检测算法如mobilenet、shufflenet等虽然具有较快的推理速度和较小的模型体积,但其准确性往往不如深度学习方法。

4、综上所述,随着自动驾驶技术的不断进步和应用需求的增加,对目标检测算法提出了更高的要求。基于yolov5的轻量级目标检测算法正是为了满足这些要求而提出的,旨在兼顾目标检测的准确率的同时,通过精简网络结构和优化计算流程,显著降低模型的计算复杂度和资源消耗。


技术实现思路

1、本发明提出了一种基于yolov5的轻量级自动驾驶目标检测方法,用于解决现有技术中自动驾驶领域中目标检测模型大小与检测准确度、实时性之间难以权衡的问题。

2、为实现上述目的,本发明提供一种基于yolov5的轻量级自动驾驶目标检测方法,通过结合轻量化网络模块、跨尺度特征融合以及动态检测头,为在资源受限的环境下部署目标检测模型提供了一个高效、精确且实用的解决方案。具体步骤如下:

3、s1:获取自动驾驶领域的kitti数据集,对标注的数据进行处理,将其从kitti特有的格式转换为yolov5模型能够处理的yolo格式,并将同类型的类别合并去除冗余类别,按照比例划分为训练集和验证集。

4、s2:将fasternet模块集成到 yolov5 的骨干网络中的c3中,通过其内部的fasternet_block,结合多层感知机mlp和部分卷积,在减轻模型的计算负担的同时可以更有效地提取和融合空间特征。

5、s3:在yolov5的颈部网络中对c3模块进行了调整,融入了基于cnn的跨尺度特征融合(the cnn-based cross-scale feature fusion, ccff)的可重参数化模块repc3。此修改在维持csp设计的优点的基础上,通过集成了可重参数化的repconv块,增强了模型在部署和推理阶段的计算效率以及整体性能。

6、s4:yolov5的检测头部经过重新设计,整合了动态检测头dynamic head,这一机制统筹了尺度、空间和任务相关的注意力特性于单一架构之下,增强了模型对各种尺度、位置和各项任务需求的响应能力和识别精度。

7、s5:在实验阶段,对标准yolov5n模型和经过优化的yolov5n轻量级模型在预处理的kitti数据集上进行训练,然后比较和分析这两种模型的实验结果。

8、作为本发明的一种优选技术方案,所述步骤s1的具体步骤如下:

9、获取kitti公开的2d目标检测数据集,该数据集包括在多种场景下,如城市、乡村和高速公路等环境中采集的真实图像。数据集包含两部分:标注的图片共7481张,用作模型的训练集和验证集;未标注的图片共7518张,其中随机选取1000张作为测试集。对于标注的图片,我们将所有车辆类别合并为"car"类,将"person_sitting"和"pedestrian"类别合并,并排除了标签为"dontcare"和"misc"的非目标类别。处理后的数据集只包括'pedestrian', 'car', 'cyclist'三种类别。按照8:2的比例划分处理好的数据集为训练集和验证集,得到训练集图片5984张,验证集图片1497张,测试集图片1000张。通过这种方式处理kitti数据集,可以简化数据结构,提高模型的泛化性能,同时方便比较和评估原始yolov5模型与改进后的轻量化模型的效果。

10、优选的,所述s2的具体步骤如下:

11、对原始yolov5模型的骨干网络中的c3模块进行改进,得到继承c3模块的c3_faster模块。在原算法骨干网络中的第2、4、6、8层引入c3_faster模块,该模块中以fasternet_block替换原有的c3模块中的卷积块,它保留了c3模块的基本特性,同时通过增强卷积块进一步提升特征提取能力和处理能力。

12、fasternet_block是整个c3_faster的核心,来自上一层的输出特征图输入到c3_faster后,首先判断接收的输入特征图的通道数c1与模块期望的输入通道数c2是否匹配。如果通道数不匹配,则通过一个调整通道数的1×1卷积层,用于改变特征图的维度,而不改变其空间维度。经过通道调整后特征图被传递到fasternet_block序列中,首先进行的是部分卷积(partial_conv)操作,这是一个特殊的卷积操作,针对特征图的一部分通道执行标准卷积,以减少计算负担并提高效率。下面为部分卷积的flops计算公式:

13、

14、其中和分别为输入特征图的高度和宽度,为卷积核的尺寸,为部分卷积通道数。在部分比为 = 时,部分卷积的flops仅为普通卷积的。

15、接下来是一个mlp层,它通过两个1×1卷积层实现,首先扩展特征图的通道数,然后再减少回原来的数量。这有助于增强模型的表示能力。在每个fasternet_block内,经过partial_conv和mlp处理后的特征图会与进入该fasternet_block之前的特征图相加,形成残差连接;该操作有助于减轻梯度消失问题,增强模型深度时的学习能力。在添加残差之前,可以选择性地应用droppath正则化,这是一种随机丢弃网络连接的方式,用于增强模型的泛化能力。经过一系列fasternet_block的处理后,c3_faster模块输出处理后的特征图。

16、优选的,所述s3的具体步骤如下:

17、对yolov5颈部网络中的c3模块进行了改造,加入了基于cnn的跨尺度特征融合技术repc3,在原始算法颈部网络的第13、18、21、24层引入repc3。repc3由初始卷积层、repconv序列、特征融合和输出调整三部分构成。

18、初始卷积层包含两个1×1卷积层cv1和cv2,它们将输入特征图的通道数从c1转换到隐藏通道c,通过这一变换减少了特征图的维度从而降低计算复杂度,还有助于提取更加紧凑的特征表示。repconv序列中主要部分是repconv,它是一种重参数化模块,包括训练和部署状态。通过该设计模型能够在训练期间通过不同的路径学习特征,而在部署时将这些路径合并成一个更高效的卷积操作。在repc3中,repconv序列通过多次应用repconv层来增强隐藏通道c的特征表示。特征融合和输出调整阶段通过一个1×1卷积层cv3将经过repconv序列处理后的特征图与cv2的输出进行加和,将融合后的特征图通道数从c调整为输出通道数c2。这种融合方式有助于结合不同层级的特征,增强模型对不同尺度目标的检测能力。

19、repc3模块的处理流程:当输入特征图x进入repc3模块时,首先通过两个初始卷积层(cv1和cv2)处理,其中cv1的输出进入repconv序列进行深度特征提取,而cv2的输出直接用于后续的特征融合。经过repconv序列加强的特征图与cv2的输出进行加和,通过这种方式融合了不同层次的特征。最后,cv3调整融合后的特征图的通道数,输出最终的特征表示。这种结构设计通过引入跨尺度特征融合和重参数化技术,增强了yolov5网络对于复杂场景和多尺度目标的处理能力,提高了模型的准确性和鲁棒性。

20、优选的,所述s4的具体步骤如下:

21、对yolov5的检测头进行更改,引入动态检测头dynamic head,将原始算法中的检测头用dynamic head 进行替代,相较于原始的卷积层的堆叠和跳跃,连接来提取和融合特征,引入了尺度感知、空间感知和任务感知的动态注意力模块,能够根据当前的任务需求和特征图的具体内容动态调整其处理策略,通过动态卷积和复杂的层次结构来提高模型的表现力。该检测头将注意功能转换为三个连续的注意,每个注意只关注一个角度,表述公式如下:

22、

23、其中是分别作用于维度l、s、c的三个不同的注意函数。

24、动态检测头通过在模型的头部引入可学习的动态机制,如动态卷积(dyconv)、动态relu(dyrelu)和动态形变卷积(dydcnv2),来增强模型对于不同尺度和形态目标的检测能力。动态检测头(dyheadblock)集成了上述动态机制,通过级联不同尺度的特征和动态调整的卷积核来提高检测头的适应性和准确性。

25、尺度感知注意力,根据不同尺度的语义重要性动态融合特征。

26、

27、其中是通过1x1卷积层近似的线性函数, 是一个硬sigmoid函数,特征张量。

28、空间意识注意力,采用另一种基于融合特征的空间感知注意力模块来关注空间位置和特征层次之间一致共存的判别区域。考虑到s的高维性,将该模块分解为两步:首先使用可变形卷积使注意学习稀疏化,然后在同一空间位置跨层聚集特征。

29、

30、其中k为稀疏采样位置的个数,为自学习的空间偏移量∆pk所移位的位置,为自学习的位置的重要标量

31、任务感知注意力,为了实现联合学习和概括对象的不同表示,在最后部署了任务感知注意力,它动态地切换功能的on和off通道,以支持不同的任务。

32、

33、其中为第c通道的特征片,是一个学习控制激活阈值的超函数,首先在l × s维上进行全局平均池化降维,然后使用两个完全连接层和一个归一化层,最后使用移位的sigmoid函数将输出归一化为[−1,1]。

34、dynamic head构建于三个1x1卷积层和一个检测层,这三个卷积层分别处理来自第18层、21层和24层的输入,这些层的输出都经由repc3模块处理。通过这三个1x1卷积层,特征图的通道数被统一调整,以便在接下来的检测头中更高效地进行处理。检测层汇集了这三个卷积层的输出,并在dyheadblock中使用了包括尺度感知、空间感知和任务感知等多个dyhead块,这些块依次堆叠以处理输入数据。这些机制使得检测头部能够根据不同的输入特征动态调整其内部参数,从而优化对特定任务的响应,最后,融合后的特征图在检测层中用于产生最终的检测结果,包括物体的位置(边界框)、类别和置信度。窗体顶端

35、优选的,所述s5的具体步骤如下:

36、将原始的yolov5n网络模型和改进后的轻量级yolov5n模型分别在处理后的kitti数据集上进行训练,然后对实验结果进行比较分析。为保证实验的严谨性,分别设置c3_faster、repc3、dynamic head单模块改进的对比实验,通过分析实验结果来证明单模块对模型的影响。每组实验都在同一设备上进行,实验设置训练轮次epochs为200,批量大小batch_size为32,输入图片尺寸设置为640×640。最后对比原始模型、改进的单模块模型、yolov5实验结果中的模型的参数量、计算量、平均均值精度map50、map50:95和每秒帧数fps。

37、本发明实现的有益效果:

38、本发明提出了一种基于yolov5的轻量级自动驾驶目标检测方法,针对自动驾驶领域中目标检测模型尺寸与检测准确度、实时性之间难以权衡的问题。引入轻量化的fasternet模块,在提升网络性能的同时降低计算复杂度,添加基于cnn的跨尺度特征融合的可重参数化模块repc3,通过跨尺度融合来快速处理多尺度特征,在减少参数量的同时增加网络深度保持网络的性能,使用dynamic head替代yolov5中的检测头,将尺度感知、空间感知和任务感知的注意统一,提高了目标检测头部的表示能力。通过上述改进后的算法能够在大幅度减少参数量和计算量的同时,保持与原始算法相当的检测精度。


技术特征:

1.一种基于yolov5的轻量级自动驾驶目标检测方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于yolov5的轻量级自动驾驶目标检测方法,其特征在于,所述s1的具体步骤如下:

3.根据权利要求1所述的一种基于yolov5的轻量级自动驾驶目标检测方法,其特征在于,所述s2的具体步骤如下:

4.根据权利要求1所述的一种基于yolov5的轻量级自动驾驶目标检测方法,其特征在于,所述步骤s3的具体步骤如下:

5.根据权利要求1所述的一种基于yolov5的轻量级自动驾驶目标检测方法,其特征在于,所述s4的具体步骤如下:

6.根据权利要求1所述的一种基于yolov5的轻量级自动驾驶目标检测方法,其特征在于,所述步骤s5的具体步骤如下:


技术总结
本发明提出了一种基于FCD‑YOLOV5的轻量级自动驾驶目标检测方法,涉及自动驾驶目标检测领域,首先对KITTI公开数据集中的标注数据进行处理,将其转换为YOLOV5模型能够处理的yolo格式,并将同类型的类别合并去除冗余类别,将处理后的数据集按比例划分训练集和验证集。在YOLOV5的骨干网络中引入轻量化的FasterNet模块,在YOLOV5的颈部网络中添加基于CNN的跨尺度特征融合的可重参数化模块RepC3,通过跨尺度融合来快速处理多尺度特征。使用将尺度感知、空间感知和任务感知的注意统一的Dynamic Head(Dyhead)替代YOLOV5中的检测头,提高了目标检测头部的表示能力,且不增加任何计算开销。本发明在大幅度减少了目标检测模型的参数量的同时,能够保持较高的检测精度。

技术研发人员:宋健,谢杰,王青旺,顾业博,沈韬
受保护的技术使用者:昆明理工大学
技术研发日:
技术公布日:2024/11/11
转载请注明原文地址: https://tieba.8miu.com/read-16451.html

最新回复(0)