FCOSv2:原作的扩展版本,小修小改,性能高达50.4AP | IEEE T-PAMI 2020
本文是对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的修改,由于论文没有与原版进行对比,所以不知道各部分带来的收益具体是多少:
- 正样本点指定的修改,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为超参数。
- 回归目标修改,FCOS的回归目标直接是特征点到目标边界的距离,由于Head是共用的,所以在预测时为每个level预设一个可学习的scale因子,而FCOSv2则加入stride,变得更适应FPN的尺寸,可学习的scale因子依然使用。
- center-ness预测的位置,FCOS的center-ness预测与分类预测放到了一起,而FCOSv2则将其与回归预测放到了一起。
- 回归损失函数修改,FCOS使用IoU损失进行回归的学习,而FCOSv2则采用了GIoU损失进行回归的学习。
- 最终分数的计算,FCOS采用分类分数以及center-ness之积,FCOSv2则采用分类分数以及center-ness之积的平方根:
Improvement
为了获得更好的性能,除了更换更强的主干网络外,论文还将FCOSv2进行了如下扩展:
- 使用BiFPN代替普通FPN,注意没有采用深度分离卷积,这部分能带来约2AP提升。
- 测试阶段的数据增强,将图片依次缩放至[400,1200][400,1200][400,1200],每次步长为100,每个尺寸使用原图以及垂直翻转图片进行推理,这部分能带来约2.5AP提升。
- 增加可变形卷积,分别替换主干网络的第三和第四阶段的卷积,以及Head的两个分支的前四个卷积,这部分带来约1.5AP提升。
Experiment
与SOTA方法对比。
推理性能对比。
Conclusion
本文是对FCOS的小修小改,最终性能达到了50.4AP,可谓相当强劲了,大家在工程上可以参考其中的改进以及提升方法。
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】
FCOSv2:原作的扩展版本,小修小改,性能高达50.4AP | IEEE T-PAMI 2020相关推荐
- 如何导出已有的谷歌插件,又如何把导出的插件安装到360浏览器中,又如何对插件小修小改?...
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 逆天常用的一些谷歌浏览器插件 http://www.cnbl ...
- Jaxb对xml报文头的小修小改
前言: 也是在实际工作中, 借助jaxb来实现xml到java对象的映射转换. 在实际应用中, 也遇到了一些有趣好玩的东西, 权当记录下来. 本文主要讲解jaxb如何生成约定的xml报文头的实现思路, ...
- 3D版CenterNet: CenterPoint,小修小改也能刷爆榜单
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 导言 最近3d目标检测领域出了一篇新作,思路简单,却在nuScenes榜单上高居第二.正式讲解它之前, ...
- 微信小程序自定义模态框,官方版本与自定义可扩展版本
微信小程序自定义模态框,官方版本与自定义可扩展版本 提示:文章最后有源码,可自取 文章主要通过模仿官方的模态框进行自定义模态框的设计,我将会先讲述原理,然后给出源码,最后指出一些需要注意的地方 提示: ...
- 小程序子组件向父组件传值_一套组件化、可复用、易扩展的微信小程序 UI 组件库...
如何使用 Wux Weapp 是一套组件化.可复用.易扩展的微信小程序 UI 组件库.在开始使用之前,需要先阅读微信小程序自定义组件的相关文档. 通过 npm 安装,需要依赖小程序基础库 2.2.1 ...
- Go1.20 继续小修小补 errors 库。。。
大家好,我是煎鱼. Go 的错误处理机制一直是无数人提了又争,被拒了又提的地方.最近 Go1.20 即将发布,针对 errors 标准库,有一个新的小修小补优化(wrapping multiple e ...
- PHP的mongo扩展版本过低导致无法查询
PHP的mongo扩展版本过低导致无法查询,错误如下: Fatal error: Uncaught exception 'MongoCursorException' with message 'cou ...
- copy所有的java文件到硬盘_将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad...
listFiles方法接受一个FileFilter对象,这个FileFilter对象就是过虑的策略对象,不同的人提供不同的FileFilter实现,即提供了不同的过滤策略. //将d:\java目录下 ...
- 将d:\java目录下的所有.java文件复制到d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad
package com;import java.io.*; import java.util.ArrayList; import java.util.List; /* 编写一个程序,将d:\java目 ...
最新文章
- ”该证书已被签发机构吊销“错误解决方案
- zabbix-2:自定义监控项目
- 经典十大排序算法(含升序降序,基数排序含负数排序)【Java版完整代码】【建议收藏系列】
- java 读取 xmltype_java操作XMLType的几种方法
- cur前缀_每天1分钟背单词 词根cur
- IT人:如何预防久坐伤身?
- 机器人学基础——坐标
- jquery日历插件 途牛_jQuery日历插件FullCalendar中文版
- WinForm自定义ListBox显示样式
- 数学:AI和大数据的基础
- 天龙八部八部显示服务器堵塞,天龙八部服务端各目录说明
- 前端iPhone刘海屏适配
- 关于ElasticSearch (ES)
- 微信公众号:开发者工具下载、安装、使用
- canvas-弹珠游戏
- 新手避坑,这几种类型的入门吉他,初学者千万不要买!【吉他选购指南】
- 实验一 安装并熟悉Rational Rose 环境
- 一个C语言面试的经典例题
- mysql scaffold_EF Core使用Scaffold-DbContext从数据库生成模型
- 直播软件源码开发,直播间内消息系统的实现
热门文章
- pos 机 gd32f103 midi设备
- 电大2020春计算机形考作业,成教作业网提供国开电大2020年 建筑构造 形考任务1-4答案...
- 关于APP inventor 2 模拟器AI伴侣版本不一致的问题解决
- C基础 | 【05】(内存结构以及复合类型)
- 【Linux 驱动】第七章 时间 延迟及延缓操作
- MATLAB使用指南
- IC设计基础系列之低功耗篇2:(数字IC)低功耗设计入门(二)——功耗的分析
- DetectGPT VS ChatGPT:AI反击战?
- 如何制作会动的玫瑰花图片?静态图片动起来的方法
- 电子制造企业如何减少不必要的跨部门沟通,快速回复订单交期?