FCOS:Fully Convolutional One-Stage Object Detection--------论文理解

参考博客:https://blog.csdn.net/qiu931110/article/details/89073244

1. 概述

论文提出了一种新的目标检测方法,通过像素预测方式的目标检测,类似于语义分割。

目前的目标检测都是基于锚框机制的,如two-stage的 Faster R-CNN等,one-stage的RetinaNet,SSD,YOLOv3等。相比之下,本文中提出的FCOS,既避免了预测框与锚框复杂的计算(如IOU的计算),也避免了锚框中一些超参数的设置(如yolov3中多个尺度,需要设置9个锚框的宽和高)。FCOS只需在最后进行NMS运算,即可与锚框机制的目标检测算法达到同样的精度,甚至更高。

2. 网络整体介绍

基于锚框的目标检测尽管已经取得了很好的效果,但仍然有以下几方面的缺点:

一,检测性能对锚箱的尺寸、长宽比和数量非常敏感。这些超参数需要仔细调整;

二,即使经过了对锚框精心的设计,当检测器遇到尺寸变化很大的物体时,泛化能力同样很差,尤其是针对小物体。
预定义的锚盒也妨碍了检测器的泛化能力,因为它们需要在具有不同物体尺寸或纵横比的新探测任务上进行重新设计。

三,输入图片上会产生很多锚框,导致负样本偏多。训练时候负样本过多会导致训练时候类别不均衡。

四,锚框数量多在计算IOU时同样会增加计算和内存。

最近,全卷积框架已经在语义分割等任务上取得了很大的进步,目标检测与全卷积框架分离的一个原因可能是因为使用了锚框机制。论文中将全卷积框架引入到目标检测中,证明了基于FCN的检测器比基于锚定的检测器具有更好的性能。

FCOS的三大亮点:

首先以逐像素预测方式重新构造对象检测;
然后通过FPN提高召回率,并解决训练中重复过高的回归框问题;
最后展示我们提出的center-ness方法。

2.1 逐像素预测

论文中我们针对每一个像素点都进行回归预测,即把每一个点都作为训练样本,但这种方法肯定会导致最终预测得到的边界框质量不高,因此作者在后续还会提出弥补策略。

训练中,将落在真实边界框内的像素点作为正样本,其他则为负样本。

如果某一点落在多个边界框内,我们只选择具有最小面积的边界框作为其回归目标。

当某一个像素点(x,y)与真实框有联系,那么对于该位置的回归目标计算公式如下,

值得注意的是,FCOS可以利用尽可能多的前景样本来训练回归量。而基于anchor的只考虑与真实框交并比最大的。 

损失函数:

FCOS:Fully Convolutional One-Stage Object Detection--------论文理解_第1张图片

式中,Lcls 为focal loss;Lreg 为IOU损失;Npos 代表正样本的数量。输入图片经过网络后得到的每个特征图上每个像素点的类别得分 px,y和回归预测 tx,y。实验中将p>0.05的作为正样本,使用公式1进行边界框预测。

2.2 多尺度预测

加入了FPN策略的FCOS可以解决两个问题:

一,CNN中最终特征映射的大步幅(例如,16×)可导致相对较低的最佳可能召回(BPR)。

基于锚框的检测,通过降低正向锚箱所需的IOU分数,可以在一定程度上补偿由于大步幅导致的低召回率。不过实验表明,基于FCN的FCOS可以产生较高的BPR,与基于锚框的目标检测相比。因此,对于FCOS,BPR根本不是问题。

二,对于同一个中心有两个边界框的情况,如下图,文中通过实验证明使用多尺度同样能达到和基于锚框检测相同的精确度。

FCOS:Fully Convolutional One-Stage Object Detection--------论文理解_第2张图片

FCOS:Fully Convolutional One-Stage Object Detection--------论文理解_第3张图片

如图,FCOS算法那使用了{P3, P4, P5, P6, P7}这五个尺度的特征映射。其中P3、P4、P5由主干CNNs网络的特征层 C3、C4、C5经过一个1*1的卷积得到的,而,P6、P7则是接着P5进行了步长为2的卷积操作得到的(相当于降采样,看注解)。最终对这五个尺度都做逐像素回归。
对每一个尺度都限定边界框的回归范围:

首先,计算每个尺度中的每一个特征图的四个值, l∗, t∗, r∗ ,b∗;

然后,预测四个坐标的最大值大于mi,或者小于mi-1,则被设为负样本,不参与回归;(mi表示对金字塔中某个级别需要回归的最大距离。本文中将m2, m3, m4, m5, m6 ,m7 设置为 0, 64, 128, 256, 512 ,∞)(可以理解为只预测与该特征图大小匹配的物体)

而且这种约束带来的额外的效果在于,由于不同尺寸的物体被分配到不同的特征层进行回归,又由于大部分重叠发生在尺寸相差较大的物体之间,因此多尺度预测可以在很大程度上缓解目标框重叠情况下的预测性能。

Note: 由于作者认为,不同的特征层需要回归不同的尺寸范围(例如,P3的尺寸范围为[0,64],P4的尺寸范围为[64,128],因此在不同的特征层使用相同的输出激活是不合理的。因此,作者没有使用标准的exp(x)函数,而是使用exp(si,x)其中si是一个可训练的标量si,能够通过si来自动调整不同层级特征的指数函数的基数,这从经验上提高了检测性能。


2.3 Center-ness

问题:有很多距离中心较远的位置(像素点),会产生低质量的回归框。

解决办法:添加和分类并列的一组分支,来预测中心点的定位。相当于在公式2基础上加了一组损失,使预测到的边界框距离物体中心更近。(Center-ness:从位置到该位置负责的对象中心的距离。)

Center-ness可以降低距离物体中心较远的预测盒子的得分,最后这些盒子经过nms会被抑制掉,提高检测性能。

测试阶段,将预测的中心与相应的分类得分相乘来计算最终得分。

基于锚框的目标检测使用IOU阈值将锚框标记为正样本后者负样本,但Center-ness是通过训练网络中得到的,不需要调整。而且,center-ness可以将落入真实框内的都视为正样本,以便尽可能多的训练分类器。

3. 实验部分

FCOS:Fully Convolutional One-Stage Object Detection--------论文理解_第4张图片

你可能感兴趣的:(深度学习,计算机视觉)