FCOS

FCOS是一阶段anchor free目标检测算法,其主要的卖点为无锚。通过回归特征图上每个位置距离目标框的上下左右距离来实现目标检测。如果一个位置落在了多个目标框内,文中的方法是通过多尺度+回归幅度限制的方法来缓解这个问题。为了解决目标框数量过多的问题,文中提出了center-ness的方法,为每个位置学习一个center-ness分数,最后乘以预测类别分数作为非极大抑制的输入参数来解决这个问题。

backbone

FCOS采用resnext+FPN的网络作为backbone。右侧共得到五个特征层。

FCOS
对特征图上每个点(x,y)(x,y)(x,y)做回归,计算其与目标框的上下左右距离,若该位置落入第iii个目标框,左上坐标为(x0(i),y0(i))(x^{(i)}_0,y^{(i)}_0)(x0(i)​,y0(i)​),右下坐标为(x1(i),y1(i))(x^{(i)}_1,y^{(i)}_1)(x1(i)​,y1(i)​)该位置距离其上下左右的距离为t∗,b∗,l∗,r∗t^*,b^*,l^*,r^*t∗,b∗,l∗,r∗,则

​ l∗=x−x0(i),t∗=y−y0(i)l^* = x-x^{(i)}_0 , t^* = y - y^{(i)}_0l∗=x−x0(i)​,t∗=y−y0(i)​

​ l∗=x1(i)−x,t∗=y1(i)−yl^* = x^{(i)}_1-x , t^* = y^{(i)}_1-yl∗=x1(i)​−x,t∗=y1(i)​−y

最终每个特征图上每个位置输出(C+4)维的向量,C个类别和四个回归距离。损失函数如下:

第一项为类别损失,根据focal loss,对每个类别单独预测一个二分类结果。第二项是IOU损失,前面的系数为类别置信度,表明该位置是否落入目标框,是为1,否则为0。

为了解决一个位置落在了多个目标框内的问题,使用多尺度的方法,每个尺度上都有一个最大回归距离限制,对应于物体的大小,最深的特征层不受限制。在多尺度特征融合时,由于设置了尺度距离限制,造成一定的gap,采用每层乘上一个可学习的系数的方法来解决。

center-ness

经过以上的设计,效果仍然不好,一个可能的原因是无用的框太多了,每个位置都产生一个预测框,最终有些没有被去掉。为此设计了一个center-ness模块。直观的理解如下:

为每个位置学习一个与目标框中心相对距离的分数,离中心越近,分数越接近与1,反之越接近0。上图中,蓝色部分为0,中心红点部分为1,其余部分为0-1之间的分数。分数计算公式如下:

centerness∗=min(l∗,r∗)max(l∗,r∗)×mint∗,b∗max(t∗,b∗)centerness^*=\sqrt{\frac{min(l^*,r^*)}{max(l^*,r^*)}\times\frac{min{t^*,b^*}}{max(t^*,b^*)}}centerness∗=max(l∗,r∗)min(l∗,r∗)​×max(t∗,b∗)mint∗,b∗​​

从以上公式可以看出,如果左右距离越接近相等,根号下的第一项越接近1,上下距离也一样,可以看出,该位置离目标框中心越近其分数越接近1,反之越接近0。这样达到降低里目标框中心较远的位置的权重的作用。

该损失函数作为一个分支加到总损失函数中。最终center-ness分数乘以类别分数作为nms的排序参考。

总结

  • FCOS最大的优势在于不需要先验框,大大降低了样本量和参数量,计算量也大大降低。
  • FCOS对于小目标检测的效果也不错,通过多尺度检测,增加了可以预测的框的数量。
  • FCOS最大的创新在于center-ness模块,这是其区别于YOLOv1的主要部分。

