【YOLOX简述】

YOLOX的简述

  • 一、 原因
    • 1. 背景
    • 2. 概念
  • 二、 算法介绍
    • 2.1 YOLOX算法结构图:
    • 2.2 算法独特点
    • 2.3 Focus网络结构
    • 2.4 FPN,PAN
    • 2.5 BaseConv
    • 2.6 SPP
    • 2.7 CSPDarknet
    • 2.8 YOlO Head
  • 三、预测曲线
    • 3.1 曲线

一、 原因

1. 背景

工业的缺陷检测是计算机视觉中不可缺少的一环之一,在实际的工程项目中具有广泛的应用价值。
YOLOX是目前较为新颖的算法之一,其丰富的权重模型,优秀的实时检测速度,以及精准的检测性能,独特的解耦头处理方式,使其在YOLO系列算法中脱颖而出。

2. 概念

YOLOX依据YOLOv3和YOLOv5,使用了CSPNet,SiLU激活函数以及PANet,并遵循缩放规则设计了YOLOX-S/M/L/X等四种模型。
此次以YOLOX-S模型为介绍,YOLOX-S模型参数量少,对实时性要求较高,适配度更优,与YOLOX-Nano等模型相比,YOLOX-S模型保有一定的模型体量,具有较高的检测精确率。

二、 算法介绍

2.1 YOLOX算法结构图:

在这里插入图片描述

2.2 算法独特点

解耦头: YOLOX的解耦头(Decoupled head)与以往的YOLO不同,它包含一个1*1的卷积层以调整通道数量,之后是两个并行分支,每个分支上包含两个卷积层,两条分支分别用于分类和回归任务,计算重叠度分支被添加在回归分支上。

2.3 Focus网络结构

YOLOX使用了Focus网络结构,这个网络结构是在YoloV5里面使用到比较有趣的网络结构,具体操作是在一张图片中每隔一个像素拿到一个值,这个时候获得了四个独立的特征层,然后将四个独立的特征层进行堆叠,此时宽高信息就集中到了通道信息,输入通道扩充了四倍。拼接起来的特征层相对于原先的三通道变成了十二个通道。
在这里插入图片描述

2.4 FPN,PAN

FPN可以被称作YoloX的强特征提取网络,在主干部分获得的三个有效特征层会在这一部分进行特征融合,特征融合目的是结合不同尺度的特征信息。
在FPN部分,已经获得的有效特征层被用于继续提取特征。
YOLOX网络的颈部还在FPN层后面增加了一个与FPN相对的结构,即包含两个PAN结构的自下而上的特征金字塔。
FPN自上而下,将浅层特征与上采样后的上层特征信息进行传递融合,而PAN自下而上,将下采样后的小尺寸特征图像与大尺寸特征图像进行融合,并成对组合,对不同的检测层进行两次参数融合。

2.5 BaseConv

BaseConv是YOLOX网络中的基本卷积,它包括Conv、BN、SiLu,卷积操作在网络中主要负责特征提取,是模型最重要的操作之一。
BN让每层的输出和下层的输入数据分布尽量保持一致,模型在训练的时候更加稳定。激活函数为网络提供了非线性变化的能力,实现深度模型中层次化逐级抽象特征的能力。
在这里插入图片描述
使用了SiLU激活函数, SiLU具备无上界有下界、平滑、非单调的特性。SiLU在深层模型上的效果优于 ReLU。可以看做是平滑的ReLU激活函数
激活函数是连续,且可导的,其目标是将神经网络非线性化。
激活函数为有下界无上界,其下界避免了网络训练时因梯度为零导致的收敛缓慢,同时有利于网络参数的正则化。
由于激活函数本身是非线性的,所以在神经网络中引入激活函数可以使神经网络任意逼近非线性函数,从而可以增强深度神经网络的表达能力。

2.6 SPP

SPP结构,通过不同池化核大小的最大池化进行特征提取,提高网络的感受野。
在这里插入图片描述
感受野(Receptive Field)是指特征图上的某个点能看到的输入图像的区域,即特征图上的点是由输入图像中感受野大小区域的计算得到的 神经元感受野的值越大表示其能接触到的原始图像范围就越大,它可能蕴含的更为全局
空间金字塔池化层(Spatial Pyramid Pooling)主要解决了输入图片大小不统一的问题,通过三种不同的池化操作融合多重感受野。

2.7 CSPDarknet

