【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.rhkb.cn/news/193927.html

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

相关文章

AI集成ChatGPT敲代码神器Copilot

📑前言 本文主要是AI工具Copilot解读文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句:努力…

基于springboot的医护人员排班系统 全套代码 全套文档

基于springboot的医护人员排班系统,springboot vue mysql (毕业论文10411字以上,共27页,程序代码,MySQL数据库) 代码下载链接:https://pan.baidu.com/s/177HdCGtTvqiHP4O7qWAgxA?pwd0jlf 提取码:0jlf 【运行环境】 IDEA, JDK1.8, Mysql, Node, Vue …

【Java】智慧工地管理系统源码(SaaS模式)

智慧工地是聚焦工程施工现场,紧紧围绕人、机、料、法、环等关键要素,综合运用物联网、云计算、大数据、移动计算和智能设备等软硬件信息技术,与施工生产过程相融合。 一、什么是智慧工地 智慧工地是指利用移动互联、物联网、智能算法、地理信…

基础课5——垂直领域对话系统架构

垂直领域对话系统是指针对特定领域或行业的需求而构建的对话系统。这种系统通常需要具备高度的专业知识和对特定领域的知识库进行深入的学习和训练,以便能够提供准确、高效、实用的服务。 垂直领域对话系统的构建通常包括以下步骤: 确定目标领域或行业…

【社会网络分析第5期】gephi使用指南

gephi数据可视化 gephi数据可视化1、软件安装2、数据处理与导入(1)导入节点(2)导入边(3)改变节点的颜色(4)根据pagerank调整节点的大小(5)根据pagerank调整边…

【微服务专题】Spring启动过程源码解析

目录 前言阅读对象阅读导航前置知识笔记正文一、SpringBoot启动过程源码解析1.1 SpringBoot启动过程源码流程图1.2 流程解析补充1.2.1 SpringApplicationRunListeners:SpringBoot运行过程监听器 学习总结感谢 前言 这部分只是个人的自结,方便后面回来看…

demo(一)eureka----服务注册与提供

下面写一个简单的demo验证下eureka&#xff0c;实现服务注册、服务发现。 一、单节点&#xff1a; 1、api&#xff1a; 封装其他组件需要共用的dto 2、eureka-service服务注册中心&#xff1a; &#xff08;1&#xff09;pom: <?xml version"1.0" encoding&q…

考研分享第2期 | 中央财经大学管理科学跨考北大软微金融科技406分经验分享

一、个人信息 本科院校&#xff1a;中央财经大学 管理科学与工程学院 管理科学专业 上岸院校&#xff1a;北京大学 软件与微电子学院 金融科技专业硕士 考试科目&#xff1a; 初试&#xff1a;思想政治理论 英语一 数学二 经济学综合 面试考察范围广&#xff0c;包括英语自…

【机器学习9】前馈神经网络

深度前馈网络是一类网络模型的统称&#xff0c;主要包括多层感知机、 自编码器、限制玻尔兹曼机&#xff0c; 以及卷积神经网络等。 1 激活函数 激活函数及对应导函数图其它Sigmoid 导数 在z很大或很小时都会趋近于0&#xff0c; 造成梯度消失的现象Tanh 其导数在z很大或很小…

客户管理系统升级,助力企业快速增长——API线索对接功能

在数字化时代&#xff0c;企业需要迅速适应不断变化的市场需求&#xff0c;实现高效的客户管理&#xff0c;以便迅速发现商机并提供更好的客户体验。为了助力企业取得成功&#xff0c;客户管理系统的API线索对接功能应运而生&#xff0c;带来更多机会、更高效率以及更全面的客户…

WebStorm配置less编译wxss或css

文章目录 前言先下载安装less程序&#xff1a;实参&#xff1a;要刷新的输出路径成功 前言 使用WebStorm写微信小程序&#xff0c;wxss写着很麻烦&#xff0c;就想着用less&#xff0c;接下来是配置less编译 先下载安装less npm install -g lessless会安装在你当前目录下(以D…

