FCOS: Fully Convolutional One-Stage Object Detection
一. 论文简介
Anchor-Free文章
主要做的贡献如下(可能之前有人已提出):
- FPN分阶段回归
- Center-ness Loss
二. 模块详解
2.1 论文思路简介
论文整体比较简单,直接从头读到尾没有什么障碍,好像Anchor-free的文章都比较简单。下面直接以模块介绍。
文章中 (l^*、b^*、r^*、t^*) 表示label,(l、b、r、t) 表示predict
2.2 具体实现
2.2.1 回归形式
文章直接回归 (l、r、b、t、c) 其中 (c) 表示种类,前面四个在上图中有表示。
回归采用正负样本形式:
- (feature map) 表示回归的特征图(以 (M) 表示)
- (M_{i,j}) 表示 ((i,j)) 个点的特征值
- 将 (M_{i,j}) 映射到原图,假设当前特征图的总步长是 (S) (和原图比例),则原图点(P_{i,j} =(frac{S}{2}+M{i}*S,frac{S}{2}+M{j}*S))
- (P_{i,j}) 落入哪个label区域,就负责回归哪个label,算作正样本。落到外部则算作负样本。
- 如果落在重复区域,按照上图的形式(哪个面积小,就负责哪个label)
文章采用FPN结构,用于提高召回率和精确度。参考Anchor-based(不同尺度的Anchor负责不同大小的目标),文章对不同的层进行限制目标大小:其中(M_{1}、M_{2}、...M_{6} = 0、64、128、256、 512),按照 (M_{i}<(l^*、b^*、r^*、t^*)<M_{i-1}) 形式进行分配。
最后文章发现一个问题,NMS时候出现很多和最终目标接近的框,我们希望的是:负样本和正样本区分明显,而不是很多接近正样本的框(比如分类,虽然可以正确分类,但是出现很多 (conf=0.45) 的目标,我们希望出现(conf_{pos}=0.99,conf_{neg}=0.11))。
文章通过设置 (center) 进行控制,对于那些中心偏离的目标进行抑制。我们不仅仅要IOU好,也要center好。文章通过新建一个新的分支进行center-ness进行回归。
三. 参考文献
- 原始论文
- FCOS改进