目标检测Anchor-based 与 Anchor-free

一.二者对比

anchor-free和anchor-based是两种不同的目标检测方法,区别在于是否使用预定义的anchor框来匹配真实的目标框。 anchor-based方法使用不同大小和形状的anchor框来回归和分类目标,例如faster rcnn、retinanet和yolo等。anchor-free,例如fcos、atss和cornernet等。anchor-free方法比anchor-based方法更简单和灵活,但可能存在召回率或定位精度低的问题。

anchor-based

深度学习目标检测通常都被建模成对一些候选区域进行分类和回归的问题。在单阶段检测器中,这些候选区域就是通过滑窗方式产生的 anchor;在两阶段检测器中,候选区域是 RPN 生成的 proposal,但是 RPN 本身仍然是对滑窗方式产生的 anchor 进行分类和回归。

anchor-free

anchor-free是通过另外一种手段来解决检测问题的。同样分为两个子问题,即确定物体中心和对四条边框的预测。预测物体中心时,将中心预测融入到类别预测的 target 里面,也可以预测一个 soft 的 centerness score。对于四条边框的预测,则比较一致,都是预测该像素点到 ground truth 框的四条边距离,不过会使用一些 trick 来限制 regress 的范围。

优缺点

anchor-based

anchor based的优点是可以产生密集的anchor box,使得网络可以直接进行目标分类和边界框回归,提高了目标召回能力,尤其对小目标检测有明显的提升。

anchor based的缺点是需要设定很多超参数,如尺度、长宽比等,这些参数很难设计,并且会影响检测性能。另外,anchor based的方法也会产生很多冗余的框,增加了计算量和内存消耗。

anchor-free

anchor free的优点是不需要预设anchor,只需要对不同尺度的特征图的目标中心点和宽高进行回归,减少了耗时和算力。同时,anchor free的方法也可以避免一些由于anchor设置不合理导致的漏检或重复检测问题。

anchor free的缺点是由于每个位置只预测一个框,可能会导致一些重叠或遮挡区域无法被检测到。另外,anchor free的方法也需要一些特殊的损失函数或结构来提高精度和稳定性。

二.基于FCOS的anchor-free目标检测方法

文章上来首先介绍了anchor-based类算法所存在的一些固有的不足:

  • anchor-based类算法的检测性能受到框的尺度、宽高比以及数量的影响比较大,例如使用RetinaNet通过精细的调整这些超参数在COCO上可以得到4%AP的提升。
  • 在不同的检测任务中,由于数据集的不同,这些与anchor相关的超参数均需要重新设计,普适性较差。
  • 为了尽可能精确的匹配图像中的物体,需要成千上万预设的anchor,导致正负样本的极度不均衡。
  • 训练过程中,对于box的匹配需要计算所有的IOU值,计算复杂度较高。

针对以上提到的anchor-based算法的一些问题,anchor-free系列算法不使用预设的anchor来完成目标检测。其中cornernet系列的算法(cornernet,centernet,extremenet)使用关键点检测的方案完成目标检测,但是这种方法需要较为复杂的后处理;DenseBox算法在通用的目标检测中适应性不好。本文的FCOS算法使用语义分割的思想,逐像素点来完成目标检测。

三.方法详解

FCOS算法的网络架构如下图所示,使用FPN实现多层特征图的融合。

最终每个检测头依旧包含类别分类以及边界框回归分支。其中分类分支包含CenterNess的分支主要用来解决大量低质量预测框的问题,具体的原因以及操作方式,下边再说。

正负样本确定

如果一个像素点落入了GT中,那么其就是正样本,其类别为此GT的类别。否则就是负样本。(这里就可以看出,对于一个GT会有大量预测框的中心点远离GT中心点的低质量预测框,这也就是centerness需要解决的问题)

针对一个落入GT中的像素点(x, y),其回归分支的预测值是什么呢?

正如公式所示,其回归分支的预测值,就是回归(x, y)与GT的左、上、右、下的距离。这里为了保证回归目标的非负,依然使用指数函数exp()进行处理。

在匹配的过程中,会遇到如下图所示的一种情况,就是一个像素点同时落在多个GT中该如何处理呢?

大部分重叠都是发生在目标大小差别比较大的情况,FCOS通过限定对于不同尺度特征图的检测框的大小来避免这种重复区域的出现。

