本发明属于红外车辆快速检测,具体涉及一种基于改进yolov7算法的红外车辆快速检测方法。
背景技术:
1、红外目标检测技术是指从红外图像中自动提取出目标的位置信息。鉴于红外热成像的优势,红外目标检测技术可应用于交通道路上的车辆检测场景中,并可适应黑夜、强光和极端天气的情况,因此,该技术的突破对自动驾驶和智能交通等领域具有重要理论意义和实用价值。
2、传统的红外车辆检测方法通常首先采用梯度方向直方图等方法提取目标的特征,然后利用正负样本训练支持向量机等分类器对目标特征进行分类。这种方法检测速度慢,无法满足时性的要求,且存在应用场景受限,鲁棒性差,泛化能力弱的问题。
3、近年来,随着人工智能技术的快速发展,基于卷积神经网络的红外车辆检测方法得到了广泛应用。它可通过卷积神经网络自动对图像进行特征抽象和特征提取,具有较高的检测准确率与较强的鲁棒性。目前,基于深度学习的目标检测算法主要包括两类,一类是两阶段检测算法,该类算法将检测过程分为两个阶段,第一阶段生成待检测图像的候选区域,第二阶段对生成的候选区域作分类和回归,得到最终的检测结果。该类算法第一阶段比较耗时,总体上检测准确率高,但检测速度慢,一般无法满足实时性的需求,代表算法有r-cnn、fast r-cnn、faster r-cnn等。另一类是单阶段检测算法,该类算法将上述的两阶段检测过程统一为一个端到端的回归过程,区域选择和检测判断这两个步骤合二为一,虽然检测速度较快,但是检测准确率较低,代表算法有yolo和ssd等。
4、基于深度学习的目标检测算法在可见光图像目标检测场景中具有较好的检测效果,但在红外目标检测场景中,由于红外图像分辨率低、特征不明显,需要采用结构较为复杂的神经网络进行处理,致使检测速度较慢。上述传统红外车辆检测方法和基于卷积神经网络的红外车辆检测方法均因检测速度较慢,无法满足实时性的要求。
5、conv31_yolov7模型通过堆叠31个卷积块来构建主干特征提取网络,增强了模型的特征提取能力,具有较高的检测准确率,然而,该模型网络结构复杂,参数量大,故检测速度慢,无法满足实时性检测的需求。
技术实现思路
1、为了克服上述现有技术存在的不足,本发明的目的在于提供一种基于改进yolov7算法的红外车辆快速检测方法,在保证较高检测准确率的前提下,显著提高检测速度。
2、为了实现上述目的,本发明采用的技术方案是:
3、一种基于改进yolov7算法的红外车辆快速检测方法,包括以下步骤;
4、步骤1:采集交通道路上的车辆视频进行帧提取和图像预处理,得到红外车辆图像数据集;
5、步骤2:对yolov7算法主干特征提取网络进行改进,即舍弃yolov7算法中的主干特征提取网络,构建一个包含18个普通卷积块和8个分组卷积块的新主干特征提取网络lite,替换yolov7算法中的主干特征提取网络;
6、步骤3:将新的主干特征提取网络与原yolov7的预测网络连接,构成新的网络模型lite-yolov7;
7、步骤4:将步骤1得到的训练数据集送入到新的网络模型lite-yolov7中,采用小批次随机梯度下降算法进行训练,得到训练好的红外车辆检测模型;
8、步骤5:将红外热成像设备实时采集的交通道路上的红外车辆视频按帧送入到已经训练好的模型,得到车辆的实时位置信息和置信度。
9、所述步骤1中进行帧提取和图像预处理的步骤:
10、(1.1)采集交通道路上的红外车辆视频,读取视频,设置待输出图像的分辨率,将每一帧按顺序以图像格式输出,得到红外车辆图像,并对所得到的红外车辆图像的车辆目标的位置信息进行标注,制作成红外车辆图像数据集;
11、(1.2)将红外车辆图像数据集划分为训练数据集和测试数据集,即从数据集中随机选取红外图像组成训练集,剩余红外图像组成测试集。
12、所述步骤2具体为:
13、(2.1)舍弃yolov7算法中的主干特征提取网络,构建一个新的轻量化主干特征提取网络lite,用以替换yolov7算法中的主干特征提取网络,构建新的主干特征提取网络lite,包含18个普通卷积块和8个分组卷积块,其中每个卷积块结构如下:
14、第1个普通卷积块:包含一个输入通道数为1,输出通道数为1,卷积核大小为3×3,步长为1,填充为1的卷积层,一个通道数为1的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
15、第2个普通卷积块:包含一个输入通道数为1,输出通道数为32,卷积核大小为1×1,步长为1,填充为0的卷积层,一个通道数为32的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
16、第3个普通卷积块:包含一个输入通道数为32,输出通道数为32,卷积核大小为1×1,步长为2,填充为0的卷积层,一个通道数为32的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
17、第4个普通卷积块:包含一个输入通道数为32,输出通道数为64,卷积核大小为1×1,步长为1,填充为0的卷积层,一个通道数为64的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
18、第5个普通卷积块:包含一个输入通道数为64,输出通道数为64,卷积核大小为1×1,步长为2,填充为0的卷积层,一个通道数为64的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
19、第6个普通卷积块:包含一个输入通道数为64,输出通道数为128,卷积核大小为1×1,步长为1,填充为0的卷积层,一个通道数为128的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
20、第7个普通卷积块:包含一个输入通道数为128,输出通道数为128,卷积核大小为1×1,步长为2,填充为0的卷积层,一个通道数为128的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
21、第8个普通卷积块:包含一个输入通道数为128,输出通道数为256,卷积核大小为1×1,步长为1,填充为0的卷积层,一个通道数为256的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
22、第9个普通卷积块和第12个普通卷积块:包含一个输入通道数为256,输出通道数为512,卷积核大小为1×1,步长为1,填充为0的卷积层,一个通道数为512的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
23、第10个普通卷积块:包含一个输入通道数为512,输出通道数为256,卷积核大小为1×1,步长为1,填充为0的卷积层,一个通道数为256的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
24、第11个普通卷积块:包含一个输入通道数为256,输出通道数为256,卷积核大小为1×1,步长为2,填充为0的卷积层,一个通道数为256的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
25、第13个普通卷积块、第16个普通卷积块、第18个普通卷积块:包含一个输入通道数为512,输出通道数为1024,卷积核大小为1×1,步长为1,填充为0的卷积层,一个通道数为1024的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
26、第14个普通卷积块和第17个普通卷积块:包含一个输入通道数为1024,输出通道数为512,卷积核大小为1×1,步长为1,填充为0的卷积层,一个通道数为512的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
27、第15个普通卷积块:包含一个输入通道数为512,输出通道数为512,卷积核大小为1×1,步长为2,填充为0的卷积层,一个通道数为512的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
28、第1个分组卷积块:包含一个输入通道数为32,输出通道数为32,卷积核大小为3×3,步长为1,填充为1,分组数为32的卷积层,一个通道数为32的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
29、第2个分组卷积块:包含一个输入通道数为64,输出通道数为64,卷积核大小为3×3,步长为1,填充为1,分组数为64的卷积层,一个通道数为64的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
30、第3个分组卷积块:包含一个输入通道数为128,输出通道数为128,卷积核大小为3×3,步长为1,填充为1,分组数为128的卷积层,一个通道数为128的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
31、第4个分组卷积块和第5个分组卷积块:包含一个输入通道数为256,输出通道数为256,卷积核大小为3×3,步长为1,填充为1,分组数为256的卷积层,一个通道数为256的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层;
32、第6个分组卷积块、第7个分组卷积块、第8个分组卷积块:包含一个输入通道数为512,输出通道数为512,卷积核大小为3×3,步长为1,填充为1,分组数为512的卷积层,一个通道数为512的批量归一化层,一个复斜率为0.1的leakyrelu激活函数层。(2.2)将上述18个普通卷积块和8个分组卷积块进行组合连接,得到如下结构的新的主干特征提取网络lite:
33、第1个普通卷积块->第2个普通卷积块->第3个普通卷积块->第1个分组卷积块->第4个普通卷积块->第5个普通卷积块->第2个分组卷积块->第6个普通卷积块->第7个普通卷积块->第3个分组卷积块->第8个普通卷积块->第4个分组卷积块->第9个普通卷积块->第10个普通卷积块->第11个普通卷积块->第5个分组卷积块->第12个普通卷积块->第6个分组卷积块->第13个普通卷积块->第14个普通卷积块->第15个普通卷积块->第7个分组卷积块->第16个普通卷积块->第17个普通卷积块->第8个分组卷积块->第18个普通卷积块。
34、(2.3)用lite替换yolov7算法中的主干特征提取网络。
35、所述步骤3具体为:
36、将新的主干特征提取网络lite中的第9个普通卷积块与yolov7预测网络的第1个预测支路连接;
37、将新的主干特征提取网络lite中的第13个普通卷积块与yolov7预测网络的第2个预测支路连接;
38、将新的主干特征提取网络lite中的第18个普通卷积块与yolov7预测网络的第3个预测支路连接;
39、yolov7预测网络内部模块连接关系为:
40、第1个预测支路各模块连接关系如下:
41、第9个普通卷积块->支路卷积块1->multi_concat_block1->repconv1->检测头1;第2个预测支路各模块连接关系如下:
42、第13个普通卷积块->支路卷积块2->multi_concat_block2->multi_concat_block3->repconv2->检测头2;
43、第3个预测支路各模块连接关系如下:
44、第18个普通卷积块->multi_concat_block4->repconv3->检测头3;
45、各预测支路模块之间的连接关系如下:
46、第18个普通卷积块->上采样卷积块1->上采样层1->multi_concat_block2->上采样卷积块2->上采样层2->multi_concat_block1->transitionblock1->
47、multi_concat_block3->transitionblock2->multi_concat_block4。
48、所述步骤4具体为:
49、(4.1)设置训练参数:训练轮数为180,一次训练所选取的图片数量设置为1,学习率设置为0.001,置信度阈值和iou忽略阈值均设置为0.5;
50、(4.2)将训练集中的9000张红外图像按每次1张输入到模型lite-yolov7中,每次输出得到目标边界框相对于标注框的偏移值(tx,ty,tw,th)和目标置信度p,其中tx是目标边界框相对于标注框在x方向的偏移值,ty是目标边界框相对于标注框在y方向的偏移值,tw是目标边界框相对于标注框宽的偏移值,th是目标边界框相对于标注框高的偏移值。
51、(4.3)将偏移值(tx,ty,tw,th)通过以下坐标偏移公式,计算得到预测框的位置和宽高:
52、
53、
54、
55、
56、其中,bx,by为预测框的位置,cx,cy为标注框的位置,bw,bh为预测框的宽和高,pw,ph为标注框的宽和高;
57、(4.4)将预测框的位置、宽高和目标的置信度(bx,by,bw,bh,p)与标注框的位置、宽高和目标的置信度代入损失函数中计算损失值,并使用小批次随机梯度下降算法更新其权重;
58、(4.5)重复(4.2)-(4.4),直到损失值趋于稳定不再下降时,停止训练,得到训练好的红外车辆检测模型。
59、步骤5:利用训练好的模型进行红外车辆检测。
60、用红外热成像设备实时采集交通道路上的红外车辆视频,并将其按帧送入到已经训练好的红外车辆检测模型,得到车辆的实时位置信息和置信度。
61、本发明的有益效果:
62、本发明由于将yolov7算法的主干特征提取网络替换为新的主干特征提取网络lite,lite包含18个普通卷积块和8个分组卷积块,通过分组卷积块和普通卷积块组合的方式可以实现深度可分离卷积操作,可大幅度减少网络模型的参数量,实现网络结构的轻量化,显著提高检测速度,从而可以实时检测红外车辆目标;lite的第9个普通卷积块、第13个普通卷积块和第18个普通卷积块可分别提取红外车辆目标的浅层特征、较深层特征和深层特征,通过将这3个普通卷积块与3个预测支路相连接,可以实现多尺度特征融合检测,有利于网络模型检测不同尺度的红外车辆目标,从而保证了网络模型较高的检测准确率。与conv31_yolov7模型相比,本方法的lite_yolov7模型具有轻量化的特点,其结构更为精简,参数量更少,检测速度更快,能满足实时检测红外车辆目标的需求。