AutoAssign论文解析

AutoAssign: Differentiable Label Assignment for Dense Object Detection
论文地址:arXivpreprint arXiv:2007.03496, 2020.
源码地址:AutoAssign-torch

1. Abstract

确定目标检测中的正负样本称之为标签分配。文中展示了一种anchor-free检测器称为AutoAssign,不再像之前的检测算法需要经过手工的分配正负样本,如像anchor-based检测器中常用的某个anchor与GT的IoU大于某一个阈值则为正样本;小于某一个阈值则为负样本;再如anchor-free中的FCOS,是以anchor中心点在GT中心点的一个边长为d的正方形中的anchor为正样本,负责为负样本。即使是ATSS也是当anchor生成之后就已经确定正负样本了,是一种伪动态的划分。AutoAssign不再需要先验知识,并且通过一种完全可微的加权机制就可以获得的外观感知能力。在训练时,满足数据的先验分布以及适应类别特征,通过Center Weighting来适应特定类别的先验分布。为了获取目标的形状,Confidence Weighting置信度加权用于获取每个实例的具体分配策略。两个加权模块的联合使用来得到正负样本去调整每个预测位置(anchor/key point)的confidence。

2. Introduction

当前主流的检测器都是基于CNN的密集检测器,anchor-based中的two-stage(Faster RCNN,SPPNet, MaskRCNN等)以及one-stage中的SSD,RetinaNet,YOLOv2,v3等检测器,都是以一种常规的密集的采样方式去获取正负样本。这种密集检测器引出的一个问题就是**在每个location区域上的正负样本该如何定义?**也就是label assignment问题。采用FPN多尺度特征融合,可以缓解尺度不变性,label assignment需要的不仅仅是在每个特征图上选择locations(spatial assignment空间分配)而且需要在不同level的特征图上选择合适的scale proposal(scale assignment)。如下图,当前的检测器大都是基于一种先验知识来划分的:

在这里插入图片描述
然而,目标的形状会随着类别和场景的不同而发生变化。上诉提及到的这种固定采样策略有可能会在目标的外围选择locations作为positive(如,banana和umbrellas),因此并不能覆盖全部的类别的不同分布。
为了解决不同的数据分布,ATSS(自适应的划分正负样本),MetaAnchor(在采样正负样本之前对anchor的shape进行动态的调整)等方法实现了精度提升,证明使得label assignment自适应的方法对检测性能提升是有潜力的。但是,这些策略仅能free基于先验数据的部分标签分配,剩下的依旧是基于手工设置的。
合理的采样正负样本比起区分开前景还是背景有更大的意义,因为正负样本划分的好坏直接决定是否能得到高质量的proposals。文中提出的AutoAssign是完全基于数据和appearance-aware目标外观的,不再需要手工设置的先验知识(如anchors与GT的IoU阈值,top-k等)来指导label assignment。采用类似于FCOS的anchor-free检测器,对于每一个locations/cells需要预测一个anchors,将所有level上的特征图的locations视作正负样本的侯选集。为了适应不同类别的数据分布,采用基于类别的Center Weighting加权机制来学习类别分布。为了获取每个实例的appearance和scale,使用Confidence Weighting加权机制来调整每个locations上的正负样本的confidence。在训练期间两个加权模块通过BP来优化,并且加权模块只在计算loss时被使用,更重要的是:该方法只需要center prior中心点的先验知识,没有其他超参数

综上所述,论文的贡献在于:
1)提出appearance-aware和完全可区分的加权机制的label assignment,使得spatial和scale assignment以一种联合的方式被优化;
2)两个加权机制:Center Weighting在Prior尺度上(先验知识)和Confidence Weighting分别在spatial以及scale维度上来获取类别的先验分布以及正负样本的采样;
3)在COCO数据集上实现了SOTA的性能,以及在VOC,Object365和WiderFace数据集上的性能结果证明了AutoAssign的广泛应用性。

3. Methodology

3.1. Overview

首先回答一个问题:为什么标签分配是如此重要的?通过各种检测器中的不同label assign的对比,全面的解析:
在这里插入图片描述
虽然先前的方法或多或少的都没有完全脱离手工设置的先验知识,但是存在这两点共性:
1)所有的检测器都有Center Prior这个先验知识;
2)Spatial和scale维度上的label assignment都被涉及到。