从FCOS网络结构图中,我么们可以看出FCOS使用$P_3, P_4, P_5, P_6, P_7$ 这几个特征层来进行预测,因此为了解决目标大小差别较大的情况下重叠区域的出现。根据下边的公式,如果某个像素点满足如下的条件,那么这个像素点在第i层特征层中就会被作认为是负样本,不参与回归计算。 $$ max(l; t; r; b) > m_i $$

$$ 或者max(l; t; r; b) < m_{i-1} $$

其中,$m_i$作为第i层特征图的最大检测尺寸。

如果在同一层中依然出现重叠的区域怎么办呢?这是FCOS简单的会使用最小区域来作为回归目标。

CenterNess

上文提到预测结果会出现很多的低质量预测框(其中心点离GT的中心点较远),因此为解决这个问题,使用centerness,其公式如下:

从公式可以看出,当预测的框,离中心点越近时,centerness趋近于1,越远趋近于0。因此centerness使用bce损失来进行优化。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node.js与VUE安装

目录 Win下载安装 Mac下载安装 Win与Mac配置检查是否安装成功切换淘宝NPM库检查镜像配置是否生效设置 npm 全局环境目录&#xff08;避免权限问题&#xff09;WinMac VUE安装安装 Vue CLI验证 Vue CLI打开vue面板 Win 下载 直接从官网下载官网地址&#xff1a;https://nodejs…

LabVIEW基于双通道FFT共轭相乘的噪声抑制

对于双通道采集的含噪信号&#xff0c;通过FFT获取复数频谱后&#xff0c;对第二通道频谱取共轭并与第一通道频谱相乘&#xff0c;理论上可增强相关信号成分并抑制非相关噪声。此方法适用于通道间信号高度相关、噪声独立的场景&#xff08;如共模干扰抑制&#xff09;。以下为L…

c语言笔记 静态数据与ELF程序格式

数据段&#xff1a; 1.全局变量 2.常量.rodata段 3.已初始化的静态数据(全局变量).data段 4.未初始化的静态数据(static修饰的局部变量).bss段 为什么需要静态数据? 全局变量 可以在任何文件&#xff0c;函数中使用&#xff0c;数据操作上更加方便。static修饰的局部变量&a…

算法 之 树形dp 树的中心、重心

文章目录 重心实践题目小红的陡峭值 在树的算法中&#xff0c;求解树的中心和重心是一类十分重要的算法 求解树的重心 树的重心的定义&#xff1a;重心是树中的一个节点&#xff0c;如果将这个点删除后&#xff0c;剩余各个连通块中点数的最大值最小&#xff0c;那么这个节点…

Ubuntu切换lowlatency内核

文章目录 一. 前言二. 开发环境三. 具体操作 一. 前言 低延迟内核&#xff08;Lowlatency Kernel&#xff09; 旨在为需要低延迟响应的应用程序设计的内核版本。Linux-lowlatency特别适合音频处理、实时计算、游戏和其他需要及时响应的实时任务。其主要特点是优化了中断处理、调…

【Zinx】Day5-Part2:Zinx 的消息队列及多任务机制

目录 Day5-Part2&#xff1a;Zinx 的消息队列及多任务机制创建消息队列创建及启动 Worker 工作池在 Server 启动的同时对连接池进行初始化 Day5-Part2&#xff1a;Zinx 的消息队列及多任务机制 接下来我们需要给 ZInx 添加消息队列以及多任务 Worker 机制。可以通过限制 worke…

项目上传到Gitee过程

在gitee上新建一个仓库 点击“克隆/下载”获取仓库地址 电脑上要装好git 在电脑本地文件夹右键“Git Bash Here” 依次执行如下命令 git init git remote add origin https://gitee.com/qlexcel/stm32-simple.git git pull origin master git add . git commit -m ‘init’…

速算迷你世界脚本UI

