简要介绍

介绍各种 IoU

好嘞 👍,我给你系统梳理一下 IoU 及其改进版(GIoU, DIoU, CIoU, EIoU, SIoU…),并说明目前在目标检测里常用哪几个。


🔹 1. IoU (Intersection over Union)

最基础的指标:
[
IoU = \frac{|B_p \cap B_{gt}|}{|B_p \cup B_{gt}|}
]

  • 优点:直观、简单。

  • 缺点:如果没有重叠,梯度为 0,训练信号消失。

👉 所以必须改进。


🔹 2. GIoU (Generalized IoU, 2019 CVPR)

公式:
[
GIoU = IoU - \frac{|C \setminus (B_p \cup B_{gt})|}{|C|}
]
其中 (C) 是两框的最小外接矩形。

  • 优点:无重叠时也有梯度。

  • 缺点:收敛速度不够快,优化不够精准。


🔹 3. DIoU (Distance IoU, 2020 AAAI)

在 IoU 基础上加上中心点距离:
[
DIoU = IoU - \frac{\rho^2(b_p, b_{gt})}{c^2}
]

  • (\rho) = 两框中心点的欧式距离

  • (c) = 外接矩形对角线长度

  • 优点:强制预测框中心点靠近真实框中心,收敛更快。

  • 缺点:只考虑中心距离,没考虑长宽比例。


🔹 4. CIoU (Complete IoU, 2020 AAAI)

在 DIoU 上再加上宽高比约束:
[
CIoU = IoU - \left(\frac{\rho^2(b_p, b_{gt})}{c^2} + \alpha v \right)
]
其中:

  • (v) 衡量宽高比差异

  • (\alpha) 是调节系数

  • 优点:同时考虑 IoU、中心距离、宽高比,更完整。

  • 缺点:计算稍复杂,但在大部分检测任务里性能更好。


🔹 5. EIoU (Efficient IoU, 2021)

进一步把宽度差和高度差单独拿出来:
[
EIoU = IoU - \frac{\rho^2(b_p, b_{gt})}{c^2} - \frac{(w_p-w_{gt})^2}{w_c^2} - \frac{(h_p-h_{gt})^2}{h_c^2}
]

  • 优点:对宽高的约束更直接。

  • 缺点:用得没 CIoU 普及。


🔹 6. SIoU (Scylla IoU, 2022)

加入了角度和几何约束:

  • 考虑中心点距离

  • 考虑宽高比例

  • 加入角度惩罚

  • 优点:理论上收敛更快。

  • 缺点:应用不算特别普及。


📌 哪些最常用?

在实际工程里:

  • IoU:用来衡量检测结果好坏(mAP 等指标必须用它)。

  • GIoU:早期有过一阵子热度,但现在用得不多。

  • DIoU / CIoU:目前是 最常用的训练损失(尤其是 CIoU,很多目标检测器默认用它,比如 YOLOv5/YOLOv7)。

  • EIoU / SIoU:新方法,研究多,但工业界普及度一般。

👉 总结

  • 评估阶段:都用 IoU(因为指标统一)。

  • 训练阶段:最常用 CIoU Loss,其次是 DIoU Loss

image.png