结论:提出了新的评价指标GIoU——广义交并比,以及以GIoU为基础的GIoU Loss
Motivation: IoU对于没有交集的两个box始终=0,这样对应紧挨着临近的和距离无限远的两种情况就没有区别,同时计算Loss时没有交集就没有梯度回传,于是希望能同时考虑到没有交集时的情况
公式:
GIoU=IoU-(最小外接矩形面积-并集面积)/最小外接矩形面积(1)
GIoU Loss = 1 - GIoU(2)
IoU Loss = 1 - IoU(3)
本质:IoU Loss补充一个元素弥补IoU=0时的距离无法计算问题
缺点:
(1)IoU=0时,优化方向不是特别明确,导致收敛较慢
(2)当两个box呈包含关系时,GIoU退化为IoU,此时具备IoU loss的缺点,即呈包含关系后小距离移动并不会降低loss,导致收敛困难
可以看到
GIoU Loss其实就是IoU loss加上了(1)的后面那部分,用来判断两框外面的面积占总面积的多少,其实也就是把两框外面的面积加入损失
当IoU=0时,GIoU loss变成了高亮部分的样子,2-U/A,而此时要最小化Loss即为最大化U/A,U是两个框的并集,
而假设外接框已经最小了(指两个box的外边界已经确定了),同时GT的面积也是一个定值,那么要最大化U即最大化A^p,在外边界固定的情况下,只能督促predict box与gt存在交集,于是就使得结果向好的方向变化
(有一个问题,凭什么外边界是固定的呢?也可能外边界也跟这儿扩展啊)
下面是我的看法:
如图所示,IoU=0,而
L
G
I
o
U
=
2
−
U
/
A
c
L_{GIoU}=2-U/A^c
LGIoU=2−U/Ac,
U
=
A
p
+
A
g
U=A^p+A^g
U=Ap+Ag,
A
c
=
A
p
+
A
g
+
A
l
A^c=A^p+A^g+A^l
Ac=Ap+Ag+Al,这里
A
l
A^l
Al代表外接框减去两个box后剩下的面积=>
a
r
g
m
i
n
(
L
G
I
o
U
)
=
a
r
g
m
i
n
(
2
−
A
p
+
A
g
A
p
+
A
g
+
A
l
)
=
a
r
g
m
a
x
(
A
p
+
A
g
A
p
+
A
g
+
A
l
)
argmin(L_{GIoU})=argmin(2-\frac{A^p+A^g}{A^p+A^g+A^l})=argmax(\frac{A^p+A^g}{A^p+A^g+A^l})
argmin(LGIoU)=argmin(2−Ap+Ag+AlAp+Ag)=argmax(Ap+Ag+AlAp+Ag),可见,当IoU=0的时候,优化的方向是是剩余的面积更小,A^p增大,这有几种方向,一是predict box向gt靠拢,这样外接框就变小了,二是predict的左上角不动,右下角向gt方向扩展,三是左上角不动,右下角向下或者向右扩展,四是边移动边扩展,但最终收敛时应该还是两框重合,不过“三”的存在导致收敛可能会慢一点。
所以这是GIoU的一个缺点:没有明确优化的具体方向。有人建议前期用MSE快速收敛,等框稳定之后再用GIoU
这里其实有一个问题,GIoU相对于IoU的优点是当IoU=0的时候,能为anchor提供优化方向,可是这种anchor真的多吗?对于熟悉的FCOS来说,如果anchor中心点不在gt内部就不会被选为positive sample,既然中心点在其内部那IoU必然!=0,对于anchor-based,是按IoU排序来选择正样本的,IoU都=0了还会被选为正样本吗?
所以这个GIoU起作用的主要是在inference阶段?