【论文精读】OTA: Optimal Transport Assignment for Object Detection(物体探测的最优传输分配)

在这里插入图片描述


OTA最优传输

  • 🚀🚀🚀摘要
  • 一、1️⃣ Introduction---介绍
  • 二、2️⃣Related Work---相关工作
    • 2.1 🎓 Fixed Label Assignment--静态标签分配
    • 2.2 ✨Dynamic Label Assignment--动态标签分配
  • 三、3️⃣Method---论文方法
    • 3.1 🎓 Optimal Transport--最佳运输
    • 3.2 ✨OT for Label Assignment--标签分配的 OT
    • 3.3 ⭐️Advanced Designs--高级设计
  • 四、4️⃣Experiments---相关实验
    • 4.1 🎓 Implementation Details--实施细节
    • 4.2 ✨Ablation Studies and Analysis--消融研究与分析
    • 4.3 ⭐️Comparison with State-of-the-art Methods--与最先进方法的比较
    • 4.4 🎯Experiments on CrowdHuman--在 CrowdHuman 上进行的实验结果
  • 五、5️⃣Conclusion---结论
  • 六、附录---Sinkhorn-Knopp方法


🚀🚀🚀摘要

📜论文地址:https://arxiv.org/abs/2103.14259v1
📌代码地址:https://github.com/Megvii-BaseDetection/OTA
如果想要yolov5中添加OTA方法,实测可以快速涨点,请参考这篇文章:【YOLOv5改进系列】高效涨点----Optimal Transport Assignment:OTA最优传输方法

📗翻译
目标检测中标签分配的最新进展主要是寻求为每个真实( g t gt gt)目标独立定义正/负训练样本。在本文中,我们创新地从全局的角度重新审视标签分配问题,并提出将分配过程制定为最优运输(OT)问题—优化理论中一个被广泛研究的主题。

具体来说,我们将每对需求者( a n c h o r anchor anchor)和供应者( g t gt gt)之间的单位运输成本定义为其分类和回归损失的加权和。在公式化之后,寻找最佳分配方案就转化为以最小运输成本求解最佳运输计划,这可以通过 Sinkhorn-Knopp 迭代法来解决。

在 COCO 上,配备最佳传输分配 (OTA) 的单个 FCOS-ResNet-50 探测器在 1× 调度器下可达到 40.7% 的 mAP,优于所有其他现有分配方法。在 COCO 和 CrowdHuman 上进行的大量实验进一步验证了我们提出的 OTA 的有效性,尤其是在人群场景中的优越性


🔥精读
🚀当前基于卷积神经网络的目标检测器是通过预测一组预定义锚点的分类标签进行目标检测。经典的分配策略可以归结为两种:静态分配策略动态分配策略,但是这两种分配策略都有所缺点,所以作者提出了另外一种方法进行标签分配,并且该方法在密集目标上面的检测效果会比较好。

☀️一个更好的分配策略应该是摆脱传统的为每一个目标对象单独寻求最优分配的做法,由此启发,作者转向全局最优的思想,并将最优传输理论应用到目标检测中的标签分类问题中,目的是为图像中的所有目标找到全局高置信度分配方式。作者首先将目标检测的标签分配问题表述为一个最优运输问题,然后将求解最优传输问题转化为求解最优运输方案,进而可以利用现成的Sinkhorn-Knopp迭代快速高效地求解。


一、1️⃣ Introduction—介绍

📗翻译
目前基于 CNN 的物体检测器通过预测一组预定义锚点的分类(cls)标签回归(reg)偏移量,以密集预测的方式进行检测。为了训练检测器,为每个锚点定义 cls 和 reg 目标是一个必要的过程,这在物体检测中被称为标签分配

经典的标签分配策略通常采用预定义规则来匹配每个锚点的真实对象( g t gt gt)或背景。例如,RetinaNet采用交集-超联合(Intersection-over-Union, IoU)作为正负锚点划分的阈值标准。像FCOS这样的无锚点检测器将任何 g t gt gt对象的 c e n t e r / b b o x center/bbox center/bbox区域内的锚点视为相应的阳性。这种静态策略忽略了一个事实,即对于具有不同大小、形状或遮挡条件的物体,适当的正/负( p o s / n e g pos/neg pos/neg)划分边界可能会有所不同。

受此启发,人们提出了许多动态分配策略。ATSS建议根据统计特征为每个 gt 设置划分边界。其他最新进展表明,每个锚点的预测置信度分数可以作为设计动态分配策略的适当指标,即高置信度的锚点可以很容易地被网络学习,从而被分配到相关的 gt,而预测不确定的锚点应被视为负锚点。这些策略能让检测器为每个 gt 对象动态地选择正锚,并实现最先进的性能。

然而,在没有上下文的情况下,为每个gt独立分配 p o s / n e g pos/neg pos/neg样本可能是次优的,就像缺乏上下文可能导致不正确的预测一样。当处理模棱两可的锚点时(即,锚点同时被视为多个gts的阳性样本,如图所示),现有的分配策略在很大程度上基于手工制定的规则(例如,Min Area , Max IoU)。

在这里插入图片描述

图1:物体检测中的模糊锚点示意图。红点表示两幅样本图像中的一些模糊锚点。目前,这些模糊锚点的分配主要基于手工创建的规则。

