关于YOLOX的一些优势

news2024/9/25 1:23:02

YOLOX 是旷视开源的高性能检测器。旷视的研究者将解耦头、数据增强、无锚点以及标签分类等目 标检测领域的优秀进展与 YOLO 进行了巧妙的集成组合,提出了 YOLOX,不仅实现了超越 YOLOv3、 YOLOv4 和 YOLOv5 的 AP,而且取得了极具竞争力的推理速度。

其中YOLOX-L版本以 68.9 FPS 的速度在 COCO 上实现了 50.0% AP,比 YOLOv5-L 高出 1.8% AP! 还提供了支持 ONNX、TensorRT、NCNN 和 Openvino 的部署版本。

YOLOX 是旷视科技推出的一种高性能目标检测算法。以下是关于它的详细介绍:

  1. 主要特点
  • Anchor-free 机制:与传统的 YOLO 系列采用 anchor boxes 的方式不同,YOLOX 采用了 anchor-free 的目标检测方法,减少了对预定义锚框的依赖,更直接地预测边界框的位置信息。这种方式有助于提高小目标检测性能,并且在训练和推理过程中减少了计算量和参数数量。在传统的基于 anchor 的目标检测方法中,模型需要预先定义一系列不同尺寸和长宽比的锚框,然后预测这些锚框与真实目标框之间的偏移量等信息来确定目标的位置和大小。而 YOLOX 摒弃了这种预定义锚框的方式,直接预测目标边界框的位置信息。具体来说,模型会预测边界框的中心点坐标以及宽高信息,以此来确定目标的位置和大小。例如,对于一个目标,模型预测其边界框中心点在图像中的坐标 以及该边界框的宽度 和高度 。
  1. 正负样本的筛选2:

    • 初步筛选

    • 中心点判断:首先判断预测框的中心点是否落在真实目标框(Ground Truth)内。计算预测框中心点到真实目标框上下左右四条边的距离,如果这些距离同时大于 0,则该预测框有可能是正样本。这一步是基于目标的空间位置关系进行的初步筛选,目的是找到可能包含目标的预测框。

    • 中心区域判断:在第一步的基础上,进一步判断预测框中心点是否在真实目标框中心点附近的特定区域内。比如,判断预测框中心点到以真实目标框中心点为中心的一个边长为 5×5 的区域的四条边的距离是否同时大于 0,如果满足该条件,则该预测框通过初步筛选。这一步的目的是更精确地筛选出与真实目标更接近的预测框,减少误判。

    • 精细筛选(SimOTA):经过前两步初步筛选出来一部分正样本候选后,假设筛选出了 1000 个正样本候选,而真实目标框的数量为 3。在进行前向计算时,会计算这 1000 个样本与 3 个真实目标框的损失,同时计算这 1000 个正样本候选与真实目标框的交并比(IoU),得到一个维度为 (3, 1000) 的 IoU 矩阵。根据 IoU 筛选出 IoU 最大的若干个候选框(比如 10 个),即维度为 (3, 10) 的候选框。计算这 10 个 IoU 的总和,这个总和值作为动态选择正样本的数量标准。然后,通过比较损失值,为每个真实目标框挑选损失值最低的几个候选框作为最终的正样本。对于一个候选框同时与多个真实目标框匹配的情况,比较该候选框与各个真实目标框的损失,将其分配给损失最小的真实目标框。

  • 减少计算复杂度:不需要预先定义锚框,避免了与锚框相关的复杂计算,如锚框的聚类分析等,降低了检测头的复杂度,也减少了生成结果的数量,在一些边缘设备上具有更好的性能表现。

  • 提升泛化能力:避免了因锚框尺寸和比例固定而可能导致的对某些特定形状或大小目标的不适应问题,提高了模型对不同类型目标的泛化能力。

  • 解耦头(Decoupled Head):在目标检测中,分类和回归的任务存在相互冲突,将耦合的检测头分开为两个相互独立的检测分支,一个分支负责预测目标的类别,另一个分支负责预测目标的边界框位置。这种解耦的设计使得模型能够更好地学习不同的任务,提高检测的准确性。

  • 先进的标签分配策略:引入了新的标签分配策略,优化了正负样本的选择过程,使得模型能够更好地学习到物体边界框的真实分布。例如使用 SimOTA 策略,该策略考虑了损失 / 质量相关性、中心优先、每个真实框的正样本动态数量以及全局视角等因素,提高了标签分配的合理性和准确性。

  • 强数据增广:继承了 YOLOv4 的数据增强策略,使用了 Mosaic 增强方法,通过随机拼接多张图像来生成新的训练样本,增强了模型对于各种场景的适应性和鲁棒性。同时还使用了 Mixup 等其他数据增强技术,进一步提升了模型的性能。

  1. 网络结构
  • 骨干网络:通常使用 Darknet-53 作为骨干网络,这是一种具有 53 个卷积层的卷积神经网络,能够提取图像的特征。

  • 颈部结构:采用特征金字塔网络(FPN)和路径聚合网络(PAN)的结合,进行多尺度特征融合,以便更好地检测不同大小的目标。

  • a能检测出来物体但是不易准确定位位置,b消耗资源太多,c没有将高层的语义信息和底层的位置信息融合,因此提出了FPN
  • 在现实世界的图像中,目标物体的大小差异巨大,从小的物体如昆虫到巨大的建筑物等。FPN 通过融合不同层次的特征图,能够同时处理不同尺度的目标。例如,对于小目标,浅层特征图具有较高的分辨率,能够提供更精细的位置信息,帮助模型准确地定位小目标。而对于大目标,深层特征图具有更丰富的语义信息,能够更好地识别目标的类别和整体形状。
  • FPN 可以很容易地与其他网络结构结合,形成更强大的目标检测模型。例如,可以与不同的骨干网络(如 ResNet、VGG 等)结合,利用不同骨干网络的优势提取特征,然后通过 FPN 进行多尺度特征融合。
  • 头部结构:使用解耦头结构,包括分类头和回归头,分别用于预测目标的类别和位置。

  1. 性能优势
  • 高精度:在多个公开数据集上的实验结果表明,YOLOX 的检测精度相较于之前的 YOLO 系列算法有了显著提升,能够准确地检测出各种目标1。

  • 快速训练:通过优化训练过程,YOLOX 的训练速度比以往的版本更快,能够在较短的时间内完成模型的训练1。

  • 灵活的可扩展性:具有灵活的可扩展性,允许用户根据实际应用场景选择不同的模型变体,包括 YOLOX-Nano、YOLOX-Tiny、YOLOX-S、YOLOX-M 和 YOLOX-L 等不同规模的模型,满足从边缘设备到服务器级别的部署需求。

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

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

