APP下载

面向单阶段目标检测的损失函数优化设计

2024-03-20刘龙哲徐红鹏权冰洁

电光与控制 2024年3期
关键词:真值置信度惩罚

刘龙哲, 刘 刚, 徐红鹏, 权冰洁, 田 慧

(河南科技大学信息工程学院,河南 洛阳 471000)

0 引言

在机器视觉中,目标检测是一项基本且富有挑战性的任务。在过去的几十年中,目标检测经历了从传统方法到深度学习方法的过渡。传统方法依赖于对目标特征的精确建模,工作环境一旦超过算法设定的范围,检测性能将大大降低。深度学习网络具备强大的目标特征学习和表示能力[1],已广泛应用于目标检测任务。

常见的基于深度学习的目标检测算法主要分为两阶段和单阶段两类。两阶段(Two-stage)目标检测算法是将检测问题分为两个阶段,先生成候选区域,再对候选区域做回归和分类。这类算法的典型代表是R-CNN[2]系列算法,这类算法虽然精度高,但存在计算量大、运算速度慢,不能满足实时应用等缺点。单阶段(One-stage)目标检测算法是一种端到端的目标检测方法,该类算法不生成候选区域,直接将数据输入卷积神经网络,预测物体的边界框信息,并对这些候选边界框进行判别,一步到位完成分类和回归。典型的算法有YOLO算法[3-5]和SSD[6]算法。单阶段目标检测算法与两阶段目标检测算法的不同在于锚框是一个逻辑结构,只需对这个数据块进行分类和回归即可,因此拥有更高的检测帧率[7]。

在单阶段目标检测算法中,总损失函数通常由分类损失、位置损失以及置信度损失3部分组成,其中位置损失对优化的速度和准确度起到关键作用。位置损失常用平均绝对误差损失(L1范数损失)、均方误差损失(L2范数损失),但L1、L2范数损失只是考虑预测框与真值框4个角之间的欧氏距离,没有考虑到两框4个角之间的位置关系。两框的交并比(Intersection over Union,IoU)是实际评价边框定位性能的指标,在L1、L2相同时,两框的IoU可能存在很大差异,所以文献[8]提出将IoU作为边界框回归损失函数对检测算法进行优化。但是,当真值框与预测框无交集时,IoU退化为零,无法进行训练过程。已有研究人员通过在IoU基础上进行大量改造[9-12],总体上比起IoU效果有所提升,但存在真值框与预测框处于不同包含关系时,位置损失相等,无法指导回归的情况。

单阶段目标检测算法总损失函数通常将分类损失、位置损失以及置信度损失直接相加[13-15]。由于三者计算时采取的方式及调用的参数不同,三者数值差异较大,这会导致数值较大的损失对总损失的影响更大。当总损失数值变化趋于平稳达到收敛时,数值较小的损失可能还未收敛,导致该惩罚项训练不完全。

基于以上分析,本文对单阶段目标检测算法的损失进行优化设计:先提出了一种全新的基于回归位置关系敏感度损失(Regression Position Relationship Sensitivity IoU,RPIoU)的位置损失,从真值框与预测框的角点距离远近以及两框的非重叠区域面积大小两方面构建惩罚项,解决了两框处于不同包含关系时IoU无法精确判断回归位置的问题;之后提出了一种基于遗传算法的单阶段目标检测算法总损失优化方法,对分类损失、位置损失以及置信度损失分别加权,通过选择、变异等遗传操作针对训练数据集进行权值自动寻优,生成适宜任务的总损失函数。

1 IoU问题分析及改进

1.1 不同IoU损失

