对FCOS论文的一点理解_focos中centerness的作用-程序员宅基地

技术标签: 深度学习  

一、创新点

1、anchor free,对每个feature map 上的每个像素点进行预测

2、FPN 多尺度预测,预测不同尺度的目标框

3、引入Center-ness 层,减少误检框

二、网络输出

 

1、分类分支

特征图上的每个点(x,y) 通过下面的公式映射到input image上的接近中心的位置

2、Center-ness 分支

主要目的是为了减少误检框

发现问题:部分误检框离真实框的中心点距离较大

解决方法:将分类支路的输出乘以一个权重图得到最终的分类置信度,而这个权重图代表的就是目标框中每个点到中心点的距离,距离越近,权重越大

 

centerness的值在0-1之间,并用二进制交叉熵(BCE)进行训练,并将BCE添加到损失函数中,在测试时将center-ness乘上classification-score得到最终的score值(用于对检测到的bounding box 进行排序)。

3、回归分支

如果位置(x,y)与一个边界框Bi相关联,则该位置的训练回归目标可以表述为:(有点不理解是将feature map 上的位置(x,y)映射到input image上还是将Bi映射到了feature map上)

其中

(x0,y0)是框的左上角坐标,(x1,y1)是右下角点坐标,c 是类别,因为coco数据集有80类,所以C=80

可以看出FCOS的正负样本是基于每个点的,一般一张图像上目标框的面积和非目标框的面积差距不会非常大,因此基本不存在正负样本不均衡的现象。
当然,因为这4个值都是正的,所以为了保证回归支路的输出结果都是正,回归支路的输出会通过exp()函数再输出,exp()函数输入是负无穷到正无穷,输出大于0。

值得注意的是,FCOS可以利用尽可能多的前景样本来训练回归因子

三、损失函数

1、training loss functions

 

2、推理

p(x,y) 是classification-score,t(x,y)是对feature map上每个(x,y)的回归预测。选择p(x,y)>0.05 作为正样本,利于公式1计算bounding box

四、解决目标框重合问题

- 引入FPN结构

  ​      基于不同特征层预测不同尺度的目标框,这样就将大部分有重合的目标框剥离开来,在不同特征层分别预测,

- 而区分哪些点在哪个特征层预测的依据是该点的(l, t, r, b)这4个值的最大值是否在预先设定好的范围内。

- 每个特征层都预先设定好尺度范围。

  ​        比如P3层只负责最大值在[0, 64]范围内的点,P4层只负责最大值在[64, 128]范围内的点,依次类推。举个例子,在Figure1的右图中,假设重合部分的那个点到球拍框的4个距离中最大值为60,到人框的4个距离中最大值为120,那么这个点在P3层时的回归目标是球拍框,在P4层时的回归目标是人框,而在P5、P6、P7层时是负样本点。当然,这种区分主要也是基于大部分有重合的目标框尺度差别较大,假如重合目标框大小接近且类别不同,那还是比较棘手的。

- 对于那些仍旧无法剥离的目标框

  ​     沿用原来的策略:训练目标基于重合目标框中面积最小的那个框进行计算。

- 基于anchor的目标检测算法中,一般通过在不同stride的特征层上设定不同尺寸的anchor实现不同尺度目标的预测,这种方式并非强制,也就是说有一些大目标可能还是通过浅层预测得到的,反之亦然,但是FCOS不是,FCOS采用的是更加明确的预测任务分配,是强制的。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhouying_12345/article/details/110235665

智能推荐

Flutter中2个库的类名冲突解决方法_flutter 类冲突-程序员宅基地

