[神经网络]Anchor_Free网络(YoloX,CenterNet)

news2024/11/15 13:40:09

        Anchor_Free网络不同于传统的目标检测网络需要先生成很多先验框再从中筛选+回归生成预测框。其可以直接从目标的中心点向周围发散一个预测框。这样做有两个好处:①省略了生成大量先验框的过程,可以一定程度增加预测速度;②预测框没有预设长宽比,对于长宽比异常的目标识别精度更有精度。

                ​​​​​​​        ​​​​​​​    

        从上面的图可以很清楚的看出Anchor_Free(左)和Anchor_Base(右)在处理预测框上的区别。

一、CenterNet

        CenterNet是一种经典的Anchor_Free网络,其网络结构如下图所示:可以分为骨干网络高分辨率特征图生成网络分类头

         1.骨干网络

        骨干网络一般为ResNet50或Hourglass Net。这里以ResNet50为例,512x512的图像经过特征提取会得到一个16x16x2048的特征图。并不像Yolo一样需要抽取多个不同尺寸的特征。

        2.高分辨率特征图生成网络

        即网络结构图中的三个ConvTranspose(反卷积)模块,对于特征图(16x16x2048)而言,三次反卷积会最终生成一个128x128x64的特征图(每次反卷积特征的高宽会放大2倍),使用这个特征图网络即可通过Center Head预测出最终结果。

        3.Center Head

        Center Head将128x128x64的特征图划分为128个区域,每个区域中存在一个特征点。当物体的中心落入某个区域时,该区域的特征点(通常是区域左上角的点)会作为基点来确定物体。

        Center Head会利用特征图进行三个卷积,分别进行热力图预测中心点预测宽高预测

        ①热力图预测:用来判断每一个热力点(特征点)是否存在物体,以及物体的种类,其通道数为num_classes(种类数),输出结果为(128x128x num_classes)

                num_classes通道为每个种类的概率,经过激活函数即可判断最有可能的类型

        ②中心点预测:用来判断中心点到热力点的偏移情况,通道数为2,输出结果为(128x128x2)

                2维通道代表中心点相对于特征点右下角的偏移情况

        ③宽高预测:用来预测每个物体的宽高情况,通道数为2,输出结果为(128x128x2)

                2维通道代表物体预测框的宽和高

        CenterNet同样需要非极大抑制操作来确保同一类型的预测框不会过多叠加,但是不同的是其需要在生成预测框之前,在热力图预测结果上进行非极大抑制

二、YoloX

        Yolo系列向来都是经典的Anchor_Base网络,而YoloX通过对预测头(Yolo Head)的修改是的其能在不适用先验框的情况下生成预测框。

        YoloX的大体结构和传统的Yolo差别不大,也使用Darknet作为骨干网络,最大的修改来自与Yolo Head,网络结构图下图,依旧能分为骨干网络、FPN加强特征提取网络、Yolo Head预测头

         1.骨干网络

        为改进的CSPDarknet,这个网络会输出三个不同尺寸的特征图,称为有效特征层。由上面的网络图可以看出,CSPDarknet主要由两种模块构成:Conv2D_BN_SiLU和CSPLayer,同时在输入的时候使用了Focus结构,最后一层使用了SPP提高网络的感受野。

        Conv2D_BN_SiLU实际上就是一个残差网络模块,知识其激活函数从ReLu换成了SiLU,SiLU具备无上界有下界、平滑、非单调的特性。SiLU在深层模型上的效果优于 ReLU。可以看做是平滑的ReLU激活函数,其公式可以写作:f(x)=x\cdot sigmoid(x)

        CSPLayer类似于ShuffleNet中的Channel Split操作,该模块将输入特征拆分为左右两个部分,左边直接连接到输出,右边则正常进行残差运算。结构如下图所示:

         Focus结构不难理解,其在图片中每隔一个像素点获取一个值。每获取四个值时便将这四个值进行堆叠生成一个特征层,相当于将原来的3通道变为了12通道,操作图如下图所示:

         SPP结构通过不同池化核大小的最大池化进行特征提取,以提高网络的感受野,在YoloV4中该结构被用在FPN中,而YoloX中则将其用在了骨干网络上。

        2.FPN网络

        同样是对骨干网络输出的三个特征进行上采样融合和下采样融合,结构如图,主要的特点是采用了CSPLayer替代传统卷积,在这里就不再赘述,可以参考之前YoloV7的文章。

