当前位置: 首页 > news >正文

网站 app开发 财务做帐网站自己做推广

网站 app开发 财务做帐,网站自己做推广,网站软文得特点,同ip下网站文章目录 概要一、整体架构分析二、详细结构分析YOLO检测器1. Backbone2. Head3.各模块的过程和作用Conv卷积模块C2F模块BottleNeck模块SPPF模块Upsampling模块Concat模块 概要 尽管YOLO#xff08;You Only Look Once#xff09;系列的对象检测器在效率和实用性方面表现出色… 文章目录 概要一、整体架构分析二、详细结构分析YOLO检测器1. Backbone2. Head3.各模块的过程和作用Conv卷积模块C2F模块BottleNeck模块SPPF模块Upsampling模块Concat模块 概要 尽管YOLOYou Only Look Once系列的对象检测器在效率和实用性方面表现出色但它们通常只能检测预定义的对象类别这限制了它们在更开放场景中的应用。 为了克服这一限制作者提出了YOLO-World这是一种新的方法它通过视觉-语言建模和在大规模数据集上的预训练增强了YOLO的开放词汇open-vocabulary检测能力。开放词汇检测指的是能够检测并识别在训练阶段未见过的对象类别。 下面我们通过系列文章对Yolo-World模型的网络结构及其原理进行详细分析。 一、整体架构分析 YOLO检测器 1Darknet BackboneYOLO-World基于YOLOv8使用Darknet作为其图像编码器。Darknet是一个深度卷积神经网络能够提取图像的多尺度特征。 2特征金字塔网络FPN通过路径聚合网络PANYOLO-World构建了一个特征金字塔将不同尺度的特征图进行融合增强了模型对不同大小目标的检测能力。 文本编码器 -CLIP Text EncoderYOLO-World利用预训练的CLIP文本编码器将输入文本如类别名称、名词短语或对象描述编码为文本嵌入。CLIP是一个视觉-语言预训练模型能够将文本和图像特征映射到同一语义空间。 RepVL-PANRe-parameterizable Vision-Language Path Aggregation Network 1Text-guided CSPLayer在特征金字塔的每个阶段YOLO-World通过Text-guided CSPLayer将文本特征注入到图像特征中。具体来说它使用文本嵌入和图像特征的点积并通过sigmoid函数进行归一化然后将结果与图像特征相乘实现文本对图像特征的引导。 2Image-Pooling Attention为了增强文本嵌入的图像意识YOLO-World通过Image-Pooling Attention聚合图像特征。它使用最大池化操作从多尺度特征中提取关键区域并将这些区域的特征通过多头注意力机制映射回文本嵌入。 区域-文本对比损失Region-Text Contrastive Loss 在训练过程中YOLO-World通过区域-文本对比损失来优化模型。这种损失函数通过计算预测的边界框和文本嵌入之间的相似度以及预测和真实标注之间的一致性来训练模型识别和定位目标。 推理策略 1在线词汇表训练在训练阶段YOLO-World构建在线词汇表包含正面和负面名词以增强模型对大型词汇表对象的识别能力。 2离线词汇表推理在推理阶段YOLO-World采用“提示-检测”范式。用户可以定义自定义提示然后通过文本编码器编码这些提示以获得离线词汇表嵌入。这些嵌入可以重参数化为RepVL-PAN中的权重从而提高推理效率。 二、详细结构分析 YOLO检测器 结合网络模型结构图以及代码分析一下yoloV8的网络结构 # YOLOv8.0n backbone backbone:# [from, repeats, module, args]- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 第0层:使用64个3x3的卷积核步幅为2进行卷积得到P1/2特征图。- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 第1层:使用128个3x3的卷积核步幅为2进行卷积得到P2/4特征图- [-1, 3, C2f, [128, True]] # 第2层:进行3次C2f操作每次操作使用128个通道最后一次操作使用降维(True)。- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 第3层:使用256个3x3的卷积核步幅为2进行卷积得到P3/8特征图。- [-1, 6, C2f, [256, True]] #第4层:进行6次C2f操作每次操作使用256个通道最后一次操作使用降维(True)。- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 第5层:使用512个3x3的卷积核步幅为2进行卷积得到P4/16特征图。- [-1, 6, C2f, [512, True]] #第6层:进行6次C2f操作每次操作使用512个通道最后一次操作使用降维(True)- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 第7层:使用1024个3x3的卷积核步幅为2进行卷积得到P5/32特征图。- [-1, 3, C2f, [1024, True]] #第8层:进行3次C2f操作每次操作使用1024个通道最后一次操作使用降维(True)- [-1, 1, SPPF, [1024, 5]] # 9 第9层:使用1024个通道的SPPF(空间金字塔池化)层使用5个不同大小的池化核进行池化操作。1. Backbone 1第0层:输入640×640×3大小的图像使用3×3的卷积核步幅为2padding为1进行卷积得到P1特征图。这里卷积的过程可以看到图示1首先进行一次普通卷积然后是batchNormalization归一化最后进行的是SiLU激活函数引入非线性关系得到320×320×64大小的图像 2第1层:重复上一步过程使用128个3x3的卷积核步幅为2进行卷积得到P2特征图得到160×160×128大小的图像尺寸减半通道数加倍通道数等于卷积核数 3第2层:进行3次C2f操作图示2每次操作使用128个通道最后一次操作使用降维(True)。这里C2f模块接收来自上一步卷积得到的160×160×128大小的图像首先进行一次Conv卷积然后把输出的图像进行split切分为两份其中一份通道数减半传到最后进行Concat操作另一份通道数减半进入BottleNeck部分图示3这里需要接收参数shortcutTrue or False如果参数是True,那么就在BottleNeck中进行一次shortcut操作也就是残差连接这个概念可以参考resnet论文每次BottleNeck之后都将一半的数据直接传入网络最后另一半数据再进行一次BottleNeckBottleNeck进行多少次取决于C2f进行多少次也就是最开始的参数n最后将前边处理得到的图像数据进行concat连接这时的通道数为0.5×(n2在进行一次Conv卷积将通道数变为split分割之前的通道数也就是经过C2f模块尺寸和通道数并不会产生改变此时输出图像尺寸为160×160×128 4第3层使用256个3x3的卷积核padding为1步幅为2进行卷积得到P3特征图此时输出图片尺寸为80×80×256。 5第4层进行6次C2f操作每次操作使用256个通道最后一次操作使用降维(True)。此时输出图片尺寸为80×80×256。 6第5层:使用512个3x3的卷积核padding为1步幅为2进行卷积得到P4/特征图。此时图片尺寸为40×40×512。 7第6层进行6次C2f操作每次操作使用512个通道最后一次操作使用降维(True)此时输出图片尺寸为40×40×512。 8第7层:使用1024个3x3的卷积核padding为1步幅为2进行卷积得到P5特征图。此时图片尺寸为20×20×1024。 9第8层进行3次C2f操作每次操作使用1024个通道最后一次操作使用降维(True)此时图片尺寸为20×20×1024。 10第9层使用1024个通道的SPPF(空间金字塔池化)层使用5个代码中是5个图片中是3个不同大小的池化核进行池化操作。池化金字塔中先接收来自上一层的图像输入首先进行一次卷积调整输入特征的通道数为后续的池化操作做准备然后进行三次最大池化不同池化窗口如1x1、3x3、5x5等用于捕获不同尺度的上下文信息最后进行特征图拼接拼接后的特征图再次通过一个1x1卷积层以整合不同尺度的特征得到最终的输出此时图片尺寸为20×20×1024。 至此backbone部分结束下边接收head部分。 2. Head Head部分主要进行不同尺寸图像信息的融合以便更好的获得图像特征并且进行目标检测。 1第10层:这里接收的图像为第9层的输出尺寸为20×20×1024使用最近邻上采样(nn.Upsample)将特征图尺寸放大两倍以便进行更细粒度的特征提取或与不同分辨率的特征图进行融合。其核心思想是将每个像素点复制到其周围的像素点从而实现尺寸的放大此时输出尺寸为40×40×1024。 2第11层:将backbone第6层提取的特征图与Upsample放大后的特征图进行拼接(Concat)生成新的特征图此时输出尺寸为40×40×1024。 3第12层:进行3次C2f操作在BottleNeck中不进行残差链接此时输出尺寸为40×40×1024。 4第13层:同第10层操作一样使用最近邻上采样将特征图尺寸放大两倍。此时输出尺寸为80×80×1024。 5第14层:将backbone第4层提取的特征图与第13层放大后的特征图进行拼接生成新的特征图此时输出尺寸为80×80×1536 6第15层:进行3次C2f操作不进行残差链接 7后续的第161718192021层进行10~15层的倒序操作也就是通过conv操作缩小尺寸将80×80的特征图变成20×20的特征图并且在过程中进行C2f模块操作concat操作拼接前边层的特征图更好的进行特征融合获取图片的上下文信息最终获取到三个尺寸特征图输出也就是80×80×102440×40×102420×20×1024这样三个尺寸的特征图便可以检测不同大小的目标并且含有丰富的语义特征获取到这三个尺寸的特征图便完成了yolo-world网络模型结构中的yolo获取特征图的部分后续还有进行边界框回归的部分留在后边进行说明 ----------------------------------分割线------------------------------------- 此部分如果有写的不对的地方请各位在评论中指出我会认真修改感谢各位大佬 3.各模块的过程和作用 图示1 卷积模块过程 Conv卷积模块 如图是一个典型的卷积神经网络CNN层的卷积过程其中包括卷积层Conv、批量归一化层BatchNorm2d和激活函数SiLU 1卷积层Conv 核大小k卷积核的尺寸通常用 ( k \times k ) 表示。步长s卷积时滑动的步长步长为1意味着每次滑动一个像素。填充p卷积核边缘的填充大小填充为0通常意味着没有额外的填充。输出通道数c卷积层输出特征图的通道数。 2卷积操作Conv2d卷积操作是深度学习中的基本操作之一用于提取图像的局部特征。在二维卷积Conv2d中卷积核在输入特征图的每个位置滑动并计算卷积核与输入特征图对应部分的点积生成新的输出特征图。 3批量归一化层BatchNorm2d批量归一化是一种技术用于加速训练过程并提高模型的稳定性。它通过规范化归一化层的输入来减少内部协变量偏移即不同训练样本的尺度和分布差异。BatchNorm2d通常在卷积层之后应用对每个特征通道的输出进行归一化处理。 4激活函数SiLUSiLUSigmoid线性单元是一种非线性激活函数它将输入特征图的每个元素通过SiLU函数进行非线性变换增加网络的非线性表达能力。 5整体流程输入特征图首先通过卷积层卷积核在特征图上滑动提取局部特征。卷积后的输出特征图通过批量归一化层进行归一化处理减少不同批次数据的分布差异。最后归一化后的特征图通过SiLU激活函数进行非线性变换生成最终的输出特征图。 图示2 C2F结构展示 C2F模块 1输入特征模块接收尺寸为 h×w、通道数为 c_in 的特征图。 21x1卷积 特征图通过一个核大小为1k1、步长为1s1、填充为0p0的卷积层输出通道数为 c_out。 3通道分割 输出特征图被分割成两个子特征图每个子特征图的通道数为 c_out/2。 4瓶颈层Bottleneck 每个子特征图通过瓶颈层进行处理瓶颈层通常包含深度可分离卷积或其他轻量化的卷积操作以减少计算量并提取特征。 5跨阶段连接Cross-stage Connections 在瓶颈层之后特征图的尺寸减半但通道数保持不变。图片中的 “shortcut?” 表示这里存在某种形式的残差连接或跳跃连接具体细节见下边BottleNeck解释。 6特征拼接Concatenation 处理后的两个子特征图被拼接回一起得到尺寸为 h×w、通道数为c_out/2×(n 2)的特征图其中n是一个与模块设计相关的参数。 7最终1x1卷积 最后拼接后的特征图再次通过一个1x1卷积层输出最终的特征图尺寸保持不变通道数为c_out。 8C2F输出 C2F模块的输出是经过这些处理步骤后的特征图这些特征图具有增强的特征表示能力可以用于后续的目标检测任务。 C2F模块的设计意图是通过轻量化的卷积操作和特征融合提高网络的计算效率和特征提取能力。这种模块可能在YOLOv8的多个地方使用以确保在不同尺度的特征图中都能有效地提取有用的信息。 “shortcut” 指的是残差连接用于帮助网络学习输入和输出之间的残差从而提高网络的学习能力和稳定性。 图示3 BottleNeck模块 BottleNeck模块 Bottleneck模块是一种常见的网络结构用于减少参数数量和计算量同时保持或提升特征表达能力。以下是Bottleneck模块的两种变体的过程介绍 1输入特征模块接收尺寸为 h×w、通道数为 c的特征图。 2第一个3x3卷积 特征图首先通过一个核大小为3 k3、步长为1 s1、填充为1 p1的卷积层。 3第二个3x3卷积 紧接着输出特征图再次通过一个相同配置的3x3卷积层。 4Shortcut连接 由于shortcutTrue原始输入特征图与经过两个卷积层的输出特征图进行相加。这允许梯度直接从输出传递回输入有助于解决深层网络中的梯度消失问题。 5输出特征 最终输出的特征图尺寸仍为 h×w通道数保持不变为c。 对于不带Shortcut的Bottleneck模块只进行两次卷积过程后输出特征不进行shortcut连接 注shortcut通用特点 深度和参数效率Bottleneck模块通过先压缩后扩展的卷积操作减少了参数数量和计算量。特征不变性带Shortcut的Bottleneck模块通过残差连接保持了输入和输出的尺寸和通道数不变。计算效率使用3x3卷积可以在减少特征图尺寸的同时捕获足够的局部空间信息。适用性Bottleneck模块常用于深度学习网络中尤其是在需要处理高分辨率输入时如图像分类和目标检测任务。 图示4 SPPF过程 SPPF模块 一种改进的空间金字塔池化模块。 1输入特征 模块接收尺寸为 h×w、通道数为 c的特征图。 21x1卷积 首先特征图通过一个1x1卷积层核大小为1 k1、步长为1 s1 、填充为0p0。这个卷积层可以调整输入特征的通道数为后续的池化操作做准备。 3空间金字塔池化Spatial Pyramid Pooling 接着特征图经过三次不同的最大池化操作MaxPool2d。这些池化操作通常具有不同的窗口大小例如1x1、3x3、5x5等用于捕获不同尺度的上下文信息。 每个最大池化层都会在特征图上应用一个固定大小的窗口并输出该窗口内的最大值这有助于提取多尺度的特征。 4特征图拼接Concatenation 池化操作后得到的多个不同尺度的特征图被拼接在一起。这样网络就可以在后续层中同时考虑到局部特征和全局上下文信息。 5最终1x1卷积 最后拼接后的特征图再次通过一个1x1卷积层以整合不同尺度的特征并输出最终的特征图。 6SPPF输出 SPPF模块的输出是一个综合了多尺度信息的特征图这个特征图可以提供更丰富的上下文信息有助于提高目标检测的准确性。 SPPF模块是通过多尺度的池化操作捕获图像中的全局和局部特征然后将这些特征有效地融合在一起。这种模块在目标检测网络中非常有用因为它可以帮助模型更好地理解不同尺寸的物体从而提高检测性能。 Upsampling模块 在深度学习中上采样Upsampling是一种常用的技术用于将特征图的尺寸放大以便进行更细粒度的特征提取或与不同分辨率的特征图进行融合。最近邻上采样Nearest Neighbor Upsampling是一种简单的上采样方法其核心思想是将每个像素点复制到其周围的像素点从而实现尺寸的放大。 以下是使用最近邻上采样将特征图尺寸放大两倍的基本步骤 1确定上采样的尺寸 假设原始特征图的尺寸为 h×w×c目标是将特征图的尺寸放大两倍因此新的尺寸将是2h×2w 2应用最近邻上采样对于每个像素点 x,y 在原始特征图中复制其值到新特征图中的2x,2y位置。这样每个像素点在水平和垂直方向上都会被复制一次从而实现尺寸的放大。 3填充边缘在新特征图的边缘可能没有足够的像素点可以复制。在这种情况下可以选择复制最近的像素点或者简单地复制最后一个像素点。 4实现代码在PyTorch中可以使用nn.Upsample模块来实现最近邻上采样。以下是一个示例代码 import torch import torch.nn as nn# 定义原始特征图 original_feature_map torch.randn(1, 3, 10, 10) # 假设有3个通道10x10的尺寸# 创建上采样模块模式为最近邻 upsample nn.Upsample(scale_factor2, modenearest)# 应用上采样 upscaled_feature_map upsample(original_feature_map)# 打印结果 print(Original Feature Map Shape:, original_feature_map.shape) print(Upsampled Feature Map Shape:, upscaled_feature_map.shape)Concat模块 在深度卷积神经网络中concat模块用于将来自不同层或不同尺度的特征图在通道维度上进行拼接。这种操作有助于融合多层次、多尺度的信息从而增强模型的特征表达能力和检测性能。 1特征提取从不同的网络层提取特征图这些特征图可能来自不同的卷积层或不同的检测头。 2尺寸匹配对特征图进行尺寸调整使它们在空间维度上具有相同的宽度和高度。 3拼接操作在通道维度上将这些特征图拼接在一起形成一个新的特征图。 concat模块主要用于以下几个方面 1特征融合将来自不同尺度的特征图拼接在一起以提高模型对不同大小目标的检测能力。 2跨层连接将低层的细节特征与高层的语义特征结合起来增强模型的特征表达能力。 3多任务学习在多任务学习场景中concat模块可以将来自不同任务的特征图拼接在一起进行联合训练。
http://www.tj-hxxt.cn/news/219167.html

