【深度学习】(ICCV-2021)PVT-金字塔 Vision Transformer及PVT_V2

0. 详情

名称:Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions
论文: 原文
代码: 官方代码

笔记参考:
1. 语义分割中的Transformer(第三篇):PVT — 用于密集预测任务的金字塔 Vision Transformer
2 作者本人的解释!!-大白话Pyramid Vision Transformer
3 金字塔Transformer,更适合稠密预测任务的Transformer骨干架构
4. 对pvt的思考!
5 简洁版-PVT(Pyramid Vision Transformer)算法整理
6. 翻译版

1. 简述

  • 之前的所总结的ViT backbone,本身并没有针对视觉中诸如分割、检测等密集预测型的任务的特定,设计合适结构。
    后续SERT等论文也只是简单的将VIT作为Encoder,将其提取到的单尺度特征通过一些简单的Decoder的处理,验证了transformer在语义分割任务上的效果。
    但是,我们知道,在语义分割任务上,多尺度的特征是非常重要的,因此在PVT中提出了一种能够
    提取多尺度特征的vision transformer backbone

    在这里插入图片描述

2.主要工作

2.1 ViT遗留的问题

ViT的结构是下面这样的,它和原版Transformer一样是柱状结构的 。这就意味着,
1)缺乏多尺度特征
ViT 输出的特征图和输入大小基本保持一致。这导致ViT作为Encoder时,只能输出单尺度的特征。
它全程只能输出16-stride或者32-stride的feature map;
2)计算开销剧增
一旦输入图像的分辨率稍微大点,占用显存就会很高甚至显存溢出。
分割和检测相对于分类任务而言,往往需要较大的分辨率图片输入。
因此,一方面,我们需要相对于分类任务而言划分更多个patch才能得到相同粒度的特征。如果仍然保持同样的patch数量,那么特征的粒度将会变粗,从而导致性能下降
另一方面,我们知道,Transformer的计算开销与token化后的patch数量正相关, patch数量越大,计算开销越大。所以,如果我们增大patch数量,可能就会让我们本就不富裕的计算资源雪上加霜。
以上是ViT应用于密集预测任务上的第一个缺陷。

解决
针对方案简单粗暴:

  • 输出分辨率不够,那么就加大;
  • patch token序列太长,导致attention矩阵的计算量太大,那么就针对性的缩减总体序列长度,或者是仅仅缩减k和v的长度(如下图)。

2.2 引入金字塔结构

计算机视觉中CNN backbone经过多年的发展,沉淀了一些通用的设计模式。
最为典型的就是金字塔结构。
简单的概括就是:

1)feature map的分辨率随着网络加深,逐渐减小

2)feature map的channel数随着网络加深,逐渐增大
几乎所有的密集预测(dense prediction)算法都是围绕着特征金字塔设计的

这个结构怎么才能引入到Transformer里面呢?
最终还是发现:简单地堆叠多个独立的Transformer encoder效果是最好的。
然后我们就得到了PVT,如下图所示。在每个Stage中通过Patch Embedding来逐渐降低输入的分辨率

其中,除了金字塔结构以外。为了可以以更小的代价处理高分辨率(4-stride或8-stride)的feature map,我们对Multi-Head Attention也做了一些调整。
在这里插入图片描述
为了在保证feature map分辨率和全局感受野的同时降低计算量,我们把key(K)和value(V)的长和宽分别缩小到以前的1/R_i。通过这种方法,我们就可以以一个较小的代价处理4-stride,和8-stride的feature map了。

3.PVT的设计方案

模型总体上由4个stage组成用于生成不同尺度的特征,每个stage包含Patch Embedding和若干个Transformer模块(相对于原本的transformer有所改动)组成。

  • Patch Embedding:目的在于将信息分块,降低单张图的图片大小,但会增加数据的深度
  • Transformer Encoder:目的在于计算图片的attention value,由于深度变大了,计算复杂度会变大,所以在这里作者使用了Special Reduction来减小计算复杂度

