(八)论文阅读 | 目标检测之FCOS


简介

在这里插入图片描述

图1:论文原文

论文是发表在 I C C V   2019 {\rm ICCV\ 2019} ICCV 2019上的一篇关于目标检测的论文,提出一种新的 A n c h o r {\rm Anchor} Anchor- F r e e {\rm Free} Free方法。大体来看,这篇论文的方法与FSAF有异曲同工之妙。实验结果为在 M S   C O C O {\rm MS\ COCO} MS COCO上数据集上的 A P {\rm AP} AP上为 44.7 % {\rm 44.7\%} 44.7%论文原文 源码


0. Abstract

作者提出 F C O S {\rm FCOS} FCOS上以解决目标检测中的像素级检测问题,类似于图像语义分割。 F C O S {\rm FCOS} FCOS是一种 A n c h o r {\rm Anchor} Anchor- F r e e {\rm Free} Free上的方法,避免了一系列 A n c h o r {\rm Anchor} Anchor- B a s e d {\rm Based} Based方法相关的问题。

论文贡献:(一)提出一种新的 A n c h o r {\rm Anchor} Anchor- F r e e {\rm Free} Free目标检测方法;(二)由于将目标检测当做像素级的检测,这使得目标检测可以和很多图如语义分割和实例分割的方法相互借鉴(比如 C V P R   2020   O r a l {\rm CVPR\ 2020\ Oral} CVPR 2020 Oral的一篇一阶段实例分割方法 P o l a r M a s k {\rm PolarMask} PolarMask就是基于 F C O S {\rm FCOS} FCOS)。


1. Introduction

前面是关于目标检测常规介绍,并指出 A n c h o r {\rm Anchor} Anchor- B a s e d {\rm Based} Based方法的一些不足

  1. 检测器性能对先验 A n c h o r {\rm Anchor} Anchor的尺寸和宽高比敏感;
  2. A n c h o r {\rm Anchor} Anchor的尺寸和宽高比一旦设定,只能通过训练过程中的微调改变,这不利于多尺度检测。同时先验 A n c h o r {\rm Anchor} Anchor不具有可扩展性,在不同数据集上需要重新设置(先验框的尺寸往往通过聚类得到);
  3. 为了获得更高的精度, A n c h o r {\rm Anchor} Anchor- B a s e d {\rm Based} Based方法需要在输入图像上设置大量 A n c h o r {\rm Anchor} Anchor,而其中大部分 A n c h o r {\rm Anchor} Anchor所包含的内容为背景,这会导致训练过程中样本的不平衡性;
  4. A n c h o r {\rm Anchor} Anchor的设置会产生大量的冗余计算。

F C N {\rm FCN} FCN在密集检测任务中表现出色,例如图像语义分割、深度估计、关键点检测、人群计数等。作者指出,目标检测是否也能够看作像素级预测问题?基于 F C N {\rm FCN} FCN的目标检测方法,在特征图的每个位置预测一个 4 4 4维的位置向量和类别置信度(对特征图上每一个像素点分类)。下图是 F C O S {\rm FCOS} FCOS中的做法:

在这里插入图片描述

图2:FCOS

上图左半部分是预测的一个四维向量 ( l , t , r , b ) (l,t,r,b) (l,t,r,b),右图是当某个位置存在多个预测框的情况。

作者大量借鉴 D e n s e B o x {\rm DenseBox} DenseBox的思路, D e n s e B o x {\rm DenseBox} DenseBox的做法是:为了解决不同边界框的尺寸问题,采用图像金字塔作为输入,得到 5 5 5个通道的特征图用于预测置信度和边界框宽高。但作者认为这类方法不能很好处理地含有重叠框的情况(如图 2 2 2中的右图)。此外,实验发现, F C O S {\rm FCOS} FCOS会产生大量远离目标中心的边界框。为了抑制这些框,作者在模型中添加一个 c e n t e r {\rm center} center- n e s s {\rm ness} ness分支。下面是 F C O S {\rm FCOS} FCOS特点

(1)将检测同基于 F C N {\rm FCN} FCN的如图像语义分割任务相统一,可以轻松复用其思想;

(2) A n c h o r {\rm Anchor} Anchor- F r e e {\rm Free} Free减少参数量和人工干预;

(3)简化计算过程(如去掉 I o U {\rm IoU} IoU的计算等);

(4)在一阶段检测算法中表现 S O T A {\rm SOTA} SOTA

(5)可以轻易迁移到其他像素级任务中,如实例分割、特征点估计等。


2. Related Work

A n c h o r {\rm Anchor} Anchor- B a s e d {\rm Based} Based F a s t   R {\rm Fast\ R} Fast R- C N N {\rm CNN} CNN F a s t e r   R {\rm Faster\ R} Faster R- C N N {\rm CNN} CNN S S D {\rm SSD} SSD Y O L O v 2 {\rm YOLOv2} YOLOv2 A n c h o r {\rm Anchor} Anchor- F r e e {\rm Free} Free Y O L O v 1 {\rm YOLOv1} YOLOv1 C o r n e r N e t {\rm CornerNet} CornerNet D e n s e B o x {\rm DenseBox} DenseBox


3. Our Approach

3.1 Fully Convolutional One-Stage Object Detector

F i ∈ R H × W × C F_i∈{\mathbb R}^{H×W×C} FiRH×W×C为第 i i i层特征图, s s s为下采样倍数,真实框 B i = ( x 0 ( i ) , y 0 ( i ) , x 1 ( i ) , y 1 ( i ) , c ( i ) ) ∈ R 4 × { 1 , 2 , . . . , C } B_i=(x_0^{(i)},y_0^{(i)},x_1^{(i)},y_1^{(i)},c^{(i)})\in \mathbb{R}^4×\{1,2,...,C\} Bi=(x0(i),y0(i),x1(i),y1(i),c(i))R4×{1,2,...,C}。其中, ( x 0 ( i ) , y 0 ( i ) ) (x_0^{(i)},y_0^{(i)}) (x0(i),y0(i)) ( x 1 ( i ) , y 1 ( i ) ) (x_1^{(i)},y_1^{(i)}) (x1(i),y1(i))分别表示真实框的左上角和右下角坐标, c ( i ) c^{(i)} c(i)表示具体的类别。

对于 F i F_i Fi上的位置 ( x , y ) (x,y) (x,y),将其映射回原图后的位置为 ⌊ s / 2 + x s , s / 2 + y s ⌋ \lfloor s/2+xs,s/2+ys\rfloor s/2+xs,s/2+ys,且该位置位于 ( x , y ) (x,y) (x,y)对应感受野的中心附近。不同于 A n c h o r {\rm Anchor} Anchor- B a s e d {\rm Based} Based中将该位置所在的 A n c h o r {\rm Anchor} Anchor视为正样本, F C O S {\rm FCOS} FCOS的做法是直接基于该位置来回归边界框。此时,位置 ( x , y ) (x,y) (x,y)被当作正样本,且类别为对应真实框的类别。

同时,使用一个 4 4 4维向量 t ∗ = ( l ∗ , t ∗ , r ∗ , b ∗ ) t^*=(l^*,t^*,r^*,b^*) t=(l,t,r,b),依次表示真实框中心点到边界框各边的距离,也即是该位置的回归目标。如果该位置落入多个标注框中,则将其视为模糊样本,并选择较小的边界框作为其回归目标(后面使用 F P N {\rm FPN} FPN会大大减少模糊样本的数量)。同时该位置的类别为与其有最大 I o U {\rm IoU} IoU的标注框。如,位置 ( x , y ) (x,y) (x,y)落入标注框 B i B_i Bi中,则回归目标为: l ∗ = x − x 0 i ,     t ∗ = y − y 0 i l^*=x-x_0^{i},\ \ \ t^*=y-y_0^{i} l=xx0i,   t=yy0i r ∗ = x 1 i − x ,     b ∗ = y 1 i − y (1) r^*=x_1^{i}-x,\ \ \ b^*=y_1^{i}-y\tag{1} r=x1ix,   b=y1iy(1)

网络的输出是 1 1 1 80 80 80维的类别向量 p p p 1 1 1 4 4 4维的位置向量 t = ( l , t , r , b ) t=(l,t,r,b) t=(l,t,r,b)。同时,在 B a c k b o n e {\rm Backbone} Backbone后分别增加 4 4 4个卷积层分别用于预测分类和回归(如下图 3 3 3)。损失函数定义为: L ( { p x , y } , { t x , y } ) = 1 N p o s ∑ x , y L c l s ( p x , y , c x , y ∗ ) + λ N p o s ∑ x , y 1 { c x , y ∗ > 0 } L r e g ( t x , y , t x , y ∗ ) (2) L(\{p_{x,y}\},\{t_{x,y}\})=\frac{1}{N_{pos}}\sum_{x,y}L_{cls}(p_{x,y},c^*_{x,y})+\frac{λ}{N_{pos}}\sum_{x,y}1_{\{c^*_{x,y}>0\}}L_{reg}(t_{x,y},t^*_{x,y})\tag{2} L({px,y},{tx,y})=Npos1x,yLcls(px,y,cx,y)+Nposλx,y1{cx,y>0}Lreg(tx,y,tx,y)(2)

L c l s L_{cls} Lcls F o c a l   L o s s {\rm Focal\ Loss} Focal Loss L r e g L{reg} Lreg I o U   L o s s {\rm IoU\ Loss} IoU Loss(目标检测中常用的套路,分类用 F o c a l   L o s s {\rm Focal\ Loss} Focal Loss,回归用 I o U   L o s s {\rm IoU\ Loss} IoU Loss), N p o s {N_{pos}} Npos为正样本数量, λ λ λ为平衡系数。 1 { c x , y ∗ > 0 } 1_{\{c^*_{x,y}>0\}} 1{cx,y>0}为指示函数,满足条件为 1 1 1,否则为 0 0 0

3.2 Multi-level Prediction with FPN for FCOS

这里,作者使用 F P N {\rm FPN} FPN解决 F C O S {\rm FCOS} FCOS所出现的相关问题: ( 1 ) (1) (1)最后一个下采样特征层得到的最大召回率较低。作者认为出现的原因可能是:由于较大倍数的下采样操作,原图中存在的小目标可能已不存在于当前特征图。 ( 2 ) (2) (2)当出现标注框重叠的情况时,检测效果可能因此下降。上述问题均涉及多尺度检测问题,目标检测中通常采用 F P N {\rm FPN} FPN结构解决此类问题。令 { P 3 , P 4 , P 5 , P 6 , P 7 } \{P_3,P_4,P_5,P_6,P_7 \} {P3,P4,P5,P6,P7}为得到的 5 5 5个特征图。如下图:

在这里插入图片描述

图3:FCOS结构

首先针对特征图上的每个位置计算回归目标 l ∗ , t ∗ , r ∗ , b ∗ l^*,t^*,r^*,b^* l,t,r,b。如果某个位置的 m a x ( l ∗ , t ∗ , r ∗ , {\rm max}(l^*,t^*,r^*, max(l,t,r, b ∗ ) > m i b^*)>m_i b)>mi m a x ( l ∗ , t ∗ , r ∗ , b ∗ ) < m i − 1 {\rm max}(l^*,t^*,r^*,b^*)<m_{i-1} max(l,t,r,b)<mi1,则将其视为负样本,不需要参与回归 m i m_i mi表示第 i i i层特征图需要回归的最大距离, m 2 , m 3 , m 4 , m 5 , m 6 , m 7 m_2,m_3,m_4,m_5,m_6,m_7 m2,m3,m4,m5,m6,m7分别设置为 0 , 64 , 128 , 256 , 512 , ∞ 0,64,128,256,512,∞ 0,64,128,256,512,。这里相当于对回归目标直接做了一次限制,如果当前层的回归目标尺寸不符合预先设定的范围,则不对该样本进行回归。这在一定程度上能够缓解尺寸不协调的问题。

3.3 Center-Ness for FCOS

解决了多尺度预测的问题后,仍存在另一个问题:实验表明 F C O S {\rm FCOS} FCOS会产生大量偏离目标中心的边界框。论文提出一种有效的解决办法:在同分类分支处添加一个平行层用于预测 c e n t e r {\rm center} center- n e s s {\rm ness} ness,见图 3 3 3 c e n t e r {\rm center} center- n e s s {\rm ness} ness指当前位置同该位置所负责边界框的归一化距离,计算方法如下: c e n t e r n e s s ∗ = m i n ( l ∗ , r ∗ ) m a x ( l ∗ , r ∗ ) × m i n ( t ∗ , b ∗ ) m a x ( t ∗ , b ∗ ) (3) {\rm centerness^*}=\sqrt{\frac{{\rm min}(l^*,r^*)}{{\rm max}(l^*,r^*)}×\frac{{\rm min}(t^*,b^*)}{{\rm max}(t^*,b^*)}}\tag{3} centerness=max(l,r)min(l,r)×max(t,b)min(t,b) (3)

这里,在远离目标中心的边界框中,假设这些低质量框在目标的右上方且与有效框无交集,则 l ∗ + w = r ∗ l^*+w=r^* l+w=r b ∗ + h = t ∗ b^*+h=t^* b+h=t,由上式计算的 c e n t e r n e s s {\rm centerness} centerness值会比离目标中心近的边界框的值小。从而达到抑制低质量框的目的。这里 c e n t e r n e s s ∗ {\rm centerness^*} centerness值的范围是 0 0 0 1 1 1,使用交叉熵损失函数。

c e n t e r {\rm center} center- n e s s {\rm ness} ness是如何发挥作用的呢?在测试阶段,最后的得分(用于对建议框排序)通过将 c e n t e r n e s s {\rm centerness} centerness值同分类得分相乘得到。因此 c e n t e r {\rm center} center- n e s s {\rm ness} ness能够降低原理目标中心边界框的权重,最后通过 N M S {\rm NMS} NMS就可以将置信度低的建议框过滤。


4. Experiments

本部分首先介绍了所使用的的数据集 M S   C O C O {\rm MS\ COCO} MS COCO,以及训练和推理细节,然后就是一系列的消融实验。这部分主要关于 F P N {\rm FPN} FPN用于多尺度检测,消融实验 1 1 1结果:

在这里插入图片描述

图4:消融实验1结果对比

这里同 R e t i n a N e t {\rm RetinaNet} RetinaNet作对比,其中 B P R ( B e s t   P o s s i b l e   R e c a l l ) {\rm BPR(Best\ Possible\ Recall)} BPR(Best Possible Recall)表示最大召回率。这里召回率的计算方式是:分配了建议框的标注框个数与总的标注框个数的比值。 L o w {\rm Low} Low- q u a l i t y   m a t c h e s {\rm quality\ matches} quality matches表示在所有建议框中低质量框的保留情况。如其中 N o n e {\rm None} None表示滤除后不滤除低质量框, A l l {\rm All} All表示保留所有建议框(如根据建议框与标注框的 I o U {\rm IoU} IoU滤除了所有低质量框)。这部分主要关于 F P N {\rm FPN} FPN用于消除模糊样本,消融实验 2 2 2结果:

在这里插入图片描述

图5:消融实验2结果对比

从图中可得知,使用 F P N {\rm FPN} FPN后模糊样本大量减少。 d i f f {\rm diff} diff表示进一步排除在重叠区域内属于同一类别的模糊样本。这部分主要是关于 c e n t e r {\rm center} center- n e s s {\rm ness} ness的使用,消融实验 3 3 3结果:

在这里插入图片描述

图6:消融实验3结果对比

w / G N {\rm w/GN} w/GN表示组归一化( w i t h   G r o u p   N o r m a l i z a t i o n {\rm with\ Group\ Normalization} with Group Normalization); c t r .   o n   r e g {\rm ctr.\ on\ reg} ctr. on reg表示将 c e n t e r {\rm center} center- n e s s {\rm ness} ness分支移至回归分支处; c t r .   s a m p l i n g {\rm ctr.\ sampling} ctr. sampling表示仅将标注框的中心区域采样为正样本; G I o U {\rm GIoU} GIoU表示使用 G I o U   L o s s {\rm GIoU\ Loss} GIoU Loss N o r m a l i z a t i o n {\rm Normalization} Normalization表示将回归目标归一化,详情参考源码。这部分主要关于 F C O S {\rm FCOS} FCOS同经典目标检测算法的对比:

在这里插入图片描述

图7:实验结果对比


5. Conclusion

论文提出了一种的新的 A n c h o r {\rm Anchor} Anchor- F r e e {\rm Free} Free目标检测方法,将特征图上的点作为训练样本回归边界框。同时提出 c e n t e r n e s s {\rm centerness} centerness滤除远离目标中心的框。此外,论文思路同 F S A F {\rm FSAF} FSAF类似。下图为 F S A F {\rm FSAF} FSAF的结构:

在这里插入图片描述

图8:FSAF

F S A F {\rm FSAF} FSAF R e s t i n a N e t {\rm RestinaNet} RestinaNet b a s e l i n e {\rm baseline} baseline,同样是基于 F P N {\rm FPN} FPN结构。在每个预测分支上又划分为两个子分支,分别用于预测分类和回归。同时在分类和回归分支上通过卷积层接上两个 A n c h o r {\rm Anchor} Anchor- F r e e {\rm Free} Free分支,上图是共同训练 A n c h o r {\rm Anchor} Anchor- B a s e {\rm Base} Base A n c h o r {\rm Anchor} Anchor- F r e e {\rm Free} Free F S A F {\rm FSAF} FSAF也可以单独训练 A n c h o r {\rm Anchor} Anchor- F r e e {\rm Free} Free。更多详细内容请参考原文

最后,前面介绍的几篇基于 A n c h o r {\rm Anchor} Anchor- F r e e {\rm Free} Free的目标检测论文(CornerNetCenterNet-TripletsCenterNet-PointsExtremeNet)和 F C O S {\rm FCOS} FCOS(及 F S A F {\rm FSAF} FSAF)为基于 A n c h o r {\rm Anchor} Anchor- F r e e {\rm Free} Free的目标检测方法的两种不同思路,前者是通过卷积生成热图寻找关键点,进而生成边界框。而后者是通过更改分类或检测分支,基于卷积添加一个 A n c h o r {\rm Anchor} Anchor- F r e e {\rm Free} Free分支完成检测。


参考

  1. Tian Z, Shen C, Chen H, et al. Fcos: Fully convolutional one-stage object detection[C]// Proceedings of the IEEE International Conference on Computer Vision. 2019: 9627-9636.
  2. Zhu C, He Y, Savvides M. Feature selective anchor-free module for single-shot object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 840-849.


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值