springboot苍穹外卖实战:十、缓存菜品(手动用redisTemplate实现缓存逻辑)+缓存套餐(Spring cache实现)

缓存菜品 缺点 缓存和数据库的数据一致性通常解决方案&#xff1a;延时双删、异步更新缓存、分布式锁。 该项目对于缓存菜品的处理较为简单&#xff0c;实际可以用管道技术提高redis的操作效率、同时cache自身有注解提供使用。 功能设计与缓存设计 建议这部分去看下原视频&…

在Spring Boot中使用进程内缓存和Cache注解

在Spring Boot中使用内缓存的时候需要预先知道什么是内缓存&#xff0c;使用内缓存的好处。 什么是内缓存 内缓存&#xff08;也称为进程内缓存或本地缓存&#xff09;是指将数据存储在应用程序的内存中&#xff0c;以便在需要时快速访问和检索数据&#xff0c;而无需每次都从…

(四)什么是Vite——冷启动时vite做了什么(源码、middlewares)

vite分享ppt&#xff0c;感兴趣的可以下载&#xff1a; ​​​​​​​Vite分享、原理介绍ppt 什么是vite系列目录&#xff1a; &#xff08;一&#xff09;什么是Vite——vite介绍与使用-CSDN博客 &#xff08;二&#xff09;什么是Vite——Vite 和 Webpack 区别&#xff0…

Uniapp-小程序自定义导航栏

一、项目背景 制作小程序页面时候发现原生导航栏有一定的高度是没有背景渲染的会出现这种情况 但是我们需要的是 二、原因 小程序的原生导航栏存在。一般可以使用 纯色填充顶部栏 可以直接使用navigationBarBackgroundColor完成 在style中添加 "navigationBarBackgrou…

深入了解域名与SSL证书的关系

在如今数字化的世界里&#xff0c;网络安全成为我们关注的重要议题之一。为了确保数据在网络上传输的安全性&#xff0c;我们通常会采取各种安全措施&#xff0c;其中最常用的就是SSL证书。然而&#xff0c;很多人并不了解SSL证书是如何与域名相互关联的。 首先&#xff0c;我…

Pytorch自动混合精度的计算:torch.cuda.amp.autocast

1 autocast介绍 1.1 什么是AMP? 默认情况下&#xff0c;大多数深度学习框架都采用32位浮点算法进行训练。2017年&#xff0c;NVIDIA研究了一种用于混合精度训练的方法&#xff0c;该方法在训练网络时将单精度&#xff08;FP32&#xff09;与半精度(FP16)结合在一起&#xff…

如何解决网页中的pdf文件无法下载?pdf打印显示空白怎么办?

问题描述 偶然间&#xff0c;遇到这样一个问题&#xff0c;一个网页上的附件pdf想要下载打印下来&#xff0c;奈何尝试多种办法都不能将其下载下载&#xff0c;点击打印出现的也是一片空白 百度搜索了一些解决方案都不太行&#xff0c;主要解决方案如&#xff1a;https://zh…

Open3D-ML点云语义分割【RandLA-Net】

作为点云 Open3D-ML 实验的一部分&#xff0c;我撰写了文章解释如何使用 Tensorflow 和 PyTorch 支持安装此库。 为了测试安装&#xff0c;我解释了如何运行一个简单的 Python 脚本来可视化名为 SemanticKITTI 的语义分割标记数据集。 在本文中&#xff0c;我将回顾在任何点云上…

uniapp h5发行

前端使用uniapp开发项目完成后&#xff0c;需要将页面打包&#xff0c;生成H5的静态文件&#xff0c;部署在服务器上。 这样通过服务器链接地址&#xff0c;直接可以在手机上点开来访问。 打包全步骤如下&#xff1a; 首先在manifest.json文件中进行基础配置&#xff0c;获取…