Inner-IoU: More Effective Intersection over Union Loss with Auxiliary Bounding Box
目录
B. Inner-IoU Loss (Inner-IoU 损失)
摘要
随着检测器的快速发展,边界框回归(BBR)损失函数也在不断更新和优化 。然而,现有的基于IoU的边界框回归仍侧重于通过添加新的损失项来加速收敛,忽略了IoU损失项本身的局限性 。尽管从理论上讲,IoU损失能够有效描述边界框回归的状态,但在实际应用中,它无法根据不同的检测器和检测任务进行自我调节,且不具备较强的泛化能力 。基于上述原因,我们首先对边界框回归模型进行了分析,并得出结论:区分不同的回归样本并使用不同尺度的辅助边界框来计算损失,可以有效加速边界框回归过程 。对于高IoU样本,使用较小的辅助边界框计算损失可以加速收敛;而较大的辅助边界框则适用于低IoU样本 。随后,我们提出了Inner-IoU损失,该损失通过辅助边界框来计算IoU损失 。针对不同的数据集和检测器,我们引入了一个缩放因子 ratio,以控制用于计算损失的辅助边界框的尺度大小 。最后,将Inner-IoU集成到现有的基于IoU的损失函数中进行模拟和对比实验 。实验结果表明,应用本文提出的方法能够进一步提升检测性能,验证了Inner-IoU损失的有效性和泛化能力 。代码可从 https://github.com/malagoutou/Inner-IoU 获取 。
I. 引言
目标检测是计算机视觉中的一项基础任务,包括目标分类与定位 。边界框回归损失函数是检测定位分支的重要组成部分,检测器的定位精度在很大程度上取决于边界框回归,这在当前的检测器中发挥着不可替代的作用 。在边界框回归(BBR)中,IoU损失 能够准确描述预测边界框与真实(GT)框之间的匹配程度,确保模型在训练过程中能够学习到目标的未知位置信息 。IoU的定义如下:
其中 和
分别表示预测框和真实框 。在定义了IoU之后,其相应的损失可以定义如下 :
目前,基于IoU的损失函数已逐渐成为主流并占据主导地位。现有的大多数方法都是基于IoU并进一步添加新的损失项。例如,引入GIoU是为了解决当锚框与真实框重叠面积为0时的梯度消失问题。GIoU损失函数定义如下,其中 是覆盖
和
的最小包围框:
与GIoU相比,DIoU损失函数提出在IoU的基础上增加一个新的距离损失项,主要是通过最小化两个边界框中心点之间的归一化距离。这使其能够实现更快的收敛和更好的性能。其表达式如下:
其中 和
分别为
和
的中心点,
表示欧氏距离,
是最小包围框的对角线长度。CIoU损失进一步考虑了形状损失,在DIoU损失的基础上增加了形状损失项。其表达式如下:
其中 是一个正的权衡参数:
其中 用于衡量宽高比的一致性:
和
表示目标框的宽度和高度,
和
表示预测框的宽度和高度。当目标框和预测框的宽高比相同时,CIoU将退化为DIoU。
与DIoU相比,EIoU损失直接最小化了目标框和锚框的宽度 、高度
以及中心位置
的归一化差异。EIoU损失函数定义如下:
其中 和
是覆盖目标框和预测框的最小包围框的宽度和高度。
最近提出的SIoU损失在前人研究的基础上,考虑了锚框与真实框之间的夹角对边界框回归的影响,并将角度损失引入到边界框回归损失函数中。其定义如下:
角度损失表示真实框与锚框中心点连线之间的最小夹角:
该项旨在将锚框拉向最近的坐标轴,并根据角度的变化优先考虑向X轴还是Y轴靠拢。当角度值为 45° 时,;当中心点在X轴或Y轴上对齐时,
。在考虑角度成本后,距离损失被重新定义如下:
形状损失主要描述真实框与锚框之间的尺寸差异,定义如下:
的值决定了形状成本的重要性。该参数的取值范围为2到6。
尽管上述边界框回归损失函数通过向IoU损失函数添加新的几何约束,能够有效加速收敛并提高检测性能,但它们并未考虑IoU损失本身的合理性,而这在很大程度上决定了检测结果的质量。为了弥补这一缺陷,我们提出了Inner-IoU损失,该损失通过利用辅助边界框来计算损失以加速回归,而无需添加任何新的损失项。
本文的主要贡献如下:
-
我们分析了边界框回归的过程和规律,并基于边界框回归问题的固有特性,提出在模型训练期间使用较小的辅助边界框来计算损失,从而对高IoU样本的回归产生增益效果,而低IoU样本则产生相反的效果。
-
我们提出了Inner-IoU损失,该损失利用缩放因子 ratio 来控制并生成不同尺度的辅助边界框以计算损失。将其应用于现有的基于IoU的损失函数中可以获得更快且更有效的回归结果。
-
我们进行了一系列模拟和对比实验,实验结果表明,我们方法的检测性能和泛化能力均优于现有方法,并在不同像素大小的数据集上达到了最先进的水平。
II.相关工作
A. 目标检测
对于目标检测,根据是否生成锚框,可以将其分为基于锚框(anchor-based)和无锚框(anchor-free)的检测算法 。基于锚框的算法包括 Faster R-CNN、YOLO (You Only Look Once) 系列、SSD (Single Shot MultiBox Detector) 和 RetinaNet;无锚框的检测算法包括 CornerNet、CenterNet和 FCOS (Fully Convolutional One Stage Object Detection)。在这些目标检测算法中,边界框回归损失函数起着至关重要的作用,它使检测器能够准确地定位目标,并提高了检测算法的检测精度 。
B. 边界框回归损失
最初,有人提出将 范数损失作为边界框回归损失,但它对边界框尺度的变化非常敏感 。随后,为了弥补这一不足,有人提出用 IoU 损失来替代
范数损失;与
范数损失相比,IoU 损失的预测框回归结果更加准确 。然而,IoU 损失无法解决非重叠样本的梯度消失问题,而 GIoU 损失通过引入最小包围框弥补了这一缺陷 。DIoU 损失增加了距离约束,将预测框与 GT 框中心点之间的归一化距离作为新的损失项加入到 IoU 损失中,从而提高了收敛速度和定位精度 。CIoU 损失进一步考虑了形状相似性对边界框回归的影响,并在 DIoU 损失的基础上增加了形状损失项 。EIoU 损失使用焦点损失(focal loss)来解决训练过程中的样本不平衡问题,并重新定义了形状损失,进一步提升了检测效果 。最新的 SIoU损失将预测框与 GT 框之间的夹角作为新的约束项加入到边界框回归损失中,实现了最快的收敛结果 。与上述算法相比,我们提出的 Inner-IoU 损失能够进一步提高收敛速度。
III.方法
A. 边界框回归模式分析
IoU损失函数在计算机视觉任务中具有广泛的应用 。在边界框回归的过程中,计算回归损失不仅可以评估回归状态,还可以进行梯度传播以加速收敛 。在此,我们讨论了回归过程中IoU变化与边界框尺寸之间的关系,分析了边界框回归问题的固有特征,并阐明了本文所提方法的合理性 。