在这里插入图片描述
YoloX所使用的主干特征提取网络为CSPDarknet,它具有以下特点:
1、使用了残差网络Residual,CSPDarknet中的残差卷积可以分为两个部分,主干部分是一次1X1的卷积和一次3X3的卷积;
残差边部分不做任何处理,直接将主干的输入与输出结合。
2、整个YoloX的主干部分都由残差卷积构成:
残差网络的特点是容易优化,并且能够通过增加相当的深度来提高准确率。
其内部的残差块使用了跳跃连接,缓解了在深度神经网络中增加深度带来的梯度消失问题

2.8 YOlO Head

在这里插入图片描述
Yolo Head通过CSPDarknet和FPN,可以获得三个加强过的有效特征层。每一个特征层都有宽、高和通道数,此时我们可以将特征图看作一个又一个特征点的集合,每一个特征点都有通道数个特征。
Yolo Head实际上所做的工作就是对特征点进行判断,判断特征点是否有物体与其对应。利用FPN特征金字塔,我们可以获得三个加强特征,这三个加强特征的shape分别为(20,20,1024)、(40,40,512)、(80,80,256),然后我们利用这三个shape的特征层传入Yolo Head获得预测结果。

三、预测曲线

3.1 曲线

得到最终的预测结果后还要进行得分筛选与非极大抑制筛选,得分筛选就是筛选出得分满足confidence置信度的预测框,非极大抑制就是筛选出一定区域内属于同一种类得分最大的框。
得分筛选与非极大抑制筛选后的结果就可以用于绘制预测框,未经过抑制的会出现多重框。
经过训练后可产生Precision与Pecall图:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
TP— 本来是正样本,检测为正样本(真阳性)。
TN—本来是负样本,检测为负样本
FP—预测错了,本来是负样本,检测为正样本。
FN— 预测为 N(负例), 预测错了,本来是正样本,检测为负样本。

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

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

相关文章

关于AssetBundle禁用TypeTree之后的一些可序列化的问题

1)关于AssetBundle禁用TypeTree之后的一些可序列化的问题 2)启动Unity导入变动的资源时,Singleton ScriptableObject 加载不到 3)Xcode15构建Unity 2022.3的Xcode工程,报错没有兼容的iPhone SDK 这是第361篇UWA技术知识…

“轻松管理你的文件库:按大小归类保存,高效整理!“

亲爱的朋友们,你是否曾经为了整理电脑中杂乱无章的文件而感到烦恼?文件大小不一,无法快速找到所需内容,实在让人感到心力交瘁。但现在,我们为你带来一种全新的解决方案,让你的文件管理更轻松,更…

使用Mate 40 Harmony OS 4.0版本运行 codelabs ArkUI demo运行非常卡顿,换Mate 60没事

服务类型 DevEco Studio 概述 使用Mate 40 Harmony OS 4.0版本运行 codelabs ArkUI demo运行非常卡顿,换Mate 60没事 官方回复添加链接描述 客户支持工程师 2023-11-21 14:37:19 GMT08:00 尊敬的开发者,您好, 该机型卡顿黑屏为内部已知问题…

Mysql数据库管理-Innodb 内存优化分析

MySql数据库内存分析优化 1 Innodb重做日志 redo log是Innodb保障事务ACID属性的重要机制。工作原理图如下: 2 增加缓冲池数量,减少内部对缓冲池结构争用。 mysql内部线程对innodb缓存池的访问在某个阶段是互斥的,这种内部竞争也会产生性能…

【JavaSE】基础笔记 - 图书管理系统(保姆教程,含源码)

目录 1、图书管理系统介绍 2、大致框架 3、代码实现步骤 3.1、Book图书类 3.2、BookList书架类 3.3、User用户类、AdminUser类、NormalUser类 3.4、IOperation操作接口 3.5、继承IOperation接口的操作类 3.6、完善User类 3.7、Mian类 4、完整代码 Java的三大特性是…

python2环境问题

pip源推荐使用 -i http://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn 安装pip工具,可以环境上已有的pip赋值到对应目录下 更新pip工具,python2的pip需要20.3版本以前的。解决pip命令从其它环境复制过来导致的一系列…

《研发效能 100 问》首发,多位专家解读「研效提升」的破局之道?

为了可以帮助更多研发管理者和研发效能负责人,了解构建研发效能体系应从何做起,以及在构建过程中需要解决哪些疑难问题,有哪些最佳实践可以借鉴。2023 年 7 月,思码逸发起,由行业知名研发效能专家张乐老师担任出品人&a…

KT142C语音芯片客户反馈电脑端的配置文件,打开都正常,但是拷贝到KT142C内部就乱码

