检测图片中的目标尺寸_《图解目标检测》系列之八:目标检测中的Label Assignment...

本文首发于PaperWeekly.
链接:目标检测中的Label Assignment

1 Label Assignment

Label Assignment 主要是指检测算法在训练阶段,如何给特征图上的每个位置进行合适的学习目标的表示,以及如何进行正负样本的分配的过程。也就是说label assignment有两个方面的内容:

(1)学习目标的表示:对于如何给特征图上的每个位置赋予合适的学习目标的这个问题,因为先验的不同,不同类型地算法的表示方法也不一样

  • anchor box类检测器:这类检测方法都是采用bounding box(x,y,w,h)的方法来表示图像中的一个目标。通过预测一个4维向量,也就是参数化坐标(tx,ty,tw,th),来回归得到最终的目标框,如Faster RCNN的最终目标

4e11ca86f01f973da41a961544ab8ef5.png

anchor box类的检测法被称为anchor的方法,其先验就是anchor box,将anchor box用来分类和框回归的基准框。更详细内容可以参考这篇:

目标检测中的Anchor机制回顾​zhuanlan.zhihu.com

因此采用了bounding box的形式描述目标,因此,anchor box需要若干个特定尺度(scale)和长宽比(aspect ratio) ,然后在特征图上以一定的步长滑动生成

  • anchor point类检测器:该类型的算法采用目标中心点,以及边框距中心点的距离或目标宽高来表示图像中的目标,本质上和anchor-based算法相似。经典例如:FCOS、CenterNet等。
  • key point类检测器:这类算法采用图像中目标的边界点(如:角点),再将边界点组合成目标的框,例如:CornerNet, RepPoints

anchor point和key-point往往被称为anchor free的方法,其先验是point,在point的基础上做分类和回归。更多详细内容可以参考:

目标检测中的Anchor-free回顾​zhuanlan.zhihu.com
  • set predicion类检测器:这类算法的代表作是DETR,其首次使用transformer做目标检测,将目标检测任务视为一个图像到集合(image-to-set)的问题,可以说是CV领域的重要里程碑。DETR采用bounding box(中心坐标和宽高)的形式来表示图像中的一个目标,并设先验为object queries,object queries就是一个embedding形式的learned anchor。DETR认为与其使用人工设计的anchor,不如用embedding,让网络自己去学习anchor。更多详细内容可以参考:
DETR: Postprocessing-free Detector​zhuanlan.zhihu.com

(2)正负样本的分配:对于不同的表示,分配正负样本的方式也略有不同

  • anchor box的方法:通常采用IoU的方法。例如RetinaNet,通过anchor与GT框之间的IoU判定是positive、negative还是ignore,IoU低于0.4为negative,高于0.5为positive,其他为ignore。
  • anchor point的方法:不同算法的表现形式不一样。例如CenterNet高斯热图确定正负样本,而FOC通过层级,区域和centerness分配正负样本
  • key point的方法:不同算法的也不太一样,例如RepPoints通过feature map bin和IOU进行正负样本的区分。
  • set predicion的方法:使用 Hungarian algorithm 实现预测值与真值实现最大的匹配,并且是一一对应。不会多个预测框匹配到同一个 ground truth 上,这样就无需 NMS 后处理了。

(3)小节

Label assignment 是目标检测中一个重要的环节,其结果直接决定了模型性能的好坏。对于不同的先验,Label assignment的学习目标的表示和正负样本的分配都有着不同的表示形式。

算法类型先验学习目标的表示正负样本的分配
anchor boxanchor boxbounding boxIoU
anchor pointcenter高斯等高斯热图等
key pointpointrepresentative pointsfeature map bin和IoU等
set predictionembeddingbounding boxHungarian 算法

下面再来讨论Label Assignment的几篇文章。

2 ATSS

  • 论文地址:https://arxiv.org/abs/1912.02424
  • 代码地址:https://github.com/sfzhang15/ATSS

这篇文章从anchor-free和anchor-base算法的本质区别出发,通过分析对比anchor-base经典算法retinanet和anchor-free经典算法FCOS来说明正负样本分配(label assignment)的重要性

fa2752b51b23469101b54f84b3c1c67e.png

如上图所示,RetinaNet使用IoU阈值(

,
)来区分正负anchor box,处于中间anchor box的全部忽略。FCOS使用空间(spatial)和尺寸(scale)限制来区分正负anchor point,正样本首先选择在GT box内的anchor points,其次选择GT尺寸对应的层anchor points,其余均为负样本。

最后通过交叉实验,发现在相同正负样本定义下情况下,RetinaNet和FCOS性能几乎一样,而且spatila and scale constraint的方式比IOU的效果好,如下表:

a80620af35d55df3d0bf5ba82359a12d.png

