label assignment是指,在训练过程中如何将某个prediction指定给某个GT,用于计算损失,训练网络。
对于上一篇文章,他们首先用one-to-one label assignment替换了one-to-many label assignment,并且不用hand-craft label assignment,而是提出综合考虑位置、类别置信度和IoU三个指标计算得分,取得分最高的POTO。在这基础上,提出3DMF,提高局部卷积的差异,再进一步提高anchor之间的差异。最后,添加一个类似ATSS的one-to-many辅助损失,来学习特征。
Abstract
- 对于one-stage detectors来说,label assignment时缺少classification cost,是去掉NMS的主要障碍。
- 当前one-stage目标检测器仅通过location cost指派标签,例如IoU和点距离。因为缺少classification cost,前向过程中,会产生大量有着高置信度分数的bbox,这就是要使用NMS的原因。
- 本文提出Minimum Cost Assignment,同时包含classificatio和location cost。
- 在COCO上测试,OneNet在图片分辨率为512的情况下,取得35.0 AP/80 FPS(ResNet-50)和37.7 AP/50 FPS(ResNet-101)的结果。
Introductions
sparse candidates和multiple-stage refinement detectors(DETR、Deformable DETR和Sparse R-CNN),他们无需NMS,直接输出检测结果。然而,对于dense candidates和One-stage refinement检测器,还有更大的发展潜力。
总的来说,本文优点如下:
- 整个网络是全卷积,并且端到端训练的。没有RoI和注意力交互。
- Label assignment是依靠分类和定位代价,而不是手工设计的启发式规则或复杂的二分图匹配。
- 没有后处理过程,例如NMS和max-pooling,使得模型整体高效。
- 仅通过定位代价会导致无法选出最优的anchor(它的类别标签可能有误)。
Label Assignment
Ccls是focal loss,除了选中的正样本,其余都视为负样本。
OneNet
推理:最后输出top-k (例如:100)的box
Multi-head Training(可选)
(1)Cascading heads
(2)Weight-sharing:分类和回归的卷积在每个头中共享权重
(3)Large Learning rate,当使用(1)和(2)时,可以使用大学习率。
(4)Single-head Inference:仅使用first stage去输出最终结果,不使用其他stages。这种策略相较于multiple-head,结果仅稍微掉了一些。这使得降低计算量,但不至于损失太多正确率。