相关文章:

  • 网站制作公司教你怎么制作网站企业号官网入口
  • 电子商务网站建设合同pc建站网站
  • 企业网站建设一般包含哪些内容黄岩网站制作
  • 动态ip可以做网站智能手机应用开发
  • 沙河企业做网站山西网站制作公司
  • 代理加盟微信网站建设怎样做seo网站链接
  • 网站需要什么费用临沧网站建设公司
  • 网站服务器不稳定做网站推广怎么跟客户沟通
  • 设计一个官方网站推广广告泰安可以做网站的公司
  • 广州网站建设及推广在线网页制作
  • 进了网站的后台系统 怎么改公司的网站wordpress百度推送插件
  • 分类信息系统网站模板梅州网页设计培训报价
  • 网站icon怎么设置app制作
  • 手机版企业网站静态页面网站站标代码写进到静态页面了 怎么不显示呢?
  • 做网站不会配色怎么办湘潭做网站问下磐石网络
  • 网站建设优化推广教程门户网站开发工具软件
  • 青岛市崂山区建设局网站网站前端跟后端怎么做
  • 中英文企业网站公司简介模板免费文字
  • 怎么做专门卖二手衣服的网站seo推广公司 什么意思
  • 汉字域名的网站闵行网页设计
  • 网站如何防止别人抄袭wordpress index.txt
  • flash网站开源企业创建网站的途径都有啥
  • 医院网站建设 利法拉网络素材网站在哪里找
  • 江西响应式网站建设哪家好最新项目首码发布平台
  • 南昌网站建设的流程西安找公司建网站
  • 专业网站建设行业现状辽宁建设工程信息网新版网址
  • 中国建设银行理财网站上海 网站设计 公司
  • 网站建设应注意哪些事项网站是否能够被恶意镜像
  • 邯郸移动网站建设报价专业网站制作哪家专业
  • 做网站到底能不能赚钱建设银行北海分行网站