AutoAssign

论文:AutoAssign: Differentiable Label Assignment for Dense Object Detection
时间及出处:2020

1. Motivation

针对现有label assignment所存在的问题,提出新的解决方法:AutoAssign

  • unaware of object appearance or only partially dynamic在这里插入图片描述(1)FCOS以落入某个GT框中心区域的anchor point作为正样本,原因是处于物体中心区域的anchor point一般会出现在物体上,并且其感受野更适合覆盖整个物体,所以通常会输出更高的置信度。
    (2)FCOS的中心区域的半径是固定的,不会随着物体的大小而改变,这是不合理的;在实际场景中,有些种类的物体的中心区域并不会包含很多的物体区域(如上图所示),并且中心区域也可能不包含最具代表性的区域(如,human),所以固定大小的中心区域是有局限性的,判断anchor point是否为正样本应该是object appearance-aware(如,AutoAssign)
  • Spatial and scale are tackled respectively, lack of joint / unified paradigm
    这种固定的label assignment(如,RetinaNet, FCOS等)可能无法合适地判定样本的正负性。于是,出现了以下多种动态的label assignment:
    (1)动态地调整anchor的形状:Guided Anchoring, MetaAnchor
    (2)在spatial层面动态分配:FreeAnchor, ATSS, Learning from noisy anchors
    (3)在scale层面动态分配:FSAF
    现有的dynamic label assignment存在1个问题:只考虑label assignment的其中1个层面,没有同时考虑两个层面,不能算完全地自适应label assignment。AutoAssign就是来解决此问题的。
    在这里插入图片描述
  • tons of hyper-parameters to tune
    hyper-parameters:anchors, IoU thresholds, top-k or scale ranges. AutoAssign没有这些超参数。

2. AutoAssign

2.1 overview

  • 以FCOS为baseline,直接在每层特征图上的每个位置输出类别概率和边界框预测量

在这里插入图片描述

2.2 Center Weighting

1. motivation

  • 由于物体的形状符合某个规律的,并不是杂乱无章的,正样本的weighting map也会符合某种分布,由先验可知,物体的中心被标记为正样本的概率是最大的,距离物体中心越远的anchor point,其被标记为正样本的概率就越低,我们将这种分布称为center prior,这种利用先验分布来初始化weighting map的方法称为“热启动”,热启动能保证训练初始阶段的稳定性。如果没有热启动,网络将由随机分布开始学习,网络在训练初期可能会不稳定。
  • 用center prior来限制物体的分布会存在一个问题,来自不同类别的物体具有不同的分布,所以为了让center prior更好地拟合不同分布,center prior不应该是固定的,而应该是可学习的,于是提出了center weighting使得center prior可以自动地拟合来自不同类别的分布

2. 原理

  • 最常见的center prior是高斯分布,由于只涉及在 x − y x-y xy轴移动,所以引入的是二维高斯分布,并且不同类别应具有不同的分布,所以center prior的形式如下:
    在这里插入图片描述
    其中, d ⃗ \vec{d} d 表示原图上落入GT框内的某一个位置相对于GT框中心坐标的二维偏移量(正负均可); μ ⃗ \vec{\mu} μ σ ⃗ \vec{\sigma} σ 是可学习的参数,分别表示高斯分布的均值和标准差,两者的维度是 ( K , 2 ) (K,2) (K,2) K K K是类别总数,所以每一个类别均对应一个高斯分布。
  • 实际上, μ ⃗ \vec{\mu} μ 是每一类高斯分布中心,控制着原始高斯分布中心(即GT框中心)的偏移量,而 σ ⃗ \vec{\sigma} σ 表示的是每一类高斯分布的分散性,其控制着距离高斯分布中心的各个anchor point成为正样本的概率。
  • 由于同类物体的GT框也可以有不同的scale和aspect ratios,所以将其应用到FPN的各个输出特征图上前,使用与各层相对应的下采样率进行规范化。
  • 高斯分布是在原图上学习,然后下采样至不同特征图上的。