上图为FPN中的部分,最后的输出有:classification scores,implicit objectness以及localization offsets,一起输入到confidence indicator:Center Weighting module的初始值为标准center prior并且从数据集中学习到每个类别的分布;Confidence Weighting module基于目标的appearances和scale自适应的对每个实例分配最合适的locations。对于每个GT box中的locations,两个加权模块联合得到正负样本的权值,最后计算正负样本的分类loss。
从标签分配的角度出出发,给定一个目标,AutoAssign将会根据网络的输出来自动的跨越特征图和空间位置来找到该目标合适的scale。因此,以一种联合的,外观感知的,可区分的方式解决了标签分配的任务。

在这里插入图片描述
上层的网络是普通的检测器得到的输出,包括:Classification,localization以及Implicit objectness,需要将ImpObj x Classification才得到调整后的classification confidence;预测出来的localization的offset的shape为LTRB即为左上角坐标+右下角坐标。给定一个目标,首先将其GT坐标计算初始化的Center prior,生成foreground mask前景掩码来选择GT内部的locations。选择得到的locations,进行flatten以及concat处理,对于正样本:不仅有Center Weighting还有Confidence Weighting,两个模块的结果进行相乘得到正样本的weights map;对于负样本:只有Confidence Weighting module,得到负样本的weights map。
注意:这里的confidence weighting是基于每个level上的特征图上的mask进行concat得到的(FPN出来之后的5个特征图),最后将生成的正样本的weights map和负样本的weights map分别乘上spatial维度上的confidence得到对应的正样本loss和负样本loss

3.2. Prior-level: Center Weighting

先验分布对于label assignment是非常重要的的,尤其在训练早期,并且目标的分布受限于center prior。然而,不同类别的目标,如长颈鹿和人,可能有不同的分布。仅仅采样center positions中心点位置并不能捕捉到不同类别的不同分布。因此,自适应的采样不同类别的中心点分布是更为有效的。
从center prior开始,引入一个基于类别的Gaussian-shape函数G,具有两个参数,如下:
在这里插入图片描述
随后Center Weighting module将会产生每个locations权重:proposal的中心点越接近GT的中心点具有更高的权重,反之则权重更小。并且可以根据数据每个类别的不同分布,自动的调整proposal的shape。 (1)中的d表示目标中的特定位置到box中心点的距离(在x和y维度上),u和σ是可学习的参数,其shape为(K, 2),K表示数据集中的类别数,每个类别有两个维度上的值,对应着x维度和y维度。在训练开始时,初始化参数u为0以及σ为1,u用来控制box中心的每个类别的中心偏移量,σ基于类别特征来生成每个locations的重要性也就是confidence。如上框架图,bounding box将会生成locations的weight map,即为”Center Prior”。对于FPN中的每个特征图,都会通过函数G来计算每个location的权重;另外,为了缓解不同level特征图的scale差异,计算权重时将每个特征图上的d进行归一化(除上对应的下采样率)。

3.3. Instance-level:Confidence Weighting

正如3.2.章节提到的:FPN中的每个level的特征图上的location只要在GT box内部,都被视作为正样本或者负样本的侯选集。这种操作将会极大的增加正样本中的背景locations,减小负样本中的背景locations。与其他的标签分配机制不同:先前的方法往往是在计算loss前采样一部分locations作为正样本;另外,本文提出的AutoAssign为了获取GT box内部的locations的合理的可靠的权重,联合考虑classification和regression。也就是本章节的Confidence Weighting,classification和regression联合的置信度指示器在spatial和scale两个维度上指导加权策略。

3.3.1. Classification confidence

经典的检测器选择出来的正样本代表着locations有着很高的目标覆盖置信度,但是在本文方法中的initial正样本侯选集中包含了一些背景locations。如果一个location是一个背景,所有的类别预测都是不准确不可靠的,但是使用更多的差的负样本作为positives会极大地降低检测性能。为了抑制噪声候选集(正样本侯选集中的背景样本,负样本侯选集中的前景样本),引入了一个Implicit-Objectness(ImpObj)分支,也就是上图网络框架中的回归分支中的ImpObj,类似于FCOS中的center-ness,但与之不同的这里的confidence分支缺乏一个明确的监督。考虑到目的是为了找到合适的正样本以及自动地过滤掉噪声样本,因此文中将classification分支与ImpObj分支联合优化。最后,使用ImpObj与classification score的乘积来表示修正过后的classification confidence,其中ImpObj与classification分支共享监督,但是并没有明确的labels(如对于背景label为0,对于前景label为1)

3.3.2. Joint confidence indicator

