Anchor Free检测算法之FCOS

一.提出背景

2019 是 Anchor Free 大行其道的一年,从CornerNet 到 ExtremeNet,从FSAF到FCOS,层出不穷。

论文:FCOS: Fully Convolutional One-Stage Object Detection【paper】【github】

二.算法框架

FCOS框架比较简单,架构图参考:

Anchor Free检测算法之FCOS_第1张图片

基础backbone是一个3层的卷积网络(对应图中C3,C4,C5),Pyramid特征金字塔构建完成P3-P7(感觉到P6就够了),每个金字塔层对应一个预测头(Head)。

其中Head层分为3个预测分支,1个分类 + 1个位置回归 + 1个Center-ness(用于构建居中loss,后面展开)

二.Why FCOS?

看着架构图来看为什么要这么设计?

1)特征pyramid价值

不同尺度的目标,在不同的特征层下 特征保留的最好,将目标按照尺度划分到不同特征层进行回归,能够有效处理重叠目标(假设重叠目标的尺度不同)。

2)Anchor Free的价值

对于基于Anchor检测来讲,正样本按照尺寸和宽高比被划分到不同的Anchor,导致对于每一个Anchor,其分类和位置回归用到的训练样本都会大大减少。

Anchor Free解决的就是这个问题,基于中心点回归4条边的位置:

Loss定义为 分类Loss + 回归Loss

Anchor Free检测算法之FCOS_第2张图片

3)Center-ness

“Center-ness”是指回归框距离中心的度量,公式很简单,l*,r* 差异越大,值越接近0,相等时=1

Anchor Free检测算法之FCOS_第3张图片

通过 Center-ness Loss,将回归返回尽量约束在以当前点为中心的BBox上,这样做的好处是降低非Center Box的权重,有效抑制偏离中心的Box,

三.试验效果(进一步改进)

试验效果如下:

Anchor Free检测算法之FCOS_第4张图片

非常不错,超越YOLO v2和SSD、CornerNet,改进思路:

将回归位置归一化到【0,1】,添加多任务分支(比如分割),结合Anchor-Based方法 等。

你可能感兴趣的:(机器学习,计算机视觉,深度学习)