基于IoU构建的经典损失有GIoU(Generalized IoU)[16]、DIoU(Distance IoU)[17]、CIoU(Complete IoU)[17]及EIoU(Efficient IoU)[18]。IoU是预测框和真值框交集和并集的比值;GIoU考虑了无法优化的非重叠部分,在IoU基础上添加一个外接最小方框,对IoU进行约束,确保了当两框不相交时损失依然存在;DIoU在IoU的基础上加入了预测框和真值框的中心点之间欧氏距离与最小闭包对角线的比值,使训练过程中两框不重叠时也能收敛;CIoU在DIoU的基础上进行了迭代,添加了一个和边框宽高比相关的因子,进一步提升回归精度,但CIoU中使用的是真值框与预测框各自的宽高比,存在当两框各自的宽高比相等时,两框面积可能相差很大的情况;EIoU采用了全新的计算方式,将真值框和预测框之间的宽、高分别相比,克服了CIoU存在的问题。

以上关于IoU的损失构建只考虑了预测框和真值框相交、相分离和部分简单的重叠情况,但是在目标检测尤其是小目标检测中常常会出现包含情况,即预测框包含真值框或真值框包含预测框,如图1所示。将真值框完全包裹预测框称为内包,如图1(a)所示,预测框完全包裹真值框称为外包,如图1(b)所示。为了解决该问题,从IoU出发对目标检测位置回归损失进行优化。

图1 内包和外包

1.2 位置回归关系敏感性交并比损失

当真值框和预测框存在不同的包含关系时,损失可能会出现无法区分的问题,如图2所示。图2(a)左、右两个图像分别是内、外包的两种情况,以S来表示真值框的面积(GT area),左图两框面积差为0.2S,右图的面积差为0.25S,两个图的尺度差异不大。但就面积差来看,左图中的预测框(BB area)更接近于真值框,因此图2(a)中左图好于右图的回归效果。目前,现有的位置回归损失计算都无法对图2(a)中的不同情况进行区分,这对回归来说是不利的。图2(b)中左图两框面积差1.25S,右图面积差2.8125S,两者的尺度差异大。这种情况下,左图的预测框比起右图的预测框要更加接近于真值框,更容易达到两框完全重合,因此图2(b)中左图回归效果更好。但目前现有的位置回归损失值在上述情况下是相同的。

图2 真值框和预测框存在的不同的包含关系

通过对以上现有IoU的分析可发现:GIoU在存在包含关系时会退化为IoU;DIoU在预测框和真值框的中心点一致时,会退化为IoU;CIoU在预测框和真值框宽高比相等时,退化为DIoU;EIoU无法区分部分包含情况。

为了解决以上问题,提出一种基于位置关系敏感性交并比的回归损失(RPIoU),该损失强化了预测框和真值框之间的位置关系,先用IoU与两框角点的距离关系作差,使两框尽可能靠近。当两框存在包含关系时,再添加一个与两框的非重叠区域面积相关的惩罚项,来更好地指导边框的回归位置。两框的非重叠区域面积越大,意味着预测框和真值框之间的差距越大,应加强对应的惩罚。该惩罚项应对整体起到微调作用,避免对RPIoU造成较大影响。

基于以上思路设计的损失具体表示为

LRPIoU=1-RRPIoU

(1)

RRPIoU=IIoU-dvalue-r×d×(1-IIoU)

(2)

(3)

其中:B为预测框;Bgt为真值框;d为关于两框非重叠区域面积差的惩罚项;r为判定项,当两框处于包含状态时,r=1,其余状态下,r=0;dvalue为关于两框角点关系的惩罚项,是预测框和真值框的角点欧氏距离平方和与最小外接矩形对角线平方的比值,用来刻画两框之间位置关系,其表达式为

dvalue=(cz1+cz2)/c2

(4)

(5)

(6)

当两框存在包含关系时,为RPIoU添加一个与非重叠区域面积相关的惩罚项。该惩罚项通过非重叠区域面积差来对损失进行调节,使其具备处理不同包含关系的能力。首先,当非重叠区域面积差增大时,真值框和预测框之间的差异变大,惩罚项的值应增加,以快速调整面积差对位置回归的影响;当面积差持续增加时,惩罚值应该变为缓慢增加,以避免损失值爆炸的问题。其次,该惩罚项在[0,1]区间取值,通过与(1-IIoU)相乘,发挥该惩罚项对IoU整体的微调作用。