为了得到每个location生成正样本/负样本的无偏估计,不仅要关注classification confidence还要关注localization confidence。检测器的回归输出一般都是偏移量(e.g. ltrb, xywh),很难去直接衡量regression confidence。考虑到分类任务一般使用BCE loss(得到一个概率值),因此将localization loss也转换成一个概率值,如下:
在这里插入图片描述
其中Localization loss使用Giou loss,λ是平衡classification loss和regression loss的超参数
之后联合classification score和regression概率值得到joint confidence联合置信度Pi。

对于正样本的置信度:Pi + = Pi(cls)x Pi(loc),其中Pi(cls)表示预测的classification score与ImpObj score的乘积;
对于负样本的置信度:Pi - = Pi(cls),由于分类任务上才会包括负样本,回归任务上是没有负样本的,因此负样本的置信度是没有regression confidence的。

3.3.3. Positive weights

如果一个location有很高的正样本置信度,那么将其设置为前景。
基于联合置信度表示Pi+,提出confidence weighting function置信度权重函数C(Pi+),以一种指数函数来强调这个locations具有很高的覆盖目标置信度如下:

在这里插入图片描述
其中,τ是控制高置信度和低置信度locations对正样本loss的贡献。对于给定的目标i,所有处在GT box内部的locations,找出最合适的locations进行更准确的预测。但是,在训练前期,网络参数是随机初始化的,使得预测的置信度是不合理不可靠的。因此,引导来自先验的信息也变成至关重要了,对于location i∈Sn,Sn表示n个目标在所有level上的特征图的所有locations,联合来自Center Weighting module中得到的基于类别的先验G(di)以及来自confidence weighting函数的C(Pi+)得到正样本的权重wi+,如下:
在这里插入图片描述

3.3.4. Negative weights

正如前面所讨论的,一个proposal通常包含了许多背景样本的locations,因此需要加权的负样本loss来抑制这些locations(指的是背景locations)和消除假正例。另外,在GT内部的locations预测的边界框往往预测出来的正样本有很高的置信度,希望将localization confidence去得到FP样本的无偏估计指示器,但是,负样本confidence Pi- 并没有关于回归的提梯度,意味着localization confidence Pi(loc)不应该也不能由negative loss来优化。因此,使用每个locations所预测得到的边界框与所有目标的GT的IoU来得到负样本的权重:

在这里插入图片描述
其中,f(iou_i) = 1/(1 - iou_i),iou_i表示location i预测的边界框与所有GT box的IoU的最大值,也就是这个location i最有可能预测的GT box是哪一个,并且与最有可能的GT box的IoU
这种设置可以使得权重分布更加清晰并且可以确保具有最大IoU的locations得到的negative loss为0。另外,对于所有在GT外部的location,对应的negative wight全部设置为1,因为在GT外部的location必然是背景样本。

3.4. Loss function

通过生成的正样本/负样本权值图,实现了动态分配更加合适的spatial locations和对每一个实例自动地选择FPN中的哪一个level特征图进行预测。

在这里插入图片描述
Sn表示所有的在GT box内部的每一个level特征图上的locations,S表示所有预测特征图上的所有locations,不仅仅是GT box内部还包括外部为了保证每一个目标都至少有一个location与之匹配,使用该目标对应的所有正样本的加权求和来获取positive confidence,因此处于GT box内部的location,正样本loss和负样本loss都会以不同的权重被计算,并且正负样本loss的计算是相互独立的。为了解决负样本loss中的正负样本不平衡问题,使用Focal loss来计算。

4. Experiments

在MSCOCO 2017 train set上进行训练,使用val set进行模型的消融实验,训练细节包括:
1)如果没有特别指出,那么使用ResNet50+FPN作为backbone;
2)训练模型为90k iterations,初始学习率为0.01,并且在迭代到60k和80k iteration时,学习率分别除以10,weight decay为1e-4,momentum为0.9,使用随机水平翻转作为数据增强策略;
3)在所有的消融实验中,如果没有特别指出,使用800x800的图像尺寸进行训练和测试,其他的超参数设置:confidence weighting function C(Pi+)中的τ = 1/3;localization loss转换成概率值中的λ= 5;Focal loss中使用的α=0.25,β=2;NMS中使用的阈值为0.6

4.1. Overall weighting mechanism

