1、motivation
anchor-base的目标检测存在弊端:anchor超参设置困难、anchor计算量和资源需求大、anchor都是基于场景的,难以迁移、anchor密集采样正负样本更加不均衡。
2、methodology

整体思路:使用one-stage的FCN完成检测,每个点进行分类、距离回归和centerness回归。centerness应该是本文最出彩的idea。
backbone:FPN基本和RetinaNet一样,只有一个小区别:FCOS的P6 feature map由C5产生,RetinaNet是P5。
至于P6和P7为什么没有上采样融合,有位同学分析是《FPN结构在高层的语义特征进行融合效果并不好,所以构建FPN没有必要使用所有的卷积层。但为了尺度的多样性,在其后面加入了P6/P7》,但我更倾向于作者发现不融合的map更高...
head:两个分支,预测三组:分类 + centerness + 长宽距离回归。在后期的改今版本中,centerness放到了距离回归分支。猜测是centerness的定义和长宽距离更相关。
centerness:表示的是(x,y)距目标中心的标准化后的距离,为了制止过多的低质量离目标中心远的检测框而设计。可以帮助筛除低质量的预测,由于小目标的centerness较小,容易被过滤,可以用IOU代替。

目标分配:对FPN每层回归的bbox尺寸范围直接做出限制,不在尺寸范围内的目标不再回归,如果有目标重合,取小的目标,应该是大目标样本较多,小目标少,借此小目标增强。这个强制分配和FSAF的自动分配相反。优势是可以解决目标重叠问题,且对小目标友好。

label分配:GT bbox 内的点,都是正样本。可以改进为FSAF的中心为正,外部为负,之间为忽略;或centernet类似从中心向四周衰减。
loss:分类-focal loss;长宽距离回归IoU loss;centernet用BCE loss。
和FSAF比较:
1、目标在FPN层间的分配:FSAF是学习自动分配;FCOS是强制分配。
2、label分配:FSAF从内向外分为positive、ignore、negative;FCOS只要在GT BBOX内就为positive。
3、FCOS的centerness对回归结果评价好,可以有效去除低质量的预测框。推理阶段,检测框的排序分数=center-ness*分类置信度,可过滤大部分低质量预测框,剩余低质量框NMS后处理(centernet可以NMS-free是由于feature map只有一层,且有局部极值筛选+阈值后处理)。