IoU损失及其各种变体已经在密集预测任务中展现出了优异的效果。这里做一个简单的罗列与梳理。
I o U = ∣ P ∩ G ∣ ∣ P ∪ G ∣ IoU = \frac{|P \cap G|}{|P \cup G|} IoU=∣P∪G∣∣P∩G∣
这里的P和G在不同任务中可以有着不同的定义,例如分割任务中表示目标区域,而目标检测任务中可以表示边界框。
L I o U = 1 − ∣ P ∩ G ∣ ∣ P ∪ G ∣ L_{IoU} = 1 - \frac{|P \cap G|}{|P \cup G|} LIoU=1−∣P∪G∣∣P∩G∣
IoU Loss 的不足:
G I o U = I o U − ∣ C − P ∪ G ∣ ∣ C ∣ GIoU = IoU - \frac{|C - P \cup G|}{|C|} GIoU=IoU−∣C∣∣C−P∪G∣
GIoU Loss:
L G I o U = 1 − G I o U = 1 − I o U + ∣ C − P ∪ G ∣ ∣ C ∣ L_{GIoU} = 1 - GIoU = 1 - IoU + \frac{|C - P \cup G|}{|C|} LGIoU=1−GIoU=1−IoU+∣C∣∣C−P∪G∣
C C C 的作用是作为一个惩罚项将预测框向真实框靠拢。对于预测框与真实框不重叠的情况,GIoU 通过向目标框缓慢移动来增加二者的重叠区域以达到最大化预测框与真实框之间重叠区域的目的,这是一个不断迭代的过程。使用 GIoU 可以解决预测框与真实框无重叠区域造成的梯度消失问题,可以得到比 MSE 和 IoU 损失函数更高精度的预测框,但是存在迭代速度慢和边界框回归错误的问题。
GIoU Loss 不足:
D I o U = I o U − ρ 2 ( P , G ) c 2 DIoU = IoU - \frac{\rho^2(P, G)}{c^2} DIoU=IoU−c2ρ2(P,G)
L D I o U = 1 − I o U + ρ 2 ( P , G ) c 2 L_{DIoU} = 1 - IoU + \frac{\rho^2(P, G)}{c^2} LDIoU=1−IoU+c2ρ2(P,G)
DIoU 中提出了两个问题,并解决了第一个问题:
DIoU 损失使用了预测框与真实框中心点之间的归一化距离,对于回归问题是尺度不变的。
与 GIoU 损失一样,DIoU 损失也为非重叠情况下的预测框提供了移动方向;与 GIoU 损失不一样的是,DIoU 损失直接最小化了预测框和真实框之间的距离,即使在真实框具有水平和垂直方向时,其收敛速度也比 GIoU 要快得多。DIoU 损失可以加快神经网络的训练过程并且得到更准确的边界框回归结果,将其用于非极大值抑制 (NMS) 过程中的指标时,可以在有遮挡的情况下提供更为鲁棒的结果。
但是 DIOU 损失函数计算过程只包含了边界框与预测框重叠面积和中心点距离,并没有考虑两框的长宽比。
C I o U = I o U − ρ 2 ( P , G ) c 2 − α v CIoU = IoU - \frac{\rho^2(P, G)}{c^2} - \alpha v CIoU=IoU−c2ρ2(P,G)−αv
L C I o U = 1 − I o U + ρ 2 ( P , G ) c 2 + α v L_{CIoU} = 1 - IoU + \frac{\rho^2(P, G)}{c^2} + \alpha v LCIoU=1−IoU+c2ρ2(P,G)+αv
可以知道,CIoU 损失包含了以下 3 个几何因子:
CIoU 同时解决了上面的两个问题。同时考虑了长宽比。
与 GIoU 和 DIoU 一样,CIoU 也是通过迭代将预测框向真实框移动,但是 CIoU 所需要的迭代次数更少,并且得到的预测框与真实框的纵横比更为接近。
后续的工作改进了 CIoU 的权重系数的取值:
L C I o U = 1 − I o U + ρ 2 ( P , G ) c 2 + α v L_{CIoU} = 1 - IoU + \frac{\rho^2(P, G)}{c^2} + \alpha v \\ LCIoU=1−IoU+c2ρ2(P,G)+αv
该公式表明:
E I o U = D I o U − ρ 2 ( w P , w G ) w C 2 − ρ 2 ( h P , h G ) h C 2 EIoU = DIoU - \frac{\rho^2(w_P, w_G)}{w_C^2} - \frac{\rho^2(h_P, h_G)}{h_C^2} EIoU=DIoU−wC2ρ2(wP,wG)−hC2ρ2(hP,hG)
L E I o U = L I o U + L d i s + L a s p = 1 − I o U + ρ 2 ( P , G ) c 2 + ρ 2 ( w P , w G ) w C 2 + ρ 2 ( h P , h G ) h C 2 = 1 − I o U + ρ 2 ( P , G ) w C 2 + h C 2 + ρ 2 ( w P , w G ) w C 2 + ρ 2 ( h P , h G ) h C 2 \begin{align} L_{EIoU} & = L_{IoU} + L_{dis} + L_{asp} \\ & = 1 - IoU + \frac{\rho^2(P, G)}{c^2} + \frac{\rho^2(w_P, w_G)}{w_C^2} + \frac{\rho^2(h_P, h_G)}{h_C^2} \\ & = 1 - IoU + \frac{\rho^2(P, G)}{w_C^2 + h_C^2} + \frac{\rho^2(w_P, w_G)}{w_C^2} + \frac{\rho^2(h_P, h_G)}{h_C^2} \end{align} LEIoU=LIoU+Ldis+Lasp=1−IoU+c2ρ2(P,G)+wC2ρ2(wP,wG)+hC2ρ2(hP,hG)=1−IoU+wC2+hC2ρ2(P,G)+wC2ρ2(wP,wG)+hC2ρ2(hP,hG)
EIoU 在 CIoU 的基础上将长宽比拆开,明确地衡量了三个几何因素的差异,即重叠区域、中心点和边长,同时引入 Fcoal loss 解决了难易样本不平衡的问题。认为简单的任务框回归不需要用过大的权重来学习,而复杂的任务框回归需要大权重来学习,进而将 EIOU loss 进行改进提出 Focal EIOU loss 公式见下:
L F o c a l − E I o U = I o U γ L E I o U L_{Focal-EIoU} = IoU^\gamma L_{EIoU} LFocal−EIoU=IoUγLEIoU
α \alpha α-IoU 将现有的基于 IoU 的损失进行了一个推广。
L I o U = 1 − I o U ⇒ L α − I o U = 1 − I o U α L G I o U = 1 − I o U + ∣ C − P ∪ G ∣ ∣ C ∣ ⇒ L α − G I o U = 1 − I o U α + ( ∣ C − P ∪ G ∣ ∣ C ∣ ) α L D I o U = 1 − I o U + ρ 2 ( P , G ) c 2 ⇒ L α − I o U = 1 − I o U α + ρ 2 α ( P , G ) c 2 α L C I o U = 1 − I o U + ρ ( P , G ) c 2 + β v ⇒ L α − C I o U = 1 − I o U α + ρ 2 α ( P , G ) c 2 α + ( β v ) α \begin{align} L_{IoU} = 1 - IoU & \Rightarrow L_{\alpha-IoU} = 1 - IoU^\alpha \\ L_{GIoU} = 1 - IoU + \frac{|C - P \cup G|}{|C|} & \Rightarrow L_{\alpha-GIoU} = 1 - IoU^\alpha + (\frac{|C - P \cup G|}{|C|})^{\alpha} \\ L_{DIoU} = 1 - IoU + \frac{\rho^2(P, G)}{c^2} & \Rightarrow L_{\alpha-IoU} = 1 - IoU^\alpha + \frac{\rho^{2\alpha}(P, G)}{c^{2\alpha}} \\ L_{CIoU} = 1 - IoU + \frac{\rho(P, G)}{c^2} + \beta v & \Rightarrow L_{\alpha-CIoU} = 1 - IoU^\alpha + \frac{\rho^{2\alpha}(P, G)}{c^{2\alpha}} + (\beta v)^\alpha \\ \end{align} LIoU=1−IoULGIoU=1−IoU+∣C∣∣C−P∪G∣LDIoU=1−IoU+c2ρ2(P,G)LCIoU=1−IoU+c2ρ(P,G)+βv⇒Lα−IoU=1−IoUα⇒Lα−GIoU=1−IoUα+(∣C∣∣C−P∪G∣)α⇒Lα−IoU=1−IoUα+c2αρ2α(P,G)⇒Lα−CIoU=1−IoUα+c2αρ2α(P,G)+(βv)α
使得 α \alpha α-IoU 可以显着超越现有的基于 IoU 的损失,通过调节 α \alpha α,使探测器更灵活地实现不同水平的 bbox 回归精度,并且 α \alpha α-IoU 对小数据集和噪声的鲁棒性更强。
并且通过实验发现,在大多数情况下,取 α = 3 \alpha=3 α=3 的效果最好。
S I o U = I o U − L d i s t a n c e + L s h a p e 2 L d i s t a n c e = ∑ t ∈ { x , y } 1 − e − γ ρ t L s h a p e = ∑ t = { w , h } ( 1 − e − ω t ) θ \begin{align} SIoU & = IoU - \frac{L_{distance} + L_{shape}}{2} \\ L_{distance} & = \sum_{t \in \{x,y\}}1 - e^{- \gamma \rho_t} \\ L_{shape} & = \sum_{t = \{w,h\}}(1 - e^{-\omega_t})^\theta \end{align} SIoULdistanceLshape=IoU−2Ldistance+Lshape=t∈{x,y}∑1−e−γρt=t={w,h}∑(1−e−ωt)θ
SIoU 提出了一种新的IoU形式,重新定义了惩罚度量,考虑了期望回归之间的向量夹角。
L S I o U = 1 − I o U + L d i s t a n c e + L s h a p e 2 L_{SIoU} = 1 - IoU + \frac{L_{distance} + L_{shape}}{2} LSIoU=1−IoU+2Ldistance+Lshape
传统的目标检测损失函数依赖于边界框回归指标的聚合,例如预测框和真实框(即 GIoU、CIoU 等)的距离、重叠区域和纵横比。然而,迄今为止提出和使用的方法都没有考虑期望的真实框和预测框之间不匹配的方向。这种不足导致收敛速度较慢且效率较低,因为预测框在训练过程中可能会“四处游荡”,最终会产生一个更差的模型。
M P D I o U = I o U − d t l 2 ( P , G ) w 2 + h 2 − d b r 2 ( P , G ) w 2 + h 2 MPDIoU = IoU - \frac{d^2_{tl}(P, G)}{w^2 + h^2} - \frac{d^2_{br}(P, G)}{w^2 + h^2} MPDIoU=IoU−w2+h2dtl2(P,G)−w2+h2dbr2(P,G)
L M P D I o U = 1 − M P D I o U L_{MPDIoU} = 1 - MPDIoU LMPDIoU=1−MPDIoU