利索能及
我要发布
收藏
专利号: 2022100070899
申请人: 西安电子科技大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-08-04
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种改进损失函数的YOLOv4目标检测方法,其特征在于,包含以下步骤:

步骤一、下载当前目标检测领域通用数据集tt100k数据集与LISA数据集,使用这两个数据集可保证算法检测效果与该领域公开的通用数据集保持一致,验证算法实际效果;对下载的数据进行增强,包括翻转、裁剪、加噪、旋转操作;增强后生成的数据不仅可以增加数据集包含的图片数量,且因为增强后的图像与数据集中的原始图像相比更复杂,在保留原始图像特征点的情况下对图片风格、大小进行了改变,图像的模糊程度增加,使增强后的图像更具多样性,与实际情况更接近,可以提升训练后网络的鲁棒性;

步骤二:使用标准YOLOv4网络训练与检测交通标志;使用标准YOLOv4网络对基于步骤一的两个交通标志数据集分别进行训练,下载标准YOLOv4网络并进行编译,为两个交通标志数据集tt100k与LISA分别更改cfg文件夹中tt100k.data与LISA.data文件中的训练集、验证集、测试集目录为下载数据集的地址,并指定类别数量与类别名称;根据精度要求设定epoch=20000,根据本次实验数据集加载tt100k.data或LISA.data,同时加载yolov4.cfg,程序即可开始训练;训练过程中使用标准YOLOv4网络的损失函数CIoU_Loss;保存训练过程中各层的权重文件Q1,作为训练结束后检测的权值输入文件;利用权重文件Q1进行测试,得到mAP与Recall;对得到的mAP、Recall与训练过程中的损失进行分析,发现CIoU_Loss损失函数在处理小目标时,目标长宽比变化幅度变大时回归损失也变大,不利于模型训练稳定性;

步骤三、为解决CIoU_Loss损失函数在处理小目标时,目标长宽比变化幅度变大时回归损失也变大的问题,提出一种基于CIoU_Loss的损失函数Sigmoid Complete Intersection over Union,简称SCIoU,通过改进的长宽比度量指标νs,并以Sigmoid函数原型代替arctan函数,将其嵌入YOLOv4中,获得了性能提升,同时该模型也没有引入更多计算量,实时性不受影响,也可替换其他目标检测算法的损失函数,拥有较好的适用性;将替换损失函数SCIoU的YOLOv4网络使用步骤一中的两个数据集进行训练,得到权重文件Q2;利用权重文件Q2进行测试,得到mAP与Recall;

基于CIoU,提出改进的长宽比度量指标νs,其表达式为:

以Sigmoid函数原型代替arctan函数,同时以长宽比w/h作为函数的自变量,可见arctan函数的值域为[0,π/2),Sigmoid函数的值域为[0.5,1),且当长宽比w/h变小时,随着w/h值的变化,Sigmoid比arctan的变化幅度更小;对应于损失函数中长宽比度量值指标v的表达式,对预测框与真实框的长宽比做映射处理后归一化,Sigmoid使得回归损失变化幅度更小,即本文提出SCIoU损失函数,有利于模型训练的稳定性;

SCIoU作为损失函数的表达式为:

同样vs的梯度表达式为:

同理,在实验情况下,为防止梯度爆炸的情况发生,取 的值为1;

步骤二中总损失为Lossall=LCIoU+LC+LP,将LCIoU替换为中的LSCIoU,并将其嵌入YOLOv4中,并按照步骤二中相同方法进行训练,迭代至epoch值并使用Adam算法更新权重,计算mAP与Recall,并保存权重文件Q2;

步骤四、将步骤三与步骤二得到的mAP与Recall进行对比,并设置不同的IoU_thresh重新进行训练,比较步骤二与步骤三在不同设置下的mAP与Recall性能,分析测试结果。

2.根据权利要求1所述的一种改进损失函数的YOLOv4目标检测方法,步骤一、下载当前目标检测领域通用数据集tt100k数据集与LISA数据集;tt100k的全称是Tsinghua‑Tencent 

