一种基于改进YOLOv3算法的车辆目标检测方法

未命名 09-21 阅读:53 评论:0

一种基于改进yolov3算法的车辆目标检测方法
技术领域
1.本发明涉及计算机视觉技术领域,具体为一种基于改进yolov3算法的车辆目标检测方法。


背景技术:

2.近年来伴随着5g和人工智能技术的迅猛发展,智能交通逐渐成为可能,车辆目标检测方法的研究就具有了重要意义。车辆目标检测一方面可以帮助实现智能交通系统,提高道路交通的安全性和效率,另一方面可以促进整个智能汽车行业的发展,推动产业创新。
3.卷积神经网络中的目标检测算法可以大致分为两类:基于区域提取的目标检测算法和单阶段的目标检测算法。基于区域提取的目标检测算法一般由两个阶段组成。首先,该算法会使用一个候选框生成器(例如选择性搜索或rpn)在图像中生成若干个候选框,这些候选框通常数量很多。接下来,在每个候选框上应用分类器和回归器对对象进行分类和位置校正。这些分类器和回归器通常是通过卷积神经网络实现的。著名的基于区域提取的目标检测算法有rcnn、fast rcnn和faster rcnn等。而单阶段的目标检测算法则只需要一个前向传播过程就可以同时完成候选框生成、分类和位置回归。这种算法的优点是速度快,但缺点是精度相对较低。著名的单阶段目标检测算法包括yolo和ssd等。
4.现阶段的车辆目标检测算法多数都是基于深度学习,但是若应用于真实场景下仍然存在实时性和精确性不足等问题,所以就需要进行改进算法的研究,进而解决模型参数量大和检测效果差等问题。


技术实现要素:

5.为了攻克上述难关,本发明提出了一种基于改进yolov3算法的车辆目标检测方法,在降低模型参数量的同时提高了网络的检测精度,实现了在理想检测效果下的模型的轻量化。
6.为实现上述目的,发明提供如下技术方案:
7.一种基于改进yolov3算法的车辆目标检测方法,包括以下步骤:
8.步骤1,获取车辆图像,划分训练集、验证集和测试集,并对车辆图像进行数据增强操作;
9.步骤2,首先改进yolov3算法,使网络变得更加轻量化,其次在多尺度特征融合部分嵌入注意力机制cbam,可以使网络在训练过程中更加关注目标区域,最后引入新的损失函数,提升网络的学习能力;
10.步骤3,训练改进后的yolov3算法,进行特征提取,其中使用adam优化方法进行实验训练,初始学习率设置为0.001,batch size设置为16,采用学习率自动衰减策略,如果经过3次迭代损失值没有降低,就将学习率变为原来的一半;
11.步骤4,将测试集中的图像输入到训练好的最佳模型中,模型将待测车辆目标用框标记出来,也可使用该模型对行车视频进行检测,获取视频流检测结果。
12.作为进一步技术限定,所述的轻量化是通过引入efficientnetv2和shufflenetv2的残差块结构,对yolov3网络进行轻量化改造,降低了模型的参数量,进而实现模型轻量化的目的。改进措施如下:在骨干网络的浅层部分使用efficientnetv2的fused-mbconv模块,重复堆叠次数为2和8,这样做能够明显提升网络的训练速度;在骨干网络的深层部分使用shufflenetv2的残差模块,重复堆叠次数为8和4。整个改进后的骨干网络由浅入深分别进行2倍、4倍、8倍、16倍和32倍的下采样,并且选取最后的8倍、16倍和32倍的特征图作为之后特征融合网络的输入。
13.作为进一步技术限定,所述的注意力机制cbam模块是由通道注意力模块和空间注意力模块组成,将前一步经过卷积运算的输入特征层通过一个通道注意力模块赋予不同的通道权重,再通过一个空间注意力模块考虑不同位置的重要性,最后就得到了调整后的特征层。注意力机制cbam增强了重要特征,忽略了不重要的特征,可以使网络在训练过程中更加关注目标区域。其中,在多尺度特征融合部分的三个不同的检测层嵌入cbam可以使网络在训练过程中更加关注目标本身,进而提高模型的检测效果。
14.作为进一步技术限定,所述的改进的损失函数由三部分组成:边框回归损失、置信度损失和分类损失。所述损失函数为l
loss
=l
reg
+l
conf
+l
cls
。式中,l
reg
是引入diou的边框回归损失,l
conf
是引入focal loss的置信度损失,l
cls
是二元交叉熵损失。其中,diou考虑到了两框之间的重叠面积和中心点距离,使两框之间的距离直接得到最小化,收敛速度更快;focal loss解决了单阶段检测算法的正负样本不均衡的问题,降低易分样本的权重,让模型去关注训练难分样本。
15.作为进一步技术限定,所述的数据增强是采用三种叠加形式数据增强方法,该三种叠加形式数据增强方法为几何变换+cutout+mosaic,数据增强不但可以扩充数据集图像的数量,而且能够增加训练图像的多样性,提升模型的泛化能力,减少过拟合现象的发生,提高算法的精度。
16.作为进一步技术限定,所述的实验选用谷歌公司提供的colab平台,深度学习框架采用的是pytorch,另外还使用了opencv、numpy以及pil等第三方库。
17.与现有技术相比,发明的有益效果:
18.1、本发明通过引入efficientnetv2和shufflenetv2的残差块结构对yolov3网络进行轻量化改造,降低了模型的参数量,进而实现模型轻量化的目的;
19.2、本发明在多尺度特征融合部分的三个不同的检测层嵌入cbam可以使网络在训练过程中更加关注目标本身,进而提高模型的检测效果;
20.3、本发明使用diou和focal loss来改进损失函数,解决了边框定位不准确和正负样本不均衡问题,提升了算法的检测精度;
21.4、相较于其他车辆目标检测算法,本发明所提出的改进算法具有良好的检测精度和检测速度,满足实时检测的要求,能够很好的应用于真实场景下的车辆目标检测任务中。
附图说明
22.图1为一种基于改进yolov3算法的车辆目标检测方法的流程图;
23.图2为改进的yolov3网络的结构示意图;
24.图3为改进的yolov3骨干网络的网络结构图;
25.图4为注意力机制cbam示意图;
26.图5为图4中通道注意力模块示意图;
27.图6为图4中空间注意力模块示意图;
28.图7为在夜晚使用本发明进行车辆目标检测的效果图;
29.图8为在白天使用本发明进行车辆目标检测的效果图。
具体实施方式
30.下面将结合发明实施例中的附图,对发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是发明一部分实施例,而不是全部的实施例。基于发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于发明保护的范围。
31.本发明提供一种技术方案:
32.如图1所示,本发明提供一种基于改进yolov3算法的车辆目标检测方法,包括以下几个步骤:
33.步骤1,获取车辆图像,划分训练集、验证集和测试集,并对车辆图像进行数据增强操作;
34.采用开源标注小程序labelimg来对采集到的车辆图像进行人工标注,每张图像的标注结果存入到对应的xml标注文件中,xml标注文件中包含了当前图像中所有目标的位置和类别信息。
35.完成标注工作后,将数据集按照8:1:1的比例随机划分为训练集、验证集和测试集。
36.所述的数据增强是采用三种叠加形式数据增强方法,该三种叠加形式数据增强方法为几何变换+cutout+mosaic,数据增强不但可以扩充数据集图像的数量,而且能够增加训练图像的多样性,提升模型的泛化能力,减少过拟合现象的发生,提高算法的精度。其中,几何变换主要包括水平翻转、角度旋转、图像缩放、随机裁减等,cutout可以使模型在做出决定之前考虑更多的图像上下文,例如次要特征,而不是严重依赖主要特征;mosaic数据增强既能够增加目标的个数和数据的多样性,也能够使bn层一次性统计多张图像的参数。
37.步骤2,首先改进yolov3算法,使网络变得更加轻量化,其次在多尺度特征融合部分嵌入注意力机制cbam,可以使网络在训练过程中更加关注目标区域,最后引入新的损失函数,提升网络的学习能力;
38.所述的轻量化是通过引入efficientnetv2和shufflenetv2的残差块结构,对yolov3网络进行轻量化改造,降低了模型的参数量,进而实现模型轻量化的目的。改进措施如下:在骨干网络的浅层部分使用efficientnetv2的fused-mbconv模块,重复堆叠次数为2和8,这样做能够明显提升网络的训练速度;在骨干网络的深层部分使用shufflenetv2的残差模块,重复堆叠次数为8和4(图3中的stage3和stage4)。整个改进后的骨干网络由浅入深分别进行2倍、4倍、8倍、16倍和32倍的下采样,并且选取最后的8倍、16倍和32倍的特征图作为之后特征融合网络的输入。图2为改进的yolov3网络的结构示意图;图3为改进的yolov3骨干网络的网络结构图。
39.所述的注意力机制cbam模块是由通道注意力模块和空间注意力模块组成,将前一
步经过卷积运算的输入特征层通过一个通道注意力模块赋予不同的通道权重,再通过一个空间注意力模块考虑不同位置的重要性,最后就得到了调整后的特征层。注意力机制cbam增强了重要特征,忽略了不重要的特征,可以使网络在训练过程中更加关注目标区域。其中,在多尺度特征融合部分的三个不同的检测层嵌入cbam可以使网络在训练过程中更加关注目标本身,进而提高模型的检测效果。
40.图4为注意力机制cbam示意图。其中,通道注意力模块表示如下:
41.mc(f)=σ(mlp(avgpool(f))+mlp(maxpool(f)))
42.式中,f表示输入特征图,avgpool和maxpool分别表示平均池化和最大池化,mlp表示共享的全连接层,σ表示sigmoid激活函数。
43.空间注意力模块表示如下:
44.ms(f)=σ(f7×7([avgpool(f);maxpool(f)]))
[0045]
式中,f7×7表示通过一个7
×
7的卷积,σ表示sigmoid激活函数。
[0046]
所述的改进的损失函数由三部分组成:边框回归损失、置信度损失和分类损失。所述损失函数为l
loss
=l
reg
+l
conf
+l
cls
。式中,l
reg
是引入diou的边框回归损失,l
conf
是引入focal loss的置信度损失,l
cls
是二元交叉熵损失。其中,diou考虑到了两框之间的重叠面积和中心点距离,使两框之间的距离直接得到最小化,收敛速度更快;focal loss解决了单阶段检测算法的正负样本不均衡的问题,降低易分样本的权重,让模型去关注训练难分样本。
[0047]
diou的计算公式如下:
[0048][0049]
式中,iou表示预测框与真实框的交并比,ρ表示预测框与真实框中心点之间的欧氏距离,c表示包含预测框与真实框的最小外接矩形的对角线距离。
[0050]
引入focal loss来作为置信度损失,focal loss的计算公式如下:
[0051][0052]
式中,γ取值为2,α取值为0.25,p表示正样本的概率,y表示标签值。
[0053]
步骤3,训练改进后的yolov3算法,进行特征提取,其中使用adam优化方法进行实验训练,初始学习率设置为0.001,batch size设置为16,采用学习率自动衰减策略,如果经过3次迭代损失值没有降低,就将学习率变为原来的一半。
[0054]
所述的实验选用谷歌公司提供的colab平台,深度学习框架采用的是pytorch,另外还使用了opencv、numpy以及pil等第三方库。
[0055]
步骤4,将测试集中的图像输入到训练好的最佳模型中,模型将待测车辆目标用框标记出来,也可使用该模型对行车视频进行检测,获取视频流检测结果。如图7和图8所示。
[0056]
为了验证本发明的效果,将本发明提出的改进yolov3算法跟原始的yolov3算法的检测结果进行比较,得到这两种算法的检测精度和检测速度的对比结果:原始yolov3的map为90.37%,fps为27;改进yolov3的map为92.35%,fps为32。
[0057]
通过结果可知,本发明所提出的算法在检测精度和速度上均优于原始yolov3算法,也满足实时检测的要求。
[0058]
对于本领域技术人员而言,显然发明不限于上述示范性实施例的细节,而且在不背离发明的精神或基本特征的情况下,能够以其他的具体形式实现发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

