损失函数一直不变_深度学习——目标检测回归损失:SmoothL1/IoU/GIoU/DIoU/CIoU

本文介绍了目标检测中的损失函数演进,从Smooth L1 Loss到CIoU Loss,包括IoU Loss、GIoU Loss和DIoU Loss。这些损失函数针对不同问题进行优化,例如GIoU解决了不相交框的问题,DIoU和CIoU进一步提升收敛速度和精度。实验表明,CIoU Loss结合DIoU-NMS在性能上有显著提升。
摘要由CSDN通过智能技术生成

目标检测任务的损失函数由Classificition Loss和Bounding Box Regeression Loss两部分构成。本文介绍目标检测任务中近几年来Bounding Box Regression Loss Function的演进过程,其演进路线是Smooth L1 Loss IoU Loss GIoU Loss DIoU Loss CIoU Loss,本文按照此路线进行讲解。

1. Smooth L1 Loss

  • 本方法由微软rgb大神提出,Fast RCNN论文提出该方法

1.1 假设x为预测框和真实框之间的数值差异,常用的L1和L2 Loss定义为:


1.2 上述的3个损失函数对x的导数分别为:

从损失函数对x的导数可知: 损失函数对x的导数为常数,在训练后期,x很小时,如果learning rate 不变,损失函数会在稳定值附近波动,很难收敛到更高的精度。 损失函数对x的导数在x值很大时,其导数也非常大,在训练初期不稳定。 完美的避开了 和 损失的缺点。

1.3 实际目标检测框回归任务中的损失loss为:

其中 表示GT 的框坐标, 表示预测的框坐标,即分别求4个点的loss,然后相加作为Bounding Box Regression Loss。

c98164a7d1b2a77c524fbd83f70e6e1b.png

三种loss的曲线图如图所示,可以看到Smooth L1相比L1的曲线更加的Smooth

缺点:

  • 上面的三种Loss用于计算目标检测的Bounding Box Loss时,独立的求出4个点的Loss,然后进行相加得到最终的Bounding Box Loss,这种做法的假设是4个点是相互独立的,实际是有一定相关性的
  • 实际评价框检测的指标是使用IOU,这两者是不等价的,多个检测框可能有相同大小的 Loss,但IOU可能差异很大,为了解决这个问题就引入了IOU LOSS。

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值