在第一个阶段,给定尺寸为 H X WX3 的输入图像,我们按照如下流程进行处理:

首先,将其划分为HW/4的平方的块(这里是为了与ResNet对标,最大输出特征的尺寸为原始分辨率的1/4),每个块的大小为;
然后,将展开后的块送入到线性投影曾得到尺寸为HW/4的平方 xC1 的嵌入块;
其次,将前述嵌入块与位置嵌入信息送入到Transformer的Encoder,其输出将为reshap为.H/4 X W/4 X C1

采用类似的方式,我们以前一阶段的输出作为输入即可得到特征F2 F3 F4。

H * W * 3 -> stage1 block -> H/4 * W/4 * C1 -> stage2 block -> H/8 * W/8 * C2 -> stage3 block -> H/16 * W/16 * C3 -> stage3 block -> H/32 * W/32 * C4

在这里插入图片描述

3.1 Patch embedding

Patch Embedding部分与ViT中对与图片的分块操作是一样的,即:
在这里插入图片描述
通过这种方式我们就可以灵活的调整每个阶段的特征尺寸,使其可以针对Transformer构建特征金字塔。

在每个stage开始,首先像ViT一样对输入图像进行token化,即进行patch embedding,patch大小除第1个stage的是4x4外,其余均采用2x2大小。这个思想有些类似于池化或者带步长的卷积操作,减小图像的分辨率,使得模型能够提取到更为抽象的信息。这意味着每个stage(第一个stage除外)最终得到的特征图维度是减半的,tokens数量对应减少4倍

每个patch随后会送入一层Linear中,调整通道数量,然后再reshape以将patch token化。

这使得PVT总体上与resnet看起来类似,4个stage得到的特征图相比原图大小分别是1/4,1/8,1/16 和 1/32。这也意味着PVT可以产生不同尺度的特征。

Note:由于不同的stage的tokens数量不一样,所以每个stage采用不同的position embeddings,在patch embed之后加上各自的position embedding,当输入图像大小变化时,position embeddings也可以通过插值来自适应。

代码

1、首先输入的data的shape是(bs,channal,H,W),为了方便直接用batchsize是1的图片做例子,因此输入是(1,3,224,224)
code对应:

model = pvt_small(**cfg)
data = torch.randn((1, 3, 224, 224))
output = model(data)

2、输入数据首先经过stage 1 block的Patch emb操作,这个操作首先把224224的图像分成44的一个个小patch,这个实现是用卷积实现的,用44的卷积和对224224的图像进行卷积,步长为4即可。
code对应:

self.proj = nn.Conv2d(in_chans=3, embed_dim=64, kernel_size=4, stride=4)
# 其中64是网络第一层输出特征的维度对应图中的C1
print(x.shape)# torch.Size([1, 3, 224, 224])
x = self.proj(x)
print(x.shape)# torch.Size([1, 64, 56, 56])

这样就可以用5656的矩阵每一个点表示原来44的patch

3、对16456*56的矩阵在进行第二个维度展平
code对应:

print(x.shape) # torch.Size([1, 64, 56, 56])
x = x.flatten(2)
print(x.shape) # torch.Size([1, 64, 3136])

这时候就可以用3136这个一维的向量来表示224*224的图像了

4、为了方便计算调换下第二第三两个维度,然后对数据进行layer norm。
code对应:

print(x.shape) # torch.Size([1, 64, 3136])
x = x.transpose(1, 2)
print(x.shape) # torch.Size([1, 3136, 64])
x = self.norm(x)
print(x.shape) # torch.Size([1, 3136, 64])

以上就完成了Patch emb的操作,完整代码对应:

def forward(self, x):
    B, C, H, W = x.shape # 1,3,224,224
    x = self.proj(x) # 卷积操作,输出1,64,56,56
    x = x.flatten(2) # 展平操作,输出1,64,3136
    x = x.transpose(1, 2) # 交换维度,输出 1,3136,64
    x = self.norm(x) # layer normal,输出 1,3136,64
    H, W = H // 4, W // 4 # 最终的高宽变成56,56
    return x, (H, W)

