论文阅读《OTA:Optimal Transport Assignment for Object Detection》
【摘要】 Abstract目标检测中标签分配的最新进展主要寻求为每个基准真相(ground-truth)对象独立定义正/负训练样本。在本文中,我们从全局的角度创新地重新审视了标签分配,并建议将分配过程表述为一个最优传输(OT)问题——优化理论中研究得很好的主题。具体来说,我们将每个需求者(锚)和供应商(gt)对之间的单位运输成本定义为它们分类和回归损失的加权总和。在制定后,寻找最佳分配解被转换为以最...
Abstract
目标检测中标签分配的最新进展主要寻求为每个基准真相(ground-truth)对象独立定义正/负训练样本。在本文中,我们从全局的角度创新地重新审视了标签分配,并建议将分配过程表述为一个最优传输(OT)问题——优化理论中研究得很好的主题。具体来说,我们将每个需求者(锚)和供应商(gt)对之间的单位运输成本定义为它们分类和回归损失的加权总和。在制定后,寻找最佳分配解被转换为以最小的运输成本求解最佳运输计划,这可以通过Sinkhorn-Knopp迭代求解。在COCO上,配备最佳传输分配(OTA)的单个FCOS-ResNet-50探测器在1×调度器下可以达到40.7% mAP,优于所有其他现有分配方法。在COCO和人群人类上进行的广泛实验进一步验证了我们提出的OTA的有效性,特别是它在人群场景中的优越性。
The code is available at https: //github.com/Megvii-BaseDetection/OTA.
1. Introduction
当前基于CNN的物体检测器通过预测一组预定义锚点的分类(cls)标签和回归(reg)偏移来执行密集预测方式。要训练检测器,为每个锚点定义cls和reg目标是一个必要的过程,这在对象检测中被称为标签分配
。
经典的标签分配策略通常采用预定义的规则来匹配每个锚点的基准真相(gt)对象或背景。例如,RetinaNet采用交并比(IoU)作为其pos/neg锚点划分的阈值标准。像FCOS这样的无锚探测器将任何gt对象的中心/bbox区域内的锚视为相应的正值。这种静态策略忽略了一个事实,即对于具有不同大小、形状或遮挡条件的对象,适当的正/负划分边界可能会有所不同。
在此基础上,提出了许多动态分配策略。ATSS建议根据统计特征为每个gt设置划分边界。其他最新进展表明,每个锚点的预测置信度分数可以成为设计动态分配策略的适当指标,即,高置信度锚点可以很容易地被网络学习,从而被分配给相关的gt,而具有不确定预测的锚点应被视为负面。这些策略使探测器能够为每个单独的gt对象动态选择正锚点,并实现最先进的性能。
然而,在没有上下文的情况下,为每个gt独立分配pos/neg样本可能是次优的,就像缺乏上下文可能导致不正确的预测一样。当处理模糊锚点(即,同时被限定为多个gt的正样本的锚点,如图1所示)时,现有的分配策略在很大程度上基于手工制定的规则(例如,最小面积,最大IoU)。我们认为,为任何gt(或背景)分配模糊的锚点可能会引入有害的梯度,而不是其他gt。因此,模糊锚点的分配并不简单,需要局部视图之外的更多信息。因此,更好的分配策略应该摆脱独立追求每个gt最优分配的惯例,转向全局最优的思想,换句话说,为图像中的所有gt找到全局高置信度分配。
DeTR是第一个尝试从全局视图考虑标签分配的工作。它用Transformer layers替换检测头,并使用Hungarian算法考虑一对一的分配,该算法仅匹配每个gt的一个查询,具有全局最小损失。然而,对于基于CNN的检测器,由于网络通常会对对象周围的相邻区域产生相关分数,每个锚点都分配给许多锚点(即一对多),这也有利于训练效率。在这种一对多的方式中,使用全局视图分配标签保持不变。
为了在一对多情况下获得全局最优分配结果,我们提出将标签分配定义为最优传输(OT)问题——优化理论中线性规划(LP)的一种特殊形式。我们定义每个gt作为一个提供一定数量标签的供应商,并将每个锚定义为需要一个单位标签的需求者。如果锚点从某个gt接收到足够数量的正标签,则此锚点将成为该gt的一个正锚点。在这种情况下,每个正标签的数量可以解释为“在训练过程中需要多少正锚点才能更好地收敛”。每个anchor-gt对之间的单位运输成本被定义为它们的成对cls和reg loss的加权和。此外,由于每个锚点也应考虑负样本,我们引入了另一个供应商——背景,即谁提供负面标签来组成其余需要的标签。背景和某个锚点之间的成本被定义为它们的成对分类损失。在制定后,寻找最佳分配解被转换为求解最佳运输计划,该计划可以通过现成的Sinkhorn-Knopp迭代快速有效地求解。我们将这样的分配策略命名为最佳传输分配(OTA)。
在MS COCO基准上进行了综合实验,OTA的显著改进证明了其优势。OTA还在名为人群人类的拥挤行人检测数据集上实现了一级探测器之间的SOTA性能,显示了OTA在不同检测基准上的泛化能力。
2. Related Work
2.1 Fixed Label Assignment
2.2 Dynamic Label Assignment
3. Method
3.1 Optimal Transport
最佳运输(OT)描述了以下问题:假设在某个区域有m个供应商和n个需求者。第i个供应商持有 个货物单位,而第j个需求者需要 个货物单位。从供应商i到需求方j的每单位货物的运输成本用 表示。OT问题的目标是找到一个运输计划 ,根据该协议,供应商的所有货物都可以以最低的运输成本运输给需求者。
这是一个线性规划,可以在多项式时间内求解。然而,在我们的例子中,生成的线性规划很大,涉及所有尺度中的锚点的特征尺寸平方。因此,我们通过一个名为Sinkhorn-Knopp的快速迭代解决方案来解决这个问题(在附录A.1中描述)
3.2 OT for Label Assignment
在对象检测的上下文中,假设输入图像I存在m个gt目标和n个锚点(跨所有FPN [20]级别),我们将每个gt视为持有k个单位正标签的供应商(即,si = k, i = 1, 2, …, m),每个锚作为需要一个标签单位的需求者(即,dj = 1, j = 1, 2, …, n)。将一个单位的正标签从 运输到锚 的成本 定义为其cls和reg损失的加权总和:
其中θ
代表模型的参数。
和
表示预测的cls score和
的边界框。
和
表示类别的地面真值和
的边界框。
和
表示用于交叉熵损失和IoU Loss 。人们还可以用Focal Loss和GIoU/SmoothL1 Loss取代这两个损失。α是平衡系数。
除了分配正样本外,在训练期间,大量锚点被视为负样本。由于最佳运输涉及所有锚点,我们引入了另一个供应商——背景,他只提供负标签。在标准OT问题中,总供应必须等于总需求。因此,我们将背景可以提供的负标签数量设置为
。将一个单位负标签从背景传输到aj的成本定义为:
其中, 表示背景类。将这个 连接到 的最后一行,我们可以得到代价矩阵 的完整形式。供应向量应相应更新为:
由于我们已经有了成本矩阵c,供应商向量 和需求向量 ,通过求解该OT问题,可以得到最优运输计划 的最优解可以通过Sinkhorn-Knopp迭代获取。在获得 后,可以通过将每个锚点分配给向其运送最大数量标签的供应商来解码相应的标签分配解决方案。后续过程(例如,根据分配结果计算损失、反向传播)与FCOS和ATSS中完全相同。注意到OT问题的优化过程只包含一些矩阵乘法,这些矩阵乘法可以被GPU设备加速,因此OTA仅将总训练时间增加不到20%,并且在测试阶段完全免费。
3.3 Advanced Designs
Center Prior
之前的工作仅从区域有限的对象的中心区域选择正锚点,称为中心先验。这是因为它们要么受到大量模糊锚点的影响,要么在后续过程中出现糟糕的统计数据。我们的OTA不是依赖统计特征,而是基于全局优化方法,因此自然地抵制这两个问题。理论上,OTA可以将gts框区域内的任何锚点分配为正样本。然而,对于像COCO这样的一般检测数据集,我们发现中心优先仍然有利于OTA的训练。强制探测器专注于潜在的积极区域(即中心区域)可以帮助稳定训练过程,特别是在训练的早期阶段,这将导致更好的最终表现。因此,我们在成本矩阵之前强加了一个中心。对于每个gt,我们根据锚点和gts之间的中心距离,从每个FPN级别中选择 最近的锚点。对于不在 最近列表中的锚点,它们在成本矩阵c中的相应条目将受到额外的恒定成本的约束,以减少它们在训练阶段被分配为正样本的可能性。
在第4节我们将证明,尽管OTA与其他工作一样采用了一定程度的中心优先,但当r设置为较大值(即,大量潜在的正锚以及更模糊的锚)时,OTA表现的更好。
Dynamic k Estimation
直观地,每个gt(即第3.1节中的si)的适当正锚点数量应不同,并基于许多因素,如物体的大小、比例和遮挡条件,由于很难直接建模从这些因素到正锚点数量的映射函数,我们提出了一种简单但有效的方法,根据预测的边界框和gt之间的IoU值,粗略估计每个gt的适当正锚点数量。具体来说,对于每个gt,我们根据IoU值选择前q个预测。这些IoU值相加以表示此gt的正锚点估计数量。我们将这种方法命名为动态k估计
。这样的估计方法是基于以下直觉:某个gt的适当正锚点数量应该与该gt回归良好的锚点数量正相关。在第4节,我们对固定k估计策略和动态k估计策略进行了详细的比较。
图2。最佳传输分配的说明。成本矩阵由每个anchor-gt对之间的成对cls和reg loss组成。寻找最佳标签分配的目标被转换为解决最佳运输计划,该计划以最低的运输成本通过Sinkhorn-Knopp迭代将标签从供应商(即GT和BG)运输到需求者(即锚)。
我们还描述了OTA的完成过程,包括算法1中的中心先验和动态k估计。
4. Experiments
在本节中,我们对MS COCO 2017 [22]进行了广泛的实验,该实验分别包含train、val和test-dev约118k、5k和20k图像。对于消融研究,我们在训练集上训练探测器,并在验证集上报告性能。在test-dev集上与其他方法进行了比较。我们还将OTA与人群人类验证集上的其他方法进行了比较,以证明OTA在人群场景中的优越性。
4.1 Implementation Details
如果未指定,我们将使用在ImageNet上预先训练的ResNet-50,其中FPN作为我们的默认主干。大多数实验都是用90k迭代来训练的,迭代表示为“1×”。初始学习速率为0.01,在60k和80k迭代后衰减因子为10。Minibatch大小设置为16。按照通常的做法,在8个GPU上使用SGD训练模型。
OTA可以用于基于锚的探测器和无锚的探测器,以下实验主要在FCOS上进行,因为它的简单性。我们采用Focal Loss和IoULoss作为构成成本矩阵的Lcls和Lreg。alpha设置为1.5。对于反向传播,回归损耗被GIoU损耗取代,并由因子2重新加权。IoU分支首次在YOLOv1中引入,并被PAA证明在现代一级物体探测器中有效。我们还采用IoU分支作为我们实验中的默认组件。第3.3节中的top q直接设置为20,因为我们发现这组参数值在各种情况下都可以始终产生稳定的结果。
4.2 Ablation Studies and analysis
Effects of Individual Components
我们验证了我们提出的方法中每个组成部分的有效性。为了公平比较,所有探测器的回归损失都乘以2,这被称为在高IoU阈值下提高AP的有用技巧。如表1所示,当不采用辅助分支时,OTA的性能优于FCOS 0.9%AP(39.2% vs 38.3%)。在向两个模型添加IoU分支后,这一差距几乎保持不变(分别为39.5% vs 40.3%和38.8% vs 39.6%,有或没有中心之前)。最后,动态k将AP推向了新的最先进的40.7%。在整篇论文中,我们强调了OTA可以应用于基于锚点的探测器和无锚点的探测器。因此,我们还在RetinaNet [21]上采用了OTA,在特征图上只有一个方形锚点分配。如表1所示,OTA-FCOS和OTA-RetinaNet的AP值完全相同,证明了OTA在基于锚点和无锚点的探测器上的适用性。
Effects of r
中心优先的半径r值用于控制每个gt的候选锚点数量。如果采用较小的r,则只有靠近对象中心的锚点可以被分配为正值,从而帮助优化过程集中在更有可能具有信息性的区域上。随着r的增加,候选的数量也二次方增加,导致优化过程中的潜在不稳定性。例如,当r设置为3、5或7时,它们对应的候选锚点数量分别为45、125和245。我们在表2中研究了ATSS、PAA和OTA在不同r值下的行为。当r设置为5时,OTA实现了最佳性能(40.7%)。当r像ATSS和PAA那样设置为3时,OTA也达到40.6%AP,这表明大多数潜在的正锚点都在COCO上的物体中心附近。虽然r设置为7,但性能仅略有下降0.3%,表明OTA对超参数r不敏感。
Ambiguous Anchors Handling
大多数现有的动态标签分配方法只为每个gt执行一个小的候选集,因为大量的候选会带来麻烦——当遮挡发生或几个对象足够接近时,锚可以同时是多个GT的合格候选者。我们将此类锚点定义为模糊锚点
。以前的方法主要通过引入手工创建的规则来处理这种模糊性,例如最小区域、最大IoU和最小损失。为了说明OTA在模糊处理方面的优越性,我们统计了ATSS、PAA和OTA中模糊锚点的数量,并在表2中评估了它们在差异下的相应性能。注意到OTA的最优分配计划是连续的,因此我们定义了当
时,锚点aj为模糊锚
。
表2显示,对于ATSS来说,模糊锚点的数量大幅增加当 r从3增加到7时。而其业绩相应从39.4%下降到37.2%。对于PAA,模糊锚点的数量对r敏感度较低,但其性能仍下降0.8%,这表明PAA采用的Max IoU在模糊锚点之前并不是理想的。在OTA中,当多重标签倾向于将正标签传输到同一锚点时,OT算法将根据全局代价最小的原则自动解决它们的冲突,因此OTA的模糊锚点数量仍然很低,而且随着数量的增加几乎没有增加,r从3到7。相应的性能也是稳定的。
此外,我们在执行OTA之前,根据手工制作的规则手动分配模糊的锚点。在这种情况下,OTA只负责pos/neg样本的划分。表3显示,这种手工规则和OTA的组合分别使AP降低0.7%和0.4%。最后,我们在图3中可视化了一些分配结果。红色箭头和虚线椭圆形突出了模糊区域(即,不同fgs之间的重叠或fgs和bg之间的连接)。由于缺乏上下文和全局信息,ATSS和PAA在这些区域的表现很差,导致检测性能次优。相反,OTA在这些地区分配的积极锚要少得多,我们认为这是一种预期的行为。
图3。分配结果的可视化。对于PAA点代表正锚框的几何中心。对于ATSS和OTA点代表正锚点。矩形表示gt边界框。为了清楚地说明不同分配策略之间的差异,我们将所有方法的r设置为5。仅显示具有最多正锚点的FPN层,以更好地可视化。
Effects of k
在执行Sinkhorn-Knopp迭代之前,我们需要定义每个gt可以提供多少个正标签。此值还表示每个gt需要多少锚点才能更好地收敛。一个幼稚的方法是将k设置为所有gts的恒定值。我们尝试从1到20的不同k值。如表4所示,在所有不同的值中,k=10和k=12实现了最佳性能。随着k从10增加到20,锚同时适合作为两个接近目标的正样本的可能性也增加,但根据表4,没有明显的性能下降(0.2%),这证明了OTA在处理潜在模糊性方面的优越性。当k=1时,OTA成为一对一分配策略,与DeTR中相同。糟糕的性能告诉我们,通过1×调度器下的一对一分配实现竞争性能仍然具有挑战性,除非增加了辅助的一对多监督。
Fixing k策略
假设每个适当的正锚点数量相同。然而,我们认为,每个gt的这个数字应该有所不同,并可能受到许多因素的影响,如物体的大小、空间态度和遮挡条件,因此,我们采用了第3.3节中提出的dynamic k
Estimation,并将其性能与Fixing k策略
进行了比较。表4中的结果表明,dynamic k
超过了固定k的最佳性能0.4%AP,验证了我们的观点和动态k估计策略的有效性。
4.3 Comparison with State-of-the-art Methods
如表5所示,我们使用ResNet-101-FPN的方法实现了45.3%的AP,优于所有其他具有相同主干的方法,包括ATSS (43.6% AP),自动分配(44.5% AP)和PAA(44.6%)AP。注意到,对于PAA,我们删除了分数投票程序,以公平比较不同标签分配策略。使用ResNeXt64x4d-101-FPN[43],OTA的性能可以进一步提高到47.0% AP。为了证明我们的方法与物体检测中的其他先进技术的兼容性,我们采用了可变形卷积网络(DCN) [54]到ResNeXt主干以及检测头中的最后一个卷积层。这将我们模型的性能从47.0% AP提高到49.2%AP。最后,通过多尺度测试技术,我们的最佳模型达到51.5%AP。
4.4 Experiments on CrowdHuman
拥挤场景下的物体检测引起了越来越多的关注。与为COCO等一般目标检测而设计的数据集相比,在拥挤的数据集中,模糊性发生得更频繁。因此,为了证明OTA在处理模糊锚点方面的优势,有必要在拥挤的数据集上进行实验——人群。拥挤人群在训练、验证和测试集中分别包含15000张、4370张和5000张图像,图像中的平均人数为22.6人。对于所有实验,我们训练30个epoch(即2.5x)的检测器,以获得更好的收敛性。NMS阈值设置为0.6。在实验中,我们采用ResNet-50作为默认主干。其他设置与我们在COCO上的实验相同。对于评估,我们遵循标准的加州理工学院评估指标–MR,它代表每图像误报率(FPPI)的对数平均缺失率,范围为 。还报告了AP和召回,以供参考。所有评价结果均报告在人群人类值子集上。
如表6所示,RetinaNet和FCOS分别仅实现58.8%和55.0%的MR,这远远低于Faster R-CNN(带FPN)等两级探测器,揭示了一级探测器在人群场景中的困境。从Free Anchor开始,动态标签分配策略逐渐提高了一级探测器的性能。ATSS实现了49.5%的MR,这非常接近Faster R-CNN(48.7%AP)的性能。最近提出的LLA利用了损失感知标签分配,这与OTA类似,实现了47.9%的MR。然而,我们的OTA向前迈出了一步,将全局信息引入标签分配,将MR提高到46.6%。OTA的AP和召回也明显超过了其他现有的一级探测器。
虽然PAA在COCO上与OTA实现了竞争性能,但它在人群人类上表现得很挣扎。我们推测PAA需要明确的pos/neg决策边界来帮助GMM学习更好的集群。但是拥挤的场景,这种明确的边界可能不存在,因为潜在的负样本通常覆盖足够数量的前景区域,导致PAA的性能不佳。此外,PAA执行per-gt的聚类,这极大地增加了在拥挤的数据集上的训练时间,如人群人类。与PAA相比,OTA仍然显示出有希望的结果,这表明OTA在各种检测基准上的优越性。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)