FCOS: Fully Convolutional One-Stage Object Detection | 论文笔记

论文地址

FCOS: Fully Convolutional One-Stage Object Detection

摘要

    本文提出了一个全卷积的单阶段目标检测算法FCOS,类似语义分割,是像素级的。时下应用比较广泛的效果比较好的诸如RetinaNet、SSD、YOLOv3、Faster R-CNN之类的目标检测算法,都使用到了预定义的anchor,但本文提出了anchor free和proposal free的FCOS。这样不仅避免了和anchor框相关的IoU的计算,降低了计算资源的占用,同时也避免了与anchor相关的诸如尺寸、长宽高、数目等超参数的调节。试验结果表明FCOS比基于anchor的单阶段检测器的检测结果要好,并且更加简单。

引言

    此部分作者首先指出了虽然现在流行的基于anchor的目标检测算法获得了巨大成功,但存在以下几个缺点
    1、与anchor相关的超参数对实验结果影响很明显,检测性能对此十分敏感,如RetinaNet中,对于COCO数据集,调整超参数可以影响4%的AP,因此在运用此类模型时需要仔细进行超参数的调整
    2、anchor框的尺寸和长宽比在训练开始就是固定的,这就导致检测模型对于目标尺度变化很大的情况难以处理。而且不同任务需要调整不同的尺寸和长宽比,没有很好的泛化性。
    3、为了提高召回率,在训练预测时会使用大量密集得anchor框,大多数anchor框会被认为是负样本,会导致正负样本失衡。
    4、大量的anchor框也会明显的增加计算量和内存占用。

    由于FCN在密集预测任务中取得的成就,作者思考通过简单的像素级预测来做目标检测,这样可以使基础的相关的视觉任务(目标检测、语义分割、关键点检测等)都可以利用这一套框架来解决。
    文中提到DenseBox、UintBox都在做FCN-base的模型,他们预测得到一个4D向量和一个类别C,如下图左边所示。但看下图右图可以看到,存在重叠框的情况,这种无法判断返回哪一类别的模糊情况会严重影响模型的分类,本文则通过FPN来解决这一问题。同时作者还发现在距离目标中心较远的位置存在低质量边界框,为解决这一问题,本文提出了“center-ness”用于预测与中心的偏差,从而实现降低低质量框的权重,最后经过NMS融合检测结果。
在这里插入图片描述
    通过解决以上问题之后,作者提出了FCOS的优势
    1、可以将目检测和语义分割等基于FCN的任务统一起来。
    2、检测不需要anchor,因此省去了相关超参数的调整
    3、FCOS也可用于RPN网络
    4、模型在适当修改后就可用于其他任务,如实例分割、关键点检测。

FCOS整体框架

在这里插入图片描述
    整个网络的框架很清晰,从整体框架中可以看出,FPN特征金字塔和三分支的头检测网络都是FCOS提出用于解决之前遇到的问题的方法,一个用于解决边界框重叠的模糊问题,一个用于解决离目标中心远的低质量框的问题

实现细节

、基于全卷积的单阶段预测
    在FCOS中,直接对feature map中的每个位置对应原图的边框都进行回归,这点与FCN用于语义分割时的情况相同,其中feature map对应回原图的对应关系为:在这里插入图片描述
    其中s为feature map之前的总stride。(x,y)为当前位置在特征图中的坐标。
    当点(x,y)落入任意一个ground-truth box中时,他就被认为正样本,回归一个4D向量在这里插入图片描述和他的类别C*,否则C为0。其中 l、t*、r*、b*代表点距离边框四条边的距离,计算公式如下:

在这里插入图片描述
    FCOS损失函数为:
在这里插入图片描述
    其中Lcls是focal loss,Lreg是IOU loss。Npos是正样本数目,λ为1。

二、FCOS的FPN多层级预测
    使用FPN主要可以提升以下两方面的性能:
    1、提高BPR(best possible recall)
    2、解决重叠框带来的模糊问题。
    具体说,此过程不同于anchor based检测器在不同特征层上分配不同尺寸的anchor框,而是直接限制不同特征层边界框的回归范围。
    首先计算所有特征图上的每个位置的回归目标l*,t*,r*,b*。然后如果某一像素位置满足条件:max(l*,t*,r*,b*)> mi 或者 max(l*,t*,r*,b*)< mi-1,那么它会被标记为负样本,并且不会用于边界框回归。mi指第i层特征图最大的回归距离。本文中m2,m3,m4,m5,m6,m7分别被设置为0,64,128,256,512,+inf。因为不同尺寸的目标在不同的特征层上,并且大部分重叠都发生在尺寸差异比较大的目标之间,所以使用多层级的预测可以缓解模糊问题。
    同时,这里实现了在不同的特征层之间共享信息,不仅使检测器的参数效率更高(可以理解为不需要过多的参数即可实现该有的效果),同时还提高了检测性能。

三、Center-ness
    在使用多层级预测之后,FCOS的性能与anchor-based方法仍有一定差距。这是由于网络预测了很多低质量的远离目标中心的边界框导致。
    针对这个问题,作者提出了不需要增加超参数的解决方法,引入一个新的概念,Center-ness。他们在网络中增加了一个和分类分支并列的分支来预测一个位置的“中心度”。计算公式如下:
在这里插入图片描述
    这里开根号是为了减缓中心度的衰减。它的范围为0-1,可以使用二值交叉熵(BCE)来训练。引入这一概念后,预测框最终得分为分类得分和中心度的乘积。这样那些远离中心点的低质量框的权重就会降低,在经历NMS时有更大概率被筛掉,从而提高检测性能。与IoU的阈值相比,Center-ness可以看作是软阈值。他在训练中即可被学习,不需要在训练之前进行调参,同时不会影响模型对正负例的判断。

实验部分

1、FPN对于BPR的效果
在这里插入图片描述
    可以看出加上FPN后对于BPR有明显的提升。

2、FPN对模糊问题的效果
在这里插入图片描述
    加上FPN之后,模糊样本比率明显变少了。

3、Center-ness的作用效果
在这里插入图片描述
    从上表可以看出,在应用Center-ness并且和分类分支并列时AP有显著提升。

4、现在常用的目标检测方法与FCOS对比
在这里插入图片描述
5、FCOS代替RPN网络的效果
在这里插入图片描述
6、FCOS与RetinaNet对比
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值