IoU GIoU DIoU CIoU分析比较

本文介绍了目标检测中常用的IoU及其改进版本GIoU、DIoU和CIoU的概念与原理。IoU(交并比)是衡量预测边界框与实际边界框重合程度的指标,在非极大值抑制和计算平均精度方面发挥重要作用。GIoU解决了IoU无法区分边界框距离的问题,DIoU和CIoU进一步引入了中心点距离和长宽比因素,提高了回归训练效率。

IoU

1. IoU的简介及原理解析

IoU 的全称为交并比(Intersection over Union),通过这个名称我们大概可以猜到 IoU 的计算方法。IoU 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。
在这里插入图片描述
IOU其满足度量的四个标准:非负性、对称性、同一性及三角不等式。IOU具有尺度不变性。

2.IOU的应用有哪些?

IOU(Intersection over Union)是目标检测任务中非常常见的,IOU在目标检测中应用有:
进行NMS(非极大值抑制):当在图像中预测有多个proposals、pred bboxes时,因为预测的结果中可能存在高度冗余(即一个目标可能会被预测出多个目标检测框),因此需要过滤掉一些彼此间高度重合的结果。具体操作流程是先对各个bbox的score(分类)进行降序排序,再通过设置的IOU阈值,剔除掉与得分高的bbox有高重合度的低分框。IOU设置的越大,表示剔除难度越高,最后剩余的bbox越多,而IOU设置的越小,则表示剔除难度越小,剔除力度就越大,最后剩余的bbox就越少。
计算mAP:得到检测算法的预测结果后,需要对pred bbox与gt一起评估检测算法的性能,最常用的指标就是mAP。这时候,IOU常常被用于计算pred bbox与gt之间的重合度以度量bbox位置预测的准确度得分,然后通过设置的一系列阈值,依据分数和阈值来划分TP和FP,并计算得到一系列阈值设置下的(precision,recall)对,进而计算出mAP。
IOU经过改良后,也可以用来计算loss,通过反传梯度的方式优化网络参数。

GIoU

1.Iou的缺陷

IOU的主要缺点是,如果A和B的交集为空,无法度量A和B是离得很近还是离得非常远。

2.GIoU的简介及原理解析

论文:https://arxiv.org/abs/1902.09630
代码:https://github.com/generalized-iou/g-darknet
在这里插入图片描述
C是A和B的最小凸包。凸包:形象的解释,就是在桌面上钉上很多钉子,如果用橡皮筋将所有钉子在外围包起来,那么这个橡皮筋的围成的就是一个凸包。
在这里插入图片描述

3.GIoU的性质

在这里插入图片描述
A和B完全不重叠时,IoU为0,但如果两者离得越远,GIoU就越小,克服了IoU作为损失函数时的缺点。那么最小化GIoU就等价于迫使预测框接近于真实框,从而提高了预测的准确度。

DIoU & CIoU

论文:https://arxiv.org/pdf/1911.08287.pdf
代码:https://github.com/Zzh-tju/DIoU

1.IoU和GIoU的缺点

IOU loss无法处理预测框和真实框不交叉的情况,GIOU loss收敛速度慢。因此,作者提出了两个问题:

第一,是否应该最小化预测框和真实框中心点之间的距离以加速收敛?
第二,当预测框和真实框存在重叠甚至存在包含关系时,如果进行高效准确的回归训练?

2.DIoU的简介及原理解析

在这里插入图片描述
在这里插入图片描述
基于作者提出的第一个问题,作者提出了DIoU,即Distance-IOU。使用的惩罚项为预测框和真实框中心点之间的欧式距离除以两个框闭包框的对角线长度的平方。即:
在这里插入图片描述
因此,总的D-IOU损失为:
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.CIoU的简介及原理解析

CIoU对应于作者提出的第二个问题,一个好的损失函数不仅应该考虑中心点的距离,而且应该考虑两个框的重叠面积和宽高比等因素。IoU loss考虑了重叠面积、DIoU增加了中心点距离,另一个CIoU又考虑了两个框的长宽比。
在这里插入图片描述
在这里插入图片描述