如图3所示,图3a展示了IoU-偏差(IoU Deviation)曲线,其横轴和纵轴分别代表偏差和IoU值 。三条不同颜色的曲线对应不同尺度边界框的IoU变化曲线 。A、B、C、D和E对应锚框(anchors)与真实框(GT框)的5种不同位置关系,其中红色边界框表示长宽均为10的锚框,相应的GT框由黑色边界框表示 。
图3b展示了ABS(Grad)-偏差曲线 。与图3a不同,图3b中的纵轴代表IoU梯度的绝对值 。我们假设实际边界框的大小为10,并使用大小为8和12的边界框作为辅助边界框 。在图3中,A和E对应低IoU样本的回归状态,而B和D对应高IoU样本的回归状态 。
从图3中可以得出以下结论 :
- 由于辅助边界框与实际边界框之间的尺度差异,回归过程中IoU值的变化趋势与实际边界框的IoU值变化趋势保持一致,这能够反映实际边界框回归结果的质量 。
- 对于高IoU样本,较小尺度辅助边界框的IoU梯度绝对值大于实际边界框的IoU梯度绝对值 。
-
对于低IoU样本,较大尺度辅助边界框的IoU梯度绝对值大于实际边界框的IoU梯度绝对值 。
基于上述分析,使用较小尺度的辅助边界框来计算IoU损失将有助于高IoU样本的回归并实现加速收敛 。相反,使用较大尺度的辅助边界框来计算IoU损失可以加速低IoU样本的回归过程 。
B. Inner-IoU Loss (Inner-IoU 损失)

