FCOS: A Simple and Strong Anchor-free Object Detector

论文链接

一.背景

1.anchor-base缺点         

(1).anchor的设置对结果影响很大,不同项目这些超参都需要根据经验来确定,难度较大.

(2).anchor太过密集,其中很多是负样本,引入了不平衡.

(3).anchor的计算涉及IOU增加计算复杂度.

2.anchor free检测框

yolov1可看成是anchor free方式,通过划分格子,target的中心点位于格子里的,才将相应的格子负责预测target.而yolov2采用了anchor的思想.anchor遍布图片,自然召回率上升了.fcos取长补短,采取了gt框里的所有点进行回归,同时采用center-ness优化预测框中心点.

二.网络介绍

1.网络结构

输出分支主要由三部分组成

(1)classification,大小为(W,H,C),输出不同类别

(2)Regression,大小为(W,H,4),输出图上每个点的上下左右偏差

(3)Center-ness大小为(W,H,1),预测检测框中心点与gt检测框的中心点的重合概率,用来提升检测框精度,下面有具体分析.

2.中心采样(center sampling)

对于任何一个gt bbox,首先映射到每一个输出层,利用center_sample_radius×stride计算出该gt bbox在每一层的正样本区域以及对应的left/top/right/bottom的target.

对于每个输出层的正样本区域,遍历每个point位置,计算其max(left/top/right/bottom的target)值是否在指定范围内,不再范围内的认为是背景.

(1).减少歧义target数目,能很大解决overlap特征点不知道该回归那个框的问题

(2).减少标注噪声干扰

box标注通常会框住很多无关区域,如果无关区域的point也要回归明显不对,比如空中的飞机,飞机旁边的天空就是无关区域.

3.FPN

通过FPN在每层feature map去预测不同尺度大小的物体,就解决了这种overlap的问题(overlap特征点不知道该回归那个框).

如果FPN和中心采样还没解决的话,就按最小的框来.

同时FPN每一层回归范围进行约束.

P3:回归范围在[0,64],P4:回归范围在[64,128],P5:回归范围在[128,256]

P6:回归范围在[256,512],P7:回归范围在[612,inf],这样就解决了不同层预测不同大小目标的问题.

4.分类

训练C个二分类器,而不是训练一个多分类器.

5.坐标回归

anchor-based回归方式在于回归anchor与gt框之间的偏移量,而fcos在特征图上面的每一个点回归上下左右的距离(可认为是point-based).

公式:

(l ∗ , t ∗ , r ∗ , b ∗ ) :回归的上下左右四个量;

(x0,y0),(x1,y1):gt在原图上面的左上右下坐标;

(x,y):特征图内的点的坐标;

s: 相应feature map的步长, 用于压缩预测范围,容易平衡分类和回归Loss权重.

6. center-ness

作者发现引入了很多远离taget中心点的低质量预测框,预测框的中心点与target框的中心点更接近的话,预测框更加可靠.所以在回归的分支引入center-ness分支来回归预测框中心与target中心,虽然是回归问题,但采用的是celoss

可看出低IOU但score高的box得到了很大减少,IOU和score的一致性得到了改善.

7.loss函数

Lcls: focal loss

Lreg: GIoU loss

Npos:正样本数据

λ:取1平衡回归与分类loss

centerness loss用于约束预测框中心与gt中心点,直接与上面分类与回归相加即可,在推理时,输出的score为分类score乘以中心score.

8.推理

获取feature map上每个点的分类score在与回归的四个边界进行组合即可得出预测框.在进行阈值0.6的NMS.

三.实验结果

参考:https://www.zybuluo.com/huanghaian/note/1747551

猜你喜欢

转载自blog.csdn.net/fanzonghao/article/details/109487496