目标检测之FCOS算法分析

news2025/2/27 8:24:14

网络结构

(图片来自原论文:FCOS: Fully Convolutional One-Stage Object Detection)
在这里插入图片描述
在ResNet50 Backbone中, C 3 , C 4 , C 5 C3,C4,C5 C3,C4,C5是卷积特征图;
在FPN结构中, P 3 , P 4 , P 5 , P 6 , P 7 P3,P4,P5,P6,P7 P3,P4,P5,P6,P7是最后用于预测的特征图;
在预测阶段, P 3 , P 4 , P 5 , P 6 , P 7 P3,P4,P5,P6,P7 P3,P4,P5,P6,P7共享一个Head
Head有三个分支,分别用于预测分类(80类别)、回归预测中心点到真实框的上高t,下高b,左宽l,右宽r、Center-ness;


重要点

从Anchor到Anchor Free

Anchor方面

  1. Anchor框的大小固定,对于具有形态大小变化的目标难以检测,可扩展性差。
  2. Anchor框的大小对检测精度的影响较大。
  3. 正负样本的Anchor比例不均,即无目标与有目标的比例,且训练繁杂。

Anchor Free方面
在这里插入图片描述
x m i n = c x − l ∗ s y m i n = c y − t ∗ s x m a x = c x + r ∗ s y m a x = c y + b ∗ s x_{min}=c_x-l*s\\y_{min}=c_y-t*s\\x_{max}=c_x+r*s\\y_{max}=c_y+b*s xmin=cxlsymin=cytsxmax=cx+rsymax=cy+bs
其中 ( x m i n , y m i n ) (x_{min},y_{min}) (xmin,ymin)为预测框左上角坐标, ( x m a x , y m a x ) (x_{max},y_{max}) (xmax,ymax)为预测框右下角坐标;

在这里插入图片描述

C e n t e r n e s s = m i n ( l ∗ , r ∗ ) m a x ( l ∗ , r ∗ ) ∗ m i n ( t ∗ , b ∗ ) m a x ( t ∗ , b ∗ ) Center ness=\sqrt{\frac{min(l^*,r^*)}{max(l^*,r^*)}*\frac{min(t^*,b^*)}{max(t^*,b^*)}} Centerness=max(l,r)min(l,r)max(t,b)min(t,b)

Center ness用于衡量预测中心与真实框中心的距离,越接近于真实框的中心点,该值越接近于数值1.

正负样本框匹配

在YOLO系列使用anchor与真实框的IOU值与阈值比较,判断是否作为正样本。而在FCOS中,使用anchor free方式,即不存在anchor框。

采取的另一种方式为:只要预测中心坐标在真实框的内部,那么这些预测中心点都作为正样本,其他作为负样本。

当然,为了追求更好的效果,将范围进一步缩小,若预测中心点落在 ( c x − r ∗ s , c y − r ∗ s , c x + r ∗ s , c y + r ∗ s ) (c_x-r*s,c_y-r*s,c_x+r*s,c_y+r*s) (cxrs,cyrs,cx+rs,cy+rs)范围内,则作为正样本,其中r为超参数,s为特征图相对于原图的缩放比例。

存在一种特殊情况,若预测的中心点落在两个真实框的范围内,则默认将该预测中心点分配给面积最小的真实框。

损失函数

L ( { p x , y } , { t x , y } , { s x , y } ) = 1 N p o s ∑ x , y L c l s ( p x , y , c x , y ∗ ) + 1 N p o s ∑ x , y 1 { c x , y ∗ > 0 } L r e g ( t x , y , t x , y ∗ ) + 1 N p o s ∑ x , y 1 { c x , y ∗ > 0 } L c t r n e s s ( s x , y , s x , y ∗ ) L(\{p_{x,y}\},\{t_{x,y}\},\{s_{x,y}\})=\frac{1}{N_{pos}}\sum_{x,y}^{}L_{cls}(p_{x,y},c_{x,y}^*)\\+\frac{1}{N_{pos}}\sum_{x,y}^{}1_{\{c_{x,y}^*>0\}L_{reg}(t_{x,y},t_{x,y}^*)}\\+\frac{1}{N_{pos}}\sum_{x,y}^{}1_{\{c_{x,y}^*>0\}L_{ctrness}(s_{x,y},s_{x,y}^*) } L({px,y},{tx,y},{sx,y})=Npos1x,yLcls(px,y,cx,y)+Npos1x,y1{cx,y>0}Lreg(tx,y,tx,y)+Npos1x,y1{cx,y>0}Lctrness(sx,y,sx,y)