2.3 Confidence Weighting

1. motivation

  • 特征图的某个位置 i i i的输出值表示:该位置存在某类物体的概率 P i ( c l s ∣ θ ) P_i(cls\mid \theta) Pi(clsθ),其中, θ \theta θ是网络参数。对于正样本的weighting maps,为了找到合适的正样本,我们应该考虑GT框内所有anchor point,但一般情况下物体不会覆盖GT框内的所有位置,并且只输出 K K K个类别的weighting maps,背景类并没有对应的weighting map,所以,考虑过多的背景类anchor point,会影响weighting map的性能。
  • 就像RPN和YOLO那样,可以引入objectness表示该位置是否存在物体,在训练标签只有GT框,这不像图像分割那样,每个像素具有类别,所以得到objectness的训练标签。注意:RPN和YOLO是通过anchor box与GT框的IoU来间接得到objectness的训练标签。为解决这个问题,AutoAssign引入了Implicit-Objectness。

2. classification confidence

对于所有特征图的GT框包含的anchor point集合 S n S_n Sn的每一个位置 i i i,其输出的classification confidence
P i ( c l s ∣ θ ) = P i ( c l s ∣ o b j , θ ) P i ( o b j ∣ θ ) P_i(cls\mid \theta)=P_i(cls\mid obj, \theta)P_i(obj\mid \theta) Pi(clsθ)=Pi(clsobj,θ)Pi(objθ)其中, P i ( o b j ∣ θ ) P_i(obj\mid \theta) Pi(objθ)就是implicit-objectness,表示该anchor point为前景类的概率, P i ( c l s ∣ o b j , θ ) P_i(cls\mid obj, \theta) Pi(clsobj,θ)表示给定某个物体,该物体为某一类的概率。

3. joint confidence modeling

目标检测包括分类和回归,现在已经得到类别概率 P i ( c l s ∣ θ ) P_i(cls\mid \theta) Pi(clsθ),可以用二元交叉熵损失来构造分类损失
L i c l s ( θ ) = − l o g ( P i ( c l s ∣ θ ) ) L_i^{cls}(\theta)=-log\left(P_i(cls\mid \theta)\right) Licls(θ)=log(Pi(clsθ))但是,到目前为止,还没有做label assignment,何来正负样本呢?在回答此问题前,先思考以下问题:

  • 为什么需要做label assignment?实际上,label assignment就是要定义正负样本,构造训练标签,进而构造损失函数,也就是说,label assignment的结果是体现在损失函数上的。AutoAssign就是通过自动地构造损失函数,实现自适应label assignment的,具体地说就是,先粗略地判定样本的正负性,再通过给样本损失添加一个自适应权重,实现自动构造损失函数,最终实现自适应label assignment,这是AutoAssign最核心的思想

为构造损失函数,先用FCOS最初的label assignment方法,粗略判定样本的正负性:

  • 将每个物体assign给所有的特征层
  • 对于每个特征层,将落入GT框内的anchor point作为正样本,其类别为GT框的类别,并负责预测该GT框。如果anchor point落入两个GT框的重叠区域,则该anchor point负责预测面积小的GT框。
  • 对于每个特征层,将不落入任何GT框的anchor point均为负样本。

因此,有了正负样本,就可以计算分类损失 L i c l s ( θ ) L_i^{cls}(\theta) Licls(θ)和定位损失 L i l o c ( θ ) L_i^{loc}(\theta) Liloc(θ),总损失函数
L i ( θ ) = L i c l s ( θ ) + λ L i l o c ( θ ) L_i(\theta)=L_i^{cls}(\theta)+\lambda L_i^{loc}(\theta) Li(θ)=Licls(θ)+λLiloc(θ)

为了得到confidence maps,可以将总损失转换成置信度,即

在这里插入图片描述
那么confidence map P i ( θ ) P_i(\theta) Pi(θ)同时描述了位置 i i i的分类性能和定位性能。

4. weighting function