根据以上思路,构造一个随面积差变化上升明显,且到达一定范围后上升趋于平稳的惩罚函数。选取指数函数作为基础函数,将两框的非重叠区域面积差与真值框之间的比值作为指数,构建出的函数曲线如图3(a)所示。在x>0时,希望惩罚函数值应缓慢上升,故对曲线进行翻转调节,如图3(b)所示。对函数进行加1修正,使惩罚项的取值范围在[0,1]之间。为使面积差异不大时,惩罚更明显,即曲线更平缓,将指数乘以0.5。惩罚项的函数曲线如图3(c)所示,构建的惩罚项为

图3 不同的惩罚函数

d=-e-|SGT-SBB| /2SGT+1

(7)

式中:SGT为真值框的面积;SBB为预测框的面积。

当预测框和真值框完全重合时,RPIoU值为1,符合IoU的定义。当预测框和真值框没有包含关系时,不再调用RPIoU中关于两框非重叠区域面积差的惩罚项,但仍存在dvalue利用两框角点关系进行惩罚,即让预测框的角点向真值框的角点接近。

2 目标检测损失整体优化

单阶段目标检测算法总损失通常由分类、位置回归、置信度损失相加构成。分类损失是锚框中每个类别的概率总和,回归位置损失是由角点坐标以及面积信息进行计算得到,而置信度损失只是判定锚框中是否存在物体。在训练中各部分的贡献度不同,通过加权进行平衡。构造总损失函数为

L=αLbox+βLcls+γLobj

(8)

式中:Lbox为回归位置损失;Lcls为分类损失;Lobj为置信度损失;α、β、γ为3项的权值。

本文通过遗传算法(Genetic Algorithm,GA)对权重α、β、γ进行寻优。α、β、γ采用10进制编码,适应度函数定义为

f=0.9×mmAP@0.5+0.1×mmAP@0.5∶0.95。

(9)

遗传寻优的具体步骤如下:

1) 开始第1轮训练,训练结束,计算适应度。对种群中个体进行变异,生成包含两个子代的第2代种群;

2) 将第2代种群中变异个体α、β、γ代入总损失进行第2轮训练,并计算相应的适应度;

3) 选择当前种群中适应度最低的个体进行变异,与其余个体合并生成新一代种群;

4) 将变异个体α、β、γ代入总损失进行训练,计算相应的适应度函数,并将所有个体从高到低进行适应度排序,选择适应度最高的两组个体组合成新一代种群;

5) 每轮结束后判断是否达到n轮,若达到,直接输出适应度最高的个体α、β、γ,未达到,则返回步骤3)、4)。

3 实验与分析

硬件平台:操作系统Windows10,CPU为Intel®CoreTMi7-10700 CPU@2.90 GHz,运行内存为32 GiB,GPU为NVIDIA3090,显存大小为8 GiB,内存大小为24 GiB。软件平台:深度学习框架为Pytorch,编程语言为Python3.8,并使用CUDA11.3.1以及CUDNN8.2.1对GPU进行加速。

采用两个数据集进行实验验证,分别为公开可见光数据集和自制红外数据集。

可见光数据集VisDrone2019和VisDrone2020公开数据集混合后并进行重新分组得到。数据集中图像为各种不同型号的无人机在不同场景中以及各种天气与光照条件下采集得到,共14 038幅静态图像,包含260万个城市交通地面目标(如行人、汽车、自行车和三轮车等)。

自制红外数据集的实验数据一部分由红外飞机图像得到,另一部分来源于对已有图像进行旋转、平移等操作的扩充,共得到5582帧图像。将红外飞机数据集按照10%的比例随机划分出的数据作为测试集,余下的数据集利用“十”字交叉法,按照8∶2的比例划分出训练集与验证集。红外飞机数据集按照以下类别进行标注,如图4所示一共分为6类:背向机身(BAF)、背向尾焰(BAT)、侧向机身(LAF)、侧向尾焰(LAT)以及后向机身(BWF)和后向尾焰(BWT)。

图4 红外数据集

3.1 评价标准

