【论文解析】基于Anchor-free的一阶段经典目标检测算法FCOS

本文介绍了一种无需锚框的简单且强大的目标检测算法FCOS,它通过全卷积单阶段检测器消除预设锚框,简化了计算,提高精度。作者利用FCOS在MS-COCO数据集上的表现超越了传统方法,通过逐像素预测和中心度改进解决目标检测中的问题。
摘要由CSDN通过智能技术生成


论文标题: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} mi1,则该点直接作为负样本(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相关的所有计算和超参数,并以逐像素预测的方式解决了目标检测的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值