FCOS: Fully Convolutional One-Stage Object Detection论文笔记

介绍:

anchor based检测器有一些缺点:

1.有很多超参数,例如size,长宽比,anchor的数量,这些超参数都需要仔细设计与调整。

2.因为设计后尺度,长宽比都是固定的,不能很好地应对大范围的变化,尤其是小目标,当遇到一个新的检测任务的时候需要重新设计这些参数。

3.为了覆盖所有gtbox,anchor based提出了很多的anchor,绝大部分anchor 都是负的,这导致了样本不平衡。

4.anchor based还需要计算iou,来分配正负样本的标签。

这个新的检测框架有如下优点:

1.将检测和其他全卷积可以解决的任务如语义分割统一起来。

2.anchor free ,减少了认真设计的参数。

3.避免了很多计算,iou计算,anchor和gtbox的匹配计算。

4.将FCOS添加到两阶段的中也能取得更好的表现。

5.经过很小的调整就能应用到不同的视觉任务中,包括实例分割,关键点检测。

2相关工作:

anchor based: fastrcnn,fasterrcnn,ssd,yolov2

anchor free:yolo v1因为center附近的一个点被用来预测bbox,所以yolov1遇到低召回率的问题。结果yolov2又重新使用了anchor。

本文的FCOS利用了再gtbox中的所有点来预测bbox,低质量的bbox被本文提出的“center-ness”分支抑制,所以FCOS冷后提供和anchorbased检测器类似的recall。

cornernet多了一些后处理来组合属于一个目标的角点。

另一个系列是基于densebox的。这个系列被认为不能适应通用的目标检测因为在解决bbox重叠和低的recall方面有难度本文表明这两个问题可以通过多尺度——FPN来解决。 下图是bbox重叠。
在这里插入图片描述

3方法:

在这里插入图片描述

本文输出分为三个部分,预测目标内的像素到他边界的距离,预测像素的类别,预测抑制该像素作为最终输出的比例分数

本文将目标检测转换为对每一个像素预测的方式,预测目标内的像素到它边界的距离

接着展示使用多尺度预测(FPN)来解决recall和模棱两可的结果(重叠的bbox)。最后是“center-ness”分支,帮助抑制低质量的检测bbox

3.1边界距离计算:

backbone之后,layer i的特征图 F i ∈ R H × W × C F_{i} \in \mathbb{R}^{H \times W \times C} FiRH×W×C,s是总的步距。

输入图像上的bbox定义为{Bi}, B i = ( x 0 ( i ) , y 0 ( i ) , x 1 ( i ) , y 1 ( i ) , c ( i ) ) ∈ R 4 ∗ 1 , 2 , 3... C B_i=(x_0^{(i)},y_0^{(i)},x_1^{(i)},y_1^{(i)},c^{(i)})\in{R}^4*{1,2,3...C} Bi=(x0(i),y0(i),x1(i),y1(i),c(i))R41,2,3...C。分别表示了左上,右上的坐标, c ( i ) c^{(i)} c(i)表示目标的类别。C是类别的数量。对于特征图Fi中的每一个位置(x,y),先通过公式映射到原图上
在这里插入图片描述
这样计算出来是在(x,y)感受野的中心。直接在这个位置回归bbox,而不是像之前的基于anchor的,要通过anchor去做偏移。

真实回归目标的计算:

如果feature map上的位置(x,y)映射回去落在gtbox的范围内,**那么这个位置的真实类别标签c就对应这个gtbox的标签,这样对于同一个gtbox,就会选择多个点作为正样本。如果c*=0,就说明没落在gtbox范围内,是背景位置。此外还有4D的向量t=(l,t*,r*,b*)用来作为这个位置到四个边的回归目标(真实距离)。如果一个(x,y)落入了多个bbox,被看做模棱两可的样本,那么选择最小面积的bbox作为它的回归目标(类别和到边的距离)。

真实回归距离t*=(l*,t*,r*,b*)的计算。如果一个位置(x,y)和bbox Bi相关,那么这个位置的真实回归目标等于:
在这里插入图片描述

网络的输出:

在backbone后分成两个分支,都是4个卷积层,分别作为分类和距离回归。
在这里插入图片描述
预测网络最后输出HxWx(C+4+1),通道数分别表示类别数加上该位置到bbox的边界的距离预测,即对一个位置预测80D(类别数)的向量 p,该位置到bbox的边界的距离预测,4D的向量t = (l; t; r; b)的bbox,因为距离都是正的,所以在回归分支上还用了exp(x)函数。;1是center-ness分支。取代使用多类别分类,这里训练了C个二分类。

总的损失函数:
在这里插入图片描述
损失函数包括两个部分,类别损失和距离损失 L C L S L_{CLS} LCLS是focal loss, L r e g L_{reg} Lreg是iou loss。所有的位置都要做类别损失,但有的位置不用做距离损失。

N p o s N_{pos} Npos是正样本的数量,λ=1,是用来平衡权重。 l l ( c i ∗ > 0 ) ll_{(c_i^*>0)} ll(ci>0)是指示器函数,当 c i ∗ > 0 c_i^*>0 ci>0(此处的真实类别)时,他等于1,其他情况等于0。也就是这个位置对应有真实目标,那么就做距离回归损失,否则就不做距离回归损失。

对特征图上每一个位置都进行上面所说的损失计算(包括类别和距离损失)。

推理:

给一张输入图,将他前向传播,在每一个位置获得一个分数 p x , y p_{x,y} px,y(类别分数乘centerness),距离的预测 t x , y t_{x,y} tx,y。选择 p x , y p_{x,y} px,y大于0.05的的位置作为正样本,通过公式转化来获得预测的bbox。

3.2使用多层预测FPN:

此前有两个问题:

1,recall低。对于anchor based的检测器来说,大的步距导致的recall低可以通过设置较低的iou分数划分为正样本来缓解。对于FCOS来说,BPR(best possible recall)比anchor-base低很多,因为他不可能在没有location的featrue map上回归一个目标,因为大的步距丢失了。此外

2.gtbox的重叠会导致一些模棱两可,这个location到底是预测哪个gtbox。
在这里插入图片描述
这两个问题都可以通过fpn来解决。
在这里插入图片描述
如上图,fpn包括p3,4,5,6,7。他们的步距依次是8,16,32,64,128。p3,4,5是通过backbone上的c3,4,5后面接1x1卷积和top-down连接产生的。p6,7是通过p5,6下采样产生,步距都为2。

具体做法是控制每一层能够预测的距离范围。设置m2,3,4,5,6,7等于0,64,128,256,512,∞。也就是p3,4,5,6,7分别能够接受的真实距离范围是,0-64,64-128,128-256,256-512,512-∞。如果fpn 的i层特征图上一个位置(x,y),尽管他映射回原图有一个gtbox,但他的最大距离,max(l*,t*,r*,b*)不在本层接受的范围内,就把他认作负样本。由其它层来预测这个gtbox。

这样分层预测的想法是,大多数重叠的真实框都是发生在两个目标有很大不同的size。,如果这样处理之后还是在一个层一个位置有多个gtbox,则取最小面积的gtbox对应这个location。

最后在不同的特征层上使用相同的头,但是我们在不同的层上预测不同范围尺寸的目标,因此使用相同的head是不合理的。所以取代用exp(x)(上面说到的,还要对预测的距离进行一个exp(x),因为距离都是大于0的),我们使用exp( s i x s_ix six), s i s_i si是一个可训练的标量,自动调整指数函数。也就是loss反传的时候会更新 s i s_i si

3.3Center-ness

观察到低质量的框都是通过原理中心点的location制造。提出了一种不增加超参数的方法。和分类网络并行添加一个center-ness(HxWx1),它表明的是location到边界的归一化后0-1的距离,离中心点越近,center-ness越接近1,越远,center-ness越接近0。测试的时候,最后的分数是预测的类别分数乘预测的center-ness,这些低质量的分数低的框就被nms来筛除。

真实值通过这个公式计算:
在这里插入图片描述
loss通过二分类交叉熵计算(BCE)。这个loss被添加到前面的损失上,构成总损失。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值