相关文章

FME学习笔记

读取数据 方法一:add reader 通过读模块来进行数据的读取 方法二:FeatureReader Parameters 通过转换器来进行数据的读取 可以通过空间范围进行筛选 在FME中,所有数据处理都要用到的,绝对的重点:转换器&#xff…

深圳某局联想SR850服务器黄灯 不开机维修

深圳 福田区1台Lenovo Thinksystem SR850 四路服务器黄灯问题现场处理。 1:型号:联想SR850 机架式2U服务器 2:故障:能通电,开机按钮快闪,随后叹号警告灯常亮 3:用户自行折腾无果后找到我们tech …

【推文制作】秀米简明教程 1.0

【前言】本文内容主要是针对一些常用的秀米操作进行介绍,并说明一些往年的经验要求。但是,最重要的是,请发挥你的艺术创造力,相信你一定可以做出更好看的推文。 一、秀米页面介绍 在使用秀米之前,我们会有一个通过浏览…

Maya学习笔记:项目设置和快捷键

文章目录 项目设置工程文件夹 快捷键 项目设置 工程文件夹 maya需要一个文件夹存放自己的工程内容 先指定一个文件夹 文件/项目窗口 选择一个文件夹,然后选择创建默认工作区 然后生成文件目录 在项目窗口里,选择要生成的子文件夹(保持默认…

【ASE】第二课_溶解效果

今天我们一起来学习ASE插件,希望各位点个关注,一起跟随我的步伐 今天我们来学习溶解效果,通过渐变纹理达到好像燃烧效果的溶解效果 今天我们的效果很简单,但是其中包含没有学习的节点,所以还是要拿出来学习一下 最终…

ESP32异常报错2

出现这种情况 一般是缺少";"分号. 或者缺少, 仔细查找代码.查看是哪儿缺少了这些代码

【2024W35】肖恩技术周刊(第 13 期):肉,好次!

周刊内容: 对一周内阅读的资讯或技术内容精品(个人向)进行总结,分类大致包含“业界资讯”、“技术博客”、“开源项目”和“工具分享”等。为减少阅读负担提高记忆留存率,每类下内容数一般不超过3条。 更新时间: 星期天 历史收录:…

docker快速部署zabbix

两台主机 一台作为server 一台作为agent 安装好docker 并保证服务正常运行,镜像正常pull 分析: 部署 Zabbix 容器环境,通常会涉及几个主要组件: MySQL(或 MariaDB 数据库)、Zabbix Server 和 Zabbix Web I…

c++ 继承 和 组合

目录 一. 继承 1.1 继承的概念 1.2 继承定义 1.3 继承类模板 1.4. 继承中的作用域 二. 派生类(子类)的默认成员函数 2.1 概念: 2.2 实现⼀个不能被继承的类 2.3 继承与友元 2.4继承与静态成员 三.多继承及其菱形继承问题 3.1继承方…

物联网实践教程:微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总

物联网实践教程:微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总 前言 之前在学校获得了一个新玩意:ESP-01sWIFI模块,去搜了一下这个小东西很有玩点,远程控制LED啥的,然后我就想…

CUDA编程三、C++和cuda实现矩阵乘法SGEMM

目录 一、矩阵SGEMM 二、SGEMM的各种实现 1、cpu版本的实现 2、GPU并行计算最初始的版本 GPU中数据的移动 3、矩阵分块Shared Memory优化 4、LDS.128 float4* 优化 5、__syncthreads()位置优化 6、blank conflict优化 bank概念 bank conflict bank conflict危害和处…

IO其他流

1. 缓冲流 昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础…

yum库 docker的小白安装教程(附部分问题及其解决方案)

yum库 首先我们安装yum 首先在控制台执行下列语句 首先切换到root用户,假如已经是了就不用打下面的语句 su root #使用国内的镜像,不执行直接安装yum是国外的,那个有问题 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.al…

大模型框架 LangChain 介绍

文章目录 langchain介绍安装依赖大模型类别千帆大模型案例常见问题 langchain介绍 是一个开源大语言模型框架,本身不提供大模型算法,只提供对接大模型算法平台的接口(模型包裹器);langchain官网v0.2,内部涉…

POI获取模板文件,替换数据横纵动态表格、折线图、饼状图、折线饼状组合图

先说几个关键的点 pom.xml依赖 <dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.11.0</version> </dependency> <dependency><groupId>com.deepoove</groupId>&…

现代桌面UI框架科普及WPF入门1

现代桌面UI框架科普及WPF入门 文章目录 现代桌面UI框架科普及WPF入门桌面应用程序框架介绍过时的UI框架MFC (Microsoft Foundation Class)缺点 经典的UI框架**WinForms****QT****WPF** 未来的UI框架**MAUI****AvaloniaUI** WPF相对于Winform&#xff0c;QT&#xff0c;MFC的独立…

【深度学习】(5)--搭建卷积神经网络

文章目录 搭建卷积神经网络一、数据预处理1. 下载数据集2. 创建DataLoader&#xff08;数据加载器&#xff09; 二、搭建神经网络三、训练数据四、优化模型 总结 搭建卷积神经网络 一、数据预处理 1. 下载数据集 在PyTorch中&#xff0c;有许多封装了很多与图像相关的模型、…

二阶滤波算法总结(对RC滤波算法整理的部分修正和完善)

文章目录 1、一阶低通滤波2、一阶高通滤波3、二阶低通滤波器3.1 二阶RC低通滤波器的连续域数学模型3.2 二阶RC低通滤波器的算法推导3.3 matlab仿真 4、二阶高通滤波器4.1 二阶RC高通滤波器的连续域数学模型4.2 二阶RC高通滤波器的算法推导4.3 matlab仿真 5、陷波滤波6、带通滤波…

要大爆发的AI Agent是什么?(软件测试人员需要掌握)

什么是AI Agent&#xff1f; AI Agent 是一种软件程序&#xff0c;可以与环境交互&#xff0c;收集数据&#xff0c;并使用数据执行自主任务以实现预定目标。即人类设定目标&#xff0c;AI Agent 独立选择实现这些目标所需的最佳行动。 简单来说&#xff0c;AI Agent是一个能够…

复选框选择示例【JavaScript】

这段代码实现的功能是一个简单的复选框示例&#xff0c;它可以进行全选、反选和取消选中操作。 实现功能&#xff1a; 1. 全选&#xff1a;当点击标签"全选"旁边的复选框时&#xff0c;该页面上所有具有"item"类的复选框都会被选中&#xff08;或者取消选…