目标检测中的回归损失函数系列三:GIoU Loss

出自论文:https://arxiv.org/abs/1902.09630
代码:https://github.com/generalized-iou/g-darknet

目标检测中的回归损失函数系列二:IoU Loss已经讲过IoU Loss,GIoU是对IoU的改进,我们再看一次下面这张图:
在这里插入图片描述
IoU Loss = 1-IoU,其中IoU可以由下计算得到:
在这里插入图片描述
A,B是预测框和真实框,对应上图中的绿色框和黑色框。
综上可以看出两个问题:

  • 预测框bbox和ground truth bbox如果没有重叠,IOU就始终为0并且无法优化。也就是说损失函数失去了可导的性质。
  • IOU无法分辨不同方式的对齐,例如方向不一致等,如下图所示,可以看到三种方式拥有相同的IOU值,但空间却完全不同。

GIoU Loss基于此提出,它的计算很简单,对于两个框 A,B。先计算出它们的最小凸集(包围A、B的最小包围框)C,其次结合C这个最小凸集,计算出GIOU,定义如下:

在这里插入图片描述
同样的,与IoU Loss一般,GIoU Loss = 1 - GIoU。
论文中给出的计算GIoU算法流程如下:
在这里插入图片描述
当A、B两个框重合时,即
在这里插入图片描述
由公式算出GIoU = IoU = 1
当两个框没有重叠时,IoU=0
在这里插入图片描述
A,B相隔无穷大时,GIoU = -1,所以-1 <= GIoU <= 1

很显然,当两个框不重合时,IoU始终为0,不论A、B相隔多远,但是对于GIoU来说,A,B不重合度越高(离的越远),GIoU越趋近于-1。
因为由上述公式推导看到,当IoU = 0的时候。A,B的并集值不变,最小化GIoU Loss就是要最大化GIoU,最大化GIoU就是要最小化 C ,最小化C就会促成两个框不断靠近。

IoU Loss 和 GIoU Loss的算法流程如下:
在这里插入图片描述

看看它们的效果对比:
在这里插入图片描述
三种情况IoU都相等,但看得出来他们的重合度是不一样的,左边的图回归的效果最好,右边的最差。使用GIoU计算出来也是左边 > 中间 > 右边 = 0.33>0.24>-0.1

综上可以知道,与IoU只关注重叠区域不同,GIoU不仅关注重叠区域,还关注其他的非重合区域,能更好的反映两者的重合度

参考
https://mp.weixin.qq.com/s/CNVgrIkv8hVyLRhMuQ40EA
https://zhuanlan.zhihu.com/p/63389116
https://zhuanlan.zhihu.com/p/94799295

原创文章 96 获赞 24 访问量 3万+

猜你喜欢

转载自blog.csdn.net/c2250645962/article/details/106057958
今日推荐