--[[ --数学速算主界面 local UI"6996144362677448610" local v"6996144362677448610_" --自定义玩家数据界面 --显示界面分类 -- --称号积分幼儿园0学前班50小学生200初中生500高中生1000大学生2000研究生5000博士生10000教授50000 local A {["主屏幕…

坐落于杭州的电商代运营公司品融电商

坐落于杭州的电商代运营公司品融电商 在中国电商行业蓬勃发展的浪潮中&#xff0c;品融电商&#xff08;PINKROON&#xff09;作为一家扎根杭州的新锐品牌管理公司&#xff0c;凭借其独特的全域增长方法论和实战经验&#xff0c;迅速崛起为行业标杆。自2020年成立以来&#x…

mysql的Innodb最大支持的索引长度是多少,以及索引长度怎么计算

今天正好有空&#xff0c;来讲个之前粉丝经常问的一个知识&#xff0c;就是mysql的Innodb最大支持的索引长度是多少&#xff1f;以及索引长度怎么计算&#xff1f; 一、mysql的innodb引擎&#xff0c;创建索引最大支持的长度是多少字节&#xff1f; 不墨迹&#xff0c;直接说…

【网络安全工程】任务11:路由器配置与静态路由配置

目录 一、概念 二、路由器配置 三、配置静态路由CSDN 原创主页&#xff1a;不羁https://blog.csdn.net/2303_76492156?typeblog 一、概念 1、路由器的作用&#xff1a;通过路由表进行数据的转发。 2、交换机的作用&#xff1a;通过学习和识别 MAC 地址&#xff0c;依据 M…

Dagger 2 系列(五)——进阶之@Scope 和 @Singleton

前言&#xff1a; 在上一篇Dagger 2 系列&#xff08;四&#xff09;——Named 和 Qualifier注解介绍&#xff0c;了Named 和 Qualifier注解&#xff0c;这篇文章&#xff0c;我们将会了解另外俩个注解&#xff1a;Scope 和 Singleton。 在这篇文章中你会了解到&#xff1a; …

脑电波控制设备:基于典型相关分析(CCA)的脑机接口频率精准解码方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、CCA的用途二、频率求解思路三、输入数据结构四、判断方法五、matlab实践1.数据集获取及处理2.matlab代码3.运行及结果 六、参考文献 前言 在脑机接口(BCI)领…

fiddler+雷电模拟器(安卓9)+https配置

一、fiddler配置 1、开启https代理 2、根证书安装&#xff1a;导出证书系统安装 二、模拟器设置 1、设置网络桥接模式 【点击安装】提示安装成功后保存即可 2、开启root&#xff08;开启adb远程调试&#xff09; 3、开启磁盘写入 4、设置WLAN代理 5、证书安装&#xff1a;物…

跨越时空的对话:图灵与GPT-4聊AI的前世今生

&#xff08;背景&#xff1a;虚拟咖啡厅&#xff0c;图灵身着1950年代西装&#xff0c;端着一杯热茶&#xff0c;GPT-4以全息投影形态坐在对面&#xff09; 图灵&#xff08;喝了口茶&#xff09;&#xff1a;“听说你能写诗&#xff1f;我当年在布莱切利园破解Enigma时&…

双击PPT文件界面灰色不可用,需要再次打开该PPT文件才能正常打开

双击PPT文件界面灰色不可用&#xff0c;需要再次打开该PPT文件才能正常打开 1. 软件环境⚙️2. 问题描述&#x1f50d;3. 解决方法&#x1f421;解决步骤 4. 结果预览&#x1f914; 1. 软件环境⚙️ Windows10 或 Windows11 专业版64位&#xff0c;安装MotionGo软件&#xff08…

【时间序列聚类】Feature-driven Time Series Clustering(特征驱动的时间序列聚类)

文章目录 1.文章介绍2.问题背景3.拟解决的问题4.主要贡献5.提出的方法5.1模型pipeline5.2特征抽取和选择5.3图渲染和社区检测5.4共现矩阵的构建5.5对共现矩阵进行聚类 6.实验6.1模型设置6.2实验结果6.3消融实验 7.结论8.个人观点9.Reference 1.文章介绍 论文出处&#xff1a;ED…

tomcat负载均衡配置

这里拿Nginx和之前做的Tomcat 多实例来实现tomcat负载均衡 1.准备多实例与nginx tomcat单机多实例部署-CSDN博客 2.配置nginx做负载均衡 upstream tomcat{ server 192.168.60.11:8081; server 192.168.60.11:8082; server 192.168.60.11:8083; } ser…

SQLAlchemy系列教程:如何执行原生SQL

Python中的数据库交互提供了高级API。但是&#xff0c;有时您可能需要执行原始SQL以提高效率或利用数据库特定的特性。本指南介绍在SQLAlchemy框架内执行原始SQL。 在SQLAlchemy中执行原生SQL SQLAlchemy虽然以其对象-关系映射&#xff08;ORM&#xff09;功能而闻名&#xff…

19.HarmonyOS Next CustomSlider组件基础教程(一)

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; 1. 组件介绍 Slider&#xff08;滑动选择器&#xff09;是HarmonyOS中常用的交互组件&#xff0c;用于在给定的数值范围内进行连续值的选择。本教…