本文主要是介绍YOLOv9改进策略【损失函数篇】| 利用MPDIoU,加强边界框回归的准确性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、背景
- 目标检测和实例分割中的关键问题:
- 现有的大多数边界框回归损失函数在不同的预测结果下可能具有相同的值,这降低了边界框回归的收敛速度和准确性。
- 现有损失函数的不足:
- 现有的基于 ℓ n \ell_n ℓn范数的损失函数简单但对各种尺度敏感。
- 当预测框与真实框具有相同的宽高比但不同的宽度和高度值时,现有损失函数可能会存在问题,限制了收敛速度和准确性。
文章目录
- 一、背景
- 二、原理
- 2.1 IoU计算原理
- 2.2. 基于最小点距离的IoU度量
- 2.3. 作为边界框回归损失函数
- 2.4 MPDIoU的计算公式
- 三、添加步骤
- 3.1 utils\metrics.py
- 3.2 修改utils\loss_tal_dual.py
- 四、总结
MPDIoU(Intersection over Union with Minimum Points Distance)是一种用于高效且准确的边界框回归的损失函数。
二、原理
2.1 IoU计算原理
IoU(Intersection over Union)即交并比,用于衡量预测边界框和真实边界框的重合程度。
1. 交集计算:
- 首先确定预测边界框和真实边界框的交集区域。
- 对于两个以左上角和右下角坐标表示的矩形框,分别找出它们在横坐标和纵坐标方向上的重叠区间。
- 如果两个矩形框在横坐标和纵坐标方向上都有重叠部分,那么这个重叠区域就是一个矩形,其面积就是交集的大小。
2. 并集计算:
- 计算预测边界框和真实边界框的并集区域。
- 并集的大小等于两个矩形框各自的面积之和减去它们的交集面积。
3. 比值计算:
- 最后,IoU的值就是交集面积与并集面积的比值。
2.2. 基于最小点距离的IoU度量
- 原论文中受水平矩形的几何特性启发,设计了一种基于最小点距离的新型
IoU度量MPDIoU,直接最小化预测边界框和真实边界框的左上角和右下角点之间的距离。 MPDIoU的计算通过两个任意凸形状 A A A和 B B B,用其左上角和右下角点的坐标来表示,通过计算两个框的交集与并集之比,再减去左上角和右下角两点距离的归一化值来得到MPDIoU。
2.3. 作为边界框回归损失函数
- 在训练阶段,通过最小化基于
MPDIoU的损失函数 L M P D I o U = 1 − M P D I o U L_{MPDIoU}=1-MPDIoU LMPDIoU=1−MPDIoU,使模型预测的每个边界框 B p r d B_{prd} Bprd接近其真实框 B g t B_{gt} Bgt。 - 现有损失函数中的所有因素(如非重叠区域、中心点距离、宽高偏差等)都可以通过左上角和右下角两点的坐标确定,这意味着提出的 L M P D I o U L_{MPDIoU} LMPDIoU不仅考虑了这些因素,还简化了计算过程。

2.4 MPDIoU的计算公式
-
MPDIoU的计算公式:- M P D I o U = A ∩ B A ∪ B − d 1 2 w 2 + h 2 − d 2 2 w 2 + h 2 MPDIoU=\frac{A\cap B}{A\cup B}-\frac{d_{1}^{2}}{w^{2}+h^{2}}-\frac{d_{2}^{2}}{w^{2}+h^{2}} MPDIoU=A∪BA∩B−w2+h2d12−w2+h2d22
- 其中 A A A和 B B B是两个任意凸形状, ( x A 1 , y A 1 ) (x_{A1}, y_{A1}) (xA1,yA1), ( x A 2 , y A 2 ) (x_{A2}, y_{A2}) (x