本文使用平均精度(AP)及平均精度均值(mAP)来评价算法检测效果,采用每秒传输帧数(FPS)作为衡量算法检测速度的标准。AP反映了单一类别的检测效果,其算式为

(10)

式中,p(r)为某个召回率r对应的查准率p的值,即p(r)表示两者的映射关系。

查准率p和召回率r的算式分别为

p=ITP/(ITP+IFP)

(11)

r=ITP/(ITP+IFN)

(12)

式中:ITP为正样本被预测正确的数量;IFP为负样本被预测为正样本的数量;IFN为正样本被预测为负样本的数量。

3.2 实验设计

实验以YOLOv5作为基准网络,主要用来验证本文所提出的损失函数优化设计在实际检测中是否具有更好的效果。具体实验设计如下:首先,只对RPIoU的有效性验证,即将YOLOv5中IoU部分分别替换为GIoU、DIoU、CIoU、EIoU以及RPIoU,其他网络结构保持不变,且都在相同的实验环境下运行;接下来,再将参数优化和RPIoU两部分改进进行消融实验;最后,再与其他经典算法的实验结果进行对比。为验证本文提出方法的普适性,分别在可见光数据集和红外数据集进行上述实验验证。

3.3 参数设置

训练阶段,将图像尺寸统一设置为640像素×640像素,batchsize设为16,整个网络采用SGD优化器,权重衰减设为0.0005,学习率为0.01,共训练100代。

3.4 可见光数据集实验

3.4.1 基于RPIoU的回归损失的目标检测

为验证RPIoU的有效性,以YOLOv5为基础算法,分别使用GIoU、DIoU、CIoU、EIoU以及RPIoU在VisDrone数据集进行对比实验。表1给出了各个算法在IoU阈值为0.5以及0.5∶0.95时的mAP值。表2给出了各个算法在IoU阈值为0.5的各类别AP值。

表1 VisDrone数据集实验结果

表2 VisDrone数据集各类别检测精度

从表1及表2中可得出如下结论:

1) 当IoU阈值为0.5时,使用RPIoU的mAP最高,相比于IoU、DIoU、CIoU和EIoU分别高出了0.026、0.019、0.019和0.024。

2) 当IoU阈值为0.5∶0.95时,使用RPIoU在对比算法中达到最佳,mAP达到0.246,相比于GIoU、DIoU、CIoU和EIoU分别高出了0.008、0.007、0.007、0.013。

在表1中,RPIoU在mAP阈值为0.5以及0.5~0.95的平均值中都得到了最高精度的结果,达到最佳性能。表2的各类AP中可以看出,RPIoU在所有类别都好于其他IoU所检测的结果,尤其对van、truck以及bus类别的检测精度提升明显。说明RPIoU的改进能够更有效地进行位置回归,并提高了检测精度。

为比较RPIoU与其他IoU在训练中损失收敛速度的差别,分别使用不同IoU对YOLOv5进行训练,保存各代的总损失值进行比较。图5为训练总损失值随迭代次数的变化曲线图。

通过图5可以看出,RPIoU、CIoU、DIoU在0~15个epoch内的收敛速度较快,其中,RPIoU的收敛速度最快。在经过15个epoch后,所有的IoU的收敛速度都逐渐稳定。经过100个epoch可以看出,GIoU的损失曲线远远高于其他IoU,其他所有IoU的损失值在100个epoch时基本相同,基于RPIoU的损失值最低,可以证明RPIoU的收敛速度最快。

图6所示为预测框分布回归示意图。

图6 预测框分步回归示意图

图6中,黑色框为真值框,绿色框为预测框。可以看到,在相同的迭代轮次,RPIoU的收敛效果更好。在经过10轮迭代后,使用RPIoU的算法检测到了目标,并与真值框出现包含关系,此时使用CIoU的算法未检测到。经过10轮迭代后,使用CIoU的算法检测到目标,置信度仅为0.3左右,与真值框出现包含关系。而使用RPIoU的算法预测框已经接近0.7左右。在迭代到80轮时,使用RPIoU的算法已基本完成收敛,置信度达到0.84,而使用CIoU的预测出置信度仅0.6。与CIoU相比,RPIoU的改进可以更好地进行收敛,并准确确定预测框与真值框的位置关系。

