本文是对FCOS的小修小改,最终性能达到了50.4AP,可谓相当强劲了,大家在工程上可以参考其中的改进以及提升方法

来源:晓飞的算法工程笔记 公众号

论文: FCOS: A Simple and Strong Anchor-freeObject Detector

  • 论文地址:https://arxiv.org/abs/2006.09214
  • 论文代码:https://github.com/aim-uofa/AdelaiDet

Introduction


  论文由FCOS原团队重新修改后发表,作者管这篇为FCOS的扩展版本而不是FCOSv2,但为了好分辨,我们就管他叫FCOSv2吧。FCOSv2的整体思想基本与FCOS一致,但性能出色很多。对比FCOS,基础主干ResNet-101-FPN上的性能从41.5AP提升了43.2AP,而最高版本的性能则是达到了50.4AP。
  本文主要探讨FCOSv2其中的一些改进与提升方法,具体的其它实现可参考之前的FCOS文章。

FCOSv2


FCOS

  FCOSv2在思想上与FCOS基本一致,在特征图的每个位置预测目标的类别、尺寸信息以及Center-ness,Center-ness用来表示当前位置与目标中心点的距离,目标的最终分数由分类分数和Center-ness分数结合所得。尺寸信息跟以往的bbox回归方法不同,预测的是特征位置到目标的四个边界的距离。

  图2为FCOSv2中的主干网络结构,主干网络依然采用FPN,每层特征使用共同的head预测类别信息、尺寸信息以及Center-ness,具体的可以看看之前的文章。

Change

  下面列举了一些FCOSv2相对于FCOS的修改,由于论文没有与原版进行对比,所以不知道各部分带来的收益具体是多少:

  1. 正样本点指定的修改,FCOS要求该特征点位于目标内部,以及该特征点到目标边界的距离满足所处的FPN层的约束,而FCOSv2则要求特征点位于目标的中心区域(cx−rs,cy−rs,cx+rs,cy+rs)(c_x-rs, c_y-rs, c_x + rs, c_y+rs)(cx​−rs,cy​−rs,cx​+rs,cy​+rs),sss为当前层的stride,r=1.5r=1.5r=1.5为超参数。
  2. 回归目标修改,FCOS的回归目标直接是特征点到目标边界的距离,由于Head是共用的,所以在预测时为每个level预设一个可学习的scale因子,而FCOSv2则加入stride,变得更适应FPN的尺寸,可学习的scale因子依然使用。

  1. center-ness预测的位置,FCOS的center-ness预测与分类预测放到了一起,而FCOSv2则将其与回归预测放到了一起。
  2. 回归损失函数修改,FCOS使用IoU损失进行回归的学习,而FCOSv2则采用了GIoU损失进行回归的学习。
  3. 最终分数的计算,FCOS采用分类分数以及center-ness之积,FCOSv2则采用分类分数以及center-ness之积的平方根:

Improvement

  为了获得更好的性能,除了更换更强的主干网络外,论文还将FCOSv2进行了如下扩展:

  1. 使用BiFPN代替普通FPN,注意没有采用深度分离卷积,这部分能带来约2AP提升。
  2. 测试阶段的数据增强,将图片依次缩放至[400,1200][400,1200][400,1200],每次步长为100,每个尺寸使用原图以及垂直翻转图片进行推理,这部分能带来约2.5AP提升。
  3. 增加可变形卷积,分别替换主干网络的第三和第四阶段的卷积,以及Head的两个分支的前四个卷积,这部分带来约1.5AP提升。

Experiment


  与SOTA方法对比。

  推理性能对比。

Conclusion


  本文是对FCOS的小修小改,最终性能达到了50.4AP,可谓相当强劲了,大家在工程上可以参考其中的改进以及提升方法。



如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

