注:本篇博客大部分内容并非原创,而是本人将之前收藏的资料整理,并加以自己的愚解整合成到一起,方便回顾复习,所有参考资料均已注明出处,并已点赞加收藏~
前言: 续从零开始学CV之二损失函数篇(1)
2.2.3 IoU Loss(Intersection-Over-Union,交并比函数)
该方法由旷视提出,发表于2016 ACM,论文链接:
https://arxiv.org/pdf/1608.01471.pdf
通过4个坐标点独立回归Building boxes的缺点:
(1)检测评价的方式是使用IoU,而实际回归坐标框的时候是使用4个坐标点,如下图所示,是不等价的;L1或者L2 Loss相同的框,其 IoU 不是唯一的
(2)通过4个点回归坐标框的方式是假设4个坐标点是相互独立的,没有考虑其相关性,实际4个坐标点具有一定的相关性
(3)基于L1和L2的距离的loss对于尺度不具有不变性
基于此提出 IoU Loss,其将4个点构成的box看成一个整体进行回归:
上图中的红色点表示目标检测网络结构中Head部分上的点(i,j),绿色的框表示Ground truth框,
蓝色的框表示Prediction的框,IoU
loss的定义如上,先求出2个框的IoU,然后再求个-ln(IoU),实际很多是直接定义为IoU Loss = 1-IoU
形象讲解部分:
IoU = 绿色面积 /(蓝色面积 + 绿色面积 + 橙色面积)
而 IOU Loss 可以简单表示为:
L I O U = 1 − I o U L_{I O U}=1-I o U LIOU=1−IoU 或 L I O U = − l n ( I O U ) L_{I O U}=-ln(I O U) LIOU=−ln(IOU)
2.2.4 GIoU Loss(Generalized Intersection over Union)
本方法由斯坦福学者提出,发表于CVPR2019,论文链接:
https://arxiv.org/pdf/1902.09630.pdf
IoU Loss 的缺点:
(1)当预测框和目标框不相交时,IoU(A,B)=0时,不能反映A,B距离的远近,此时损失函数不可导,IoU Loss 无法优化两个框不相交的情况。
(2)假设预测框和目标框的大小都确定,只要两个框的相交值是确定的,其IoU值是相同时,IoU值不能反映两个框是如何相交的。
如上图所示,三种不同相对位置的框拥有相同的IoU=0.33值,但是拥有不同的GIoU=0.33,0.24,-0.1。当框的对齐方向更好一些时GIoU的值会更高一些。
红色框为A、B外接矩形
GIoU的实现方式如上,其中C为A和B的外接矩形。用C减去A和B的并集除以C得到一个数值,然后再用框A和B的IoU减去这个数值即可得到GIoU的值。
形象讲解部分:
在IoU的基础上找到一个“外接矩形框”C,这个全局框能够刚好把两个b-box装进去。这样对多一部分面积C_。
根据上图表示: G I O U = I O U − C − / C GIOU = IOU - C_{-}/C GIOU=IOU−C−/C
GIOU loss可以简单表示为:
即:
在两个b-box没有交集的情况下:
可以看到GIOU会**随两个框之间的距离变化而变化,**从而反应到loss上,指导预测框的移动方向。
GIoU的性质:
- GIoU和IoU一样,可以作为一种距离的衡量方式, L G I o U = 1 − G L o U L_{GIoU}=1-GLoU LGIoU=1−GLoU
- GIoU具有尺度不变性
- 对于
∀
A
,
B
\forall A,B
∀A,B ,有
G
I
o
U
(
A
,
B
)
≤
I
o
U
(
A
,
B
)
GIoU\left( A,B \right)\leq IoU\left( A,B \right)
GIoU(A,B)≤IoU(A,B) 且
0
≤
I
o
U
(
A
,
B
)
≤
1
0\leq IoU\left( A,B \right)\leq1
0≤IoU(A,B)≤1 ,因此
−
1
≤
G
I
o
U
(
A
,
B
)
≤
1
-1\leq GIoU\left( A,B \right)\leq1
−1≤GIoU(A,B)≤1 。当
A
→
B
A\rightarrow B
A→B 时,两者相同都等于1,此时 GIoU 等于1,当
A和B 不相交时, G I o U ( A , B ) = − 1 GIoU\left( A,B \right) = -1 GIoU(A,B)=−1
GIoU Loss不足
当目标框完全包裹预测框的时候,IoU和GIoU的值都一样,此时GIoU退化为IoU, 无法区分其相对位置关系;此时作者提出的DIoU因为加入了中心点归一化距离,所以可以更好地优化此类问题。
启发点:
基于IoU和GIoU存在的问题,作者提出了两个问题:
- 第一:直接最小化预测框与目标框之间的归一化距离是否可行,以达到更快的收敛速度。
- 第二:如何使回归在与目标框有重叠甚至包含时更准确、更快。
好的目标框回归损失应该考虑三个重要的几何因素:重叠面积,中心点距离,长宽比。基于问题一,作者提出了DIoU Loss,相对于GIoU Loss收敛速度更快,该Loss考虑了重叠面积和中心点距离,但没有考虑到长宽比;针对问题二,作者提出了CIoU Loss,其收敛的精度更高,以上三个因素都考虑到了。
2.2.5 DIoU Loss(Distance-IoU Loss)
本文发表在AAAI 2020,论文链接:
https://arxiv.org/pdf/1911.08287.pdf
通常基于IoU-based的loss可以定义为 L = 1 − I o U + R ( B , B g t ) L = 1- IoU + R\left( B,B^{gt} \right) L=1−IoU+R(B,Bgt),其中 R ( B , B g t ) R\left( B,B^{gt} \right) R(B,Bgt) 定义为预测框 B B B 和目标框 B g t B^{gt} Bgt 的惩罚项。
DIoU中的惩罚项表示为 R D I o U = ρ 2 ( b , b g t ) c 2 R_{DIoU} =\frac{\rho^{2}\left( b,b^{gt} \right)}{c^{2}} RDIoU=c2ρ2(b,bgt) ,其中 b 和 b g t b和b^{gt} b和bgt 分别表示 B B B和 B g t B^{gt} Bgt 的中心点, ρ ( ⋅ ) \rho\left( \cdot \right) ρ(⋅) 表示欧式距离, c c c 表示 B B B和 B g t B^{gt} Bgt 的最小外界矩形的对角线距离,如下图所示。可以将DIoU替换IoU用于NMS算法当中,也即论文提出的DIoU-NMS,实验结果表明有一定的提升。
DIoU Loss function定义为: L D I o U = 1 − I o U + ρ 2 ( b , b g t ) c 2 L_{DIoU} = 1- IoU +\frac{\rho^{2}\left( b,b^{gt} \right)}{c^{2}} LDIoU=1−IoU+c2ρ2(b,bgt)
上图中绿色框为目标框,黑色框为预测框,灰色框为两者的最小外界矩形框,d表示目标框和真实框的中心点距离,c表示最小外界矩形框的距离。
DIoU的性质:
- 尺度不变性 当两个框完全重合时, L I o U = L G I o U = L D I o U = 0 L_{IoU}=L_{GIoU}=L_{DIoU}=0 LIoU=LGIoU=LDIoU=0 , 当2个框不相交时 L D I o U → 2 L_{DIoU}\rightarrow 2 LDIoU→2
- DIoU Loss可以直接优化2个框直接的距离,比GIoU Loss收敛速度更快
- 对于目标框包裹预测框的这种情况,DIoU Loss可以收敛的很快,而GIoU Loss此时退化为IoU Loss收敛速度较慢
2.2.6 CIoU Loss(Complete-IoU Loss)
CIoU的惩罚项是在DIoU的惩罚项基础上加了一个影响因子
α
υ
\alpha\upsilon
αυ ,这个因子把预测框长宽比拟合目标框的长宽比考虑进去,CIoU Loss function的定义为:
其中
α
\alpha
α 是用于做trade-off的参数
由
α
\alpha
α 可以看出,当IOU小于0.5的时候,CIOU就变成DIOU。IOU越大,
α
\alpha
α 越接近1。
υ
\upsilon
υ 是用来衡量长宽比一致性的参数,定义为:
那么,在IOU很大的情况下,
ρ
2
(
p
,
p
g
t
)
c
2
\frac{\rho^{2}\left(\boldsymbol{p}, \boldsymbol{p}^{g t}\right)}{c^{2}}
c2ρ2(p,pgt) 变为0(中心点重合),这个时候需要调节长宽比了。DIOU在这个时候,loss的梯度也变小了(只靠IOU loss的部分在传递梯度),而CIOU可以依靠最后一项继续保持loss的梯度,使得检测器能够迅速调整好自己与GT框拥有一样的宽长比。
辅以一张对比图来说明:
第一排是GIOU,第二排是CIOU,原点处的绿色框是GT框,黑色框是anchor框,红色框是预测框。可以看到,在预测框和GT框没有交集(即IOU=0)的情况下,GIOU和CIOU都有指导检测框移动的能力。此时,GIOU从位置、宽长比、size等角度调整预测框,而CIOU是迅速拉回位置(不怎么动预测框的形状),因此CIOU可以比GIOU更快拉回预测框使其IOU>0。等IOU>0以后,CIOU迅速调整size规模。等IOU>0.5以后,CIOU的宽长比(也叫纵横比)部分开始作为梯度传播的主要部分,使得预测框和GT框有用一样的宽长比。
这是论文中作者做的一个仿真对比,可以看出,CIoU Loss的效果是最好的。
参考
[1] https://mp.weixin.qq.com/s/ZbryNlV3EnODofKs2d01RA
[2] https://blog.csdn.net/leviopku/article/details/114655338?spm=1001.2014.3001.5501
[3] https://blog.csdn.net/u013069552/article/details/113804323?utm_source=app&app_version=4.9.0&code=app_1562916241&uLinkId=usr1mkqgl919blen