【检测】FCOS: Fully Convolutional One-Stage Object Detection

文章:https://arxiv.org/abs/1904.01355

现在的主流目标检测算法大部分都是先设定好anchor。虽然这个方法可以取得一些有效的成功,但是基于anchor的方法仍然存在着一些缺点:

  1. Anchor的尺寸,分布率和数目对于检测结果的影响都很大。
  2. 由于anchor的尺寸的分布率是固定的,在目标尺寸差距比较大,尤其是小物体多的情况下检测就会遇到困难
  3. 为了得到一个高的召回率。基于anchor的检测器就需要密集的放置anchor。然而在这些anchor中,大部分的anchor在训练中都被标记为负样本,就会造成训练中正负样本的不均衡。(不均衡就会导致对比例大的样本造成过拟合,也就是说预测结果就会偏向样本数较多的分类)
  4. 如果anchor的数目过于大,当在训练中计算所有的anchor和ground truth的iou时的计算量和资源也显著增加。

这篇论文提出了一种简单的FCN-based的检测器,并且实验证明获得了比基于anchor更好的正确率。

之前也有相关工作,比如Dense-box和Unitbox。但是他们一般被用于人脸检测,在有着高度重叠的bounding box的数据集上的效果并不好。因为在这中情况下,训练的时候,哪个bounding box去regress一个在重叠区域的pixel是并不清楚的。

Fully Convolutional One-Stage Object Detector

anchor-based 检测器是将anchor回归到ground truth,不同于这种方法,本文的方法是直接将location回归到ground truth。换句话说,是直接将location视作训练样本来代替anchor。
【检测】FCOS: Fully Convolutional One-Stage Object Detection_第1张图片
具体来说,如果location(x,y)在一个ground truth中,并且它的class label和ground truth的一样,就认为它是正样本。否则就认为是负样本并且class label是0(背景)。如果一个location在多个bounding box中,它就被认为是一个模糊的样本。暂时先选择最小区域的ground truth作为regression target。下一节通过用multi-level prediction,这种模糊样本的数目就被有效的减少了。如果location(x,y)和bounding box Bi联系,被表示为:
在这里插入图片描述
FCOS用了尽可能多的样本来训练regressor,然而anchor-based只考虑和ground truth有足够高的iou的anchor作为正样本。作者认为这是FCOS比anchor-based效果好的一个原因之一。

网络输出:

网络最终预测出一个80D的类别向量和一个4D向量t=(l,t,r,b)代表bounding box的坐标。并且用了c个二进制分类器来替代多分类器。此外,由于regression target总是正的,所以在regression branch用了exp(x)map 正数到(0,无穷)。
值得提的是,FCOS有比anchor-based(每个location有9个anchor) 9xfewer的输出。

Loss Function:
在这里插入图片描述

L_cls是focal loss,L_reg是IOU loss。N_pos是正样本的个数

Multi-level Prediction with FPN for FCOS:

上文中FCOS的2个可能存在的问题可以被应用了FPN的multi-level prediction
解决。

  1. 最终feature map上大的补偿可能会导致一个相对低的BPR。对于anchor-based,由于大的步长导致的低的召回率可以被降低设置positive anchor的iou补偿一些。对于FCOS,第一反应可能会认为BPR会比anchor-based低很多因为不可能找回一个在最终feature map上没有location的物体。作者设置了大的步长,结果发现FCOS仍然可以得到一个好的结果,甚至比RetinaNet的效果更好,因此认为BPR不是FCOS的一个问题(为什么?)。此外,通过multi-level prediction,BPR提高的更多。
  2. 如果出现overlaps的情况,一个location应该去regress哪个ground truth?
    这个问题可以被multi-level prediction解决,因为在multi-level prediction中,不同尺寸的目标被分配到不同的feature level。

你可能感兴趣的:(object,detection)