对confidence map P i ( θ ) P_i(\theta) Pi(θ)进行转换成权重,则转换函数为
C ( P i ) = e P i ( θ ) τ C(P_i)= e^\frac{P_i(\theta)}{\tau} C(Pi)=eτPi(θ)其中,论文中令 τ = 1 / 3 \tau=1/3 τ=1/3
在这里插入图片描述
P i ( θ ) P_i(\theta) Pi(θ)的取值范围是 [ 0 , 1 ] [0,1] [0,1],为什么不直接以 P i ( θ ) P_i(\theta) Pi(θ)作为权重呢?

  • 后续可以看到,对于原先粗略定义的负样本,其权重固定为1,因为我们可以非常确定地将其定义为负样本,无需做调整,而对于GT框内的正样本,如果其输出的概率 P i ( θ ) → 0 P_i(\theta)\to0 Pi(θ)0,那么其成为负样本的概率就越大,所以需要用指数函数,设置其权重接近于1。那是不是可以直接令 C ( P i ) = P i ( θ ) + 1 C(P_i)= P_i(\theta)+1 C(Pi)=Pi(θ)+1来实现呢?
  • 对于GT框内的正样本,如果其概率值越大,我们使用指数函数后可以迅速增大其权重。

5. positive weight maps

正如之前所说,热启动可以保证训练初期的稳定性,所以对于positive weight map,可以用调整后的高斯分布 G ( d ⃗ i ) G(\vec{d}_i) G(d i)作为先验指导,对于位置 i ∈ S n i\in S_n iSn, positive weight:
w i + = C ( P i ) G ( d ⃗ i ) ∑ j ∈ S n C ( P j ) G ( d ⃗ j ) w_i^+=\frac{C(P_i)G(\vec{d}_i)}{\sum_{j\in S_n}C(P_j)G(\vec{d}_j) } wi+=jSnC(Pj)G(d j)C(Pi)G(d i)注意:每个特征层的每个类别均对应一个 C ( P i ) C(P_i) C(Pi) G ( d ⃗ i ) G(\vec{d}_i) G(d i)

6. negative weight maps

对于GT框内的所有预先定义的正样本中,其中有一些是false positive,对于这些false positive,仍然采用定位损失进行边界框预测,为此,利用IoU引入negative weight maps
w i − = 1 − f ( i o u i ) w_i^-=1-f(iou_i) wi=1f(ioui)其中, f ( i o u i ) = 1 / ( 1 − i o u i ) f(iou_i)=1/(1-iou_i) f(ioui)=1/(1ioui) i o u i iou_i ioui表示位置 i i i的预测边界框与所有GT框的IoU的最大值。另外 f ( i o u i ) f(iou_i) f(ioui)会被归一化至 [ 0 , 1 ] [0,1] [0,1]For all locations outside bounding boxes, w i − w_i^- wi is set to 1 because they are backgrounds for sure.

  • i o u i → 0 iou_i\to0 ioui0 w i − → 1 w_i^-\to1 wi1,表明其为负样本的概率越大。
  • i o u i → 1 iou_i\to1 ioui1,归一化后的 f ( i o u i ) → 1 f(iou_i)\to1 f(ioui)1 w i − → 0 w_i^-\to0 wi0,表明其为负样本的概率越小。

6. total loss function

总损失函数为:
在这里插入图片描述

  • N N N:输入图像的物体总数
  • S n S_n Sn:所有特征层中,位于物体 n n n边界框内的所有位置的集合
  • S S S:所有特征层中所有位置的集合
  • P i + P_i^+ Pi+:confidence maps P i ( θ ) P_i(\theta) Pi(θ)
  • P i − P_i^- Pi:类别概率 P i ( c l s ∣ θ ) P_i(cls\mid \theta) Pi(clsθ),不包含位置置信度

