FCOS论文研读

FCOS论文研读

原论文链接
代码链接

  1. 简介:FCOS(Fully Convolutional One-Stage Object Detection)是一个基于FCN(全卷积网络 Fully Convolutional Networks)的per-pixel、anchor free的one-stage目标检测算法。FCOS提供了可与anchor-based方法媲美的检测效果。避免了所以和anchor box相关的计算、超参的优化。

  2. 网络架构:
    在这里插入图片描述
    a) Backbone:骨干网络,进行特征提取,得到三张特征图,规格见上图。
    b) Feature pyramid :特征金字塔,其中P3,P4,P5是由CNN backbone的特征图C3,C4,C5跟一个11的卷积网络生成的,从上至下连接。P6,P7是分别由P5和P6经过一个卷积层(stride=2)生成的,p3-p7对应的HW及步长(s)见上图。
    c) Classification + Center-ness + Regression:进行分类,中心和回归。

  3. 每个阶段主要工作或作用:
    a) 设定Fi是CNN backbone的第i层特征图,s是到这一层的总步长(stride)。输入图像的ground-truth的bounding box(以下简称bbox)可被定义为{Bi},其中Bi=(x0(i), y0(i), x1(i), y1(i), c(i))。其中(x0(i), y0(i)),(x1(i), y1(i))是bbox左上和右下的坐标,c(i)是目标类别。对于Fi上每个像素(x,y),我们可以把它映射到原输入图像:
    在这里插入图片描述

    我们直接在该位置回归目标的边界框。换句话说,我们的检测器直接将位置视为训练样本。
    具体回归方式:如果位置(x, y)落入任何ground-truth box,且位置的类标签c∗是ground-truth box的类标签,则认为位置(x, y)是阳性样本。否则它是一个负样本和c∗= 0(背景类)。除了分类的标签,我们还有一个四维实向量t∗= (l∗,t∗,r∗,b∗)作为该位置的回归目标。这里l*,t*,r和b是从位置到包围框四边的距离,如图1(左)所示。如果一个位置属于多个边界框,则认为它是一个二义性样本。我们简单地选择面积最小的边界框作为回归目标。

    如果位置(x, y)与边界框Bi相关联,那么该位置的训练回归目标可以表述为:
    在这里插入图片描述

    回归损失函数:
    在这里插入图片描述

    Lcls是分类的损失,用的focal loss。Lreg是回归框的损失,用的IOU。Npos是正样本的数量,λ文中用的是1,调整权重用。求和操作的话,是会对Fi上每个点都做的。 表示对正样本做。推理时,FCOS会选择px,y > 0.05(px,y为特征图Fi上每个位置的分类得分)的当作正样本,来获取预测的框。

b) 基于FNP的多层预测:

  • 要解决的问题:
     在一个CNN中,最终特征图的大步幅(例如,16×)可以导致一个相对较低的最佳可能召回(BPR)。
     ground-truth box中的重叠会导致难以处理的模糊性,即重叠中的位置应该回归哪个边界框。
  • 解决方式:
    通过将不同大小的锚点盒分配给不同的特征级别,直接限制每个级别的边界盒回归范围。更具体地说,首先计算所有特征层上每个位置的回归目标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和∞。因为具有不同大小的对象被分配到不同的特征级别,并且大多数重叠发生在具有相当不同大小的对象之间。如果一个位置,即使使用多级预测,仍然分配给多个ground-truth box,我们只需选择面积最小的ground-truth box作为目标。实验表明,多层次预测可以在很大程度上缓解上述歧义,并将基于fcn的检测器提高到与基于锚点的检测器相同的水平。

c) Head设计:在不同的特征层之间共享头部,不仅使检测器参数高效,而且提高了检测性能。但是,不同的feature level需要回归不同的size range(例如,p3的size range是[0,64],P4的size range是[64,128]),因此不同feature level使用相同的heads是不合理的。因此,作者没有使用标准的exp(x),而是使用带有可训练标量的exp(six)来自动调整特征级Pi的指数函数的基,这略微提高了检测性能。

d) Center-ness:

  • 存在问题:由于许多低质量的预测边界框产生的位置远离一个对象的中心,在FCOS中使用多级预测后,FCOS与锚定检测器的性能仍存在差距。
  • 解决方式:在分类分支的同时添加一个单层分支来预测一个位置的“中心度”。中心度描述了从位置到该位置所负责的对象中心的归一化距离。给定一个位置的回归目标l*,t*,r和b,中心目标定义为:
    在这里插入图片描述
    我们用根号来减缓中心的衰减。中心度的范围是0到1,因此用二进制交叉熵(BCE)损失进行训练。将损失添加到损失函数。在测试时,最终的得分(用于对检测到的边界框进行排序)是通过将预测的中心度与相应的分类得分相乘来计算的。因此,中心性可以降低远离对象中心的边界框的分数。因此,这些低质量的边界框很有可能被最终的非最大抑制(NMS)过程过滤掉,显著提高了检测性能。
    在这里插入图片描述
    译文:红色、蓝色和其他颜色分别表示1、0和它们之间的值。中心度通过式子计算,当位置偏离目标中心时,中心度从1衰减到0。在测试时,将网络预测的中心度与分类得分相乘,从而可以降低由远离目标中心位置预测的低质量边界框的权重。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值