点击我爱计算机视觉标星,更快获取CVML新技术
本文来自知乎“深度学习前沿”专栏,52CV获作者Slumbers授权转载。
https://zhuanlan.zhihu.com/p/57992040
本文是对CVPR2019论文Generalized Interp over Union: A Metric and A Loss for Bounding Box Regression 的解读,通过对Loss的修改提升检测任务的效果,觉得思路很棒。
该文作者来自斯坦福大学与澳大利亚阿德莱德大学。
IoU是检测任务中最常用的指标,由于IoU是比值的概念,对目标物体的scale是不敏感的。然而检测任务中的BBox的回归损失(MSE loss, l1-smooth loss等)优化和IoU优化不是完全等价的(见下图)。
而且 Ln 范数对物体的scale也比较敏感。这篇论文提出可以直接把IoU设为回归的loss。然而有个问题是IoU无法直接优化没有重叠的部分。为了解决这个问题这篇paper提出了GIoU的思想~
要将IoU设计为损失,主要需要解决两个问题:
预测值和Ground truth没有重叠的话,IoU始终为0且无法优化
IoU无法辨别不同方式的对齐,比如方向不一致等。
GIoU
所以论文中提出的新GIoU是怎么设计的呢:
假如现在有两个任意性质 A,B,我们找到一个最小的封闭形状C,让C可以把A,B包含在内,然后我们计算C中没有覆盖A和B的面积占C总面积的比值,然后用A与B的IoU减去这个比值:
GIoU有如下性质:
与IoU类似,GIoU也可以作为一个距离,loss可以用
来计算
同原始IoU类似,GIoU对物体的大小不敏感
GIoU总是小于等于IoU,对于IoU,有
GIoU则是
在两个形状完全重合时,有
由于GIoU引入了包含A,B两个形状的C,所以当A,B不重合时,依然可以进行优化。
总之就是保留了IoU的原始性质同时弱化了它的缺点。于是论文认为可以将其作为IoU的替代。
GIoU作为BBox回归的损失
那么具体一点,如何计算损失呢?我们以2D detecation为例:
假设我们现在有预测的Bbox和groud truth的Bbox的坐标,分别记为
注意我们规定对于预测的BBox来说,有
主要是为了方便之后点的对应关系。
作者做了一系列的实验(针对分割任务和分类任务有一定loss的调整设计,不过论文中没有详细给出)结果是IoU loss可以轻微提升使用MSE作为loss的表现,而GIoU的提升幅度更大,这个结论在YOLO算法和faster R-CNN系列上都是成立的:
项目主页:
https://giou.stanford.edu/
代码实现:
https://github.com/generalized-iou
加群交流
关注目标检测技术,欢迎加入52CV-目标检测交流群一起学习,扫码添加52CV君拉你入群,
(请务必注明:目标检测)
习惯在QQ交流的童鞋,可以加52CV官方QQ群:928997753。
(不会时时在线,如果没能及时通过验证还请见谅)
更多CV技术干货请浏览:
长按关注我爱计算机视觉