100K,是清华‑腾讯互联网创新技术联合实验室提供的一个可用来识别的道路交通标志通用数据集;TT100K数据集中图像的分辨率为2048×2048,共有221种标志类别,分为三类:警告标志、禁令标志和指示标志;该数据集覆盖了不同天气条件和不同光照下的交通标志图像,其中训练集包含6105张图像,测试集包含3071张图像;由于原始图像分辨率大,因此在本文实验中对原图像进行了裁剪处理,裁剪后的图像尺度为608×608;由于数据集中各个类别之间的数据量存在严重不平衡的问题,因此本文实验只选择了标注数据量多的45类交通标志进行识别,并将测试集、验证集与训练集按照6:2:2的比例划分,对每张图像进行翻转、裁剪、加噪、旋转操作;LISA的全称是Laboratory  for  Intelligent&Safe Automobiles,是由美国LISA实验室提供的一个可用来识别的道路交通标志通用数据集;通过驾驶车辆拍摄视频,从视频中提取带有交通标志的某一片段,再依据此片段最多提取30帧,对每一帧的视频图片进行标注;每一个交通标志的标注包含Tag、Position、Occluded、On side rode四部分信息;采集图片的过程是在视频中提取的,车辆行驶过程有一定速度而非静止,因此出现模糊,也使得基于该数据集的交通标志识别算法对真实场景的适用性更强;美国LISA数据集中包含了47个类别,但各类别之间标注数量严重失衡,因此为保证数据可用性,本文实验将选取其中四类标注数量多的类别进行训练测试;将测试集、验证集与训练集按照6:2:2的比例划分,并对每张图像进行翻转、裁剪、加噪、旋转操作。

3.根据权利要求1所述的一种改进损失函数的YOLOv4目标检测方法,步骤二、使用标准YOLOv4网络训练与检测交通标志;使用标准YOLOv4网络对基于步骤一的两个交通标志数据集分别进行训练,下载标准YOLOv4网络并进行编译,为两个交通标志数据集tt100k与LISA分别更改cfg文件夹中tt100k.data与LISA.data文件中的训练集、验证集、测试集目录为下载数据集的地址,并指定类别数量与类别名称;根据精度要求设定epoch=20000,根据本次实验数据集加载tt100k.data或LISA.data,同时加载yolov4.cfg,程序即可开始训练;训练过程中使用标准YOLOv4网络的的损失函数CIoU_Loss;保存训练过程中各层的权重文件Q1,作为训练结束后检测的权值输入文件;利用权重文件Q1进行测试,得到mAP与Recall;对得到的mAP、Recall与训练过程中的损失进行分析,发现CIoU_Loss损失函数在处理小目标时,目标长宽比变化幅度变大时回归损失也变大,不利于模型训练稳定性;

1)构建YOLOv4网络模型,使用Initialization函数进行神经网络各层权值参数的初始化;

YOLOv4由四个部分连接组成,分别是:(1)Input输入端:指输入网络原始样本数据;(2)BackBone主干网络:指进行特征提取操作的卷积神经网络结构;(3)Neck颈部:对主干网络提取的图像特征进行融合,并将融合后的特征传递到预测层;(4)Head头部:对图像中的感兴趣目标物体进行预测,并生成可视化的预测框与目标类别;

下载标准YOLOv4网络后,对YOLOv4网络使用make命令进行编译,形成可执行文件darknet;为两个交通标志数据集tt100k与LISA分别编辑cfg文件夹中tt100k.data与LISA.data文件,将class、train、valid、names字符串改为对应数据集增强后的目录与参数,这样就编辑好了标准YOLOv4网络Input部分需要的参数,设定epoch后,根据本次实验数据集加载tt100k.data或LISA.data,同时加载yolov4.cfg,程序即可开始训练;程序在运行时会使用Initialization函数进行神经网络各层权值参数的初始化;

2)从Input部分输入图片数据,经过Backbone部分,最终输出三个尺度的特征图,并使用分类器输出预测框Pb2与分类概率CPx;

从Input部分输入图片数据,经过Backbone部分,最终输出三个尺度的特征图,将三种不同尺度的特征图送入SPP与PANet组成的Neck部分,并将融合后的特征传递到预测层中,与此同时Head部分完成目标的分类并输出预测框Pb1与分类概率CPx,其中x为每个分类的索引;此时生成的预测框Pb1数量太大,对图片中同一物体有大量检测框存在,造成检测结果冗余,经利用NMS算法对预测框进行筛选后,就可以得到感兴趣目标的预测框Pb2与其对应的分类概率CPx;

