一、模型框架
FCOS采用的网络架构和RetinaNet一样,都是采用FPN架构,如图2所示,每个特征图后是检测器,检测器包含3个分支:classification,regression和center-ness。
对于特征图Fi∈RH×W×C,其相对于输入图片的stride定义为s,另外记GT为Bi,这里Bi={x0(i),y0(i),x1(i),y1(i),c(i)},其中(x0(i),y0(i))和(x1(i),y1(i))分别是GT的左上角和右下角顶点坐标,而c(i)是GT的类别。对于特征图上的每个位置(x,y),如果其落在任何GT的中心区域,就认为这个位置为正样本,并负责预测这个GT。在最早的版本是落在GT之内就算正样本,不过采用中心区域策略效果更好( yqyao/FCOS_PLUS),两者的区别如下图所示。一个中心为(cx,cy)的GT,其中心区域定义为GT框的一个子框(cx−rs,cy−rs,cx+rs,cy+rs),这里s是特征图的stride,而r是一个超参数,论文中选用的是1.5,一个要注意的点是在实现中要保证中心区域不超过GT。尽管采用中心区域抽样方法,可以减少前面说的冲突问题,但是无法保证,如果一个位置落在了多个GT的中心区域,此时就是模糊样本。FCOS采用的一个策略是选择面积最小的GT作为target,后面会谈到结合FPN,FCOS可以大大减少模糊样本的出现。