CN117372996A - 一种基于改进yolov5模型的交通信号灯图像检测方法 - Google Patents
一种基于改进yolov5模型的交通信号灯图像检测方法 Download PDFInfo
- Publication number
- CN117372996A CN117372996A CN202311421665.5A CN202311421665A CN117372996A CN 117372996 A CN117372996 A CN 117372996A CN 202311421665 A CN202311421665 A CN 202311421665A CN 117372996 A CN117372996 A CN 117372996A
- Authority
- CN
- China
- Prior art keywords
- model
- yolov5
- traffic signal
- improved
- signal lamp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 36
- 238000012549 training Methods 0.000 claims abstract description 36
- 240000007651 Rubus glaucus Species 0.000 claims abstract description 35
- 235000011034 Rubus glaucus Nutrition 0.000 claims abstract description 35
- 235000009122 Rubus idaeus Nutrition 0.000 claims abstract description 35
- 238000000034 method Methods 0.000 claims abstract description 18
- 230000004913 activation Effects 0.000 claims abstract description 14
- 230000000007 visual effect Effects 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 9
- 238000011156 evaluation Methods 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 206010039203 Road traffic accident Diseases 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
- G06V20/584—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of vehicle lights or traffic lights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Multimedia (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
一种基于改进yolov5模型的交通信号灯图像检测方法,包含步骤:采用公共数据构建交通信号灯状态的检测样本数据集;搭建改进的yolov5网络模型,引入PConv和Involution卷积并加入ReLU6激活函数;在计算机端,使用改进的yolov5模型对数据集进行训练并保存;在树莓派端环境搭建配置,将改进的yolov5模型移植到树莓派中,再安装vnc服务器;在计算机端安装vncviewer应用程序,验证并访问树莓派的桌面远程操作;在树莓派端,输入含有交通信号灯的目检测图像至改进的yolov5模型,加载最优权重文件至检测模型中进行推理检测,获取待检测图像中的交通信号灯的状态。本发明不仅解决了yolov5部署在边缘设备上高延迟、低吞吐量和计算复杂度高的问题,还获得较高的帧率,使模型更轻量,更适用于嵌入式设备。
Description
技术领域
本发明属于深度学习目标检测领域,具体涉及一种基于改进yolov5模型的交通信号灯图像检测方法。
背景技术
随着数字相机和计算机技术的发展,计算机视觉技术已成为人工智能、机器学习、深度学习等领域的重要支撑技术,并在自动驾驶、机器人、医疗、安防等众多领域得到了广泛应用和发展。随着自动驾驶的不断发展,准确检测交通信号灯,对路上通信安全、交通违规监管和交通事故定责具有重要意义。
yolov5是一种目标检测模型,在保持高精度的情况下,大幅提升了检测速度。虽然yolov5在目标检测中表现出色,但yolov5因为层数多和网络容量大的特性,所以需要更长时间的训练、更多的计算资源和时间。yolov5模型中运用了大量的Convolution(Conv)操作,频繁的内存访问导致了FLOPS低下。yolov5部署在边缘设备上高延迟、低吞吐量和计算复杂度高的问题更加突出
高延迟:yolov5的推理过程相对较慢,导致较高的延迟。边缘设备的计算资源有限,无法在短时间内完成复杂的推理过程,会严重影响实时应用场景。针对高延迟问题,通过引入Partial Convolution(PConv)和Involution,PConv利用特征图中的冗余信息,仅在一部分输入通道上应用Convolution操作,以减少计算冗余和内存访问,这样可以降低yolov5模型的计算复杂度,从而减少推理过程中的延迟;Involution可以增加特征图的感受野和语义信息,通过局部感知调整输入特征图,而不影响其余通道。这样可以在保持特征图分辨率不变的情况下提高模型的感知能力,进而减少不必要的计算量和延迟。
低吞吐量:由于yolov5的计算复杂度较高,边缘设备无法快速处理大量的输入图像,这会限制同时处理的任务数量,降低系统的整体吞吐量。而PConv比Convolution的计算效率更高,通过减少计算冗余和内存访问的数量,可以提高模型的推理速度,从而增加边缘设备的吞吐量。Involution比Convolution操作更轻量高效,可以提升模型的计算效率,从而增加边缘设备的吞吐量。
计算复杂度高:yolov5具有大量的参数和复杂的计算操作。在边缘设备上运行这样的模型,需要大量的计算资源和内存。边缘设备通常具有较低的计算能力和内存限制,这会导致计算复杂度过高,无法有效地完成推理任务。PConv可以利用特征图中的冗余信息,有选择地在部分输入通道上应用Convolution操作,从而减少计算复杂度和内存访问的数量,有助于降低yolov5模型的计算复杂度,使其适应边缘设备的计算能力和内存限制;Involution是一种轻量级的卷积操作,可以在保持特征图分辨率不变的情况下增加感受野和语义信息,通过减少计算冗余,Involution可以提高模型的计算效率,降低计算复杂度。
yolov5激活函数ReLU在边缘设备计算能力有限,无法达到在高性能服务器上的精度水平,而ReLU6在边缘设备上的float16/int8低精度环境下能够保持良好的数值分辨率,通过限制激活范围,ReLU6可以减少较大范围激活值的数值损失,提高模型的数值稳定性。
通过采用PConv、Involution和ReLU6激活函数,可以在yolov5模型的基础上减少计算冗余、降低计算复杂度,从而解决在边缘设备上高延迟、低吞吐量和计算复杂度高的问题。这样的改进使得模型更轻量、更适合于嵌入式设备,并在一定程度上牺牲微小的准确率,以获得更高的帧率和更好的实时性能。
发明内容
发明目的:
针对上述yolov5模型部署在边缘设备上高延迟、低吞吐量和计算复杂度高的技术问题,本技术方案提供了一种基于改进yolov5模型的交通信号灯图像检测方法,降低模型的计算复杂度,提高模型的鲁棒性,使模型可以在ARM处理器设备上运行良好;能有效的解决上述问题。本发明通过以下技术方案实现:
一种基于改进yolov5模型的交通信号灯图像检测方法,采用公共数据构建交通信号灯状态的检测样本数据集;分析yolov5模型检测交通信号灯响应时间长的问题,针对问题对yolov5模型进行改进;在yolov5模型的基础上,通过引入PConv和Involution卷积减少模型参数量;加入ReLU6激活函数,使得模型在边缘设备上float16/int8低精度的时候也有好的数值分辨率;具体的操作步骤包括:
步骤1:采用上海交通大学交通信号灯图像数据集-SJTU Small Traffic LightDataset(S2TLD),并将数据集分为训练集和测试集;
步骤2:搭建改进的yolov5网络模型;
步骤2.1:将yolov5骨干网络全部C3模块Bottleneck结构的1×1卷积和3×3卷积修改为PConv卷积,生成PConvC3模块;在Neck层对最后两层C3模块进行修改,修改为PConvC3模块,公式如下所示:
其中,X为输入的特征图矩阵;M为输入的mask(0-1分布),其中0表示损坏区域,1表示未损坏区域;W为卷积核,b为卷积运算的偏置;这里的X和M都只是当前运算区域的像素;输出的x′是单个像素,也就是W卷积核的中心位置;sum(M)是指与卷积核W相同大小,元素全部为1的矩阵;第一层PConv的M中,1为未损坏区域,而0为损坏区域;m′指Mask(0-1分布)更新过程,在每一步卷积运算之后都会更新,如果sum(M)>0,则表示该区域为未损坏区域,反之则为损坏区域;
步骤2.2:将yolov5的PConvC3模块的激活函数由ReLU修改为ReLU6,公式如下所示:
ReLU6(x)=min(max(0,x),6) (3);
其中,x是输入的实数值,max(x,0)表示取x和0之间的最大值,这一部分实现了ReLU的非线性部分;如果x大于等于0,那么这个部分的输出就等于x,否则输出为0,min(max(0,x),6)表示取上一步得到的结果和6之间的最小值;这一部分的作用是将输出限制在不超过6的范围内;和ReLU不同的是ReLU6限制最大输出为6,是为了在边缘设备float16/int8低精度的时候也有好的数值分辨率;
步骤2.3:在yolov5的Neck层中,将最后两层Convolution改为Involution,公式如下所示:
其中,xj是输入张量的第j个元素,yi是输出张量的第i个元素,wij和bij分别是Involution卷积中的权重和偏置,k是块的总数,指输入张量划分为的子块的数量;通过Involution所得的特征图中每个元素各不相同,可以学到更多的全局信息,而通道层面核参数共享;
步骤3:在计算机端,使用改进的yolov5模型,将S2TLD数据集的训练集输入训练,在验证集上,保存改进yolov5模型准确率最高的模型参数,将其文件命名为best.pt;
步骤4:在树莓派端环境搭建配置,将改进的yolov5模型移植到树莓派中;
步骤4.1:使用SD Card Formatter软件格式化U盘,选择最新64位系统进行烧入树莓派镜像文件;
步骤4.2:配置部署环境,安装winscp,将改进的yolov5模型输入树莓派端,安装opoencv和对应版本的pytorch,修改yolov5的requirements.txt文件进行yolov5环境运行程序;
步骤5:在树莓派端安装vnc服务器,在计算机端安装vncviewer应用程序,输入树莓派的IP地址,计算机端通过vncviewer与树莓派端连接,验证并访问树莓派的桌面远程操作,将训练好的权重文件best.py传输到树莓派端;
步骤6:在树莓派端,输入含有交通信号灯的目检测图像至改进的yolov5模型,加载步骤3中的最优权重文件best.pt至检测模型中进行推理检测,获取待检测图像中的交通信号灯的状态。
进一步的,所述步骤1的具体操作方式为:
步骤1.1:采用github上海交通大学开源数据集S2TLD,共5786张,包含4个类别(包括red、yellow、green和wait_on)图像数据;
步骤1.2:将S2TLD数据集标签的xml标准文件转换成对应的可用于yolov5模型训练的txt文件;
步骤1.3:将txt文件按照8:2划分为训练集:验证集,用于yolov5模型训练。
进一步的,所述步骤3的具体操作方式为:将交通信号灯数据集的训练集图像数据输入到改进的网络模型中,使用GPU训练,设置网络模型参数,训练轮数为200轮,初始学习率为0.01,最小学习率为0.0001,权重衰减系数为0.00005,采用AdamW改进器,batch-size为16;模型训练过程中,会保存准确率最优的模型参数,将其命名为best.pt。
进一步的,所述的步骤6是采用精确率(Precision)、平均精度均值(mAP)作为模型算法的评价指标,具体包括以下步骤:
步骤6.1:将包含交通信号灯的待检测图像传输到树莓派上,加载预训练的模型权重文件best.pt至改进的yolov5检测模型中,对图像进行目标检测,以检测交通信号灯的位置和状态;
步骤6.2:为检测改进后的模型性能,采用Precision、mAP、FPS作为模型算法的评价指标;
其中,Recall为召回率,TP代表样本中正确预测为正样本的个数,FN是实际正例样本中模型未能正确识别的样本数量,Precision为精确率,FP代表样本中被错误预测为正样本的负样本的个数,F1(F1 Score)是精确度(Precision)和召回率(Recall)的调和平均值,classes代表类别个数,P(R)D(R)代表第R类平均精度,FPS(Frames Per Second,每秒帧数)表示在一秒钟内显示的帧数。
有益效果
本发明提出的一种基于改进yolov5模型的交通信号灯图像检测方法,与现有技术相比较,其具有以下有益效果:
(1)本发明在yolov5模型的基础上,通过在C3模块引入PConv代替Conv,从而只在部分输入通道上应用卷积操作,减少了计算量和内存访问,更好地利用设备的计算能力;Involution卷积相较于传统的Convolution卷积具有更少的计算量、更好的感受野、更少的内存访问和更好的可扩展性,在不影响yolov5模型的深度的前提下,提高了模型效率和精度;ReLU6激活函数相比于ReLU函数,通过限制激活值上限在6以内,可以防止梯度爆炸、抑制过大的激活值,适用于有界输入范围的情况,使得模型在边缘设备上float16/int8低精度的时候也有好的数值分辨率。降低模型的计算复杂度,提高模型的鲁棒性,使模型可以在ARM处理器设备上运行良好。
附图说明
图1是本发明整体流程示意图。
图2是本发明中PConvC3模型的框架图。
图3是本发明中yolov5-fast结构图。
图4是采用常规yolov5的预测图截选图。
图5是本发明中yolov5-fast的预测图截选图。
图6是采用常规yolov5的帧率图。
图7是本发明中yolov5-fast的帧率图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。在不脱离本发明设计构思的前提下,本领域普通人员对本发明的技术方案做出的各种变型和改进,均应落入到本发明的保护范围。
实施例1:
一种基于改进yolov5模型的交通信号灯图像检测方法,采用公共数据构建交通信号灯状态的检测样本数据集;分析yolov5模型检测交通信号灯响应时间长的问题,针对问题对yolov5模型进行改进;在yolov5模型的基础上,通过引入PConv和Involution卷积减少模型参数量;加入ReLU6激活函数,使得模型在边缘设备上float16/int8低精度的时候也有好的数值分辨率;具体的操作步骤如图1所示,包括:
步骤1:采用上海交通大学交通信号灯图像数据集-SJTU Small Traffic LightDataset(S2TLD),并将数据集分为训练集和测试集;具体操作方式为:
步骤1.1:采用github上海交通大学开源数据集S2TLD,共5786张,包含4个类别(包括red、yellow、green和wait_on)图像数据。
步骤1.2:将S2TLD数据集标签的xml标准文件转换成对应的可用于yolov5模型训练的txt文件。
步骤1.3:将txt文件按照8:2划分为训练集:验证集,用于yolov5模型训练。
步骤2:搭建改进的yolov5网络模型;改进后的yolov5网络模型形成yolov5-fast模型,yolov5-fast结构图如图3所示,具体操作方式为:
步骤2.1:将yolov5骨干网络全部C3模块Bottleneck结构的1×1卷积和3×3卷积修改为PConv卷积,生成PConvC3模块;在Neck层对最后两层C3模块进行修改,修改为PConvC3模块,如图2所示。公式如下所示:
其中,X为输入的特征图矩阵;M为输入的mask(0-1分布),其中0表示损坏区域,1表示未损坏区域;W为卷积核,b为卷积运算的偏置;这里的X和M都只是当前运算区域的像素;输出的x′是单个像素,也就是W卷积核的中心位置;sum(M)是指与卷积核W相同大小,元素全部为1的矩阵;第一层PConv的M中,1为未损坏区域,而0为损坏区域;m′指Mask(0-1分布)更新过程,在每一步卷积运算之后都会更新,如果sum(M)>0,则表示该区域为未损坏区域,反之则为损坏区域。
步骤2.2:将yolov5的PConvC3模块的激活函数由ReLU修改为ReLU6,公式如下所示:
ReLU6(x)=min(max(0,x),6) (3);
其中,x是输入的实数值,max(x,0)表示取x和0之间的最大值,这一部分实现了ReLU的非线性部分;如果x大于等于0,那么这个部分的输出就等于x,否则输出为0,min(max(0,x),6)表示取上一步得到的结果和6之间的最小值;这一部分的作用是将输出限制在不超过6的范围内;和ReLU不同的是ReLU6限制最大输出为6,是为了在边缘设备float16/int8低精度的时候也有好的数值分辨率。
步骤2.3:在yolov5的Neck层中,将最后两层Convolution改为Involution,公式如下所示:
其中,xj是输入张量的第j个元素,yi是输出张量的第i个元素,wij和bij分别是Involution卷积中的权重和偏置,k是块的总数,指输入张量划分为的子块的数量;通过Involution所得的特征图中每个元素各不相同,可以学到更多的全局信息,而通道层面核参数共享。
步骤3:在计算机端,使用改进的yolov5模型,将S2TLD数据集的训练集输入训练,在验证集上,保存改进yolov5模型准确率最高的模型参数,将其文件命名为best.pt;具体操作方式为:
将交通信号灯数据集的训练集图像数据输入到改进的网络模型中,使用GPU训练,设置网络模型参数,训练轮数为200轮,初始学习率为0.01,最小学习率为0.0001,权重衰减系数为0.00005,采用AdamW改进器,batch-size为16;模型训练过程中,会保存准确率最优的模型参数,将其命名为best.pt。
步骤4:在树莓派端环境搭建配置,将改进的yolov5模型移植到树莓派中;具体操作方式为:
步骤4.1:使用SD Card Formatter软件格式化U盘,选择最新64位系统进行烧入树莓派镜像文件。
步骤4.2:配置部署环境,安装winscp,将改进的yolov5模型输入树莓派端,安装opoencv和对应版本的pytorch,修改yolov5的requirements.txt文件进行yolov5环境运行程序。
步骤5:在树莓派端安装vnc服务器,在计算机端安装vncviewer应用程序,输入树莓派的IP地址,计算机端通过vncviewer与树莓派端连接,验证并访问树莓派的桌面远程操作,将训练好的权重文件best.py传输到树莓派端。
步骤6:在树莓派端,输入含有交通信号灯的目检测图像至改进的yolov5模型,加载步骤3中的最优权重文件best.pt至检测模型中进行推理检测,获取待检测图像中的交通信号灯的状态;采用精确率(Precision)、平均精度均值(mAP)作为模型算法的评价指标,具体包括以下步骤:
步骤6.1:将包含交通信号灯的待检测图像传输到树莓派上,加载预训练的模型权重文件best.pt至改进的yolov5检测模型中,对图像进行目标检测,以检测交通信号灯的位置和状态;
步骤6.2:为检测改进后的模型性能,采用Precision、mAP、FPS作为模型算法的评价指标;
其中,Recall为召回率,TP代表样本中正确预测为正样本的个数,FN是实际正例样本中模型未能正确识别的样本数量,Precision为精确率,FP代表样本中被错误预测为正样本的负样本的个数,F1(F1 Score)是精确度(Precision)和召回率(Recall)的调和平均值,classes代表类别个数,P(R)D(R)代表第R类平均精度,FPS(Frames Per Second,每秒帧数)表示在一秒钟内显示的帧数。
实验验证:
为了验证本方案的可行性,发明人做了实验对比进行验证;具体的对比例如下所示:
Predicted-True实现数据反映了算法预测正确的概率,以本次实验为例,反应了算法预测“green”,“red”,“yellow”,“wait_on”4类正确的情况。算法预测正确的概率的数据分析如下表1所示:
表1数据集各类的准确率
Predicted-Recall实验数据反应了平均精确度(AP),Predicted-Recall所围成的面积就是平均精确度,mAP@0.5是每一个类分别计算AP,取平均的结果,mAP@0.5:0.95表示在不同IoU阈值(从0.5到0.95,步长0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP。数据集各类的平均准确率的数据分析如下表2所示:
表2数据集各类的平均准确率
F1兼顾精确率(Predicted)和召回率(Recall),并使用一个统一的单值评价指标来评价模型的训练效果,F1-Confidence实验数据反应了算法性能的差异,F1值越大算法的性能越好。模型综合指标F1的数据分析如下表3所示:
表3模型综合指标F1
F1-Confidence | allclasses |
yolov5n | 0.409-0.86 |
yolov5n-fast | 0.421-0.85 |
通过修改模型,模型的参数量有的明显的下降,训练时间也有明显的改进,模型参数量和训练时长的数据分析如下表4所示:
表4模型参数以及训练时长
model | gradients | 100epochstime |
yolov5n | 1765930 | 4.472 |
yolov5n-fast | 847516 | 4.407 |
案例1
采用100张交通信号灯图片做验证集,对它们进行预测,计算平均置信度,其值如下表5所示,yolov5-fast比yolov5平均置信度要低,但是从图4和图5可以看出预测效果差距不明显。
表5模型验证平均置信度
案例2
选取了1个30分钟的城市街拍视频做预测,分析树莓派在高负载情况下,处理复杂图片的平均帧率如图6和图7所示,模型平均帧率如下表6所示。
表6模型验证平均帧率
model | AvgFPS |
yolov5n | 1.515 |
yolov5n-fast | 2.353 |
从上标可知,yolov5-fast处理速度比yolov5处理速度更快,并且效果明显。
Claims (4)
1.一种基于改进yolov5模型的交通信号灯图像检测方法,其特征在于:采用公共数据构建交通信号灯状态的检测样本数据集;分析yolov5模型检测交通信号灯响应时间长的问题,针对问题对yolov5模型进行改进;在yolov5模型的基础上,通过引入PConv和Involution卷积减少模型参数量;加入ReLU6激活函数,使得模型在边缘设备上float16/int8低精度的时候也有好的数值分辨率;具体的操作步骤包括:
步骤1:采用上海交通大学交通信号灯图像数据集-SJTU Small Traffic LightDataset(S2TLD),并将数据集分为训练集和测试集;
步骤2:搭建改进的yolov5网络模型;
步骤2.1:将yolov5骨干网络全部C3模块Bottleneck结构的1×1卷积和3×3卷积修改为PConv卷积,生成PConvC3模块;在Neck层对最后两层C3模块进行修改,修改为PConvC3模块,公式如下所示:
其中,X为输入的特征图矩阵;M为输入的mask(0-1分布),其中0表示损坏区域,1表示未损坏区域;W为卷积核,b为卷积运算的偏置;这里的X和M都只是当前运算区域的像素;输出的x′是单个像素,也就是W卷积核的中心位置;sum(M)是指与卷积核W相同大小,元素全部为1的矩阵;第一层PConv的M中,1为未损坏区域,而0为损坏区域;m′指Mask(0-1分布)更新过程,在每一步卷积运算之后都会更新,如果sum(M)>0,则表示该区域为未损坏区域,反之则为损坏区域;
步骤2.2:将yolov5的PConvC3模块的激活函数由ReLU修改为ReLU6,公式如下所示:
ReLU6(x)=min(max(0,x),6) (3);
其中,x是输入的实数值,max(x,0)表示取x和0之间的最大值,这一部分实现了ReLU的非线性部分;如果x大于等于0,那么这个部分的输出就等于x,否则输出为0,min(max(0,x),6)表示取上一步得到的结果和6之间的最小值;这一部分的作用是将输出限制在不超过6的范围内;和ReLU不同的是ReLU6限制最大输出为6,是为了在边缘设备float16/int8低精度的时候也有好的数值分辨率;
步骤2.3:在yolov5的Neck层中,将最后两层Convolution改为Involution,公式如下所示:
其中,xj是输入张量的第j个元素,yi是输出张量的第i个元素,wij和bij分别是Involution卷积中的权重和偏置,k是块的总数,指输入张量划分为的子块的数量;通过Involution所得的特征图中每个元素各不相同,可以学到更多的全局信息,而通道层面核参数共享;
步骤3:在计算机端,使用改进的yolov5模型,将S2TLD数据集的训练集输入训练,在验证集上,保存改进yolov5模型准确率最高的模型参数,将其文件命名为best.pt;
步骤4:在树莓派端环境搭建配置,将改进的yolov5模型移植到树莓派中;
步骤4.1:使用SD Card Formatter软件格式化U盘,选择最新64位系统进行烧入树莓派镜像文件;
步骤4.2:配置部署环境,安装winscp,将改进的yolov5模型输入树莓派端,安装opoencv和对应版本的pytorch,修改yolov5的requirements.txt文件进行yolov5环境运行程序;
步骤5:在树莓派端安装vnc服务器,在计算机端安装vncviewer应用程序,输入树莓派的IP地址,计算机端通过vncviewer与树莓派端连接,验证并访问树莓派的桌面远程操作,将训练好的权重文件best.py传输到树莓派端;
步骤6:在树莓派端,输入含有交通信号灯的目检测图像至改进的yolov5模型,加载步骤3中的最优权重文件best.pt至检测模型中进行推理检测,获取待检测图像中的交通信号灯的状态。
2.根据权利要求1所述的一种基于改进yolov5模型的交通信号灯图像检测方法,其特征在于:所述步骤1的具体操作方式为:
步骤1.1:采用github上海交通大学开源数据集S2TLD,共5786张,包含4个类别(包括red、yellow、green和wait_on)图像数据;
步骤1.2:将S2TLD数据集标签的xml标准文件转换成对应的可用于yolov5模型训练的txt文件;
步骤1.3:将txt文件按照8:2划分为训练集:验证集,用于yolov5模型训练。
3.根据权利要求1所述的一种基于改进yolov5模型的交通信号灯图像检测方法,其特征在于:所述步骤3的具体操作方式为:将交通信号灯数据集的训练集图像数据输入到改进的网络模型中,使用GPU训练,设置网络模型参数,训练轮数为200轮,初始学习率为0.01,最小学习率为0.0001,权重衰减系数为0.00005,采用AdamW改进器,batch-size为16;模型训练过程中,会保存准确率最优的模型参数,将其命名为best.pt。
4.根据权利要求1所述的一种基于改进yolov5模型的交通信号灯图像检测方法,其特征在于:所述的步骤6是采用精确率(Precision)、平均精度均值(mAP)作为模型算法的评价指标,具体包括以下步骤:
步骤6.1:将包含交通信号灯的待检测图像传输到树莓派上,加载预训练的模型权重文件best.pt至改进的yolov5检测模型中,对图像进行目标检测,以检测交通信号灯的位置和状态;
步骤6.2:为检测改进后的模型性能,采用Precision、mAP、FPS作为模型算法的评价指标;
其中,Recall为召回率,TP代表样本中正确预测为正样本的个数,FN是实际正例样本中模型未能正确识别的样本数量,Precision为精确率,FP代表样本中被错误预测为正样本的负样本的个数,F1(F1 Score)是精确度(Precision)和召回率(Recall)的调和平均值,classes代表类别个数,P(R)D(R)代表第R类平均精度,FPS(Frames Per Second,每秒帧数)表示在一秒钟内显示的帧数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311421665.5A CN117372996A (zh) | 2023-10-31 | 2023-10-31 | 一种基于改进yolov5模型的交通信号灯图像检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311421665.5A CN117372996A (zh) | 2023-10-31 | 2023-10-31 | 一种基于改进yolov5模型的交通信号灯图像检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117372996A true CN117372996A (zh) | 2024-01-09 |
Family
ID=89390834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311421665.5A Pending CN117372996A (zh) | 2023-10-31 | 2023-10-31 | 一种基于改进yolov5模型的交通信号灯图像检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117372996A (zh) |
-
2023
- 2023-10-31 CN CN202311421665.5A patent/CN117372996A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108764164B (zh) | 一种基于可变形卷积网络的人脸检测方法及系统 | |
CN111950723B (zh) | 神经网络模型训练方法、图像处理方法、装置及终端设备 | |
CN110956255B (zh) | 难样本挖掘方法、装置、电子设备及计算机可读存储介质 | |
CN108564052A (zh) | 基于mtcnn的多摄像头动态人脸识别系统与方法 | |
CN109492435B (zh) | 基于数据开放共享的隐私泄露风险评估方法、装置及系统 | |
WO2023143178A1 (zh) | 对象分割方法、装置、设备及存储介质 | |
CN112037142B (zh) | 一种图像去噪方法、装置、计算机及可读存储介质 | |
CN114863226A (zh) | 一种网络物理系统入侵检测方法 | |
EP4332815A1 (en) | Intelligent connected vehicle data training method and electronic device based on privacy data protection, and computer readable storage medium | |
CN114861875A (zh) | 基于自监督学习和自知识蒸馏的物联网入侵检测方法 | |
CN115861646A (zh) | 一种基于结构重参数化的轻量级目标检测方法及系统 | |
Yuan et al. | Infi: End-to-end learnable input filter for resource-efficient mobile-centric inference | |
He et al. | On-device deep multi-task inference via multi-task zipping | |
CN116861262B (zh) | 一种感知模型训练方法、装置及电子设备和存储介质 | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
CN117372996A (zh) | 一种基于改进yolov5模型的交通信号灯图像检测方法 | |
CN111832435A (zh) | 基于迁移与弱监督的美丽预测方法、装置及存储介质 | |
CN114448659B (zh) | 基于属性探索的黄河坝岸监测物联网访问控制优化方法 | |
CN116363149A (zh) | 一种基于U-Net改进的医学图像分割方法 | |
Liu et al. | Abnormal behavior analysis strategy of bus drivers based on deep learning | |
CN115795355A (zh) | 一种分类模型训练方法、装置及设备 | |
CN112396126B (zh) | 一种基于检测主干与局部特征优化的目标检测方法及系统 | |
CN113762042A (zh) | 视频识别方法、装置、设备以及存储介质 | |
CN111652102A (zh) | 一种输电通道目标物辨识方法及系统 | |
KR20210038027A (ko) | 신경망 압축 훈련 방법 및 압축된 신경망을 이용하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |