一种基于IoU改进损失函数的目标检测方法
文献发布时间:2023-06-19 16:04:54
技术领域
本发明属于目标检测技术领域,特别涉及一种基于IoU改进损失函数的目标检测方法。
背景技术
目标检测主要包括传统目标检测技术和基于深度学习的目标检测技术,近年来,基于深度学习的目标检测技术发展迅速,成为当前目标检测技术领域的主流方法。边界框的回归是基于深度学习的目标检测算法的关键步骤,检测过程中边界框回归的定位指标最常用的是交并比(Intersection over Union,IoU),但基于IoU的损失函数无法正确反映目标框与预测框之间的紧密程度,存在当预测框和目标框没有重叠时损失值为0的问题,并且收敛的速度较慢。现有技术针对IoU损失函数的缺点,引入GIoU损失函数,其基于IoU的特性引入最小外接框解决预测框和目标框没有重叠时损失值为0的问题。然而此损失函数又存在当预测框和目标框出现包含现象时会退化成IoU损失函数的问题,使得检测的准确性不高,并且两个框相交时收敛慢的问题也仍然存在。
发明内容
为了克服上述现有技术的缺点,本发明的目的在于提供一种基于IoU改进损失函数的目标检测方法,通过提升目标检测过程边界框回归的定位性能提升目标检测的准确性,进而解决上述问题。
为了实现上述目的,本发明采用的技术方案是:
一种基于IoU改进损失函数的目标检测方法,步骤如下:
步骤1、对目标检测网络,预设交并比加权参数α、距离惩罚项加权参数β和宽高比惩罚项加权参数γ,预设约束条件为{α、β、γ}>1,训练次数为epochs;
步骤2、以多个不同类别的图片作为待训练学习图片,输入目标检测网络训练,得到检测目标的预测框b;优选地,可使用目标检测领域的数据集,所述数据集由包含多种类别目标的图片组成,取数据集中所有图片为待训练学习图片;
步骤3、计算待训练学习图片标注的目标框b
步骤4、获取同时包含所述目标框b
步骤5、计算预测框b和目标框b
步骤6、计算预测框b和目标框b
步骤7、计算损失函数L
其中,其中,(x
步骤8、通过损失函数L
步骤9、维持待训练学习图片不变,重复步骤2至步骤8共epochs-1次,得到最终目标检测网络的权重参数以及该网络的检测精度,其中最优的检测精度对应最优α、β、γ值和最优权重参数;
步骤10、目标检测网络采用所述最优α、β、γ值和最优权重参数,根据输入进行目标检测。
与现有技术相比,本发明可以有效提升目标检测过程中边界框回归的定位性能,进而提升目标检测的准确性。
附图说明
图1为本发明流程图。
图2为IoU的计算图。
具体实施方式
下面结合附图和实施例详细说明本发明的实施方式。
如图1所示,本发明为一种基于IoU改进损失函数的目标检测方法,包括如下步骤:
步骤1、对于目标检测网络,预设交并比加权参数α、距离惩罚项加权参数β和宽高比惩罚项加权参数γ,并预设约束条件为{α、β、γ}>1,训练次数为 epochs。
步骤2、将待训练学习图片输入目标检测网络,得到检测目标的预测框b。本发明中,待训练学习图片是多个不同类别的图片。示例地,可直接下载当前目标检测领域的通用数据集,例如VOC数据集或COCO数据集。通用数据集由包含多种类别目标的图片组成,类别目标例如可以是行人、车辆、船、火车等,取通用数据集中所有图片为待训练学习图片。通过对目标检测网络进行训练,可使目标检测网络可以检测到数据集中所有类别或特定类别的目标。
在本发明的训练过程中,在每轮训练的前向推理完成后,目标检测网络均会得到被检测目标在图像中的包围预测框b以及该框的坐标,并在图像中对预测框b进行绘制来展示检测到的目标。其中,预测框b的坐标包括中心点坐标、四个角的坐标。
步骤3、计算待训练学习图片标注的目标框b
其中,A和A
目标框b
步骤4、获取同时包含目标框b
l=max(x
w=max(y
其中,(x
步骤5、计算预测框b和目标框b
其中,b和b
即:
步骤6、计算预测框b和目标框b
其中C
即:
步骤7、针对基于IoU的损失函数L
由上述公式可以看出,L
在此基础上,本发明基于L
由上述公式可以看出,L
(1)次序保持:L
(2)相对损失权重:当参数0<{α、β、γ}<1和{α、β、γ}>1时,L
(3)相对梯度权重:L
当{α、β、γ}>1时,相对梯度单调地随交并比与惩罚性的增加而增加,而在0<{α、β、γ}<1,相对梯度单调地随交并比与惩罚性的减少而减少。这种相对梯度重加权方案允许模型根据对象的特征以自适应速度(即不同的梯度)学习对象,如{α、β、γ}>1时有助于检测器更快地学习高交并比目标。
步骤8、通过损失函数L
反向传播算法建立在梯度下降算法的基础上,其取网络输出值(预测框) 与期望值(目标框)的差异度作为目标函数,即损失函数,转入反向传播,逐层求出目标函数对各神经元权重参数的偏导数,构成目标函数对对各权重参数的梯度值,并依据该梯度值对权重进行修改。
步骤9、继续使用前述的待训练学习图片,重复步骤2至步骤8共epochs- 1次,得到最终目标检测网络的权重参数以及该网络的检测精度。其中,检测精度是对目标检测网络所依赖算法的评价指标,包括单个类检测精度AP和多个类平均检测精度mAP。
步骤10、通过epochs轮的训练得到目标检测网络学习后的检测能力评估 (即精度高低)通过多个epochs轮训练的循环可以对每次循环学习得到的检测能力评估进行比较。最优的检测精度即对应最优α、β、γ值和最优权重参数,将目标检测网络采用最优α、β、γ值和最优权重参数,根据输入即刻完成目标检测。
在本发明的一个具体实施例中,采用VOC数据集,VOC数据集中的图像具有20个类别,并且该数据集分为训练集和测试集。采用VOC数据集中的训练集和YOLOv5s目标检测网络,利用上述的L
α=1、β=1、γ=1对应的检测精度即代表损失函数为L
在IoU阈值0.5~0.95中每隔0.5计算检测精度,并对计算出的10个精度值求平均值即得到AP@50:95,对20类目标的AP@50:95求平均值即可得到 mAP@50:95。而AP@75:95是0.75~0.95中每隔0.5计算出的5个检测精度值求得的平均值,对20类目标的AP@75:95求平均值即可得到mAP@75:95。
检测精度的计算过程:将数据集中的测试集图像输入目标检测网络,得到对每张图像的预测框,然后计算每张图像中预测框和目标框的IoU值。计算 IoU值大于阈值的目标数与总目标数的比值,该比值即当前IoU阈值下的检测精度。
从表中可以看出,较L
- 一种基于IoU改进损失函数的目标检测方法
- 基于改进的交叉熵损失函数的遥感图像目标检测方法