loss for bounding box

本文详细解析了目标检测算法中用于计算bounding box偏差的各种Loss函数,包括SmoothL1Loss、IoULoss、GIoULoss、DIoULoss和CIoULoss,探讨了它们在回归任务中的应用和优缺点。

概述

本文主要汇总目标检测算法中用于计算bounding box偏差的loss函数。


Smooth L1 Loss

由微软rgb大神于Fast RCNN论文提出该方法

(1)假设xxx为预测框和真实框之间的数值差异,则L1L_{1}L1L2L_{2}L2SmoothL1Smooth_{L_{1}}SmoothL1 LossLossLoss定义为:

L1=∣x∣ L_{1} = \mid x \mid L1=x

L2=x2 L_{2} = x^2 L2=x2

SmoothL1(x)={0.5x2,if∣x∣<1∣x∣−0.5,othreswise Smooth_{L_{1}}(x) = \begin{cases} 0.5x^2, \qquad if \mid x \mid<1 \\ \mid x \mid - 0.5, othreswise \end{cases} SmoothL1(x)={0.5x2,ifx<1x0.5,othreswise

(2)3个损失函数对xxx的导数分别为:
dL1(x)x={1,ifx≥0−1,otherswise \cfrac{\mathrm{d}L_{1}(x)}{x} = \begin{cases} 1, \qquad if x \geq 0 \\ -1, \quad otherswise \end{cases} xdL1(x)={1,ifx01,otherswise

dL2(x)x=2x \cfrac{\mathrm{d}L_{2}(x)}{x} = 2x xdL2(x)=2x

dSmoothL1(x)x={x,if∣x∣<1±1,otherswise \cfrac{\mathrm{d}Smooth_{L_{1}}(x)}{x} = \begin{cases} x, \qquad if \mid x \mid < 1 \\ \pm 1, \quad otherswise \end{cases} xdSmoothL1(x)={x,ifx<1±1,otherswise

从损失函数对xxx的导数可知:

  • L1L_{1}L1损失函数对xxx的导数为常数,在训练后期,xxx很小时,如果学习率不变,损失函数会在稳定值附近波动,很难收敛于更高的精度。
  • L2L_{2}L2损失函数对xxx的导数在xxx很大时,其导数也非常大,在训练初期不稳定。
  • SmoothL1Smooth_{L1}SmoothL1完美的避开了L1L_{1}L1L2L_{2}L2 的缺点。

(3)实际目标检测回归任务中的loss为:
Lloc(tu,v)=∑i∈(x,y,w,h)SmoothL1(tiu−vi) L_{loc}(t^u, v) = \sum_{i \in (x,y,w,h)} Smooth_{L_{1}}(t_{i}^u-v_{i}) Lloc(tu,v)=i(x,y,w,h)SmoothL1(tiuvi)
其中,vvv表示GT的框坐标,tut^utu表示预测的框坐标,即分别求4个参数的Loss,然后相加得到Bounding Box Regression Loss。这种方式的前提是假设4个参数是相互独立的,然而4个参数本身是有一定的相关性的。


IoU Loss

论文UnitBox: An Advanced Object Detection Network提出改方法

Liou=−ln(iou) L_{iou} = -ln(iou) Liou=ln(iou)
存在问题:

  1. 当预测框和目标框不相交(iou=0iou=0iou=0)时,不能反映预测框与目标框距离的远近,损失函数此时不可导,无法优化2个框不相交的情况;
  2. 当预测框和目标框大小确定,只要2个框的相交值是确定的,iouiouiou值就相同,所以iouiouiou不能反映2个框是如何相交的。

GIoU Loss

论文Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression提出该方法

IoU=∣B⋂Bgt∣∣B⋃Bgt∣ IoU = \cfrac{\mid B \bigcap B^{gt} \mid}{\mid B \bigcup B^{gt} \mid} IoU=BBgtBBgt

GIou=IoU−∣C−(B⋃Bgt)∣∣C∣ GIou = IoU - \cfrac{\mid C - (B \bigcup B^{gt}) \mid}{\mid C \mid} GIou=IoUCC(BBgt)

LGIoU=1−GIoU L_{GIoU} = 1 - GIoU LGIoU=1GIoU

其中:BBB为预测框,BgtB^{gt}Bgt为真实框,CCCBBBBgtB^{gt}Bgt的最小外接矩形。


DIoU Loss

论文Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression提出该方法

LDIoU=1−IoU+ρ2(b,bgt)c2 L_{DIoU} = 1 - IoU + \cfrac{\rho^2(b,b^{gt})}{c^2} LDIoU=1IoU+c2ρ2(b,bgt)

其中:

  • bbbbgtb_{gt}bgt分别表示预测框和目标框的中心点
  • ρ(⋅)\rho(\cdot)ρ()表示欧氏距离
  • ccc表示预测框和目标框的最小外接矩形的对角线长度

CIoU Loss

论文Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression提出该方法

CIoULossCIoU LossCIoULossDIoUDIoUDIoU惩罚项的基础上加了一个影响因子αυ\alpha \upsilonαυ,这个因子把预测框长宽比拟合目标框的长宽比考虑进去。

υ=4π2(arctan(wgthgt)−arctan(wh))2 \upsilon = \cfrac{4}{\pi^2}(arctan(\cfrac{w^{gt}}{h^{gt}}) - arctan(\cfrac{w}{h}))^2 υ=π24(arctan(hgtwgt)arctan(hw))2

α=υ(1−IoU)+υ \alpha = \cfrac{\upsilon}{(1-IoU)+\upsilon} α=(1IoU)+υυ

LCIoU=1−IoU+ρ2(b,bgt)c2+αυ L_{CIoU} = 1 - IoU + \cfrac{\rho^2(b,b^{gt})}{c^2} + \alpha \upsilon LCIoU=1IoU+c2ρ2(b,bgt)+αυ

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值