为了弥补现有的 IoU 损失在不同检测任务中泛化能力弱和收敛速度慢的缺陷,我们提出利用辅助边界框来计算损失,从而加速边界框回归过程 。在 Inner-IoU 中,我们引入了缩放因子 ratio,它可以控制辅助边界框的尺度大小 。通过针对不同的数据集和检测器使用不同尺度的辅助边界框,可以克服现有方法泛化能力弱的局限性 。如图1所示,真实框(GT 框)和锚框分别表示为 和
。GT 框和内部 GT 框的中心点用
表示,而
表示锚框和内部锚框的中心点 。GT 框的宽度和高度分别表示为
和
,而锚框的宽度和高度分别表示为
和
。变量 “ratio” 对应缩放因子,其取值范围通常在 [0.5, 1.5] 之间 。
Inner-IoU 损失继承了 IoU 损失的部分特性,同时也有其自身的特点 。与 IoU 损失一样,Inner-IoU 损失的取值范围为 [0, 1] 。由于辅助边界框与实际边界框之间仅存在尺度上的差异,因此损失函数的计算方法是相同的,且 Inner-IoU 偏差曲线与 IoU 偏差曲线相似 。与 IoU 损失相比,当 ratio 小于 1 且辅助边界框尺寸小于实际边界框时,其有效回归范围小于 IoU 损失,但其梯度的绝对值大于从 IoU 损失中获得的梯度,这可以加速高 IoU 样本的收敛 。相反,当 ratio 大于 1 时,较大尺度的辅助边界框扩大了有效的回归范围,并增强了低 IoU 样本的回归效果 。将 Inner-IoU 损失应用到现有的基于 IoU 的边界框回归损失函数中,、
、
、
、
和
分别如下 :
IV.实验
A. 模拟实验
正如图5所示,本文通过模拟实验分析了两种不同场景下的边界框回归过程 。在图5a和图5b中,设置了七个不同的绿色边界框作为目标框,目标框的中心点设为(100,100),宽高比分别为1:4、1:3、1:2、1:1、2:1、3:1和4:1 。在图5a中,锚框被随机分配了2000个点,其位置分布以(100,100)为中心,半径为3 。对于每个点的尺度,锚框的面积分别设置为0.5、0.67、0.75、1、1.33、1.5和2 。对于给定的点和尺度,采用了7种宽高比,即遵循与目标框相同的设置(即1:4、1:3、1:2、1:1、2:1、3:1和4:1)。图5b与图5a在锚框分布上有所不同,其位置分布以(100,100)为中心,半径为6到9 。其尺寸和宽高比与图5a相同 。总体而言,在每次实验中,每个目标框都需要拟合2000 × 7 × 7个锚框 。综上所述,总共有7 × 7 × 7 × 2000 = 686000种组合情况 。模拟实验的结果如图7所示,其中图7a代表高IoU回归样本场景下的收敛结果 。为了加速高IoU样本的回归,缩放因子ratio被设置为0.8 。低IoU回归样本场景下的收敛结果如图7b所示,此时ratio设置为1.2 。可以看出,图中用虚线表示的我们方法的收敛速度优于现有方法 。

图 5:蓝色点表示锚框,绿色边界框表示不同尺寸的目标框 (a) 高 IoU 回归样本 (b) 低 IoU 回归样本
B. 对比实验
YOLOv7在PASCAL VOC上的实验
本实验对比了CIoU 方法和SIoU 方法,采用YOLOv7-tiny 作为检测器,以VOC2007 trainval和VOC2012 trainval作为训练集,并以VOC2007 test作为测试集。该训练集由16551张图像组成,而测试集由4952张包含20个类别的图像组成 。我们在训练集上训练了150个epoch,以证明本方法的优越性 。我们对所提方法与原始方法的训练过程进行了可视化,如图8所示 。图8a、图8b和图8c分别展示了CIoU和Inner-CIoU在对应比值(ratio)分别为0.7、0.75和0.8时的训练过程曲线 。图8d、图8e和图8f则是SIoU和Inner-SIoU在比值分别为0.7、0.75和0.8时的训练过程曲线 。在图8中,橙色曲线代表本文提出的方法,而现有方法则由绿色曲线表示 。可以清晰地看到,在50到150个epoch的训练过程中,本文提出的方法性能优于现有方法 。

在测试集上进行的对比实验结果如表I(TABLE I)所示 。可以看出,应用本文方法后检测效果得到了提升,在 AP50 和 mAP50:95 上实现了超过0.5%的增长 。图2和图6展示了检测样本的对比 。从图中可以看出,与现有方法相比,所提方法定位更准确,且误检和漏检更少 。



YOLOv5在AI-TOD上的实验
为了验证所提方法的泛化能力,我们使用YOLOv5s检测器在AI-TOD数据集上进行了对比实验,并选择SIoU作为对比方法 。AI-TOD数据集包含28036张航拍图像、8类目标和700621个目标实例,其中14018张图像作为训练集,其余14018张图像作为测试集 。与现有的目标检测任务数据集相比,AI-TOD中目标的平均大小仅为12.8像素,远小于其他数据集 。实验结果如表II(TABLE II)所示 。

在对比实验1中,通过将 ratio 值设定在 0.7 到 0.8 之间(即小于 1),生成了小于实际边界框的辅助边框 。实验结果表明,该方法能够对高 IoU 样本产生增益 。在实验2中,当 ratio 值大于 1 时,通过生成更大的辅助边界框,达到了加速低 IoU 样本收敛的效果 。此外,图4展示了测试集上检测结果的对比,通过对比可以明显看出该方法的优越性 。

V. 结论
在本文中,我们分析了边界框回归过程,并指出了 IoU 损失的局限性,即它对于不同的检测任务不具备较强的泛化能力 。基于边界框回归问题的固有特性,我们提出了 Inner-IoU 损失,这是一种基于辅助边界框的边界框回归损失 。它通过缩放因子 ratio 来控制辅助边界框的生成,以此计算损失并加速收敛 。它可以被集成到现有的基于 IoU 的损失函数中 。通过一系列模拟和消融实验,证实了所提方法优于现有方法 。需要注意的是,本文提出的方法不仅适用于一般的检测任务,在针对极小目标的检测任务中也表现优异,该方法的泛化能力已得到证实 。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)