我们认为,将模糊锚点分配给任何 g t gt gt(或背景)都可能会引入对其他 g t gt gt 有害的梯度。因此,模棱两可的锚点的分配并不简单,需要本地视图之外的更多信息。因此,更好的分配策略应该摆脱为每个 g t gt gt 独立追求最优分配的传统,转而追求全局最优,换句话说,为图像中的所有 g t gt gt 寻找全局高置信度分配

DeTR 是第一个尝试从全局角度考虑标签分配的工作。它用转换层取代了检测头,并使用匈牙利算法考虑一对一分配,即每个 g t gt gt 只匹配一个查询,且全局损失最小。然而,对于基于 CNN 的检测器来说,由于网络通常会对物体周围的邻近区域产生相关分数,因此每个 g t gt gt 都会被分配给许多锚点(即一对多),这也有利于提高训练效率。在这种一对多的方式下,仍能以全局视角分配标签。

为了实现一对多情况下的全局最优分配结果,我们建议将标签分配表述为最优运输(OT)问题—优化理论中线性规划(LP)的一种特殊形式。具体来说,我们将每个 g t gt gt 定义为供应一定数量标签的供应商,将每个锚定义为需要一个单位标签的需求者。如果一个锚点从某个 g t gt gt 收到足够数量的正标签,这个锚点就成为该 g t gt gt的一个正锚点。在这种情况下,每个 g t gt gt 提供的正标签数量可以理解为“在训练过程中,为了更好地收敛,该 g t gt gt 需要多少个正锚框”。 每个锚框与 g t gt gt之间的单位运输成本定义为它们的成对 c l s cls cls r e g reg reg 损失的加权和(也就是分类损失和边界框回归损失)。

此外,由于每个锚也应考虑负标签,因此我们引入了另一个供应商—背景,由其提供负标签,以弥补其余需要的标签。背景和某个锚之间的成本仅定义为它们的成对分类损失。在公式化之后,寻找最佳分配方案就转化为求解最优运输计划,这可以通过现成的 Sinkhorn-Knopp 迭代快速有效地求解。我们将这种分配策略命名为最优运输分配(OTA)

在 MS COCO 基准上进行了综合实验,OTA 的显著改进证明了其优势。OTA 还在名为 CrowdHuman的拥挤行人检测数据集上实现了单级检测器中的 SOTA 性能,显示了 OTA 在不同检测基准上的泛化能力。


🔥精读
标签分类的概念
在目标检测中,标签分配是指将每个检测到的目标实例与相应的类别标签进行关联的过程。目标检测的目标是在图像或视频中准确地定位和识别出不同类别的目标物体。

标签分配是通过对检测框(也称为边界框或候选框)与真实标注框之间的重叠程度进行评估来确定它们之间的匹配关系。常用的方法是计算检测框与真实标注框之间的交集与并集的比值,即(IOU)。

根据IOU值的阈值,可以将标签分为以下几种情况:

  1. 正样本(Positive):当检测框与真实标注框之间的IOU大于设定的阈值时,将检测框视为正样本,并为其分配相应的目标类别标签。
  2. 负样本(Negative):当检测框与真实标注框之间的IOU小于设定的阈值时,将检测框视为负样本。这些框通常不包含任何目标,因此不分配目标类别标签。

在某些情况下,可能会存在多个检测框与同一个目标实例具有高IOU的情况。为了解决这个问题,可以采用以下策略:

  • 单一匹配策略:选择与目标实例IOU最高的一个检测框,并将其匹配为正样本。
  • 多标签策略:允许一个目标实例与多个检测框具有高IOU值,将这些检测框都匹配为正样本,并为它们分配相应的目标类别标签。

⚡️静态分配策略通常采用预定义的规则来分配每个锚点所处的目标对象或背景,这种静态策略会存在一个问题,它会导致对于具有不同大小、形状或遮挡条件的目标对象的锚点划分边界会有所不同。

⚡️动态分配策略中每个锚点的预测置信度是一个动态分配的指标,高置信度的锚点可以容易地被网络学习,从而被分配给相关的目标对象,但是动态分配策略依然会有因为不能利用全局信息而会导致锚点分配模糊的问题,如下图,在两个物体的交界处存在部分锚点,它们属于GT1也属于GT2,也叫做模糊锚点。针对于这问题,本文首先将目标检测的标签分配问题表述为一个最优运输问题,然后将求解最优传输问题转化为求解最优运输方案。在这里插入图片描述


二、2️⃣Related Work—相关工作

2.1 🎓 Fixed Label Assignment–静态标签分配

📗翻译

在训练物体检测器之前,确定每个锚点应分配给哪个 g t gt gt(或背景)是一个必要的步骤。基于锚点的检测器通常采用某一阈值的 IoU 作为分配标准。例如,Faster R-CNN 中的 RPN 分别使用 0.7 和 0.3 作为正阈值和负阈值。在训练 R-CNN 模块时,将正负划分的 IoU 阈值改为 0.5(与gt的Iou大于0.5的视为正样本,反之为负样本)。基于 IoU 的标签分配被证明是有效的,并很快被许多 Faster R-CNN 的变体所采用,以及许多单级检测器 。

最近,无锚检测器因其简洁性和高计算效率而备受关注。FCOS、Foveabox 及其前身在不使用锚点盒的情况下,直接将物体中心周围的锚点指定为正样本,显示出良好的检测性能。另一种无锚点检测器将每个物体视为一个或一组关键点。这些检测器与其他检测器有着不同的特点。

