FCOS: Fully Convolutional One-Stage Object Detection

Github:FCOS

摘要

提出了一种全卷积的one-stage目标检测方法,以逐像素点的方式解决目标检测问题,类似于语义分割。FCOS是anchor free的方法,FCOS with ResNeXt-64x4d-101 在单模型单尺度的测试下,AP达到44.7%,超越了之前的one-stage方法。


image.png

一、介绍

作者了分析anchor based方法的缺点,主要有以下四点:

  • 1、检测性能对于anchor的尺寸、数量、高宽比非常敏感,通过改变这些超参数Retinanet在COCO benchmark上面提升了4%的AP。

  • 2、泛化能力较差,即使是精心设计的anchor,在处理形状变化比较大的场景时表现仍然不佳,特别是对于小对象来说。需要在新检测任务上重新设计anchor。

  • 3、为了提高召回率,需要生成大量的anchor,在训练过程中,大部分的anchor都被标记为负样本,从而导致了样本不平衡的问题。

  • 4、在训练过程中涉及到大量复杂的运算,如IOU,消耗额外的计算资源和内存。

作者认为可以用语义分割(FCN)的框架来进行目标检测,在之前的一些工作中基于FCN框架直接预测一个4D向量及类别,4D向量描述了到四条边的偏移量。但是对于高度重叠边界框会导致一个难以处理的歧义问题,重叠部分到底属于哪一类。作者在后面的论文中通过FPN大大消除了这种模糊性。此外,作者发现该方法在离目标较远的位置产生大量的的低质量预测框。因此提出了一个center-ness分支去解决该问题。

作者总结了FCOS的优点,主要有以下四点:

  • 1、检测任务可以和其他FCN-sovable的任务统一,类似于语义分割,使其中的一些idea可以通用。

  • 2、检测不需要anchor,大大减少了设计参数的数量。使得训练变得更加简单。

  • 3、不需要在训练过程中有复杂的IOU计算,比anchor-based的方法节省了更多的内存。

  • 4、没有什么花里胡哨的,是目前state-of-the-art方法。也可以替换两阶段方法的RPN网络。

  • 5、只需要少量的修改,可以轻易的拓展到其他视觉任务,例如实例分割和关键点检测。

image.png

二、相关工作

1、anchor-based

作者在这部分主要探讨了anchor based方法的发展及其超参数是非常复杂的,其中提到了:

  • 通过IOU阈值进行正负样本的划分。

  • 之前提到的anchor的设计,包括尺寸,宽高比等。

  • 检测任务偏离了语义分割任务的简单的全卷积架构。

2、anchor-free

作者介绍了yolov1和densebox方法。

三、FOCS

  • 1、通过FPN进行多级预测提高召回率并解决重叠的边界框引起的歧义问题。

  • 2、通过center-ness分支,抑制低质量的预测框,大大提高了性能。

1、全卷积one-stage检测器

image.png
  1. FCOS直接对feature map中每个位置对应原图的边框都进行回归,换句话说FCOS直接把每个位置都作为训练样本,这一点和FCN用于语义分割相同。由feature map映射回input image的公式为:

  2. FOCS中,如果一个位置(x,y)落入任何ground truth中,就认为它是一个正样本,并将它标记为对应类别。并且还需要标记一个4D向量,即(l, t, r, b),该点到边界框的偏移量。如果一个(x,y)落入多个ground truth中,则将它视作一个模糊样本,选择面积较小的ground truth将其标记。在下一节中,将利用多级预测去减少模糊样本的数量,从而不影响检测性能。

  3. FOCS尽量使用多的前景(正样本)参与训练回归器,而不是像anchor based的方法,只考虑IOU足够大的anchor作为正样本。作者认为这是FCOS表现优于anchor based方法的原因之一。

  4. 损失函数:​是focal loss类别损失,​是交并 比损失。

