FCOS

作者: haoshengup | 来源:发表于2020-03-02 18:19 被阅读0次

  本文探讨了目标检测中一直存在的一个问题,网络的结构和分类、分割有很大的不同,整个流程太复杂,主要原因是anchor的使用,我们知道,从RCNN开始使用selective生成密集box,到faster rcnn使用RPN模块来生成密集anchor,这种方法在目标检测中取得了很大的成功。但是这种方式背离了全卷积这种优雅的结构方式,因此作者这里提出了一种不依赖anchor的方法。

一、Introduction

  基于anchor检测方法的缺点:(1)检测的效果对anchor的大小、宽高比和数量很敏感。(2)由于anchor的大小和宽高比是固定的,因此网络对和设定的anchor相差较大的目标效果不好,特别是小目标。(3)由于anchor的数量密集,但是大部分是negative的,这会造成训练样本的不均衡,要靠人工筛选限定的方式来解决这个问题。(4)在训练过程中需要大量计算IoU,这需要的计算量很大。

二、Related work

  Yolo v1直接使用回归的方式去计算目标框,我们知道这种方法的漏检率比较高,特别是对于小目标,根本原因是网络只是利用了目标框的中心点所在的格子来检测,而这个数量是比较少的,对于特征图没有充分的利用。
  CornerNet是基于关键点的检测,不仅计算量大而且对现有的网络架构不适合。

三、FCOS

  1、F_i \in \mathbb{R}^{H \times W \times C}:网络的第i层特征图,s代表stride步长。B_i = (x_0^{(i)}, y_0^{(i)}, x_1^{(i)}, y_1^{(i)}, c^{(i)}) \in \mathbb{R}^4 \times \lbrace 1,2, ..., C \rbrace代表gt_box。(x_0^{(i)}, y_0^{(i)})(x_1^{(i)}, y_1^{(i)})分别代表左上角和右下角的坐标。C^{(i)}:物体类别。
  对于F_i中的任意一个点P(x, y),其在原图上对应的组标为P^{'}(\lfloor {\frac s 2} + xs \rfloor, \lfloor{\frac s 2} + ys \rfloor),如果P^{'}落在gt_box内部,则其为positive,我们计算P^{'}距离gt_box四条边的距离,分别为(l, t, r, b),回归的目标为(l^*, t^*, r^*, b^*),具体如下图左边部分。


  2、网络输出

  (1)分类分支:H \times W \times C,这里不是直接进行c分类,而是改为c个二分类。

  (2)回归分支:H \times W \times 4,因为我们知道回归的目标肯定是正的,因此我们用指数函数exp(x)作用在网络的输出结果上。我们知道exp函数的取值范围是(0, +\infty),因此这种做法是合理的。

  (3)在分类分支旁边新增要给center-ness分支,迎来抑制距离gt_box中心较远的P^{'},维度为:H \times W \times 1
  (4)借鉴focal loss中的做法,在每个分支的head中增加4个卷积层,而且这个head在FPN的结构中是共享的。
  3、loss

  其中L_{cls}是focal loss,L_{reg}是IoU loss,这里可以考虑改用GIoU loss或者DIoU loss。

四、FPN结构

  基于anchor的方法,是在不同的特征图中使用不同大小的anchor。我们这里的做法是直接使用限制回归的范围,在不同特征图中回归不同大小的目标,原则就是在低层中检测小目标,在高层中检测大目标。如果max(l^*, t^*, r^*, b^*) > m_i或者max(l^*, t^*, r^*, b^*) < m_{i-1},则设置为negative。其中,m_2-m_7:0, 64, 128, 256, 512, \infty
  基于这个原则,不同大小的目标会被分配到不同的层,如果一个location属于两个目标(即重叠目标),而且这个两个目标被分配在了同一个特征图,那么将其选择为小物体。
  在上面的介绍中,我们知道,不同大小的特征图P_3-P_7共享head,这种方法看起来是不合理的,所以我们这里对标准的exp函数进行修改,用exp(s_ix)代替,这里s_i是一个可训练的变量以适用于不同大小的特征层P_i

五、center_ness for FCOS

  cnter-ness描绘的是P^{'}和gt_box中心点的距离,需要回归的目标为:


  这里使用的损失函数是BCE loss,而且最终的loss需要加上这里的BCE loss。
  注:(1)在inference阶段,目标得分=center-ness * 分类得分。
  (2)作者的试验中,center-ness结构放在回归分支结果会更好。

相关文章

网友评论

      本文标题:FCOS

      本文链接:https://www.haomeiwen.com/subject/ecfvkhtx.html