虽然上述检测器在很多方面都有所不同,但在标签分配方面,它们都对不同大小、形状和类别的物体采用单一的固定分配标准(如中心区域的固定区域或 IoU 临界值),这可能会导致次优的分配结果。

2.2 ✨Dynamic Label Assignment–动态标签分配

📗翻译
最近的许多研究都试图使标签分配程序更具适应性,以进一步提高检测性能。GuidedAnchoring不使用预定义的锚点,而是根据无锚机制生成锚点,以更好地适应各种对象的分布。

MetaAnchor提出了一种锚点生成函数,可从任意定制的先验框中学习动态锚点。NoisyAnchors提出了基于分类和定位损失的软标签和锚重新加权机制。FreeAnchor基于 IoU 为每个 gt 构建前 k 个锚点候选,然后提出一种检测定制似然法,在每个候选集内执行正负分割。ATSS提出了一种自适应样本选择策略,采用每个 gt 的一组最接近锚点的 IoU 值的均值+标准差作为正负阈值。PAA假设正负样本的联合损失分布遵循高斯分布。因此,它使用 GMM 来拟合正负样本的分布,然后使用正样本分布的中心作为正负划分边界。AutoAssign以完全数据驱动的方式处理标签分配问题,自动确定空间和尺度维度上的正负。

这些方法探索的是单个对象的最优分配策略,而没有从全局角度考虑上下文信息。DeTR研究了全局最优匹配的想法。但他们采用的匈牙利算法只能以一对一的方式进行分配。迄今为止,对于基于 CNN 的一对多场景检测器来说,全局最优分配策略仍是未知数。


🔥精读
🚀目前研究人员传统的方法:

  • 静态方法
  • 动态方法
    ⚡️缺点:探索单个对象的最优分配策略,没有去考虑上下文信息

🚀较为先进的方法:

  • DeTR研究的全局最优匹配方法
    ⚡️缺点:采用的匈牙利算法只能以一对一的方式进行分配

📌未解决的问题:全局最优分配策略仍是未知数


三、3️⃣Method—论文方法

在本节中,我们首先重温了最佳传输问题的定义,然后演示了如何将物体检测中的标签分配表述为一个 OT 问题。我们还介绍了两种先进的设计,建议采用它们来充分利用 OTA。

3.1 🎓 Optimal Transport–最佳运输

📗翻译
最优运输(OT)描述了以下问题:假设某一地区有 m m m 个供应方和 n n n 个需求方。第 i i i 个供应商拥有 s i s_{i} si 个单位的货物,而第 j j j个需求者需要 d j d_{j} dj 个单位的货物。每单位货物从供应商 i i i 到需求者 j j j 的运输成本用 c i j c_{ij} cij 表示。OT问题的目标是找到一个运输计划 π ∗ = { π i , j ∣ i = 1 , 2 , . . . m , j = 1 , 2 , . . . n } \pi^{*}=\{\pi_{i,j}|i=1,2,...m,j=1,2,...n\} π={πi,ji=1,2,...m,j=1,2,...n} 根据该原则,所有货物都能以最低的运输成本从供应商运送到需求方:
min ⁡ π ∑ i = 1 m ∑ j = 1 n c i j π i j . s . t . ∑ i = 1 m π i j = d j , ∑ j = 1 n π i j = s i , ∑ i = 1 m s i = ∑ j = 1 n d j , π i j ≥ 0 , i = 1 , 2 , . . . m , j = 1 , 2 , . . . n . \begin{aligned} \operatorname*{min}_{\pi}& \sum_{i=1}^{m}\sum_{j=1}^{n}c_{ij}\pi_{ij}. \\ \mathrm{s.t.}& \sum_{i=1}^{m}\pi_{ij}=d_{j},\quad\sum_{j=1}^{n}\pi_{ij}=s_{i}, \\ &\sum_{i=1}^{m}s_{i}=\sum_{j=1}^{n}d_{j}, \\ &\pi_{ij}\geq0,\quad i=1,2,...m,j=1,2,...n. \end{aligned} πmins.t.i=1mj=1ncijπij.i=1mπij=dj,j=1nπij=si,i=1msi=j=1ndj,πij0,i=1,2,...m,j=1,2,...n.

这是一个可以在多项式时间内求解的线性程序。然而,在我们的例子中,得到的线性程序很大,涉及所有尺度的锚点特征尺寸的平方。因此,我们通过一个快速迭代的解决方案来解决这个问题,命名为Sinkhorn-Knopp(如果想研究该方面请看附录6)


🔥精读
🚀最优传输可以使用下面流程图进行理解
在这里插入图片描述


3.2 ✨OT for Label Assignment–标签分配的 OT

📗翻译
在物体检测中,假设输入图像 I I I m m m g t gt gt 目标和 n n n 个锚框(跨越所有 FPN级别),我们将每个 g t gt gt 视为持有 k k k 个正标签单位(即 s i = k , i = 1 , 2 , . . . , m s_{i }= k,i = 1,2,...,m si=ki=12...m)的供应者,而每个锚框视为需要一个标签单位(即 d j = 1 , j = 1 , 2 , . . . , n d_{j} = 1,j = 1,2,...,n dj=1j=12...n)的需求者。从 g t i gt_{i} gti 向锚 a j a_{j} aj 运输一单位正标签的成本 c f g c^{fg} cfg定义为其 c l s cls cls r e g reg reg 损失的加权和:
c i j f g = L c l s ( P j c l s ( θ ) , G i c l s ) + α L r e g ( P j b o x ( θ ) , G i b o x ) \begin{aligned} c_{ij}^{fg}=& L_{cls}(P_{j}^{cls}(\theta),G_{i}^{cls})+\alpha L_{reg}(P_{j}^{box}(\theta),G_{i}^{box}) \end{aligned} cijfg=Lcls(Pjcls(θ),Gicls)+αLreg(Pjbox(θ),Gibox)