数据由Input进入BackBone即主干网络后,继续进行信息提取,YOLOv4网络结构中的主干网络拥有53个卷积层,输出三种不同尺度的特征图;将三种不同尺度的特征图送入SPP与PANet组成的Neck部分,对特征图进行融合与特征提取,并将融合后的特征传递到预测层中,YOLOv4是一种一阶段目标检测算法,故Head部分会同时完成预测框与其对应的分类概率;

YOLOv4是一种一阶段目标检测算法,Head部分会同时生成预测框与其对应的分类概率;但此时生成的预测框数量太大,对图片中同一物体有大量检测框存在,造成检测结果冗余,需要对多余检测框进行非极大抑制,使图片上的每个物体保留一个预测框;经过NMS算法对预测框进行筛选后,就可以得到感兴趣目标的预测框与其对应的分类概率;

3)将预测框与真实框对比,计算即IoU损失LCIoU,置信度损失LC,类别损失LP,并将三者相加,计算损失误差Lossall=LCIoU+LC+LP,并使用Adam算法进行神经网络各层权值更新;

将2)得到的预测框Pb2与数据集中的真实框Gtb进行对比,得到损失误差,损失误差包括三个部分,即IoU损失LCIoU,置信度损失LC,类别损失LP,将重点介绍IoU损失LIoU;

IoU损失LIoU经过发展,较为实用的IoU损失可归纳为以下四个阶段:IoU_Loss、GIoU_Loss、DIoU_Loss、CIoU_Loss;IoU_Loss使用交并比IoU作为损失函数,缺点是两框不相交或两框具有不同区域的重叠面积时会无法分辨导致梯度回传错误;GIoU_Loss对IoU_Loss进行了改进,缺点是当出现真实框完全包含预测框时,两框之间的IoU值与GIoU的值相同,无法区分相对关系;DIoU_Loss使用两中心点欧氏距离改进GIoU_Loss的不足;CIoU_Loss将预测框与真实框的宽高比考虑在内,重点考虑真实框完全包裹预测框时,不同宽高比下的预测框回归问题,提出了CIoU的概念,其表达式为:其中α是权重函数,v是用来度量长宽比的相似性的指标;

CIoU_Loss的梯度类似于DIoU_Loss,但还要考虑v的梯度,其表达式为:

在长宽在[0,1]的情况下, 会导致梯度爆炸,因此在实现时将 替换成1;

标准YOLOv4在损失函数部分使用了CIoU_Loss,其损失函数的综合表达式为:

Lossall=LCIoU+LC+LP

其中LCIoU的表达式为:

LC的表达式为:

其中λcls为置信度的标准化权重因子,λc代表置信度损失占总损失的权重系数;

LP的表达式为:

其中 代表分类损失占总损失的权重系数;

2

s代表输入图片被分成s×s个单元格,B代表各单元格包含的Anchor box的总数,表示第i个单元格的第j个Anchor box是否负责这个object,即该单元格中含有目标物体的中心点,且该单元格的第j个Anchor box与真实框具有最大的IoU值,此时 否则为0; 表示第i个单元格的第j个Anchor box不负责该目标;LSCIoU代表SCIoU损失,Ci表示网络预测的第i个边界框的置信度,且 当单元格中包含目标物体的中心点时Pr(object)=1,否则为0; 表示目标所在第i个边界框的置信度;Pi表示网络预测的第i个边界框属于各类别的概率, 表示目标所在第i个边界框属于各类别的概率;

4)循环执行步骤2)和3)继续迭代至epoch值,停止训练,计算mAP与Recall,输出记录每一层权重与偏移的文件Q1;

按照精度要求设置迭代阈值epoch=20000,迭代次数小于阈值时,使用Adam算法进行网络各层权值更新,直到阈值epoch=20000停止训练,计算mAP与Recall,输出记录每一层权重与偏移的文件Q1;

使用模型总体评价指标mAP与Recall作为评价指标。