因此ATSS提出了一种新的正负样本选取方式,这种方法几乎不会引入额外的超参数并且更加鲁棒。主要就是在每个FPN层选取离gt框中心点最近的

个anchor,之后对所有选取的anchor与gt计算IOU,同时计算IOU均值
和方差
,最后保留IOU大于
均值加方差(
的并且 中心点在gt之内的anchor作为正样本。

根据下表可以发现,即使anchor box数量为1的RetinaNet和FOCS在都加上ATSS策略之后,效果都有明显的提升,这也证明了ATSS策略的有效性。

3da9594d61f47728b5dc671356db0d31.png

3 SAPD

  • 论文题目:Soft Anchor-Point Object Detection
  • 论文地址:https://arxiv.org/abs/1911.12448

SAPD就是对anchor-free检测器中的anchor-point检测器进行了训练策略的改进。SAPD分析了两个问题:注意力偏差(attention bias)和特征选择(feature selection)。其中,特征选择的问题对金字塔特征层级做软选择,这里就不深入了。而为了解决注意力偏差(attention bias),SAPD使用了一个新颖的训练策略:Soft-weighted anchor points。

(1)Attention bias注意力偏差。在自然图像中,可能会出现遮挡、背景混乱等干扰,我们发现原始的anchor-point 检测器在处理这些具有挑战性的场景时存在注意力偏差的问题,即具有清晰明亮views的目标会生成过高的得分区域,从而抑制了周围的其他目标的得分区域。这个问题是 由于特征不对齐导致了靠近目标边界的位置会得到不必要的高分 所导致的。

6e81c0bbfcbc651a47042a9506b66ce3.png

(2)Soft-weighted anchor points:将目标实际位置与anchor的中心的距离作为一个anchor的惩罚权重,加入到损失函数的计算中(仅针对正样本,负样本不做改动)。公式如下:

200f2e2da6d4e27b5825e1ff1099ae37.png

其中,η控制递减幅度,权重

范围为0~1,公式保证了目标边界处的points权重为0,目标中心处的 ponit 权重为1。

这种通过对anchor points做软加权,就是label assign的进行优化,减少对靠近边界包含大量背景信息的锚点的关注。

4 AutoAssign

  • 论文题目:AutoAssign: Differentiable Label Assignment for Dense Object Detection
  • 论文地址:https://arxiv.org/abs/1911.12448

AutoAssign 对 label assignment 进行非常全面的讨论。主要解决了在给定一个 bounding box (x, y, w, h) 后,根据框内的物体形状,动态分配正负样本的问题。如下图所示:

8ffc1cb2d428adf6838b8ed8a029f4f2.png

(1)RetinaNet是根据 anchor box 和 ground truth 的 IOU 阈值定义正负样本,这样会每个样本都是打上非正即负的标签,而且anchor box 的 num,size,aspect ratios等等都是超参数;

(2)FCOS通过centerness、空间和尺度约束来分配正负样本,也引入了很多超参数;

(3)AutoAssign 将 label assignment看做一种连续问题,没有真正意义上的正负样本之分,每个特征图上的位置都有正样本属性和负样本属性,只是权重不同罢了;而且如上图最左变所示,动态分配正负样本更符合目标的形状,可以说有利用分割做检测的思想。

下面是AutoAssign的正负样本分配的示意图:

9980a337fd41addc0ce560c7d706664b.png

可以看到,比一般的检测算法多了一个Implict Objectness分支,用于背景与前景的判断,已解决引入的大量背景位置的问题。

(1)Center Weighting

先使用高斯中心先验确定图像中一个目标正负样本的权重:

(2)Confidence Weighting

​通过ImpObj分支来避免引入大量背景位置


与FreeAnchor相似,将分类和定位联合看成极大似然估计问题,学习出样本的置信度Confidence Weighting,即下面的C(Pi):


直观的理解C(Pi)就是,分类得分高、框预测的准的location拥有较大的C(Pi)值的概率就会高。

(3)正负样本的权重(w+/w-

  • positive weights:通过Center Weighting和Confidence Weighting得到Positive weights

  • negative weights:通过最大IOU得到Negative weights


对于前景和背景的 weighting function,有一个共同的特点是 “单调递增”;这就保证了一个位置预测 pos / neg 的置信度越高,那么对应的权重就越大。

(4)loss function

有了对于正负样本的权重之后,对于一个 gt box,其 loss 如下:

Positive weights和Negative weights在训练过程中动态调整达到平衡,像是在学该目标的形状。

5 写在最后

很多文章目标检测的文章都有Label Assignment的影子,从anchor box 到anchor point和key point,都是有讨论Label Assignment的问题:先确定好先验,再对学习目标的进合理表示,最后做好正负样本的分配。

请关注本专栏及同名公众号:AI约读社。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值