[神经网络]YoloV7icon-default.png?t=N658https://blog.csdn.net/weixin_37878740/article/details/131590277?spm=1001.2014.3001.5501

        3.Yolo Head

        这是YoloX最大的不同点,以前的Yolo网络的所有解耦头都是连载一起的(即分类和回归由一个1x1卷积实现),而YoloX将其进行了拆分,到最终预测的时候再整合起来。

         从上图可见,此分类头一共三个输出Cls用来判断每个特征点包含的物体种类(num_classes个通道),Reg为回归参数(4个通道),用来调整预测框,Obj用来判断特征点是否含有物体(1个通道)。

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

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

相关文章

魅族新专利:弹开机构及折叠终端,提高便捷性、降低使用难度

珠海市魅族科技有限公司透露新专利:弹开机构及折叠终端,提高展开便捷性、降低使用难度! 该专利介绍了一种用于电子设备的弹开机构和折叠终端。该弹开机构由磁吸组和弹开模组组成。磁吸组包括第一磁吸件和第二磁吸件,其中第一磁吸件…

SpringBoot 如何使用 TestRestTemplate 进行 RESTful API 集成测试

SpringBoot 如何使用 TestRestTemplate 进行 RESTful API 集成测试 在使用 SpringBoot 开发 RESTful API 的过程中,我们需要进行集成测试,以确保 API 的正确性和可用性。而 TestRestTemplate 是 Spring Framework 提供的一个工具类,可以用来…

Flink实时任务性能调优

前言 通常我们在开发完Flink任务提交运行后,需要对任务的参数进行一些调整,通常需要调整的情况是任务消费速度跟不上数据写入速度,从而导致实时任务出现反压、内存GC频繁(FullGC)频繁、内存溢出导致TaskManager被Kill…

【笔记】数字电路基础1 - 门电路

目录 数字电路基础与门电路数电基础基本门电路复合门电路TTL 门电路CMOS 门电路 数字电路基础与门电路 数电基础 数字电路中常将 0 ~ 1V 范围的电压称为低电平,用“0”表示;而将 3 ~ 5V 范围的电压称为高电平,用“1”…

【InnoDB 存储引擎】InnoDB 存储引擎的行格式,有 Compact、Redundant、Dynamic 等行格式还有它们配套实验(理论篇)

