原作者:Zhaohui Zheng等 笔记整理:ganyongdong 2021.02.05
论文:https://arxiv.org/pdf/1911.08287.pdf
代码:https://github.com/Zzh-tju/DIoU
1.摘要
- IoU损失和GIoU损失都存在收敛速度慢和回归不准确的问题
- 提出DIoU,结合了预测框和真实框之间的标准化距离,加快训练的收敛速度
- 提出CIoU,结合了重叠面积、中心点距离和纵横比,进一步提高收敛速度和检测精度
- 将DIoU损失和CIoU损失应用到当前流行的2D检测器,显著提高性能
- 将DIoU用作NMS标准,进一步提高检测器性能
2.存在的问题
- 之前对回归损失优化的情况:
- 直接回归bbox对角点,L1或L2损失最优不代表IoU指标最优;
- 于是提出IoU损失,直接对IoU进行优化,但是存在预测框与真实框不相交的时候IoU等于0的情况,无法优化;
- 于是进一步提出广义IoU(GIoU)损失,在预测框与真实框不相交的时候也能继续优化;
- 文章提出,IoU损失和GIoU损失都存在收敛速度慢和回归不准确的问题
-
当预测框被真实框完全包围的时候,IoU和GIoU都不变化,优化困难
DIoU GIoU IoU对比 如上图所示,红色预测框被绿色真实框完全包围时,不同情况下,IoU和GIoU都是相同的,但是用DIoU就能表示出第三个图预测位置最好
-
3.IoU和GIoU及loss
- IoU和
- GIoU和
是
和
的最小包围矩形
4.DIoU loss
-
文章提出的DIoUU损失
- 通用损失表示如下,其中
是惩罚项
- DIoU loss的惩罚项
- DIoU loss表达式:
- 可以看出,DIoU loss的惩罚项直接最小化两个中心点之间的距离。
- 通用损失表示如下,其中
-
DIoU和GIoU对比分析
diou giou示意图对比.png- 上图黑色是anchor,绿色是真实框,上一行三幅图中,蓝色是GIoU预测框随着迭代演变情况,下一行三幅图中,红色是DIoU预测框随着迭代演变情况。
- 从图中可以看出,
和
不相交情况下,GIoU倾向于先把预测框变大,使
减小,变大过程直到
和
出现重叠,然后才是形状缩小,向着真实框演变,从这里就能分析出GIoU loss收敛慢的原因。
- 而DIoU loss下,红色框是优先以中心距离为导向,让
和
的中心点靠近,然后形状变化向着真实框演变。所以DIoU loss收敛更快。
- 另一方面,当真实框完全包含预测框的时候,GIoU loss无法继续优化,而DIoU loss凭借中心点距离存在可以继续优化。
5.CIoU loss
- 作者总结提出,一个良好的边框回归损失应该考虑到三个重要几何因素:重叠面积、中心点距离和纵横比
- IoU和GIoU损失注重重叠面积,文中的DIoU增加了中心点距离因素,因此文章进一步提出增加纵横比因素的CIoU(完整IoU)
- 文章提出的CIoU损失
- CIoU loss的惩罚项
- 其中
是权重因子,
是纵横比
- CIoU loss表达式:
- 其中
- CIoU loss的惩罚项
6.DIoU用于NMS
- 原始NMS中,IoU度量用于抑制冗余的检测框,IoU小于一定阈值的都删除,其中重叠区域是唯一因素;
- 对于遮挡等情况,经常会错误抑制,降低检测器性能;
- 提出将DIoU作为NMS准则,则不仅考虑到重叠区域,还考虑到了两个box中心点距离
- DIoU-NMS:
- 当
时, 视为有效预测框,按得分进行排序。
- 其中
时预测框,
是第i个真实框,
是阈值。
- 当
7.实验
-
DIoU yolov3
diou yolov3.png -
DIoU SSD
diou 实验0.png -
DIoU Faster R-CNN
DIoU 实验1.png 性能都提升显著
注意到CIoU在小物体上的性能都有所下降,可能由于长宽比对小物体的检测贡献不大,因为此时中心点比长宽比重要。
-
DIoU-NMS实验
diou diou-nms.png
8.对自己的启发
- 文章延续回归损失优化的工作,进一步指出IoU和GIoU都共有的不足,收敛速度慢和框包含情况下回归不准确的问题。
- 提出的DIoU和CIoU是通用trick