深度学习笔记-----FCOS

一,概述

       目标检测算法主要分为两个大的方向:单阶段检测器/双阶段检测器,其对应的代表性算法分别是Faster-rcnn和Yolo。而随着目标检测性能的大幅度提升,这个领域的门槛变得很高,仅有很少的大佬们仍然在探索着新的检测算法。其实对于目标检测而言,我们还可以按照其它的类别进行划分,即所谓的基于anchor和anchor-free的算法。FCOS是一个基于anchor-free的单阶段目标检测算法。
        该算法是基于anchor-free的,即敢于去挑战权威,在目标检测领域中,很多人可能都形成了一个定势思路,为了处理尺度和不同比率问题,anchors是必须使用的模块,而FCOS敢于脱离这个思路提出一个较新的视角,使得人们眼前一亮。

二,FCOS的框架

      FCOS的结构如图所示,主要应用了FPN的结构,在最后的阶段除了类别的分类和边框回归还有一个预测量,下面我们就详细研究FCOS:

在这里插入图片描述

2.1 FCOS优势:

  1. FCOS与许多基于FCN的思想是统一的,因此可以更轻松的重复使用这些任务的思路。
  2. 检测器实现了proposal free和anchor free,显著的减少了设计参数的数目。设计参数通常需要启发式调整,并且设计许多技巧。另外,通过消除锚框,新探测器完全避免了复杂的IOU计算以及训练期间锚框和真实边框之间的匹配,并将总训练内存占用空间减少了2倍左右。
  3. FCOS可以作为二阶检测器的区域建议网络(RPN),其性能明显优于基于锚点的RPN算法。
  4. FCOS可以经过最小的修改便可扩展到其他的视觉任务,包括实例分割、关键点检测。

2.2 锚框缺点:

  1. 检测表现效果对于锚框的尺寸、长宽比、数目非常敏感,因此锚框相关的超参数需要仔细的调节。
  2. 锚框的尺寸和长宽比是固定的,因此,检测器在处理形变较大的候选对象时比较困难,尤其是对于小目标。预先定义的锚框还限制了检测器的泛化能力,因为,它们需要针对不同对象大小或长宽比进行设计。
  3. 为了提高召回率,需要在图像上放置密集的锚框。而这些锚框大多数属于负样本,这样造成了正负样本之间的不均衡。
  4. 大量的锚框增加了在计算交并比时计算量和内存占用。

2.3 FCOS与与基于锚框的检测器的区别

1)回归的区别

  • anchor-based算法将输入图像上的位置作为锚框的中心点,并且对这些锚框进行回归。
  • FCOS直接对feature map中每个位置对应原图的边框都进行回归,换句话说FCOS直接把每个位置都作为训练样本,这一点和FCN用于语义分割相同。

2) 正样本的规定

  • 在训练过程中,anchor-based算法对样本的标记方法是,如果anchor对应的边框与真实边框(ground truth)交并比大于一定阈值,就设为正样本,并且把交并比最大的类别作为这个位置的类别。
  • 在FCOS中,如果位置 (X,Y) 落入任何真实边框,就认为它是一个正样本,它的类别标记为这0个真实边框的类别。

     这样会带来一个问题,如果标注的真实边框重叠,位置 (X,Y)  映射到原图中落到多个真实边框,这个;位置被认为是模糊样本,FCOS用多级预测的方式解决的方式解决模糊样本的问题。 具体的做法为:FCOS采用类似FPN中的多级检测,就是在不同级别的特征层检测不同尺寸的目标

与基于锚框不同的地方

  • 基于锚框的检测器将不同尺寸的锚框分配到不同级别的特征层
  • FCOS通过直接限定不同特征级别的边界框的回归范围来进行分配

 3)训练分类器的个数

  • 以往算法都是训练一个多元分类器
  • FCOS训练 C 个二元分类器(C是类别的数目)

2.4 FCOS的Center-ness

     通过多级预测之后发现FCOS和基于锚框的检测器之间仍然存在着一定的距离,主要原因是距离目标中心较远的位置产生很多低质量的预测边框。

      在FCOS中提出了一种简单而有效的策略来抑制这些低质量的预测边界框,而且不引入任何超参数。具体来说,FCOS添加单层分支,与分类分支并行,以预测"Center-ness"位置。

 

preview

 

      通过多级预测之后发现FCOS和基于锚框的检测器之间仍然存在着一定的距离,主要原因是距离目标中心较远的位置产生很多低质量的预测边框。

      在FCOS中提出了一种简单而有效的策略来抑制这些低质量的预测边界框,而且不引入任何超参数。具体来说,FCOS添加单层分支,与分类分支并行,以预测"Center-ness"位置。

center-ness(可以理解为一种具有度量作用的概念,在这里称之为"中心度"),中心度取值为0,1之间,使用交叉熵损失进行训练。并把损失加入前面提到的损失函数中。测试时,将预测的中心度与相应的分类分数相乘,计算最终得分(用于对检测到的边界框进行排序)。因此,中心度可以降低远离对象中心的边界框的权重。因此,这些低质量边界框很可能被最终的非最大抑制(NMS)过程滤除,从而显着提高了检测性能。 

有无Center-ness的结果对比

preview

 “None”表示没有使用中心。“中心度”表示使用预测回归向量计算得到的中心度。“中心度”是指利用提出的中心度分支预测的中心度。中心度分支提高了所有指标下的检测性能。

三,与先进的一阶、二阶检测器效果对比

preview

     与目前最主流的一些一阶、二阶检测器对比,在检测效率方面FCOS优于Faster R-CNN、YOLO、SSD这些经典算法。 

版权声明:本文为CSDN博主「YOULANSHENGMENG」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/YOULANSHENGMENG/article/details/122172845

YOULANSHENGMENG

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