Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression
一、动机:
在目标检测任务中,回归loss相同的情况下,IoU却可能大不相同。
如下图(a)所示:三张图有一样的L2距离,但是IoU值却完全不同。坐标表示方法为(x1,y1,x2,y2)。
图(b)为L1距离。坐标表示方法为(x,y,w,h),x,y为中心点坐标。
IoU有尺度不变性的优点,但是将其作为损失函数,由于某些方面的问题,无法直接使用。
二、IoU的优点:
- IoU作为距离时(比如: L I o U = 1 − I o U L_{IoU} =1-IoU LIoU=1−IoU),是一个度量。因为它包含了作为度量的所有属性,比如:非负性,不确定性对称性和三角不等性。
- IoU有尺度不变性,这意味着任意两个方框A和B的相似性与他们的空间尺度的无关。
三、IoU同时作为度量和损失函数时,存在两个问题:
- 如果两个目标没有重叠,IoU将会为0,并且不会反应两个目标之间的距离,在这种无重叠目标的情况下,如果IoU用作于损失函数,梯度为0,无法优化。
- IoU无法区分两个对象之间不同的对齐方式。更确切地讲,不同方向上有相同交叉级别的两个重叠对象的IoU会完全相等。
四、本文的主要贡献:
- 将GIoU作为比较任意两个边框的度量。
- 使用GIoU作为两个轴对齐矩形的的损失,并提供了解析解。
- 把GIoU损失加入到最流行的目标检测算法中(例如:Faster R-CNN,Mask R-CNN和YOLO v3),并且展示了他们在标准目标检测基准中提高的性能。
五、GIoU:
对于任意的两个A、B框,首先找到一个能够包住它们的最小方框C。然后计算C \ (A ∪ B) 的面积与C的面积的比值,注:C \ (A ∪ B) 的面积为C的面积减去A∪B的面积。再用A、B的IoU值减去这个比值得到GIoU。
GIoU作为度量时的性能:
- GIoU作为距离时, L G I o U = 1 − G I o U L_{GIoU} =1-GIoU LGIoU=1−GIoU,非负性,不确定性,对称性以及三角不等性。
- 尺度不变性。
- GIoU始终是IoU的下限,即GIoU(A,B) <= IoU(A,B)。当A,B形状相似,并且接近时, l i m A → B G I o U ( A , B ) = I o U ( A , B ) lim_{A→B}GIoU(A,B) = IoU(A,B) limA→BGIoU(A,B)=IoU(A,B).
- -1 ≤ GIoU(A,B) ≤ 1。A,B完全重合时,GIoU(A,B) = IoU(A,B) = 1. (A∪B)/C→0 时,也就是A∪B的面积相对于C可很小很小时,GIoU收敛于-1.
- GIoU考虑到了 IoU 没有考虑到的非重叠区域,能够反应出 A,B 重叠的方式。
GIoU:
IoU和GIoU做为边框损失函数时的算法流程:
B p B^p Bp:预测框 B g B^g Bg:ground truth B c B^c Bc:最小包围框
A p A^p Ap:预测框面积 A g A^g Ag:ground truth面积
- 输入预测框的 ( x 1 , y 1 , x 2 , y 2 ) 值 (x_{1},y_{1},x_{2},y_{2})值 (x1,y1,x2,y2)值和 ground truth 的 ( X 1 , Y 1 , X 2 , Y 2 ) (X_{1},Y_{1},X_{2},Y_{2}) (X1,Y1,X2,Y2)值。
- 将预测值排序:使得 x 2 > x 1 , y 2 > y 1 x_{2}>x_{1},y_{2}>y_{1} x2>x1,y2>y1。
- 分别计算预测框的面积 A p A^p Ap和 ground truth 的面积 A g A^g Ag。
- 计算两者交集的面积 I .
- 找出最小包围框 ( x c 1 , y c 1 , x c 2 , y c 2 ) (x_{c1},y_{c1},x_{c2},y_{c2}) (xc1,yc1,xc2,yc2).
- 计算IoU,GIoU
- 计算 L I o U L_{IoU} LIoU, L G I o U L_{GIoU} LGIoU
六、实验结果
所有对比实验中(网络:Faster R-CNN,Mask R-CNN and YOLOv3 / 数据集:PASCAL VOC, MS COCO),加过IoU损失和GIoU损失的mAP都在原来的基础得到了提升,在此不一一分析。下图为检测效果图,从左往右分别为 L G I o U L_{GIoU} LGIoU, L I o U L_{IoU} LIoU ,网络原来的损失函数。实线为ground truth,虚线为预测框。
今天的文章GIoU详解_golang gin框架分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/71936.html