KT142C语音芯片客户反馈电脑端的配置文件,打开都正常,但是拷贝到KT142C内部就乱码 首先解释一下原理,KT142C内置的330Kbyte空间可供用户下载,实际上拿出程序部分的空间 作为声音存储介质的,也就是说,代码空…

[每周一更]-(第72期):Docker容器瘦身方式

Docker清理缓存操作 在构建测试的过程中,由于是自家小服务器,资源紧张,发现磁盘一直爆满,删除一些大镜像还是会占满的情况,就想到是不是也是缓存问题。 经过查询确实是build过程中的缓存启发的占用问题。 因此引出以下…

【自动驾驶解决方案】C++取整与保留小数位

一、C基础 1.1double型保留小数为&#xff0c;并以字符输出 #include <iostream> #include <sstream> #include <iomanip> // 包含std::fixedint main() {//浮点数double number 3.1415926;//转换工具类streamstd::stringstream stream;stream << s…

【微信小程序】2023年11月版本 关于小程序隐私保护指引设置的公告 | 修改微信小程序隐私保护 |小程序无法获取用户昵称 头像 性别 等问题

一、登录小程序后台 《关于小程序隐私保护指引设置的公告》 https://mp.weixin.qq.com/cgi-bin/announce?actiongetannouncement&announce_id11691660367cfUvX&version&langzh_CN&token 上面是官方的文档&#xff0c;但是由于比较陈旧&#xff0c;和现在的页面…

基于单片机的空气质量实时监测系统(论文+源码)

1. 系统设计 通过文献和市场调查&#xff0c;本设计的实现方案框架是以单片机为核心控制处理器搭建外围的功能模块如温度传感器模块、湿度传感器检测模块、二氧化碳传感器检测设备模块、无线通信模块和蜂鸣器声光报警提示模块来实现&#xff0c;辅以显示模块来展示。 该系统通…

数据仓库

一. 各种名词解释 1.1 ODS是什么&#xff1f; ODS层最好理解&#xff0c;基本上就是数据从源表拉过来&#xff0c;进行etl&#xff0c;比如mysql 映射到hive&#xff0c;那么到了hive里面就是ods层。 ODS 全称是 Operational Data Store&#xff0c;操作数据存储.“面向主题的…

Java 异常处理、继承、重写/重载

一、java异常处理&#xff1a; 三种类型的异常&#xff1a;检查性异常、运行时异常、错误。 所有的异常类是从java.lang.Exception类继承的子类。Exception类是Throwable类的子类。除了Exception类外&#xff0c;Throwable还有一个子类Error。 异常类有两个主要的子类&#…

OpenAI宫斗,尘埃落定,微软成最大赢家

周末被OpenAI董事会闹剧刷屏,ChatGPT之父Sam Altman前一天被踢出董事会,免职CEO,后一天重返OpenAI,目前结局未知。 很多同学想要围观,缺少背景知识,这里老章为大家简单介绍前因后果及涉及的人物,时间线,让大家轻松围观。 备好瓜子,开始。 1、主角 先看一张图,看一…

Python学习(打基础版)

以前只是大致的了解&#xff0c;现在比较完整的整理一下笔记&#xff0c;以后工作可能会用到。 学习地址如下所示&#xff1a;黑马程序员python教程&#xff0c;8天python从入门到精通&#xff0c;学python看这套就够了_哔哩哔哩_bilibili 第一章 环境配置 1 初识Python 人…

Ubuntu Server download

前言 Ubuntu——公共云、数据中心和边缘上最受欢迎的 Linux 发行版。自成立以来&#xff0c;Ubuntu 一直在获得市场份额&#xff0c;截至今天已接近 50%。 Ubuntu Server download VersionUbuntu Server 其它主机型号版本Ubuntu AMD历史版下载百度云Ubuntu Server all Ubuntu…

阿里8年经验之谈 —— 分享一次接口性能摸底测试过程!

接口性能测试是用于验证应用程序中的接口是否可以满足系统的性能要求的一种测试方法。确定应用程序在各种负载条件下的性能指标&#xff0c;例如响应时间、吞吐量、并发性能等&#xff0c;以便提高系统的性能和可靠性。本文主要讲述接口性能测试从前期准备、方案设计到环境搭建…

SQL常见函数整理 —— LAG() 向上偏移

1. 用法 窗口函数&#xff0c;用于访问窗口中当前行之前的行的数据。该函数可以根据需要计算当前行之前的值&#xff0c;使我们能够轻松地比较不同行之间的差异和变化。 2. 基本语法 LAG(column, offset, default_value) OVER (ORDER BY column)column&#xff1a;代表在返回…