为了证明论文中提出的两个加权模块,首先在计算正样本权重wi+时只使用Center Weighting或者Confidence Weighting,同时保持负样本的加权方式不变。从下表可以看出Center Weighting可以带来不小的性能提升,说明先验分布对于指导训练是至关重要的,另外,confidence weighting根据目标的外形在spatial和scale维度上动态的改变策略来进一步提升性能。
在这里插入图片描述
第一行17.7的AP精度是在baseline上去掉w+和w-也就是正负样本的权重计算在公式6中去除。

为了证明通过两个加权机制是如何来进行spatial和scale两个维度上的assignment?如下图:
在这里插入图片描述
从训练好的检测器中可视化出FPN中的每一个level特征图,得到对应的正样本权重映射图,经过Center Weighting可以得到一个基于特定类别center prior的比较粗糙的加权,接着Confidence Weighting在根据目标外形获取对应的权值。两个模块的联合使用保证每个实例可以进行scale和spatial维度上的联合assignment。

可以看出对于小目标的center weighting加权结果和confidence weighting在大特征图上的效果比较明显,反之亦然,这也符合了具有FPN检测器的一个共识:在尺寸小的特征图上预测大目标,在尺寸大的特征图上预测小目标。上图中的stage3-7对应FPN输出的5个level特征图P3-P7(相对于输入图像的下采样率为8,16,32,64,128).

4.2. Center Weighting

为了分析Center weighting的作用,对比了几种不同的先验分布,如下表:
在这里插入图片描述
None表示不使用任何的先验分布,fixed表示Gaussian-shape函数G中的两个参数u和σ是固定的,shared表示两个参数是可学习的,但是对于AP值得提升,文中提出的基于类别的先验分布相比于fixed只高出0.2个AP值。但是对于某些特定类别的检测,如冲浪板,热狗,熊等等,此时的基于类比的先验分布的检测精度就会高很多。

具体的可视化结果如下:
在这里插入图片描述
上图展示了不同类别的中心权重的可视化结果,所有目标都被可视化到相同的scale。摩托车和冲浪板的中心加权结果表明,先验分布变成了椭圆形(由σ来控制),可以更好的适应这些类别对应的形状特征。上图中的中心offset偏移量(由u来控制)实际上已经超过了10个pixels,意味着在输出的特征图上可能会偏移一个甚至更多的pixels。图中的红点表示GT box的中心,白点表示学习到的prior中心,可以发现:对于停车计和热狗,可学习的中心参数u会有下降的趋势,原因是这两个类别在中心下半部分的图像线索对于检测来说可能更好。

4.3. Confidence Weighting

评估classification confidence P(cls),localization confidence P(loc)以及ImpObj对模型的影响:

在这里插入图片描述
前两行中,分别单独使用classification confidence和localization confidence,而AutoAssign是联合使用P(cls)和P(loc)作为正负样本的confidence,效果明显有提升。表明joint confidence indicator对于评估locations的质量是非常有用的。
中间两行用来评估ImpObj分支的作用,explicit-obj为具有清晰的固定的标签的(e.g. 1 for foreground and 0 for background )完全监督的Objectness分支,并且只针对那些处于GT内部的locations。不难发现,使用hard label的objectness并没有带来多大的性能提升,但是文中提出的ImpObj可以带来1个AP的提升,并且对于所有sizes的目标都有提升。注意:no-obj对于P(cls)不使用ImpObj,文中的ImpObj与explicit-obj最大的区别在于,ImpObj分支与classification是共享监督的,而explicit-obj是单独一个完全监督的分支

ImpObj的作用:过滤掉噪声样本,并且可以将正负样本从背景中实现更好的分离。

4.3. Comparison with SOTA

在这里插入图片描述
对比使用不同的backbone,发现与之前的检测器相比,AutoAssign都有明显的提升,以上实验均在COCO2017 test-dev数据集上进行验证,都使用多尺度训练,+表示使用[480, 960]的多尺度训练,++表示使用多尺度测试,可以达到SOTA的检测性能52.1AP,注意:这里的FCOS*是改进版的FCOS,包括扩大中心采样半径,FPN scale的assignment规则以及增加center-ness分支

又由于AutoAssign不需要什么人工设置的先验知识,所以在超参数的调参上无需花费太多精力,并且网络的泛化性能也很不错,保持在COCO上训练好的超参数设置不变,然后在其他数据集上调整训练设置,如下表:
在这里插入图片描述

在VOC,Object365以及WiderFace数据集上的性能均有提升,证明AutoAssign对于不同的数据分布可以自动地调整,并且在不需要任何关于网络框架的调整就可以在其他数据集上实现很高的检测性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从现在开始壹并超

你的鼓励,我们就是hxd

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值