### 不同类型的IoU指标定义与区别 #### 1. **交并比 (Intersection over Union, IoU)** IoU 是一种用于衡量两个边界框重叠程度的标准方法。其计算方式为预测框和真实框的交集面积除以它们的并集面积[^1]。 公式如下: \[ IoU = \frac{A_{pred} \cap A_{gt}}{A_{pred} \cup A_{gt}} \] 其中 \(A_{pred}\) 表示预测框区域,\(A_{gt}\) 表示真实框区域。 --- #### 2. **广义交并比 (Generalized Intersection over Union, GIoU)** GIoU 扩展了传统 IoU 的概念,在处理不相交的情况时表现更好。它通过引入最小闭包的概念来改进 IoU 计算。 公式如下: \[ GIoU = IoU - \frac{C - (A_{pred} \cup A_{gt})}{C} \] 这里 \(C\) 是能够覆盖 \(A_{pred}\) 和 \(A_{gt}\) 的最小矩形区域。 --- #### 3. **距离交并比 (Distance-IoU Loss, DIoU)** DIoU 进一步优化了目标检测中的定位精度问题,除了考虑重叠部分外,还加入了中心点之间的欧几里得距离以及包围盒的比例关系。 公式如下: \[ DIoU = IoU - \frac{\rho^2(B,B^{GT})}{c^2} \] 其中 \(\rho^2(B,B^{GT})\) 是预测框和真实框中心点的距离平方,而 \(c\) 则是最小封闭矩形对角线长度。 --- #### 4. **完全交并比 (Complete-IoU Loss, CIoU)** CIoU 继承了 DIoU 的优点,并额外加入了一个比例因子项,用来调整宽高比的影响,从而进一步提升回归性能。 公式如下: \[ CIoU = IoU - \left( \frac{\rho^2(B,B^{GT})}{c^2} + v \cdot \alpha(v)\right) \] 这里的 \(v=\frac{(ar)^2-(ar^{*})^2}{(ar)^2+(ar^{*})^2}\),表示宽高比差异;\(\alpha(v)=\frac{v}{(1-\text{IoU}+\epsilon)}\) 控制权重平衡。 --- #### 5. **扩展交并比 (Enhanced-IoU Loss, EIoU)** EIou 主要针对旋转框设计,不仅关注位置偏差,也注重角度误差带来的影响。 具体实现细节可参考相关论文或开源项目代码。 --- #### 6. **形状交并比 (Shape-IoU, SIoU)** SIoU 更加专注于边界框的方向性和几何特性匹配度评估,适用于复杂场景下的对象检测任务。 --- #### 7. **加权交并比 (Weighted-IoU, WIoU)** WIoU 考虑到不同类别间的重要性可能有所不同,因此引入权重机制使得某些类别的误检代价更高。 --- #### 8. **多视角方向交并比 (Multi-Perspective Directional IoU, MPDIoU)** MPDIoU 结合多个视角的信息综合判断目标的位置及姿态信息,适合于三维空间内的物体检测应用场合。 --- #### 9. **形态学交并比 (Morphological Perceptual Distance IoU, ShapeIoU)** 此版本强调的是两幅图像之间像素级相似性的测度而非单纯基于边界的比较。 --- ```python import torch def iou_loss(pred_boxes, gt_boxes): """Basic IoU loss implementation.""" # Compute areas of pred and ground truth boxes. area_pred = ... area_gt = ... # Calculate intersection areas between preds & gts. inter_area = ... union_area = area_pred + area_gt - inter_area return 1 - (inter_area / union_area) # Example usage with PyTorch tensors. if __name__ == "__main__": pred = torch.tensor([[...]]) # Predictions as tensor. target = torch.tensor([[...]]) # Ground truths as tensor. loss_value = iou_loss(pred, target) print(f"IoU Loss Value: {loss_value.item()}") ``` 上述代码片段展示了如何利用 PyTorch 实现基本形式的 IoU 损失函数[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值