在这里插入图片描述

3.2position embedding

1、这部分和Vit的位置编码基本是一样的,创建一个可学习的参数,大小和patch emb出来的tensor的大小一致就是(1,3136,64),这是个可学习的参数。
code对应:

pos_embed = nn.Parameter(torch.zeros(1, 3136, 64))

2、位置编码的使用也是和Vit一样,**直接和输出的x进行矩阵加,**因此shape不变化。
code对应:

print(x.shape) # torch.Size([1, 3136, 64])
x = x + pos_embed
print(x.shape) # torch.Size([1, 3136, 64])

3、相加完后,作者加了个dropout进行正则化。
code对应:

pos_drop = nn.Dropout(p=drop_rate)
x = pos_drop(x)

以上就完成了position embedding的操作,完整代码对应:

x = x + pos_embed
x = pos_drop(x)

在这里插入图片描述

3.3Encoder

第i个stage的encoder部分由depth[i]个block构成,对于pvt_tiny到pvt_large来说主要就是depth的参数的不同:
在这里插入图片描述
例如对于pvt_tiny来说,每个encoder都是由两个block构成,每个block的结构如下图所示:
在这里插入图片描述
对于第一个encoder的第一个block的输入就是我们前面分析的经过position embedding后拿到的tensor,因此他的输入的大小是(1,3136,64),与此同时图像经过Patch emb后变成了56*56的大小。

1、首先从上图可以看出先对输入拷贝一份,给残差结构用。然后输入的x先经过一层layer norm层,此时维度不变,然后经过作者修改的Multi head attention层(SRA,后面再讲)与之前拷贝的输入叠加。
code对应:

print(x.shape) # (1,3136,64)
x = x + self.drop_path(self.attn(self.norm1(x), H, W))
print(x.shape) # (1,3136,64)

2、经过SRA层的特征拷贝一份留给残差结构,然后将输入经过layer norm层,维度不变,再送入feed forward层(后面再讲),之后与之前拷贝的输入叠加。
code对应:

print(x.shape) # (1,3136,64)
x = x + self.drop_path(self.mlp(self.norm2(x)))
print(x.shape) # (1,3136,64)

因此可以发现经过一个block,tensor的shape是不发生变化的。完整的代码对应:

def forward(self, x, H, W):
      x = x + self.drop_path(self.attn(self.norm1(x), H, W)) # SRA层
      x = x + self.drop_path(self.mlp(self.norm2(x))) # feed forward层
      return x

3、这样经过depth[i]个block之后拿到的tensor的大小仍然是(1,3136,64),只需要将它的shape还原成图像的形状就可以输入给下一个stage了。而还原shape,直接调用reshape函数即可,这时候的特征就还原成(bs,channal,H,W)了,数值为(1,64,56,56)
code对应:

print(x.shape) # 1,3136,64
x = x.reshape(B, H, W, -1)
print(x.shape) # 1,56,56,64
x = x.permute(0, 3, 1, 2).contiguous()
print(x.shape) # 1,64,56,56

这时候stage2输入的tensor就是(1,64,56,56),就完成了数据输出第一个stage的完整分析。
最后只要在不同的encoder中堆叠不同个数的block就可以构建出pvt_tiny、pvt_small、pvt_medium、pvt_large了。
完整图示如下:
在这里插入图片描述
所以!经过stage1,输入为(1,3,224,224)的tensor变成了(1,64,56,56)的tensor,这个tensor可以再次输入给下一个stage重复上述的计算就完成了PVT的设计。

3.2 Spatial-reduction attention(SRA)

在Patch embedding之后,需要将token化后的patch输入到若干个transformer 模块中进行处理。

不同的stage的tokens数量不同,越靠前的stage的patchs数量越多,self-attention的计算量与sequence的长度N的平方成正比,如果PVT和ViT一样,所有的transformer encoders均采用相同的参数,那么计算量肯定是无法承受的。