目标检测FCOS的初步理解相关推荐

  1. 【mAP】关于目标检测mAP的一些理解

    mAP是目标检测中的基本指标,详细理解有助于我们评估算法的有效性,并针对评测指标对算法进行调整. 1.基本概念定义 在目标检测中IoU为检测框与GroundTruth重叠的比例,如果大于0.5则算作正 ...

  2. 目标检测——FCOS的学习笔记

    1 模型结构 1.2 Neck组件--FPN FCOS在Neck部分使用了FPN来进行多尺度分支的目标检测:

  3. 论文篇 | 2020-Facebook-DETR :利用Transformers端到端的目标检测=>翻译及理解(持续更新中)

    论文题目:End-to-End Object Detection with Transformers 2020 论文复现可参考:项目复现 | DETR:利用transformers端到端的目标检测_夏 ...

  4. 【目标检测 DeformableDETR】通俗理解 DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION,值得一看。

    文章目录 DeformableDETR 1. 引言 1.1 E to E 1.2 远近高低各不同 1.3 先CNN,在DETR 1.4 DETR未解决的问题 2. 背景知识 2.1 NMS 2.2 t ...

  5. 【目标检测】FSSD论文理解

    摘要   SSD (Single Shot Multibox Detector):   是目前最好的目标检测算法之一,它具有精度高.速度快的优点.然而SSD的特征金字塔检测方法难以融合不同尺度的特征. ...

  6. YOLO目标检测算法的深入理解

    YOLO框架概述 YOLO(You only look once)是一种目标检测算法,目标检测算法分为两大任务:目标分类和定位,YOLO创造性的将候选区和对象识别这两个阶段合二为一,看一眼图片(不用看 ...

  7. 目标检测-Iou(交并比)理解

    文章目录 一. IOU概述 二.IOU计算 三.IOU代码实现 一. IOU概述 IOU的全称为交并比(Intersection over Union),是目标检测中使用的一个概念,IoU计算的是&q ...

  8. [目标检测] Faster R-CNN 深入理解 改进方法汇总

    Faster R-CNN 从2015年底至今已经有接近两年了,但依旧还是Object Detection领域的主流框架之一,虽然推出了后续 R-FCN,Mask R-CNN 等改进框架,但基本结构变化 ...

  9. [目标检测]论文翻译代码理解-SCRDet: Towards More Robust Detection for Small, Cluttered and Rotated Objects

    2019.12.10 更新 未完结 3. The Proposed Method 首先,我们在图1中概述了我们的两阶段方法: 在第一阶段,通过添加SF-Net和MDA-Net,可以期望特征图包含更多的 ...

最新文章

  1. ARMV8虚拟中断的介绍
  2. [codevs 1914] 运输问题
  3. OpenGL屏幕空间环境光遮挡
  4. r语言赋值为na_r语言将空白格替换成NA
  5. 29 _react-router说明
  6. [react] 使用ES6的class定义的组件不支持mixins了,那用什么可以替代呢?
  7. linux文件管理 - 系统目录结构
  8. 2017.3.23 特别行动队 思考记录
  9. 如何让putty像secureCRT一样支持多标签 - 趁我还年轻 - 博客频道 - CSDN.NET - Opera
  10. 那个分分钟处理 10 亿节点图计算的 Plato,现在怎么样了?
  11. php 环境搭建 -- 命令配置
  12. 机器学习-学习笔记3.1-局部加权回归
  13. C语言自由落体程序咋写,C语言实现 小球自由落体问题
  14. 吉大计算机学院田地,吉林大学研究生专业介绍:地质工程
  15. Visual Studio 鼠标放代码上出现英文提示如何改为中文?
  16. Android使用微信H5支付
  17. 配置LXDE快捷键锁屏
  18. 映射和反射的概念及应用方法
  19. 周鸿祎:互联网成功十大案例
  20. Ping Pong Buffer 双缓冲 C++代码学习

热门文章

  1. 菜鸟小队(艾妮教务系统)对于各组意见反馈
  2. mysql 分区的作用_MySQL分区的优点
  3. preact管中窥豹
  4. 理解cv2.waitKey
  5. 书论90 冯班《钝吟书要》
  6. git commit -a 中的a的意思
  7. Android逆向之旅--「最右」签名算法解析(ARM指令学习恶心篇)
  8. 赋智世界语图文课程1,为朋友们分享春夏秋冬年月天夜的词源含义
  9. Electron实现在线更新与踩坑
  10. CP936 转换成 UTF-8