第一行为分类损失;
第二行为边界框损失;
第三行为"置信度"损失;

N p o s N_{pos} Npos为匹配的正样本数目;
p x , y p_{x,y} px,y表示在特征图(x,y)处预测的每个类别的分数;
c x , y ∗ c_{x,y}^* cx,y表示在特征图(x,y)处对应的真实类别标签;
1 { c x , y ∗ > 0 } 1_{\{c_{x,y}^*>0\}} 1{cx,y>0}表示在特征图(x,y)处正样本为1,负样本为0;
t x , y , t x , y ∗ t_{x,y},t_{x,y}^* tx,y,tx,y分别表示在特征图(x,y)处预测的边界框位置与真实框的位置信息;
s x , y , s x , y ∗ s_{x,y},s_{x,y}^* sx,y,sx,y分别表示在特征图(x,y)处预测的center-ness与真实的center-ness;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/118255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023跨境出海指南:泰国网红营销白皮书

作为东南亚第二大经济体,泰国一直是旅游和企业出海的热门之地。随着电商经济和互联网的发展,加上疫情的催化,泰国的社交媒体行业也得到了飞速发展,已经成为了主流营销方式之一。本文Nox聚星就从网红营销的角度,和大家探…

代码随想录-46-226.翻转二叉树

目录前言题目1.使用队列思路(定义变量)2. 本题思路分析:3. 算法实现4. pop函数的算法复杂度5. 算法坑点前言 在本科毕设结束后,我开始刷卡哥的“代码随想录”,每天一节。自己的总结笔记均会放在“算法刷题-代码随想录…

浅谈一下个人基于IRIS后端业务开发框架的理解

文章目录浅谈一下个人基于IRIS后端业务开发框架的理解现状方案具体实现BaseBizDataFilterSqlImp、RefApiUtil总结浅谈一下个人基于IRIS后端业务开发框架的理解现状由于国内使用基于M语言IRIS平台几乎都在医疗行业。医疗系统又非常的庞大和复杂。前期由于快速占领市场&#xff0…

珠城科技在创业板上市:IPO首日跌破发行价,市值相对蒸发约7亿元

12月26日,浙江珠城科技股份有限公司(下称“珠城科技”,SZ:301280)在深圳证券交易所创业板上市。本次上市,珠城科技的发行价格为67.40元/股,发行数量为1628.34万股,募资总额约为10.98亿元&#x…

java线程

1.创建线程和运行线程 1.1.方式一: 直接使用Thread线程对象创建线程 Slf4j public class TestThread {public static void main(String[] args) {//创建一个线程,并且指定线程名称为"t1"Thread thread new Thread("t1") {Overridepublic void run() {//…

基于JAVA springboot + MYSQL +VUE的项目管理系统(含数据库),包括工时统计、原型预览、效果图管理等

平台介绍 无鱼工时管理系统,是一款轻量级工时记录和管理工具,包括项目管理,工时上报,工时日报,工时统计等功能。 无鱼工时管理系统可通过员工工时上报的方式,来记录项目所花费的工时,帮助企业…

滑块验证 - 使用AJ-Captcha插件【超简单.jpg】

滑块验证实现一、后端1)首先引入maven:2)再在application.yml中自定义水印,直接启动后前端就可以请求接口了3)重写CaptchaCacheServiceRedisImpl①先新建一个文件夹②重写impl二、前端:1)复制文…

UML2面向对象分析与设计(第2版) 谭火彬 杂记

首先,来讲讲我对泛化的理解,其实这是站在的视角的不同而表述的不同,泛化是站在父类的角度,父类给孩子的方式叫泛化,而继承是站在孩子的角度,儿子继承父类的方式叫继承。 其实上了谭老师大概一章的课程&…