其中 θ 代表模型参数。 P j c l s P_{j}^{cls} Pjcls P j b o x P_{j}^{box} Pjbox表示预测的 c l s cls cls 分数和 a j a_{j} aj 的边界框。 L c l s L_{cls} Lcls L r e g L_{reg} Lreg 分别代表交叉熵损失和 IoU 损失。也可以用 Focal Loss 和 GIoU /SmoothL1 Loss 代替这两个损失。

在训练过程中,除了正向分配外,还有大量的锚点被视为负向样本。由于最优运输涉及所有锚点,我们引入了另一个供应商–背景,他只提供负标签。在标准 OT 问题中,总供应量必须等于总需求量。因此,我们将背景可提供的负标签数量设为 n − m × k n -m× k nm×k。将一个单位的负标签从背景运输到 a j a_{j} aj 的成本定义为:
c j b g = L c l s ( P j c l s ( θ ) , ∅ ) c_j^{bg}=L_{cls}(P_j^{cls}(\theta),\varnothing) cjbg=Lcls(Pjcls(θ),)

其中,∅ 表示背景类。将 c b g ∈ R 1 × n \begin{matrix}c^{bg}\in\mathbb{R}^{1\times n}\end{matrix} cbgR1×n c f g ∈ R m × n \begin{matrix}c^{fg}\in\mathbb{R}^{m\times n}\end{matrix} cfgRm×n 的最后一行合并,我们就可以得到成本矩阵 c ∈ R ( m + 1 ) × n c\in\mathbb{R}^{(m+1)\times n} cR(m+1)×n 的完整形式。供应向量 s 应相应更新为:

s i = { k , i f i ≤ m n − m × k , i f i = m + 1. s_i=\begin{cases}k,&if\quad i\leq m\\n-m\times k,&if\quad i=m+1.\end{cases} si={k,nm×k,ifimifi=m+1.

由于我们已经有了成本矩阵 c c c、供应向量 s ∈ R m + 1 s\in\mathbb{R}^{m+1} sRm+1 和需求向量 d ∈ R n d\in\mathbb{R}^{n} dRn,通过现成的 Sinkhorn-Knopp 迭代法,可以求解这个OT问题,从而得到最优运输方案 π ∗ ∈ R ( m + 1 ) × n \pi^{*}\in\mathbb{R}^{(m+1)\times n} πR(m+1)×n 。得到 π ∗ \pi^{*} π 后,就可以解码出相应的标签分配方案,即把每个锚分配给运输标签量最大的供应商。随后的过程(如根据分配结果计算损失、反向传播)与 FCOS和 ATSS完全相同。注意到 OT 问题的优化过程只包含一些矩阵乘法,GPU 设备可以加速这些乘法,因此 OTA 只增加了不到 20% 的总训练时间,而且在测试阶段完全不需要成本。


🔥精读
🚀将最优传输引入到物体检测中标签分配问题中
此时的供应商有两个:

  • 正向样本—m个gt框
  • 负向样本—背景

需求方为:

  • n个锚框

相应的运输成本也变成了两部分

  • 单位正标签运输成本:cls(分类)和reg(边界框回归)损失加权和
  • 单位负标签运输成本

在这里插入图片描述


3.3 ⭐️Advanced Designs–高级设计

中心先验:之前的研究 仅从有限区域的物体中心区域选择正锚点,称为中心先验(Center Prior)。这是因为它们在后续处理过程中要么存在大量的模糊锚点,要么存在较差的统计数据。在后续处理中,我们不依赖于统计特征,而是依赖于统计数据。

我们的 OTA 不依赖于统计特征,而是基于全局优化方法,因此自然能够抵御这两个问题。从理论上讲,OTA 可以将 g t s gts gts 方框区域内的任何锚点指定为正样本。但是,对于 COCO 这样的一般检测数据集,我们发现中心优先仍然有利于 OTA 的训练。迫使检测器关注潜在的正向区域(即中心区域)有助于稳定训练过程,尤其是在训练的早期阶段,这将带来更好的最终性能。

因此,我们在成本矩阵中加入了“中心优先”(Center Prior) 。对于每个 g t gt gt,我们会根据锚点和 g t s gts gts之间的中心距离,从每个 FPN 级别中选择 r 2 r^{2} r2 个最近的锚点。至于不在 r 2 r^{2} r2 最近列表中的锚点,它们在成本矩阵 c c c 中的相应条目将受到额外的恒定成本影响,以降低它们在训练阶段被分配为正样本的可能性。

在第 4 节中,我们将证明,尽管 OTA 与其他研究一样采用了一定程度的中心优先(Center Prior),但当 r r r 设置为较大值时(即潜在正锚和模糊锚的数量较多),OTA 始终以较大优势优于同行。

动态 k 估计:直观地说,每个 g t gt gt(即第 3.1 节中的 s i s_{i} si)的正锚点的适当数量应该是不同的,并基于物体的大小、尺度和遮挡条件等多种因素。由于很难直接建立从这些因素到正锚点数量的映射函数模型,我们提出了一种简单而有效的方法,即根据预测边界框和 g t s gts gts 之间的 I o U IoU IoU 值来粗略估计每个 g t gt gt 的适当正锚点数量。具体来说,对于每个 g t gt gt,我们根据 I o U IoU IoU 值选出前 q q q 个预测值。这些 I o U IoU IoU 值的总和代表了该 g t s gts gts 的估计正锚点数量,我们将这种方法命名为动态 k k k 估算。这种估计方法基于以下直觉:对于某个 g t gt gt ,适当正锚数应与能很好地回归该 g t gt gt 的锚数成正相关。在第 4 节中,我们将详细比较固定 k 估算策略和动态 k 估算策略。

下图展示了 OTA 的可视化模型。我们还在算法 1 中描述了 OTA 的完整流程,包括中心先验和动态 k k k 估计。

在这里插入图片描述

图2:最佳运输分配示意图。成本矩阵由每个锚点-锚点对之间的成对 cls 和 reg 损失组成。寻找最佳标签分配的目标转换为通过 Sinkhorn-Knopp 迭代,以最小的运输成本解决将标签从供应方(即 GT 和 BG)运输到需求方(即锚点)的最佳运输计划。

最优传输分配算法(OTA)如下所示:

在这里插入图片描述

四、4️⃣Experiments—相关实验

🚀在本节中,我们在 MS COCO 2017 上进行了大量实验,其中包含约 118k、5k 和 20k 张图像,分别为 train 集、val 集和 test-dev 集。在消融研究中,我们在 train 集上训练检测器,并报告 val 集上的性能。与其他方法的比较是在测试-发展集上进行的。我们还在 CrowdHuman验证集上比较了 OTA 和其他方法,以证明 OTA 在人群场景中的优越性。

4.1 🎓 Implementation Details–实施细节

如果没有指定,我们使用在 ImageNet 上预先训练的 ResNet-50和 FPN 作为默认骨干。大多数实验的迭代次数为 90k,表示为 “1×”。初始学习率为 0.01,在 60k 和 80k 次迭代后以 10 倍递减。最小批量设置为 16。按照惯例,模型在 8 个 GPU 上使用 SGD进行训练。

OTA既可以用于基于锚点的检测器,也可以用于无锚点的检测器,由于其简单,下面的实验主要在FCOS上进行。我们采用Focal损失和IoU损失作为构成成本矩阵的 L c l s L_{cls} Lcls L r e g L_{reg} Lreg。Eq. 2中的α设为1.5。对于反向传播,回归损失用GIoU损失代替,并以2的因子重新加权。IoU分支首先在YOLOv1中被引入,并通过PAA在现代一级目标探测器中被证明是有效的。

在我们的实验中,我们也采用IoU Branch作为默认组件。3.3节中的top q q q直接设置为20,因为我们发现这组参数值可以在各种情况下一致地产生稳定的结果。

4.2 ✨Ablation Studies and Analysis–消融研究与分析

单个成分的作用:我们验证了我们提出的方法中每个组件的有效性。为了公平比较,所有检测器的回归损失乘以2,这是在高IoU阈值时提高AP的有用技巧。如表1所示,当不采用辅助分支机构时,OTA的AP优于FCOS 0.9% (39.2% vs .38.3%)。在为两者添加IoU分支后,这一差距几乎保持不变(分别为39.5% vs . 40.3%和38.8% vs . 39.6%,有无中心优先)。最后,动态k将AP推向了新的先进水平40.7%。

在整篇文章中,我们强调OTA可以应用于基于锚点和无锚点的检测器。因此,我们也在retinaNet上采用OTA,在特征图上只有一个方形锚点错位。如表1所示,OTA-FCOS和OTA- retinaNet的AP值完全相同,说明OTA适用于基于锚点和无锚点的探测器
在这里插入图片描述

表1。OTA各组分的消融研究。“Center”分别代表OTA和FCOS的中心先验和中心抽样。Dyn.k是我们提出的动态k估计策略的缩写。

r的影响:中心先验的半径 r r r值用于控制每个 g t gt gt的候选锚点的数量。如果采用较小的 r r r,则只有靠近目标中心的锚点才能被分配为正锚点,从而帮助优化过程专注于更有可能提供信息的区域。随着r的增加,候选项的数量也呈二次增长,导致优化过程中潜在的不稳定性。例如,当r为3,5或7时,对应的候选锚点数量分别为45、125和245。我们研究ATSS和PAA的行为,表2中不同 r r r值下的OTA。
在这里插入图片描述

表2。不同标签分配策略在不同候选主播数量下的表现。Namb。表示在COCO列车集上计算的每幅图像模糊锚点的平均数量。

r r r = 5时,OTA的性能最佳(40.7% AP)。当r像ATSS和PAA一样设置为3时,OTA也达到了40.6%的AP,说明COCO上大部分潜在的正锚点都在物体中心附近。当 r r r设置为7时,性能仅略有下降0.3%,说明OTA对超参数 r r r不敏感。

模糊锚点处理:大多数现有的动态标签分配方法对每个 g t gt gt只进行了一个小的候选集,因为大量的候选集会带来麻烦——当发生遮挡或几个物体足够接近时,一个锚点可能同时是多个 g t gt gt的合适候选。我们将这样的锚定义为模糊锚。以前的方法主要通过引入手工规则来处理这种模糊性,例如Min Area、Max IoU和Min Loss。

为了说明OTA在模糊处理方面的优越性,我们统计了ATSS、PAA和OTA中模糊锚的数量,并评估了它们在不同 r r r下的相应性能,如表2所示。注意到 OTA 中的最优分配计划是连续的,因此如果 max π j ∗ \pi^{*}_{j} πj< 0.9,我们将锚 a j a_{j} aj 定义为模糊锚。表2显示,对于ATSS,当 r r r从3变化到7时,模糊锚的数量大大增加。其性能相应地从39.4%下降到37.2%。对于PAA,模糊anchor的数量对 r r r的敏感度较低,但其性能仍然下降了0.8%,这表明PAA采用的Max IoU在模糊anchor之前并不是一个理想的。在OTA中,当多个gts倾向于将正标签传输到同一个anchor时,OT算法会根据全局成本最小的原则自动解决它们的冲突。因此,OTA 的模糊锚的数量仍然很低,并且随着 r r r 从 3 增加到 7 几乎没有增加,相应的性能也很稳定。

此外,在执行 OTA 之前,我们会根据手工创建的规则手动分配模糊锚点。在这种情况下,OTA 只负责正负样本的划分。表 3 显示,将手工规则和 OTA 结合使用,AP 分别降低了 0.7% 和 0.4%。最后,我们在图 3 中展示了一些分配结果。红色箭头和虚线椭圆突出了模糊区域(即不同 f g s fgs fgs 之间的重叠或 f g s fgs fgs b g bg bg 之间的交界处)。由于缺乏上下文和全局信息,ATSS 和 PAA 在这些区域的表现较差,导致检测效果不理想。相反,OTA 在这些区域分配的积极锚点要少得多,我们认为这是一种理想的行为。
在这里插入图片描述

表3。OTA 和其他人为设计的策略在 COCO val 集上的歧义处理的性能比较。表示“随后

在这里插入图片描述

图 3. 分配结果的可视化。对于 PAA,点代表正锚框的几何中心。对于 ATSS 和 OTA,点代表正锚点。矩形代表 gt 边界框。为了清楚地说明不同分配策略之间的差异,我们将所有方法的 r 设置为 5。为了更好的可视化,仅显示具有最多正锚点数量的 FPN 层。

k 的影响:在执行Sinkhorn-Knopp迭代之前,我们需要定义每个 g t gt gt可以提供多少个正标签。这个值也代表了每个 g t gt gt需要多少个anchor才能更好的收敛。一种简单的方法是将所有 g t s gts gts k k k 设置为恒定值。我们尝试从 1 到 20 的不同 k k k 值。如表 4 所示,在所有不同值中,k=10 和 k=12 实现了最佳性能。随着k从10增加到20,一个anchor同时适合作为两个接近目标的正样本的可能性也增加,但根据表4没有明显的性能下降(0.2%),这证明了OTA在处理潜在的歧义。当k=1时,OTA变成一对一的分配策略,与DeTR中相同。糟糕的性能告诉我们,除非添加辅助的一对多监督,否则在 1× 调度器下通过一对一分配实现有竞争力的性能仍然具有挑战性。
在这里插入图片描述

表 4. COCO val 集上不同 k 值和动态 k 估计策略的分析。

固定 k k k 策略假设每个 g t gt gt 具有相同数量的适当正锚。然而,我们认为每个 gt 的这个数字应该有所不同,并且可能受到许多因素的影响,如物体的大小、空间姿态和遮挡条件等。因此,我们采用第 3.3 节中提出的动态 k 估计,并将其性能与固定k策略。表 4 中的结果表明,动态 k 超出固定 k 的最佳性能 0.4% AP,验证了我们的观点以及动态 k 估计策略的有效性。

4.3 ⭐️Comparison with State-of-the-art Methods–与最先进方法的比较

我们将最终模型与 MS COCO 测试开发上其他最先进的单级探测器进行比较。继之前的工作之后,我们在 640 到 800 的范围内随机缩放图像的短边。此外,我们将迭代总数加倍到 180K,学习率变化点按比例缩放。其他设置一致。

如表 5 所示,我们使用 ResNet-101-FPN 的方法实现了 45.3% AP,优于具有相同主干的所有其他方法,包括 ATSS (43.6% AP)、AutoAssign (44.5% AP) 和 PAA (44.6% AP)。注意到对于 PAA,我们删除了评分投票程序,以便在不同标签分配策略之间进行公平比较。使用 ResNeXt-64x4d-101-FPN,OTA性能可进一步提升至47.0%AP。为了证明我们的方法与目标检测中其他先进技术的兼容性,我们采用可变形卷积网络(DCN)到ResNeXt主干以及检测头中的最后一个卷积层。这将我们模型的性能从 47.0% AP 提高到 49.2% AP。最后,通过多尺度测试技术,我们的最佳模型达到了 51.5% AP。
在这里插入图片描述

表5。在MS COCO 2017测试开发集上与最先进的一级检测器的性能比较。*表示ATSS采用多尺度测试的具体形式

4.4 🎯Experiments on CrowdHuman–在 CrowdHuman 上进行的实验结果

拥挤场景中的物体检测引起了越来越多的关注。与为一般目标检测(如 COCO)设计的数据集相比,在拥挤的数据集中,歧义发生的频率更高。因此,为了证明 OTA 在处理模糊锚点方面的优势,有必要在拥挤的数据集——Crowd human 上进行实验。 CrowdHuman 在训练、验证和测试集中分别包含 15000、4370 和 5000 个图像,图像中的平均人数为 22.6。对于所有实验,我们对检测器进行 30 轮训练(即 2.5 倍),以实现更好的收敛。 NMS阈值设置为0.6。我们在实验中采用 ResNet-50作为默认主干网。其他设置与我们在COCO上的实验相同。为了进行评估,我们遵循标准的加州理工学院评估指标 - MR,它代表每幅图像误报的对数平均缺失率 (FPPI),范围在 [10−2, 100] 之间。 AP 和 Recall 也被报告以供参考。所有评估结果均在 CrowdHuman val 子集上报告。

如表6所示,retanet和FCOS的MR分别仅为58.8%和55.0%,远不如Faster R-CNN(带FPN)等两级检测器,揭示了单级检测器在人群场景中的困境。从FreeAnchor开始,通过动态标签分配策略逐步提高了单阶段检测器的性能。ATSS达到49.5%的MR,非常接近Faster R-CNN (48.7% AP)的性能。最近提出的LLA利用了损失感知标签分配,这与OTA类似,实现了47.9%的MR。然而,我们的OTA通过将全局信息引入标签分配,将MR提高到了46.6%。AP和OTA的召回也明显超过了现有的其他一级检测器。
在这里插入图片描述

表6。在CrowdHuman验证集上的性能比较。所有实验均在2.5倍调度器下进行。

尽管 PAA 在 COCO 上取得了与 OTA 相当的性能,但在 CrowdHuman 上却表现不佳。我们推测 PAA 需要明确的 p o s / n e g pos/neg pos/neg 决策边界来帮助 GMM 学习更好的集群。但在拥挤的场景中,这种清晰的边界可能不存在,因为潜在的负样本通常会覆盖足够数量的前景区域,导致 PAA 的性能较差。此外,PAA 执行 per-gt 的聚类,这大大增加了在 CrowdHuman 等拥挤数据集上的训练时间。

与PAA相比,OTA仍然显示出可喜的结果,这表明OTA在各种检测基准上的优越性。

五、5️⃣Conclusion—结论

在本文中,我们提出了最优传输分配(OTA)——一种基于优化理论的标签分配策略。 OTA将目标检测中的标签分配过程制定为最佳传输问题,旨在以最小的传输成本将标签从真实目标背景传输到锚点。为了确定每个gt所需的正标签数量,我们进一步提出了一种基于预测边界框与每个gt之间的IoU值的简单估计策略。实验表明,OTA在MS COCO上实现了新的SOTA性能。由于 OTA 可以很好地处理模糊锚点的分配,因此它在 CrowdHuman 数据集上也大大优于所有其他单阶段检测器,展示了其强大的泛化能力。


🚀总结
最优传输分配(OTA)的方法可以很好的解决两个目标之间模糊点存在过多问题,不管是与单阶段还是双阶段检测器相比,性能都是由于两者,尤其是在于密集目标检测中,效果更加明显。

六、附录—Sinkhorn-Knopp方法

在这里插入图片描述


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/477201.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CPP容器vector和list,priority_queue定义比较器

#include <iostream> #include <bits/stdc.h> using namespace std; struct VecCmp{bool operator()(int& a,int& b){return a>b;/*** 对于vector和list容器&#xff0c;这里写了&#xff1e;就是从大到小* 对于priority_queue容器&#xff0c;这里写…

Linux第82步_“gpio子系统”下的使用KEY开关灯

使用新字符设备驱动的一般模板和“gpio子系统”&#xff0c;以及设备树&#xff0c;驱动KEY和LED。 1、在stm32mp157d-atk.dts文件中添加“gpio_led”和“key0”节点 打开虚拟机上“VSCode”&#xff0c;点击“文件”&#xff0c;点击“打开文件夹”&#xff0c;点击“zgq”&…

QChart/QChartView—绘制多组柱状图

void Widget::initChartBar() {// 创建柱状图QChart* pChart new QtCharts::QChart();pChart->setTitle("Multiple Bar Chart with Dates");// 创建柱状图序列QBarSeries* pSeries new QtCharts::QBarSeries();// 启用柱状图标签显示,可以把数据显示柱状图上pSe…

ETCD跨城容灾与异地多活网络故障的相关表现分析

ETCD跨城容灾与异地多活网络故障的相关表现分析 1. 网络架构2. 单个网络中断-跟leader区中断2.1. 网络中断2.2. 网络恢复 3. 单个网络中断-跟非leader区中断4. 两个网络中断-leader区中断5. 两个网络中断-非leader区中断6. 两个网络中断-非leader区中断7. 总结8. 参考文档 etcd…

阿里云2024最新优惠:WoSign SSL证书首购4折

阿里云SSL证书 2024 最新优惠来啦&#xff01;阿里云SSL证书新用户&#xff0c;wosign SSL证书低至4折&#xff0c;WoSign SSL提供全球信任RSA SSL证书和国密算法SM2 SSL证书&#xff01;阿里云官网官方优惠&#xff0c;需要开年采购SSL证书的用户抓紧申请这波优惠&#xff01;…

基于微信小程序的电影票务系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

工控机丨丨工业电脑丨工控计算机丨工业一体机丨什么是工业一体机

工业一体机俗称工控机&#xff0c;是一种专门为工业应用而设计的计算机设备&#xff0c;主要应用于工厂、车间、仓库等工业场所。此外工控机还叫做工控计算机&#xff0c;通常采用工业级主板、工业级CPU、工业级硬盘、工业级内存和工业级电源等硬件组件&#xff0c;以确保其在高…

Excel 使用VBA自动调整插入图片大小到单元格

一、前言描述 需要插入文件夹中的图片到excel中&#xff0c;并和对应单元格的名称进行匹配。 二、方法步骤 使用宏来插入图片&#xff0c;并适配单元格 1. 开启宏 点击 文件->选项->信任中心->信任中心设置->宏设置->启用VBA宏 2. 新建一个宏 直接altf…

步进电机驱动器的接线与使用(接线详细)

今天小编就来继续学习与使用步行电机的学习&#xff0c;如果位置对你有帮助&#xff0c;评论收藏&#xff0c;点赞一下 步进电机驱动器 步进电机驱动器是一种专用于控制步进电机的电子设备&#xff0c;用于控制步进电机的转动和位置。步进电机是一种将电信号转换为机械运动的电…

训练svm并部署树莓派

训练svm并部署树莓派 开发环境1. 准备数据集2. 训练模型3. 部署模型开发环境 vscode python 3.8 用到的库: scikit-learn==1.3.2 pickle torch pandas matplotlib 1. 准备数据集 数据为xls文件,如下格式 2. 训练模型 文件结构 执行训练 python代码 import pickle &…

Go 限流器-漏桶 VS 令牌桶 常用包原理解析

本文主要介绍两个包Uber漏桶&#xff0c;time/rate令牌桶 可以了解到&#xff1a; 使用方法漏桶/令牌桶 两种限流思想 and 实现原理区别及适用场景应用Case 背景 我们为了保护系统资源&#xff0c;防止过载&#xff0c;常常会使用限流器。 使用场景&#xff1a; API速率限制…

Excel 使用SQL统计表格数据

一. 需求 ⏹有如下Excel表格&#xff0c;现要求统计每个店铺的每种类别的商品总销量和最大销量 ⏹详细数据如下 店铺商品类别销量一山店苹果水果27729一山店梨水果76175一山店菠萝水果14699一山店香蕉水果61371一山店西兰花蔬菜72822一山店大白菜蔬菜65090一山店小白菜蔬菜13…

verilog设计-CDC:单bit脉冲快时钟域到慢时钟域

一、前言 当单bit信号由快时钟域传递给慢时钟域时&#xff0c;快时钟域的异步信号最小可为快时钟信号的一个时钟周期脉冲&#xff0c;快时钟域的单时钟周期脉冲长度小于慢时钟域的时钟周期&#xff0c;很有可能该脉冲信号在慢时钟域的两个时钟上升沿之间&#xff0c;导致该脉冲…

DECO: Query-Based End-to-End Object Detection with ConvNets 学习笔记

论文地址&#xff1a;https://arxiv.org/pdf/2312.13735.pdf源码地址&#xff1a;https://github.com/xinghaochen/DECO 近年来&#xff0c;Detection Transformer &#xff08;DETR&#xff09; 及其变体在准确检测目标方面显示出巨大的潜力。对象查询机制使DETR系列能够直接获…

解决angualr13 form表单设置disabled不起作用问题

我的博客原文&#xff1a;解决angualr13 form表单设置disabled不起作用问题 问题 我们在angular项目中form中disabled 属性和 formControlName 结合使用时&#xff0c;会发现disabled 属性不会起作用&#xff0c;代码如下 ​ 效果却是 ​ 这是为什么呢&#xff1f; 原…

c语言基础笔记(1)进制转换以及++a,a++,取地址和解引用

一进制转换 OCT - 八进制 DEC - 十进制 HEX - 十六进制 0520&#xff0c;表示八进制 0x520表示16进制 unsigned 无符号&#xff0c;只有正的 signed 有正有负数 char默认是signed 类型 #include <stdio.h>int main(void) { //字符转换成数字char a 5;int a1 a- 4…

C语言 swab 函数学习

swab函数交换字符串中相邻两个字节&#xff1b; void _swab( char *src, char *dest, int n ); char *src&#xff1a; 要拷贝、转换的字符串&#xff0c; char *dest&#xff0c;转换后存储到dest所表示的字符串&#xff0c; int n要拷贝、转换的字节数&#xff1b; 所…

OKR如何与个人绩效评估和激励相结合?

在现代企业管理中&#xff0c;个人绩效评估与激励是提升员工积极性、推动企业发展的关键环节。而OKR&#xff08;目标与关键成果&#xff09;作为一种高效的目标管理方法&#xff0c;通过与个人绩效评估和激励相结合&#xff0c;可以进一步提升员工的工作动力和工作效率&#x…

银行量子金融系统应用架构设计

量子金融&#xff08;即Financial-Quantum&#xff0c;简称Fin-Q&#xff09;&#xff0c;特指量子科技在金融行业中的应用。 目前&#xff0c;量子科技中以量子保密通信、量子随机数和量子计算发展进度较快&#xff0c;取得了诸多阶段性重大技术突破和商用成果&#xff0c;这…

社科赛斯考研:二十二载岁月铸辉煌,穿越周期的生命力之源

在考研培训行业的浩瀚海洋中&#xff0c;社科赛斯考研犹如一艘稳健的巨轮&#xff0c;历经二十二载风礼&#xff0c;依然破浪前行。在考研市场竞争白热化与学生对于考研机构要求越来越高的双重影响下&#xff0c;社科赛斯考研却以一种分蘖成长的姿态&#xff0c;扎根、壮大&…