文章目录 1 InnoDB 行记录格式(理论)1.1 Redundant 行记录格式1.2 Compact 行记录格式(重点)1.3 行溢出数据1.4 Compressed 和 Dynamic 行记录格式1.5 CHAR 的行结构存储 2 参考资料 1 InnoDB 行记录格式(理论&#xf…

什么是数据一致性

什么是数据一致性 数据一致性这个单词在平常开发中,或者各种文章中都能经常看见,我们常常听见什么东西数据不一致了,造成了一定的损失,赶快修复一下。但是很多同学对一致性具体代表什么意思,他有什么作用依然不是很了解…

车载软件架构 —— 闲聊几句AUTOSAR OS(八)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标…

Overleaf 集成git出现authentification failed 的解决方法

Overleaf 集成git遇到的问题和解决办法 需求背景:使用git 将overleaf 项目克隆到本地硬盘上工作,像写代码一样管理论文版本。 问题描述:直接使用overleaf提供的git clone xxxx 会出现authentication failed for xxxxx (见下图) …

C++中的继承/虚继承原理

C中的继承 文章目录 C中的继承1.继承的概念和定义1.1 继承定义1.12 继承关系和访问限定符2.基类和派生类对象的复制转换3.继承中的作用域4.派生类的默认成员函数继承与友元 6.**继承与静态成员****复杂的菱形继承及菱形虚拟继承**7.虚继承解决数据冗余和二义性的原理 1.继承的概…

git 技术点整理

1.git安装 1.1官网下载 Git 安装详情见https://www.cnblogs.com/liuwenwu9527/p/11688323.html 1.2配置 2.git基本概念 2.1本地 工作区(Working Directory):就是你在电脑里能看到的目录。说人话就是idea直接能看到的这部分纯代码区域。(不含 .git…

基于51单片机的太阳追光系统设计

本实例是基于51单片机的太阳追光系统,主要硬件由51单片机最小系统,四路光敏感应电路,ADC0832转换电路、LED指示灯电路、X轴与Y轴步进电机构成。 设计功能 1.四路光敏感应电路:四路光敏电阻分别感应上、下、左、右四个方向的光强…

两组表单看懂MySQL的多表查询

第一组表单信息 1、查询每个部门的所属员工 mysql> SELECT name,GROUP_CONCAT(ename) persons-> FROM dept3 d-> LEFT JOIN emp3 e-> ON d.deptno e.dept_id-> GROUP BY d.deptno-> UNION -> SELECT name,GROUP_CONCAT(ename) persons-> FROM dept3 …

代码随想录算法训练营第六十天| 84.柱状图中最大的矩形

柱状图中最大的矩形 题目链接: 力扣 假设以柱子1(指值为1的柱子)为基准,柱子1的左侧没有比柱子1矮的元素,所以柱子1可以无限像左边扩展,柱子1的右侧也没有比柱子1矮的元素,所以柱子1可以无限向…

用OpenCV进行图像分割--进阶篇

1. 引言 大家好,我的图像处理爱好者们! 在上一篇幅中,我们简单介绍了图像分割领域中的基础知识,包含基于固定阈值的分割和基于OSTU的分割算法。这一次,我们将通过介绍基于色度的分割来进一步巩固大家的基础知识。 闲…

如何提升问卷数据的有效性?

问卷调查法是收集数据的宝贵工具,可以为商业、社会科学和医疗保健等众多领域的决策过程提供真实可靠的数据信息。然而,问卷数据的准确性和可靠性是影响最终结论的关键因素,而他们取决于问卷设计和数据收集过程的质量。在本文中,我…

Coggle 30 Days of ML(23年7月)任务三:使用TFIDF提取文本特征

Coggle 30 Days of ML(23年7月)任务三:使用TFIDF提取文本特征 任务三:使用TFIDF提取文本特征 说明:在这个任务中,需要使用Sklearn库中的TFIDF技术来提取文本特征,将文本转化为可供机器学习算法…

数分面试题:赛马问题

问题一: 25匹马,一个赛道,每次可以跑5匹马,在没有计时器的情况下,怎么用最小的比赛次数知道最快的前三名 关键点:通过前面的比赛,排除掉没有悬念的马(能确定有3匹马比它快的&#…

Iptables与Firewalld

Iptables防火墙 介绍 iptables和netfilter是一套Linux防火墙工具,共同合作完成系统防护工作。iptables 是一个包过滤防火墙,可以对包进行封装、过滤、重定向或者网络地址转换、地址伪装、透明代理、访问控制、连接跟踪等功能,iptables是一个…

4.6 x64dbg 内存扫描与查壳实现

LyScript 插件中默认提供了多种内存特征扫描函数,每一种扫描函数用法各不相同,在使用扫描函数时应首先搞清楚不同函数之间的差异,本章内容将分别详细介绍每一种内存扫描函数是如何灵活运用,并实现一种内存查壳脚本,可快…