技术特征:
1.一种基于改进yolov3算法的车辆目标检测方法,其特征在于,所述方法包括以下步骤:步骤1,获取车辆图像,划分训练集、验证集和测试集,并对车辆图像进行数据增强操作;步骤2,首先改进yolov3算法,使网络变得更加轻量化,其次在多尺度特征融合部分嵌入注意力机制cbam,可以使网络在训练过程中更加关注目标区域,最后引入新的损失函数,提升网络的学习能力;步骤3,训练改进后的yolov3算法,进行特征提取,其中使用adam优化方法进行实验训练,初始学习率设置为0.001,batch size设置为16,采用学习率自动衰减策略,如果经过3次迭代损失值没有降低,就将学习率变为原来的一半;步骤4,将测试集中的图像输入到训练好的最佳模型中,模型将待测车辆目标用框标记出来,也可使用该模型对行车视频进行检测,获取视频流检测结果。2.如权利要求1中所述的一种基于改进yolov3算法的车辆目标检测方法,其特征在于,所述的轻量化是通过引入efficientnetv2和shufflenetv2的残差块结构,对yolov3网络进行轻量化改造,降低了模型的参数量,进而实现模型轻量化的目的;改进措施如下:在骨干网络的浅层部分使用efficientnetv2的fused-mbconv模块,重复堆叠次数为2和8,这样做能够明显提升网络的训练速度;在骨干网络的深层部分使用shufflenetv2的残差模块,重复堆叠次数为8和4;整个改进后的骨干网络由浅入深分别进行2倍、4倍、8倍、16倍和32倍的下采样,并且选取最后的8倍、16倍和32倍的特征图作为之后特征融合网络的输入。3.如权利要求1中所述的一种基于改进yolov3算法的车辆目标检测方法,其特征在于,所述的注意力机制cbam模块是由通道注意力模块和空间注意力模块组成,将前一步经过卷积运算的输入特征层通过一个通道注意力模块赋予不同的通道权重,再通过一个空间注意力模块考虑不同位置的重要性,最后就得到了调整后的特征层。注意力机制cbam增强了重要特征,忽略了不重要的特征,可以使网络在训练过程中更加关注目标区域;其中,在多尺度特征融合部分的三个不同的检测层嵌入cbam可以使网络在训练过程中更加关注目标本身,进而提高模型的检测效果。4.如权利要求1中所述的一种基于改进yolov3算法的车辆目标检测方法,其特征在于,所述的改进的损失函数由三部分组成:边框回归损失、置信度损失和分类损失;所述损失函数为l
loss
=l
reg
+l
conf
+l
cls
。式中,l
reg
是引入diou的边框回归损失,l
conf
是引入focal loss的置信度损失,l
cls
是二元交叉熵损失;其中,diou考虑到了两框之间的重叠面积和中心点距离,使两框之间的距离直接得到最小化,收敛速度更快;focal loss解决了单阶段检测算法的正负样本不均衡的问题,降低易分样本的权重,让模型去关注训练难分样本。5.如权利要求1中所述的一种基于改进yolov3算法的车辆目标检测方法,其特征在于,所述的数据增强是采用三种叠加形式数据增强方法,该三种叠加形式数据增强方法为几何变换+cutout+mosaic,数据增强不但可以扩充数据集图像的数量,而且能够增加训练图像的多样性,提升模型的泛化能力,减少过拟合现象的发生,提高算法的精度。6.如权利要求1中所述的一种基于改进yolov3算法的车辆目标检测方法,其特征在于,
所述的实验选用谷歌公司提供的colab平台,深度学习框架采用的是pytorch,另外还使用了opencv、numpy以及pil等第三方库。

技术总结
本发明公开了一种基于改进YOLOv3算法的车辆目标检测方法,涉及计算机视觉技术领域,包括下述几个步骤:获取真实场景下的车辆目标图像,并对车辆图像进行数据增强;改进YOLOv3网络,使网络变得更加轻量化,在多尺度特征融合部分嵌入注意力机制CBAM,并引入新的损失函数;训练改进后的YOLOv3网络,并进行特征提取;最后使用训练好的模型来进行车辆目标检测。本发明解决了原算法应用于车辆目标检测时存在的实时性和精确性不足的问题,实现了在理想的检测精度下快速准确的检测出车辆目标。检测精度下快速准确的检测出车辆目标。检测精度下快速准确的检测出车辆目标。


技术研发人员:邹伙宗 邓守城
受保护的技术使用者:三峡大学
技术研发日:2023.05.12
技术公布日:2023/9/6
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