文章目录
论文标题:FCOS:A Simple and Strong Anchor-free Object Detector
论文作者源码:FCOS官方代码
下面,一起回顾下2019年一篇关于CVPR的文章:FCOS:A Simple and Strong Anchor-free Object Detector
一、文章摘要
作者提出了一种基于anchor-free的one-stage全卷积目标检测网络FCOS,以逐像素预测的方式解决对象检测,类似于其他密集预测问题,如语义分割。与我们常见的基于anchor-based的目标检测网络RetinaNet、SSD、YOLOv3和Faster R-CNN等架构相比,FCOS模型消除了预先设定的锚框(anchor box),也就避免了与锚盒相关的复杂计算(设定的超参数,训练过程中IOU的计算)。通过唯一的后处理非最大值抑制(NMS),呈现出一种更简单、更灵活的检测框架,同时提高了检测精度。从作者的实验中可以得知,作者数据集采用基准数据MS-COCO,从表中可知,FCOS性能超过一些老牌的经典目标检测算法。其他数据对比可根据表格观察,这里不多赘述。
二、网络结构
作者论文中给出了FCOS的模型网络架构:
从上述框架可知,整个架构由三部分组成:BackBone + FPN + 检测头。Backbone网络作者采用ResNet和ResNeXt结构,FPN架构和原生的FPN有所不同,它采用了Backbone输出的C3、C4、C5特征图进行横向拼接得到P3、P4、P5;而P6、P7是P5、P6经过一个步长为2的卷积层降采样的操作得到的。对于检测头来说,输出5个检测头,最后输出特征图的shape为:H×W×(C+4+1),其中H和W是特征图的尺寸,C是类别数,4是关于检测框的输出值t、b、r、l,1是代表center-ness的数值。
三、方法论和思想
3.1 Fully Convolutional One-Stage Object Detector
作者采用了anchor-free的一阶段检测器,下面我们结合论文看看基于anchor-free是如何训练的:
给定特征图的某一点位置(x,y),我们就可以通过
⌊
s
2
⌋
\lfloor \frac {s}{2} \rfloor
⌊2s⌋+xs,
⌊
s
2
⌋
\lfloor \frac {s}{2} \rfloor
⌊2s⌋+ys 找到对应的原始图像点,其中s为当前下采样的倍数(s be the total stride until the layer),也就是当前特征图(x,y)位置对应原始图像的中心点。如果该点落入到真实框的区域内,就视作为正样本(训练样本),如果不在任何真实物体框内,则为负样本 negative sample。如果一个位置落入多个边界框的中心区域,则将其视为不明确的样本。我们只需选择面积最小的边界框作为其回归目标。确定中心点后,通过网络模型预测值(l,t,r,b),就可以得到bounding box检测框。假设,中心点坐标(x,y),那么检测框的左上角和右下角坐标就可以得到(x-l,y-t,x+r,x+b);如下图Fig1左图所示:
【注意】对于一种特征图H×W,并不是每个像素点都能够代表一个物体,因此,需要过滤掉一些不含物体的检测框,如何进行过滤呢?论文中提及到,当前像素点的类别值乘以“中心度”(center-ness,后续提及到),得到置信度,这样就可以设置置信度阈值。若80个类别乘以center-ness都不满足阈值,则该点为负样本,否则就是正样本,取最高乘积点作为该预测物体的类别。公式如下:
网络的损失函数的设计:
从公式中得知,
L
c
l
s
L_{cls}
Lcls为Focal loss,
L
r
e
g
L_{reg}
Lreg为GIOU Loss,
N
p
o
s
N_{pos}
Npos为正样本数,λ为1,为了权衡回归损失的权重。
3.2 Multi-level Prediction with FPN for FCOS
上述基于Anchor-free的思路设计,虽然避免了其超参数设定和anchor box的计算,但也产生相关问题:重叠物体预测(ambiguity resulted from overlapped bounding boxes)如上图Fig1右图所示,重叠中的位置应该回归到哪个边界框?这是一个有歧义的点。作者论文中提及到,以上图为例,该点(图中的橘黄色圆圈)就负责预测面积最小的框。即在训练过程中时,标签则为网球拍的检测框。具体细节如下:
首先,先计算所有特征图中每个位置(x,y)的回归目标的bounding box的数值(l∗, t∗, r∗, b∗), 接着第i个特征图的某点位置(x,y)的最大值大于
m
i
m_i
mi并且小于
m
i
−
1
m_{i-1}
mi−1,则该点直接作为负样本(negative sample),因此该点不需要回归框。ground truth也根据(l, t, r, b)的最大值,分发到对应的特征图去。这里的
m
i
m_i
mi是特征层i需要回归的最大距离,在实验中m2~m7分别设置0,64,128,256,512,∞。由于不同大小的对象被分配到不同的特征级别,并且重叠主要发生在大小相当不同的对象之间,因此可以在很大程度上缓解上述歧义。如果一个位置,即使使用多级预测,仍然被分配给多个真实框,我们只需选择面积最小的groundtruth框作为目标。
3.3 Center-ness for FCOS
其次,作者发现一个问题,训练过程中出现较多的低质量预测框,即一个真实物体框内的特征图点较多,离中心点较远的点,预测效果很差。
因此,作者引入center-ness概念,它描述了从该位置到该位置所负责的对象中心的归一化距离。通过去预测某位置的center-ness,降低远离对象中心的边界框的分数的权重,相对而言增强了距离ground truth中心的点。具体公式如下:
根据公式可知,离ground truth中心越近的点,center-ness值越高,相反则越低。这里使用sqrt开根号来减缓中心度的衰减。中心度的范围从0到1,因此使用二进制交叉熵(BCE)损失进行训练。该损失计算计入到上述网络损失的计算。
四、总结
以上就是今天要讲的内容,本文简单介绍了FCOS,它是基于anchor-free的一阶段目标检测算法,它完全避免了与anchor boxes相关的所有计算和超参数,并以逐像素预测的方式解决了目标检测的问题。