3.4.2 消融分析

本文所提出的损失优化主要包含对IoU结构的改进(RPIoU)与损失整体优化两个部分。分别对这两个部分进行了消融实验,实验结果如表3所示。

表3 VisDrone数据集消融实验

从表3中可以得到如下结论。

1) 在Baseline中只替换IoU进行实验,与基准方法相比,mAP@0.5在VisDrone数据集上比起Baseline高出了0.019,在mAP@0.5∶0.95提高了0.007,证明基于RPIoU的回归损失的有效性。

2) 在对损失整体进行优化的训练中,与基准方法相比,mAP@0.5在VisDrone数据集上比Baseline高0.026,mAP@0.5∶0.95提高了0.013,证明损失整体优化的有效性。

3) 将本文所提出的两种改进算法共同加入到Baseline中进行实验。在两种改进的共同作用下,mAP@0.5在VisDrone上比Baseline高0.037,同时mAP@0.5∶0.95提升了0.018。并且两者共同加入的精度高于分别加入,这证明了本文所提出的优化算法的综合有效性。

3.4.3 不同检测算法对比

将本文提出的改进损失代入YOLOv5并与Faster-RCNN、SSD、Centernet、EfficientDet、YOLOv3算法进行对比,实验结果如表4所示。代入本文所提出改进的YOLOv5在所有对比检测算法中表现最佳,达到了最高的0.429,明显高于其他检测算法。相较原YOLOv5算法,本文算法提高了0.018的检测精度,且FPS相比于其他算法也是最高的,可以满足实时性需求。

表4 不同目标检测算法在VisDrone数据集的实验结果

基于本文提出的改进损失的YOLOv5目标检测算法,在VisDrone数据集上与一些经典检测算法进行了比较,部分可视化检测结果如图7所示。对比第1组密集人群图片可以看出,Centernet、SSD和EfficientDet检测到的人数量较少,通过观察可以发现,其中Centernet与SSD所检测到的目标多在图片中心区域,而EfficientDet检测到的多为图片边缘的目标。相比之下,YOLO系列在图片中检测到的目标数量最多,添加了本文改进的YOLOv5精度最高,除左上角较为拥挤的人群外,其余都能检测到;对比第2组较暗环境下的地面车辆图片,SSD在图中未能检测到目标,EfficientDet也只检测到一个目标,Centernet虽检测到多数目标但远少于YOLO系列,添加了本文改进的对于小目标密集区域的检测结果要优于YOLOv3,降低了漏检情况;对比第3组较亮环境下地面车辆图片,Centernet和EfficientDet都只检测到了最大的车辆和最上方的小车,SSD则多检测出一辆自行车,但都少于YOLO系列所检测的目标数,但是对比添加了本文改进还是存在漏检,如最右下角的绿色车辆。

图7 不同算法在VisDrone数据集的检测结果对比

3.5 红外数据集实验

为证明本文优化的普适性,可用于包括红外数据集在内的各种情况,本节使用自制红外飞机数据集进行实验分析验证。

3.5.1 基于RPIoU的回归损失的目标检测

以YOLOv5为基础算法,分别使用GIoU、DIoU、CIoU、EIoU以及RPIoU在红外飞机数据集进行对比实验,结果如表5所示。

表5 红外飞机数据集实验结果

从表5中可以得到如下结论。

1) 当IoU阈值为0.5时,使用RPIoU的mAP相比GIoU、DIoU、CIoU和EIoU分别高出0.01、 0.007、0.003、0.01。

2) 当IoU阈值为0.5∶0.95时,使用RPIoU在对比算法中取得了最佳,mAP达到了0.606,与DIoU、CIoU保持一致,比GIoU和EIoU要高。

3) 本文所提出的RPIoU在mAP阈值0.5以及0.5~0.95的平均值中都得到了最高的检测精度,达到最好性能效果。

3.5.2 消融实验