使用WebPageTest、Lighthouse和Chrome DevTools评估网站性能

目录 一:使用WebPageTest评估网站性能 二:使用Lighthouse分析性能 1、本地npm安装Lighthouse 2、Chrome DevTools中使用 三:使用Chrome DevTools分析性能 一:使用WebPageTest评估网站性能 进入网站首页WebPageTest - Websit…

Linux下常用基本指令大全

在XShell下的复制粘贴 复制: ctrl insert (有些insert 需要配合fn 来按) 粘贴: shift insert ctrl c / ctrl v 是不行的.1. ls指令 语法:ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件&#xff0…

从App Lab就一鸣惊人的Gorilla Tag,创始人竟是个电竞选手

前不久,热门VR游戏《Gorilla Tag》登陆Quest正式商店,此前该作已经进入App Lab和SteamVR平台,一度成为App Lab最受欢迎的游戏,至此终于修成正果。截至目前,该作在全平台的下载量高达500万次,在Quest商店累计…

七、Java 14 新特性

七、Java 14 新特性 Java 14 已如期于 2020 年 3 月 17 日正式发布,此次更新是继半年前 Java 13 这大版本发布之后的又一次常规版本更新,即便在全球疫情如此严峻形势下,依然保持每六个月的版本更新频率,为大家及时带来改进和增强&…

覆盖和覆盖D2D通信网络的传输容量分析(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 移动数据流量的日益增长与有限的频谱资源之间的矛盾催生了用以提升频谱空间利用率的设备到设备(Device-to-Device,…

Typora配置github图床踩坑记录:“success“:false,“message“:“upload error

今天在给typora配置图床的时候遇到了一丢丢问题 我是根据这位大佬的配置步骤使用GithubpicGo搭建图床,保姆级教程来了一步步来的,在处理typora验证图片上传选项时遇到问题: {“success”:false,“message”:“upload error. see C:\Users\AS…

【JavaScript】时间对象

基础知识: 获取年月日,时间: var datenew Date();console.log(date);Thu Nov 17 2022 10:15:07 GMT0800 (中国标准时间) 实际上是对象,但是自动转为字符串显示了。 // 传递参数进去 var date1new Date("2022/11/25 14:38…

录屏软件哪个好?五款免费视频录屏软件

现如今在日常生活中都可以使用得上录屏软件,比如线上会议直播、线上教程课程、网课直播、玩游戏精彩瞬间等等;在互联网众多推荐下,到底录屏软件哪个好?今天小编在这里给大家分享五款免费视频录屏软件,有需要的朋友可以…

个人的一些小创作(随便玩玩,由于技术限制,无使用价值)

tips 1. 桶排序算法的话,必须会去重,因为它的核心就是把数值与数组的下标对应起来,那如果你有多个相同的数值,那也只能对应同一个数组的下标。然后桶排序算法最后打印的是数组的下标,而不是数组下标对应元素的值。 2…

wps合并多个pdf,四个步骤轻松解决

wps这个软件相信大家都或多或少使用过。很多人日常触及到wps的功能,一般是word、Excel或者PPT这三种。其实wps也可以用来读取、编辑PDF文档。wps编辑PDF文档需要一定的技巧,比如使用wps合并多个pdf的方法,很多网友都在问。这里给大家做一个详…

10、SpringCloud 系列:Nacos - 注册中心

SpringCloud 系列列表: 文章名文章地址01、Eureka - 集群、服务发现https://blog.csdn.net/qq_46023503/article/details/12831902302、Ribbon - 负载均衡https://blog.csdn.net/qq_46023503/article/details/12833228803、OpenFeign - 远程调用https://blog.csdn.…

41. 使用块的网络(VGG)代码实现

1. VGG块 在下面的代码中,我们定义了一个名为vgg_block的函数来实现一个VGG块。 该函数有三个参数,分别对应于卷积层的数量num_convs、输入通道的数量in_channels 和输出通道的数量out_channels. import torch from torch import nn from d2l import …