FCOSv2:原作的扩展版本,小修小改,性能高达50.4AP | IEEE T-PAMI 2020相关推荐

  1. 如何导出已有的谷歌插件,又如何把导出的插件安装到360浏览器中,又如何对插件小修小改?...

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 逆天常用的一些谷歌浏览器插件 http://www.cnbl ...

  2. Jaxb对xml报文头的小修小改

    前言: 也是在实际工作中, 借助jaxb来实现xml到java对象的映射转换. 在实际应用中, 也遇到了一些有趣好玩的东西, 权当记录下来. 本文主要讲解jaxb如何生成约定的xml报文头的实现思路, ...

  3. 3D版CenterNet: CenterPoint,小修小改也能刷爆榜单

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 导言 最近3d目标检测领域出了一篇新作,思路简单,却在nuScenes榜单上高居第二.正式讲解它之前, ...

  4. 微信小程序自定义模态框,官方版本与自定义可扩展版本

    微信小程序自定义模态框,官方版本与自定义可扩展版本 提示:文章最后有源码,可自取 文章主要通过模仿官方的模态框进行自定义模态框的设计,我将会先讲述原理,然后给出源码,最后指出一些需要注意的地方 提示: ...

  5. 小程序子组件向父组件传值_一套组件化、可复用、易扩展的微信小程序 UI 组件库...

    如何使用 Wux Weapp 是一套组件化.可复用.易扩展的微信小程序 UI 组件库.在开始使用之前,需要先阅读微信小程序自定义组件的相关文档. 通过 npm 安装,需要依赖小程序基础库 2.2.1 ...

  6. Go1.20 继续小修小补 errors 库。。。

    大家好,我是煎鱼. Go 的错误处理机制一直是无数人提了又争,被拒了又提的地方.最近 Go1.20 即将发布,针对 errors 标准库,有一个新的小修小补优化(wrapping multiple e ...

  7. PHP的mongo扩展版本过低导致无法查询

    PHP的mongo扩展版本过低导致无法查询,错误如下: Fatal error: Uncaught exception 'MongoCursorException' with message 'cou ...

  8. copy所有的java文件到硬盘_将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad...

    listFiles方法接受一个FileFilter对象,这个FileFilter对象就是过虑的策略对象,不同的人提供不同的FileFilter实现,即提供了不同的过滤策略. //将d:\java目录下 ...

  9. 将d:\java目录下的所有.java文件复制到d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad

    package com;import java.io.*; import java.util.ArrayList; import java.util.List; /* 编写一个程序,将d:\java目 ...

最新文章

  1. ”该证书已被签发机构吊销“错误解决方案
  2. zabbix-2:自定义监控项目
  3. 经典十大排序算法(含升序降序,基数排序含负数排序)【Java版完整代码】【建议收藏系列】
  4. java 读取 xmltype_java操作XMLType的几种方法
  5. cur前缀_每天1分钟背单词 词根cur
  6. IT人:如何预防久坐伤身?
  7. 机器人学基础——坐标
  8. jquery日历插件 途牛_jQuery日历插件FullCalendar中文版
  9. WinForm自定义ListBox显示样式
  10. 数学:AI和大数据的基础
  11. 天龙八部八部显示服务器堵塞,天龙八部服务端各目录说明
  12. 前端iPhone刘海屏适配
  13. 关于ElasticSearch (ES)
  14. 微信公众号:开发者工具下载、安装、使用
  15. canvas-弹珠游戏
  16. 新手避坑,这几种类型的入门吉他,初学者千万不要买!【吉他选购指南】
  17. 实验一  安装并熟悉Rational Rose 环境
  18. 一个C语言面试的经典例题
  19. mysql scaffold_EF Core使用Scaffold-DbContext从数据库生成模型
  20. 直播软件源码开发,直播间内消息系统的实现

热门文章

  1. pos 机 gd32f103 midi设备
  2. 电大2020春计算机形考作业,成教作业网提供国开电大2020年 建筑构造 形考任务1-4答案...
  3. 关于APP inventor 2 模拟器AI伴侣版本不一致的问题解决
  4. C基础 | 【05】(内存结构以及复合类型)
  5. 【Linux 驱动】第七章 时间 延迟及延缓操作
  6. MATLAB使用指南
  7. IC设计基础系列之低功耗篇2:(数字IC)低功耗设计入门(二)——功耗的分析
  8. DetectGPT VS ChatGPT:AI反击战?
  9. 如何制作会动的玫瑰花图片?静态图片动起来的方法
  10. 电子制造企业如何减少不必要的跨部门沟通,快速回复订单交期?