本文所提出的损失优化主要包含对IoU结构的改进(RPIoU)与损失整体优化两个部分。分别对这两个部分在自制红外飞机数据集上进行消融实验,结果如表6所示。

表6 红外飞机数据集消融实验

从表6中可以得到如下结论。

1) 在Baseline中只替换IoU进行实验,与Baseline相比,mAP@0.5在红外数据集上比Baseline高出0.007,证明了RPIoU改进的有效性。

2) 在对损失整体进行损失优化的训练中,与基准方法相比,mAP@0.5在红外数据集上相比Baseline高出0.006,这证明损失整体优化的有效性。

3) 将本文提出的两种改进方法共同加入到Baseline中。在两种改进共同的作用下,mAP@0.5在红外数据集上比Baseline高0.014,并且两者共同加入的检测精度高于分别加入,这就证明了本文所提出的优化方法的综合有效性。

3.5.3 基于RPIoU的回归损失的目标检测

将本文提出的改进损失,代入YOLOv5并与Faster-RCNN、SSD、Centernet、EfficientDet、YOLOv3经典算法进行对比,实验结果如表7所示。

表7 不同目标检测算法在红外飞机数据集的实验结果

由表7可以看出,本文所提出的改进在所有对比检测算法中表现最佳,达到了最高的0.966,明显高于其他检测算法。而在实时性方面可以看到FPS相比于其他算法也为最高,可以满足实时性的需求。上述实验证明了本文改进算法在红外数据集上依然可行,此损失函数可满足在不同场景下的需要,具有较高精确性及鲁棒性。

将本文提出的改进损失代入YOLOv5,在红外数据集上与一些经典检测算法进行了比较,部分可视化检测结果如图8所示。第1组对比图为被云层遮挡的背向尾焰飞机,所有算法均可检测出目标,SSD与Centernet所检测出的置信度不足0.8,其他算法所检测出的目标置信度都高于0.8,本文改进的算法最高;第2组为无遮挡的后向尾焰飞机群,EfficientDet和Centernet在图中均未检测到目标,SSD仅检测到一个目标,而YOLO系列检测出所有目标,本文的改进算法置信度最高,达到0.8以上;第3组则是无遮挡的侧向机身飞机群,Centernet检测效果最差,仅检测出一个目标,SSD和EfficientDet检测出了大多数目标,但置信度都在0.8以下,YOLO系列检测出的置信度大多超过0.8。

图8 不同算法在红外飞机数据集的检测结果对比

4 结束语

针对边界框回归损失函数对边界框位置关系变化敏感度不够的问题,本文在IoU基础上提出一种关系敏感度交并比位置损失(RPIoU);针对单阶段目标检测算法总损失各部分对于训练结果的贡献度不同,本文利用遗传算法进行优化,得到分类、回归、置信度损失的各自最佳权重。通过原理分析和实验验证,可得如下结论。

1) 本文从预测框与真值框的角点距离远近以及两框的非重叠区域面积大小两方面构建惩罚项,提出的基于RPIoU的位置损失可以更好地指导边界框回归。

2) 本文提出的基于遗传算法的单阶段目标检测总损失各部分加权优化方法,可以更好地平衡分类、回归、置信度各部分损失对总损失的贡献程度。

3) 本文所提出的算法在可见光数据集以及红外数据集上均进行了充分的实验验证,证明本文提出的单阶段目标检测算法损失函数的优化设计算法具有普遍适用性。

但是,本文算法对遮挡下的目标检测问题存在错检、漏检的缺陷,后续可从刻画预测框和周围的真值框及其他预测框间的位置关系开展进一步研究工作。

猜你喜欢

真值置信度惩罚
硼铝复合材料硼含量置信度临界安全分析研究
神的惩罚
Jokes笑话
正负关联规则两级置信度阈值设置方法
惩罚
10kV组合互感器误差偏真值原因分析
真值限定的语言真值直觉模糊推理
置信度条件下轴承寿命的可靠度分析
真正的惩罚等
基于真值发现的冲突数据源质量评价算法