[卷积神经网络]FCOS--仅使用卷积的Anchor Free目标检测

项目源码:

FCOSicon-default.png?t=N7T8https://github.com/tianzhi0549/FCOS/

一、概述

        作为一种Anchor Free的目标检测网络,FCOS并不依赖锚框,这点类似于YOLOx和CenterNet,但CenterNet的思路是寻找目标的中心点,而FCOS则是寻找每个像素点,这点更类似语义分割。

        本文的主要贡献总结起来有以下两个:

                ①将目标检测任务与语义分割任务统一起来,是的模型可以更简单的扩展到其他任务上

                ②使用Anchor Free结构,省去的建议框结构,减少了大量的参数,也省去了与建议框相关的计算,大大提升模型的性能

二、网络结构

         FCOS借鉴自YOLOV1和CornerNet,采用逐象素预测的方式来进行目标检测,采用FPN结构来提升预测精度,同时为了解决预测框重叠的问题,FCOS采用多分支预测。

        1.损失函数

        FCOS的损失函数被定义为:L(\{p_{x,y}\},\{t_{x,y}\})=\frac{1}{N_{pos}}\sum_{x,y}L_{cls}(p_{x,y},c^*_{x,y})+\frac{\lambda}{N_{pos}}\sum_{x,y}\mathbb{I}_{c^*_{x,y}>0}L_{reg}(t_{x,y},t^*_{x,y})

        其中L_{cls}为分类损失函数,L_{reg}是UnitBox的IOU损失函数,\lambdaL_{reg}的平衡系数。

        2.编码方式

        目标的锚点表述为(x,y),是感受野的中心;c^*表示样本的正负(=0时为负样本/背景);另外t^*=(l^*,t^*,r^*,b^*)是一个四维向量,这四个变量分别代锚点到四个边框的距离(如下图所示):

        当一个锚点对应多个预测框时,以最小的那个预测框为准,如下图所示:

         预测框和锚点的位置关系可以编码成下列式子:

                l^*=x-x_0^{(i)},t^*=y-y_0^{(i)},r^*=x_1^{(i)}-x,b^*=y_1^{(i)}-y

        2.FPN

        FCOS包含了一个三层的FPN结构,FPN可以有效的结合低维度的全局信息和高维度的局部信息,对模型的整体性能提升巨大。另外FPN在FCOS中还承担着区分重叠的预测框的功能。FPN不同层级的输出特征图对应着不同级别的预测框,超出这个范围的预测框将被置为负样本。

        3.Center-ness抑制

        通过上面的多头预测,模型会产生大量与gt偏移较大的无效预测框。本文通过引入一个Center-ness分支,可以在不添加额外超参数的情况下移除低质量预测框。这个回归实际上计算的值被称为“中心度”,定义为:

        centerness^*=\sqrt{\frac{min(l^*,r^*)}{max(l^*,r^*)}\times \frac{min(t^*,b^*)}{max(t^*,b^*)}},这个回归通过交叉熵损失函数进行训练,越偏离锚点的预测框的中心度得分较低的预测框的权重将会被降低权重,最终被NMS过滤。

        

相关推荐

  1. 神经网络

    2024-01-01 16:56:05       23 阅读
  2. 神经网络

    2024-01-01 16:56:05       14 阅读
  3. 神经网络

    2024-01-01 16:56:05       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-01 16:56:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-01 16:56:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-01 16:56:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-01 16:56:05       20 阅读

热门阅读

  1. ActiveMQ

    ActiveMQ

    2024-01-01 16:56:05      30 阅读
  2. 【影像组学入门百问】#58---#62

    2024-01-01 16:56:05       25 阅读
  3. UART通信协议:串行通信的精华

    2024-01-01 16:56:05       36 阅读
  4. Unity检测地面坡度丨人物上坡检测

    2024-01-01 16:56:05       35 阅读
  5. STL——查找算法

    2024-01-01 16:56:05       32 阅读
  6. 八股文打卡day17——计算机网络(17)

    2024-01-01 16:56:05       35 阅读
  7. Go语言程序设计-第6章--方法

    2024-01-01 16:56:05       38 阅读
  8. Linux常见的21条面试命令

    2024-01-01 16:56:05       33 阅读
  9. 深入理解和运用C语言中的Break语句

    2024-01-01 16:56:05       37 阅读
  10. 编码风格之(1)C语言建议规范

    2024-01-01 16:56:05       40 阅读
  11. Docker常用命令

    2024-01-01 16:56:05       39 阅读
  12. 用指针实现冒泡排序

    2024-01-01 16:56:05       36 阅读
  13. 【Vue3】请求参数

    2024-01-01 16:56:05       37 阅读
  14. 牛客小白月赛84

    2024-01-01 16:56:05       29 阅读