前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >目标检测 | FCOS,经典单阶段Anchor-Free目标检测模型

目标检测 | FCOS,经典单阶段Anchor-Free目标检测模型

作者头像
Justlovesmile
发布2022-03-30 15:36:43
9950
发布2022-03-30 15:36:43
举报
文章被收录于专栏:云+分享云+分享

FCOS: Fully Convolutional One-Stage Object Detection

论文来源:ICCV2019 论文链接:https://arxiv.org/abs/1904.01355 论文代码:https://github.com/tianzhi0549/FCOS/

代码语言:javascript
复制
@inproceedings{tian2019fcos,
  title={Fcos: Fully convolutional one-stage object detection},
  author={Tian, Zhi and Shen, Chunhua and Chen, Hao and He, Tong},
  booktitle={Proceedings of the IEEE/CVF international conference on computer vision},
  pages={9627--9636},
  year={2019}
}

归纳总结

标签

目的

方法

总结

#Anchor-Free #单阶段

解决Anchor-Base算法超参数设置复杂,计算量大的问题

FCN,Center-ness

Anchor-Free经典算法

主要工作

FCOS是一种基于全卷积的单阶段目标检测算法,并且是一种Anchor box free的算法。其实现了无Anchor,无Proposal,并且提出了Center-ness的思想,极大的提升了Anchor-Free目标检测算法的性能。

Anchor free的好处是:

  • 避免了Anchor Box带来的复杂计算,如计算重合度IoU;
  • 避免了Anchor Box相关的超参数设置,其对性能影响较大;

因此,FCOS的优点是:

  • 其可以和其他使用FCN结构的任务相统一,方便其他任务方法之间的re-use
  • proposal free和anchor free,减少了超参数数量,更简单
  • 减少了计算复杂度,如IoU计算
  • FCOS在单阶段算法中性能不错,并且证明了FCOS替换两阶段算法里的RPNs也可以取得更好的性能
  • 适用于各种instance-wise的预测问题

模型结构

模型结构如下图:

FCOS包含三个大模块:

  • Backbone:提取图像特征,如结构图左侧所示,其中特征图尺寸逐层减半,如左侧H×W所示,s=\frac{W^*}{W}代表步长。对于坐标为(x,y)的位置,其映射回原图为(\lfloor\frac{s}{2}\rfloor + xs,\lfloor\frac{s}{2}\rfloor+ys);
  • FPN:多层级预测,提高检测器对不同尺寸目标的检测性能;与Anchor Based不同的是,FCOS通过限制不同层级边界框回归范围来分配层级
  • Classification+Center-ness+Regression Head

对于FCOS,其直接将每个位置(x,y)视为训练样本,其需要回归的值为一个4维向量t=(l,t,r,b),如上图所示。由于一张图片中的目标数量有限,所以导致基于Anchor的算法会产生更多的负样本,因此FCOS对于每个像素点只回归一组值(可以理解为Anchor数量为1),可以利用更多的前景(正)样本信息去训练。如果坐标落在任何ground-truth box中即为正样本,且该位置的类别为这个gt box的类别c^*,否则为负样本(即背景,类别为0),如果落在多个gt box中,则认为其是一个歧义样本(ambiguous sample),针对这种情况,可通过FPN解决。计算(l^*, t^*, r^*, b^*)m_i为每个特征层最大距离(论文里作者设置m_2~m_7分别为0,64,128,256,512,\infty),如果\max(l^*, t^*, r^*, b^*) > m_i\max(l^*, t^*, r^*, b^*) < m_{i−1}

正负样本定义

一个目标检测算法性能的优异性,最大影响因素就是如何定义正负样本。而FCOS的定义方式非常通俗易懂。主要分为两步: (1) 设置regress_ranges=((-1, 64), (64, 128), (128, 256), (256, 512),(512, INF),用于将不同大小的bbox分配到不同的FPN层进行预测即距离4条边的最大值在给定范围内 (2) 设置center_sampling_ratio=1.5,用于确定对于任意一个输出层距离bbox中心多远的区域属于正样本(基于gt bbox中心点进行扩展出正方形,扩展范围是center_sample_radius×stride,正方形区域就当做新的gt bbox),该值越大,扩张比例越大,选择正样本区域越大;(细节:如果扩展比例过大,导致中心采样区域超过了gt bbox本身范围了,此时需要截断操作)

损失函数

FCOS的损失函数为:

其中L_{cls}是focal loss,L_{reg}是IoU loss,N_{pos}代表正样本数量,\lambda用于平衡L_{reg}的权重;\mathbb{1} _ {c^{ * }{i}}c^{ * }{i}>0

为了减少低质量检测框,减少误检,FCOS增加了一个一层的分支,用于预测Center-ness,其描绘了位置到目标中心的归一化距离,下图展示了使用Center-ness(左)和不使用Center-ness(右)的区别。

Center-ness的计算公式如下,其范围为0-1,训练阶段使用BCE Loss并和之前的损失函数相加,测试阶段用于加权预测得分:

实验结果

对比实验结果:

有无Center-ness分支的消融实验:

替换RPN的消融实验:

参考文献

mmdetection最小复刻版(六):FCOS深入可视化分析 - 知乎 (zhihu.com)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • FCOS: Fully Convolutional One-Stage Object Detection
    • 归纳总结
      • 主要工作
        • 模型结构
        • 正负样本定义
        • 损失函数
      • 实验结果
        • 参考文献
        相关产品与服务
        图像识别
        腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档