文章浏览阅读2.7w次。Flutter中2个库的类名冲突解决方法例如,我们在使用国际化时,会给组件(如,日历组件),设置一个本地属性来显示当地语言:locale: Locale("zh")上例中,显示中文。当我们引用第三方库 date_format 来格式化日期时,由于 date_format 库中,也包含了 Locale 组件,这时,就会报错。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lUi4kEip-1609149717960)(evernotecid://6FE75482-5_flutter 类冲突

新技术加速隐私暴露,如何应对?-程序员宅基地

文章浏览阅读9.3k次。新技术加速隐私暴露,如何应对?(一)原创数据玩家一个数据玩家的自我修养2019-10-09收录于话题#新技术与隐私保护8个点击上方蓝字关注数据玩家 正文约4000字,读完需11分钟序最近的大数据行业风声鹤唳,多家大数据服务头部企业、贷超、催收公司被查,引发行业地震,未被牵连的企业纷纷自查,其他头部公司黑稿和纠纷频出。从业者如惊弓之鸟,人人自危;普通用户纷纷叫好,同时引发对隐私保护的担忧和强监管诉求。此刻我又想...

elementUI el-dialog自适应高度,仅body内容部分滚动_el-dialog高度自适应-程序员宅基地

文章浏览阅读1.5w次,点赞5次,收藏11次。定义样式如下:.abow_dialog { display: flex; justify-content: center; align-items: Center; overflow: hidden; .el-dialog { margin: 0 auto !important; height: 90%; ..._el-dialog高度自适应

C++实现简单五子棋游戏_c++五子棋-程序员宅基地

文章浏览阅读6.5w次,点赞106次,收藏633次。  五子棋是世界智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏,是世界智力运动会竞技项目之一,通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成5子连线者获胜。 规则(1)对局双方各执一色棋子。 (2)空棋盘开局。 (3)黑先、白后,交替下子,每次只能下一子。 (4)棋子下在棋盘的空白点上,棋子下定后,不得向其它点移动,不得从棋盘上拿掉或拿起另落别处..._c++五子棋

python箭头符号怎么打_python – 用箭头标记matplotlib直方图bin-程序员宅基地

文章浏览阅读1.2k次。您可以使用注释添加箭头:import pandas as pdimport matplotlib.pyplot as plt#import seaborn as snsimport numpy as npfig,ax = plt.subplots()series = pd.Series(np.random.normal(0,1000))series.plot(kind='hist',bins=50..._python右箭头怎么打出来

python数据滤波_python实现滤波-程序员宅基地

文章浏览阅读1.1k次。Python+OpenCV基础教程2:平滑图像学习模糊/平滑图像,消除噪点。图片等可到源码处下载。1、目标2、教程滤波与模糊推荐大家先阅读:番外篇:卷积基础(图片边框),有助于理解卷积和滤波的概念。关于滤波和模糊,很多人分不清,我来给大家理理(虽说如此,我后面也会混着用,,ԾㅂԾ,,):它们都属于卷积,不同滤波方法之间只是卷积...文章初商2019-08-04484浏览量深度学习第18讲:CNN经..._python 血氧滤波

随便推点

Sourcetree 虽然不咋的好用,但了解一些基本使用也算可以_sourcetree好用吗-程序员宅基地

文章浏览阅读1.4k次。一、基本介绍1.1 基本介绍  Sourcetree 是一款Windows 和Mac OS X 下免费的 SVN、Git 客户端,同时也是 Mercurial 和 Subversion 版本控制系统工具。Sourcetree 支持创建、克隆、提交、push、pull 和合并等操作。SourceTree 拥有一个精美简洁的界面,无需使用命令行,可以处理托管和本地存储库,主要依赖可视化界面操作,省去繁琐复杂不容易理解的终端命令,大大简化了开发者与代码库之间的 Git 操作方式,这对于那些不熟悉Git命令的开_sourcetree好用吗

多任务学习:Transformer based MultiHead Self-Attention Networks_transformer多任务-程序员宅基地

文章浏览阅读2.4k次。孤岛模型被证明是单词生成模型的理想基础。马尔可夫链蒙特卡洛(MCMC)方法,在统计物理和材料科学领域均产生了重大影响。同样,在自然语言处理领域,深度学习技术也扮演着至关重要的角色,包括基于RNN、CNN、LSTM等的预训练语言模型、神经机器翻译、条件随机场、长短时记忆网络等,这些模型都取得了显著的效果。而在医疗问答系统中,自然语言理解和机器阅读理解组件的实现也逐渐成为关键任务,如何将两种学习模型结合起来,并对医疗数据进行有效处理,是关键之处。_transformer多任务

spring boot整合mybatis+mybatis-plus-程序员宅基地

文章浏览阅读326次。Spring boot对于我来说是一个刚接触的新东西,学习过程中,发现这东西还是很容易上手的,Spring boot没配置时会默认使用Spring data jpa,这东西可以说一个极简洁的工具,可是我还是比较喜欢用mybatis,工具是没有最好的,只有这合适自己的。说到mybatis,最近有一个很好用的工具--------mybatis-Plus(官网),现在更新的版本是2.1.2..._mybatis plus connection-properties

腾讯面试 知乎,Python常用模块 之 jsonpath模块—,Python开发实战-程序员宅基地

文章浏览阅读719次,点赞22次,收藏12次。Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

那些“不顾一切”要搞开源的人,现在怎样了?-程序员宅基地

文章浏览阅读1.6k次。开源,不好做,无论是在过去还是现在。过去 20 年间,无数顶尖技术人“冲锋陷阵”,打开了中国开源的大门。还记得彼时“中国 Linux 第一人”宫敏博士用手提肩背,将 20 盒装有 80G ..._开源创业 潜力股 英雄帖,在 10+ 投资人面前秀出你的实力

Linux USB 详解_usbdev_do_ioctl-程序员宅基地

文章浏览阅读1w次。To understand all the Linux-USB framework, youll use these resources: * This source code. "make pdfdocs", "usb.pdf" for host side "gadget.pdf" for peripheral side * The_usbdev_do_ioctl