本文首发于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的最终目标:
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。更多详细内容可以参考:
(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 box | anchor box | bounding box | IoU |
anchor point | center | 高斯等 | 高斯热图等 |
key point | point | representative points | feature map bin和IoU等 |
set prediction | embedding | bounding box | Hungarian 算法 |
下面再来讨论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)的重要性。
如上图所示,RetinaNet使用IoU阈值(
最后通过交叉实验,发现在相同正负样本定义下情况下,RetinaNet和FCOS性能几乎一样,而且spatila and scale constraint的方式比IOU的效果好,如下表:
因此ATSS提出了一种新的正负样本选取方式,这种方法几乎不会引入额外的超参数并且更加鲁棒。主要就是在每个FPN层选取离gt框中心点最近的
根据下表可以发现,即使anchor box数量为1的RetinaNet和FOCS在都加上ATSS策略之后,效果都有明显的提升,这也证明了ATSS策略的有效性。
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的目标会生成过高的得分区域,从而抑制了周围的其他目标的得分区域。这个问题是 由于特征不对齐导致了靠近目标边界的位置会得到不必要的高分 所导致的。
(2)Soft-weighted anchor points:将目标实际位置与anchor的中心的距离作为一个anchor的惩罚权重,加入到损失函数的计算中(仅针对正样本,负样本不做改动)。公式如下:
其中,η控制递减幅度,权重
这种通过对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) 后,根据框内的物体形状,动态分配正负样本的问题。如下图所示:
(1)RetinaNet是根据 anchor box 和 ground truth 的 IOU 阈值定义正负样本,这样会每个样本都是打上非正即负的标签,而且anchor box 的 num,size,aspect ratios等等都是超参数;
(2)FCOS通过centerness、空间和尺度约束来分配正负样本,也引入了很多超参数;
(3)AutoAssign 将 label assignment看做一种连续问题,没有真正意义上的正负样本之分,每个特征图上的位置都有正样本属性和负样本属性,只是权重不同罢了;而且如上图最左变所示,动态分配正负样本更符合目标的形状,可以说有利用分割做检测的思想。
下面是AutoAssign的正负样本分配的示意图:
可以看到,比一般的检测算法多了一个Implict Objectness分支,用于背景与前景的判断,已解决引入的大量背景位置的问题。
(1)Center 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约读社。