损失函数的含义:

  • 位于GT框内的预定义正样本,包含第一项的positive loss和第二项的negative loss,并且正样本权重 w i + w_i^+ wi+和负样本权重 w i − w_i^- wi均通过网络学习得到。
  • 位于所有GT框外的预定义负样本,只包含第二项的negative loss,并且负样本权重 w i − ≡ 1 w_i^-\equiv1 wi1
  • 该损失函数符合一般的目标检测损失函数,即,负样本只用于分类,正样本同时用于分类和回归。
  • 具体地,负样本的loss为Focal loss,边界框损失为GIoU loss。

3. 实验

1. 验证center weighting的有效性

  • center weighting的可视化结果如下所示,由于不同特征层具有不同的下采样率,所以下采样后结果是不一样的,对于尺寸最小的 P 7 P_7 P7,下采样后只有较少的中心区域有较高的置信度,那么可视化后,其重点区域将比较大,同样的 P 3 P_3 P3的重点区域比较小,但其更能反映原始的分布。

  • 下图所示的两种类别的物体的高斯分布的中心均非常接近GT框中心点,重点区域也接近圆形,这似乎表明center weighting不起作用(起明显作用时表现出高斯分布的中心会偏移,且圆形可能变成椭圆),其实真正原因是:这两类物体的形状比较接近正方形,又由于数量较多,实际上已经可以看成标准正态分布了。
    在这里插入图片描述

  • 对于以下两种长条形的物体,可以看出center weighting确实是起作用了
    在这里插入图片描述
    在这里插入图片描述

  • 为定量说明center weighting的有效性,作者在整个算法设计完成后做了以下实验:
    (1)none表示不使用center prior和center weighting,此时 A P AP AP非常低
    (2)fixed表示使用固定的center prior,但不使用center weighting,此时 A P AP AP明显提升,验证了center prior的有效性。
    (3)shared表示使用center prior和center weighting,但不同类别的物体共享一个高斯分布,此时 A P AP AP反而下降了,原因是:由于大部分类别的物体的宽高比是接近1:1的,使用了center weighting后,高斯分布趋向于拟合这些物体,所以对于特殊宽高比的类别拟合更差了,最终这些类别的 A P AP AP就下降了。
    (4)category表示使用center prior和center weighting,且不同类别的物体对应不同高斯分布,这时,特殊宽高比的类别的 A P AP AP均有所提升,表明了center weighting的有效性。但是,为什么 A P AP AP与(2)(3)差别不大?因为大部分类别的物体的宽高比是接近1:1的,由于数量多,可以看成标准正态分布,此时center weighting过多改变原先的正态分布。

在这里插入图片描述

2. 验证confidence weighting的有效性

confidence weighting的可视化结果

  • confidence weighting会自动着为每一个物体选择合适的特征层,并且为每个物体选择最合适的位置作为正样本。可以看出,一个物体可以同时assign给2个相邻的特征层,这与FoveaBox的实验结果是一致的。

在这里插入图片描述
confidence weighting中各个构件的分析

  • P ( c l s ) P(cls) P(cls)-only表示只使用 P ( c l s ) P(cls) P(cls)来构造confidence map P i ( θ ) P_i(\theta) Pi(θ) P ( l o c ) P(loc) P(loc)-only表示只使用 P ( l o c ) P(loc) P(loc)来构造confidence map P i ( θ ) P_i(\theta) Pi(θ) P ( c l s ) P(cls) P(cls)-only由于缺失定位信息,对confidence map不是一种完全描述,所以 A P AP AP较低;而 P ( l o c ) P(loc) P(loc)-only虽然只用到了定位信息,但由于center weighting可作为一种粗略的分类信息(对比上图,center weighting和confidence weighting的可视化结果相近),所以 A P AP AP较高。
  • no-obj表示没有使用objectness来构造 P ( c l s ) P(cls) P(cls),其 A P AP AP相比于AutoAssign的40.5%有所下降
  • explicit-obj表示使用如YOLO这种显式的objectness

在这里插入图片描述
最终性能

  • 不使用多尺度训练和多尺度预测, A P AP AP为48.3%
  • 只使用多尺度训练, A P AP AP为49.5%
  • 同时使用多尺度训练和多尺度预测, A P AP AP为52.1%
    在这里插入图片描述
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值