1.PVT 为了减少计算量,不同的stages采用的网络参数是不同的
PVT不同系列的网络参数设置如下所示,这里P为patch的size,C为特征维度大小,N为MHA(multi-head attention)的heads数量,E为FFN的扩展系数,transformer中默认为4。
在这里插入图片描述
可以见到随着stage,特征的维度是逐渐增加的,比如stage1的特征维度只有64,而stage4的特征维度为512,这种设置和常规的CNN网络设置是类似的,所以前面stage的patchs数量虽然大,但是特征维度小,所以计算量也不是太大。不同体量的PVT其差异主要体现在各个stage的transformer encoder的数量差异。

2.为了进一步减少计算量,作者将multi-head attention (MHA)用所提出的spatial-reduction attention (SRA)来替换。

SRA的核心是减少attention层的key和value对的数量,常规的MHA在attention层计算时key和value对的数量为sequence的长度,但是SRA将其降低为原来的1/Rd 平方。

SRA的处理过程可以描述如下:
在这里插入图片描述
也就是说每个head的维度等于Ci/Ni,SR( )为空间尺度下采样操作,定义如下:
在这里插入图片描述
在这里插入图片描述
(
总而言之,所提方案涉及的超参数包含如下:

P:阶段i的块尺寸;
C:阶段i的通道数;
L:阶段i的encoder层数;
R:阶段i中SRA的下采样比例;
N:阶段i的head数量;
E:阶段i中MLP的扩展比例。
)
具体来说:
在实现上,

  • 首先将维度为(HW,C)的K,V通过 reshape变换到维度为(H,W, C)的3-D特征图,
  • 然后均分大小为R * R的patchs,每个patchs通过线性变换将得到维度为(HW / RR,C)的patch embeddings(这里实现上其实和patch emb操作类似,等价于一个卷积操作),
  • 最后应用一个layer norm层,这样就可以大大降低K和V的数量。其核心代码也是这么实现的:
self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio)
self.norm = nn.LayerNorm(dim)```

每个stage,经过若干个SRA模块的处理后,将得到的特征,再次reshape成3D特征图的形式输入到下一个Stage中。

1、首先如果参数self.sr_ratio为1的话,那么pvt的attetion就和vit的attetion一模一样了:
在这里插入图片描述

2、因此分析不一样的地方

self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio)
x_ = x.permute(0, 2, 1).reshape(B, C, H, W)
x_ = self.sr(x_).reshape(B, C, -1).permute(0, 2, 1)
x_ = self.norm(x_)
kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)

2.1:首先输入进来的x的shape是(1313664)2.2:先permute置换维度得到(1643136)2.3:reshape得到(1645656)
2.4:self.sr(x_)是一个卷积操作,卷积的步长和大小都是sr_ratio,这个数值这里是8因此相当于将56*56的大小长宽缩小到8分之一,也就是面积缩小到64分之一,因此输出的shape是(1,64,7,7)
2.5:reshape(B, C, -1)得到(1,64,49)
2.6:permute(0, 2, 1)得到(1,49,64)
2.7:经过layer norm后shape不变
2.8:kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)这一行就是和vit一样用x生成k和v,不同的是这里的x通过卷积的方式降低了x的大小。
这一行shape的变化是这样的:(1,49,64)->(1,49,128)->(1,
最低0.47元/天 解锁文章
Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions论文以及代码解析
Hide on bush
09-27 3227
Pyramid Vision Transformer1. Abstract2. Introduction3. Method3.1. Overall Architecture3.2. Transformer Encoder3.3. More Details4. PVT-V1代码解析4.1. main脚本4.2. pvt脚本4.2.1. PyramidVisionTransformer类的init4.2.2. PyramidVisionTransformer类的forward 论文地址:PVT-V1版本论文
金字塔模型
qq_47896523的博客
08-21 1157
金字塔模型(Pyramid Model)在深度学习中是一种用于多尺度图像分析和处理的模型结构,它基于金字塔的概念,即从图像的不同尺度或分辨率上提取信息。金字塔模型特别适用于处理需要在不同尺度上捕捉信息的任务,例如物体检测、分割和图像检索。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。金字塔模型的核心思想是通过创建图像的多个尺度版本来捕捉不同层次的信息。
《Pyramid Vision Transformer》论文笔记
最新发布
Zssss12的博客
09-19 935
尽管卷积神经网络 (CNN) 在计算机视觉中取得了巨大成功,但这项工作研究了一种更简单、无卷积的骨干网络,可用于许多密集预测任务。与最近提出的专门为图像分类设计的Vision Transformer (ViT) 不同,我们引入了金字塔视觉转换器 (PVT),它克服了将 Transformer 移植到各种密集预测任务的困难。与现有技术相比,PVT有几个优点。(1) 与通常产生低分辨率输出并产生高计算和内存成本的 ViT 不同,PVT 不仅可以在图像的密集分区上进行训练以实现高输出分辨率,
PVT系列:金字塔视觉变换器官方实现
gitblog_07730的博客
09-13 379
PVT系列:金字塔视觉变换器官方实现 PVT Official implementation of PVT series 项目地址: https://gitcode.com/gh_mirrors/pv/PVT ...
PVT(Pyramid Vision Transformer)算法整理
gentlelu的博客
06-11 4109
整体架构
PVT v2: Improved Baselines with Pyramid Vision Transformer
qq_52302919的博客
11-11 4254
论文地址:https://arxiv.org/pdf/2106.13797.pdf代码地址: https://github.com/whai362/PVT
探秘PVT:一种新颖的视觉Transformer模型
gitblog_00004的博客
03-25 1095
探秘PVT:一种新颖的视觉Transformer模型 PVTOfficial implementation of PVT series项目地址:https://gitcode.com/gh_mirrors/pv/PVT深度学习的世界中,Transformer模型自从2017年被提出以来,已经在自然语言处理领域取得了显著成就。然而,将Transformer架构应用于计算机视觉任务仍然是一个热门...
FPN——如雷贯耳的“特征金字塔” (目标检测)(one/two-stage)(深度学习)(CVPR 2017)
星智云图StarImagine
11-29 4718
论文名称:《 Feature Pyramid Networks for Object Detection 》 论文下载:https://arxiv.org/abs/1612.03144 论文代码:https://github.com/unsky/FPN(非官方) 1、模型概述: 目前多尺度的物体检测主要面临的挑战为: (1)如何学习具有强语义信息的多尺度特征表示? (2)如何设计通用的...
论文精读:PVT v2: Improved Baselines with Pyramid Vision Transformer
qq_52053775的博客
11-12 1750
论文地址:https://arxiv.org/abs/2106.13797源码地址:https://github.com/whai362/PVT 在这项工作中,作者改进了PVT v1,提出了新的基线,包括(1)线性复杂度注意层,(2)重叠patch嵌入,(3)卷积前馈网络。通过这些修改,PVT v2PVT v1的计算复杂度降低到线性,并在分类、检测和分割等基本视觉任务上取得了显著的改进。 PVT v1 [33]有三个主要限制: (1)与ViT [8]类似,当处理高分辨率输入(
Transformer系列:Pyramid Vision TransformerICCV2021)
weixin_34992700的博客
06-23 2063
PVT overcomes the difficulties of porting Transformer to various dense prediction tasks.
ICCV 2021 | LeViT: a Vision Transformer in ConvNet‘s Clothing for Faster Inference论文阅读笔记
tiantianwenwen的博客
07-30 962
论文:https://arxiv.org/abs/2104.01136 代码(刚刚开源): https://github.com/facebookresearch/LeViT ABSTRACT 我们设计了一系列的图像分类体系结构,在优化精度和效率之间权衡。我们的工作利用了基于最新发现注意力的架构,该架构在高度并行处理硬件上具有竞争力。我们回顾了许多文献中的卷积神经网络原理,将其应用于 transformers,特别是分辨率降低的激活图。我们还介绍了视觉 transformers中位置信息整合的新方法
芒果YOLOv8改进50:主干Backbone篇之PvT核心网络::首发改进ICCV顶会,特征金字塔Vision Transormer的首次应用,又快又好
包括YOLOv5、YOLOv7、YOLOv8等模型改进
03-05 828
YOLOv8改进ICCV顶会PvT Transformer网络
芒果YOLOv10改进40:主干Backbone篇之PvT核心网络::首发改进ICCV顶会,特征金字塔Vision Transormer的首次应用,又快又好
包括YOLOv5、YOLOv7、YOLOv8等模型改进
06-10 58
YOLOv10改进:主干Backbone篇之PvT核心网络::首发改进ICCV顶会,特征金字塔Vision Transormer的首次应用,又快又好
PVTv2来了!金字塔视觉Transformer重磅升级!三点改进,性能大幅提升
阿木寺的博客
06-29 9244
点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达本文转载自:AIWalkerPVTv2: Improved Baselines with Pyramid Vision ...
论文阅读:PVT v2: Improved Baselines with Pyramid Vision Transformer
qq_53086461的博客
11-08 1794
尽管卷积神经网络(cnn)在计算机视觉领域取得了巨大的成功,但本研究研究的是一种更简单、无卷积的骨干网络,可用于许多密集的预测任务。与最近提出的专门为图像分类而设计的视觉转换器(Vision Transformer, ViT)不同,我们引入了金字塔视觉转换器(Pyramid Vision Transformer, PVT),它克服了将Transformer移植到各种密集预测任务中的困难。与目前的技术相比,PVT有几个优点。
【Computer Vision论文笔记】PVT && PVTv2
zjy_cn的博客
10-07 485
Pyramid Vision Transformer(PVT) 是致力于密集预测的主干网络的研究,是一个由Transformer组成的金字塔结构的网络,能够在多种视觉任务中使用。金字塔结构是CNN中一种非常经典的设计,作者在此将其应用到Transformer中,如下图:图(a)所示的 CNN 结构,feature maps会随着网络深度的增加,大小逐渐缩小。图(b)是ViT的维度变化情况,输入与输出大小保持不变。结合两者,就有了图(c)所示的一Tansformer为基础的金字塔结构。
深度学习】理解图像金字塔
qq_44703886的博客
12-05 4198
图像金字塔 笔者早已了解图像金字塔这个概念,但对于其的算法价值却一直未能明白,知道笔者看到一篇博客:https://blog.csdn.net/tengfei461807914/article/details/78175095,对图像金字塔的理解如醍醐灌顶。 首先从尺度空间开始理解:找一张原分辨率1024×1024图片,在电脑上观看,十分清晰。现在把这图片的分辨率改成512×512,很明显图片看起来不再那么清晰,但是我们依然能判别图上显示的物体,这便是人眼+大脑的优势所在,无论分辨率下降多少,使原始图片看起
PVT v2 原理与代码解析
00000cj的博客
06-07 1493
针对PVT v1存在的问题,PVT v2引入了以下改进 线性空间降维注意力:通过使用线性空间降维注意力(linear spatial reduction attention)来降低计算成本 重叠的patch embedding:通过重叠的patch embedding来保留图像的局部连续性 卷积FFN:通过引入卷积feed-forward network来增强特征表示能力,并去掉了固定大小的位置编码,采用zero padding位置编码,从而提高了处理任意大小输入的灵活性
深度学习 06_图像金字塔(OpenCV系列)
March_A的博客
01-03 593
图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说, 图像金字塔是同一图像不同分辨率的子图集合.图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。高斯金字塔
金字塔transformer
10-18
金字塔Transformer是一种基于Transformer的神经网络模型,它的主要特点是在Transformer的基础上增加了金字塔结构,可以更好地处理长文本序列。具体来说,金字塔Transformer将输入序列分成多个子序列,每个子序列都会经过一个独立的Transformer编码器,然后将所有子序列的编码结果拼接起来作为最终的编码结果。这种结构可以有效地减少模型对内存的需求,同时也能够提高模型的性能。
写文章

热门文章

  • 深度学习:STGCN学习笔记 27958
  • 深度学习:GCN(图卷积神经网络)理论学习总结 20524
  • 【深度学习】CNN+Transformer汇总 18017
  • 深度学习:训练、验证,保存模型,加载模型,测试,代码-案例写法总结 13770
  • 深度学习-视频行为识别:论文阅读——双流网络(Two-stream convolutional networks for action recognition in videos) 12785

分类专栏

  • pytorch深度学习 13篇
  • 软件安装 2篇
  • 代码错误记录 1篇
  • 可视化 1篇
  • transformers 8篇
  • 语义分割 13篇
  • 论文阅读 16篇
  • 语义分割实验 1篇
  • 数据集 1篇
  • 实验代码 2篇
  • 综述 2篇
  • 步态识别 6篇
  • 行为识别 3篇
  • 安装python包 1篇
  • 2S-AGCN 1篇
  • STGCN 1篇
  • GCN 3篇
  • GAT 1篇
  • 案例代码总结 5篇
  • GNN 2篇

最新评论

  • 【深度学习】步态识别-论文笔记:(ICCV-2021)用于步态识别的3D局部卷积神经网络

    小杜今天学AI了吗: 请问达摩院视频讲解还有吗?文章链接里面找不到,可以分享一下吗

  • 【深度学习】语义分割:论文阅读:(2021-12)Mask2Former

    weixin_42592036: 速度还是很慢,比maskformer还慢

  • 【深度学习】(ICCV-2021)PVT-金字塔 Vision Transformer及PVT_V2

    DQYanZhixuan: 请问这个怎么插在YOLOv8上啊

  • 【深度学习】语义分割-综述(卷积)

    anaconda2022: 大佬请问最后的汇总表有来源吗?

  • 【深度学习】(ICCV-2021)PVT-金字塔 Vision Transformer及PVT_V2

    hulahula11: 请问为什么第一个patch embedding 的C1是64而不是48?

大家在看

  • 短剧小程序,打造专属短剧观看平台
  • 判断网站需不需要改版的几个要点 199
  • DFMEA和PFMEA分别是什么?有哪些区别?工具和模板?成功案例
  • 道路车辆功能安全 ISO 26262标准(6-3)—软件级产品开发 479
  • Java中的顺序结构和分支结构 482

最新文章

  • 【ubantu】服务器深度学习配置记录
  • 【代码错误记录】显示数据集图片-图片tensor问题
  • 【深度学习】语义分割:论文阅读:(2021-12)Mask2Former
2022年29篇
2021年17篇

目录

目录

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家玻璃钢园林雕塑制作厂郑州酒店玻璃钢雕塑大连玻璃钢雕塑批发价格如何海沧园林玻璃钢雕塑香港过年商场美陈上海玻璃钢马雕塑价格西安玻璃钢雕塑文化内涵河源发光小品玻璃钢雕塑制作安庆酒店玻璃钢花盆容桂玻璃钢人物雕塑一键成交惠州定制玻璃钢雕塑大同玻璃钢花盆花器丽水多彩玻璃钢雕塑哪家便宜玻璃钢欧式天使雕塑设计梅州主题玻璃钢雕塑质优价廉河南玻璃钢造型雕塑玻璃钢超人雕塑佛山玻璃钢雕塑装饰品玻璃钢雕塑是什么工艺冷水江玻璃钢造型雕塑天虹百货商场美陈北京开业商场美陈价钱新民商场玻璃钢雕塑连云港小区玻璃钢雕塑公司普洱市玻璃钢雕塑公司广东大型主题商场美陈哪家好西宁玻璃钢卡通雕塑价格秦皇岛玻璃钢仿铜雕塑商场美陈都用什么玻璃钢花盆能用多少年香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化