L(\{p_{x,y},t_{x,y}\})= \frac{1}{N_{pos}}\sum L_{cls}(p_{x,y},c^{*}_{x,y}) + \frac{\lambda}{N_{pos}}\sum 1_{\{c^{*}_{x,y}>0\}}L_{reg}(t_{x,y},t^{*}_{x,y})

2、使用FPN进行多级预测

作者使用FPN解决了两个问题。

  1. 基于锚框的检测器由于大的步伐导致低召回率,需要通过降低正的锚框所需的交并比分数来进行补偿:在FCOS算法中表明,及时是大的步伐(stride),也可以获取较好的召回率,甚至效果可以优于基于锚框的检测器。


    image.png
  2. 真实边框中的重叠可能会在训练过程中造成难以处理的歧义,这种模糊性导致基于fcn的检测器性能下降:在FCOS中,采用多级预测方法可以有效地解决模糊问题,与基于锚框的模糊检测器相比,基于FCN的模糊检测器具有更好的性能。基于锚框的检测器将不同尺寸的锚框分配到不同级别的特征层,所以作者为了减少尺度差异大的物体重叠,引入参数 m_{i}为特征层 i 的最大距离,如果一个location(x, y)满足 max(l^{*}, t^{*},r^{*},b^{*}) > m_{i} 或者 max(l^{*}, t^{*},r^{*},b^{*}) < m_{i-1},那么我们在这个特征层就将其视为负样本,不在进行回归。其中 m_{i} 分别设置为0,64,128,256,512和正无穷,正好可以形成5个区间,在5个层上进行限制尺寸以减少重叠区域。如果在一个层中出现重叠区域呢仍存在重叠区域,就直接简单的使用最小区域作为回归目标。作者还提到加入P3是[0,64],P4是[64,128]存在重叠部分是不合理的,因此没有使用固定的exp(x),而是加入了一个可训练的参数 s_{i}exp(s_{i}x)自动调整不同特征图的的范围,略微提升了一点检测性能。

    image.png

3、Center-ness

在FCOS中使用了多级预测后,还是和anchor based的方法存在性能差距,这是由于远离对象中心的位置产生了大量的低质量预测框。所以添加了一个简单的center-ness分支,与分类分支并行,来预测center-ness的位置。center-ness(可以理解为一种具有度量作用的概念,在这里称之为"中心度"),中心度取值为0,1之间,使用交叉熵损失进行训练。并把损失加入前面提到的损失函数中。测试时,将预测的中心度与相应的分类分数相乘,计算最终得分(用于对检测到的边界框进行排序)。因此,中心度可以降低远离对象中心的边界框的权重。因此,这些低质量边界框很可能被最终的非最大抑制(NMS)过程滤除,从而显着提高了检测性能。
centerness^{*}=\sqrt{\frac{min(l^{*},r^{*})}{max(l^{*},r^{*})} \times \frac{min(t^{*},b^{*})}{max(t^{*},b^{*})}}

image.png

image.png

四、实验

使用COCO数据集,使用trainval135K(115K张图片)进行训练,使用minival(5K张图片)进行消融实验,最后在test_dev(20K张图片)上报告我们的结果。

  • 训练细节:
    • 1、使用RetinaNet相同的超参数,采用resnet-50作为backbone,使用ImageNet上的预训练权重进行初始化。
    • 2、使用SGD作为优化器,初始学习率为0.01,Moment为0.9,batch size 16。
    • 3、训练90K次,学习率在60K和80K时衰减10倍。
    • 4、weight decay为0.0001。
    • 5、短边为800,长边不超过1333。
  • 推理细节:
    • 使用RetinaNet相同的后处理超参数。
    • 使用和训练时一样大小的图像进行推理。

1、消融实验

image.png
  • 使用FPN进行多级预测:主要解决了召回率低以及模糊样本的问题。主要参考本文前面列的两张实验图,这里不再重复论述了。

  • 使用Center-ness:


    image.png
  • 和anchor based的方法对比:


    image.png

2、和最新的一些方法对比

简而言之,FCOS最好。

五、替换RPN

image.png

后面还有一些别的讨论有兴趣的可以自己看看论文。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容