[论文阅读]Visual Attention Network原文翻译

news2024/11/19 1:47:13

[论文链接]https://arxiv.org/abs/2202.09741

摘要

  虽然一开始是被设计用于自然语言处理任务的,但是自注意力机制在多个计算机视觉领域掀起了风暴。然而,图像的二维特性给自注意力用于计算机视觉带来了三个挑战。(1)将图像视作一维序列忽视了它们的二维结构;(2)二次复杂度对于高分辨率图像来说太昂贵了;(3)它只捕获了空间适应性而忽略了通道适应性。本文我们提出了一种新颖的被叫做大核注意力(Large Kernel Attention,LKA)的线性注意力使得自注意力中的自适应和长期相关性有效的同时避免其缺点。此外,我们提出了一个基于LKA的神经网络,其被命名为Visual Attention Network(VAN)。尽管非常简单,但是VAN在多个任务中的表现超越了大小相似版本的ViTs和CNNs,包括图像分类、目标检测、语义分割、全景分割、姿态估计等。例如,VAN-B6在ImageNet基准上实现了87.8%的准确率同时在全景分割任务上实现了最先进的性能(58.2 PQ)。此外,VAN-B2在ADE20K基准的语义分割任务中,mIoU超过了SWIN-T 4% (50.1 vs. 46.1),在COCO数据集的目标检测任务中AP超过了2.6% (48.8 vs. 46.2)。这为社区提供了一种新颖的简单而强大的基线方法。代码可在https://github.com/Visual-Attention-Network获取。

1.序言

  作为最基础的特征提取器,视觉主干在计算机视觉领域是一个基础的研究方向。在过去的十年间由于所具有得出色的特征提取性能,CNNs成为了不可获取得研究课题。在AlexNet重新开启了深度学习时代后,通过使用更深的网络、更高效的架构、更强的多尺度能力以及注意力机制,已经取得了一些突破,获得了更强大的视觉主干。由于平移不变性和共享滑动窗口策略,CNNs对于拥有任意大小输入的多种视觉任务固有的高效。更先进的视觉骨干网络通常会在各种任务中获得显著的性能提升,包括图像分类,目标检测,语义分割和姿态估计。
  基于观察反应时间和沿生物途径估计的信号传递时间,认知心理学和神经科学研究人员认为,人类视觉系统只详细处理可能的刺激的一部分,而其余部分几乎未被处理。选择性注意对于处理视觉中复杂的组合方面是一个重要的机制。注意机制可以看作是一个基于输入特征的自适应选择过程。自从全注意网络被提出以来,自注意模型(又称Transformer)迅速成为自然语言处理领域的主流架构。
  最近,Dosovitskiy等人通过将transformer主干引入计算机视觉,提出了ViT,在图片分类任务上超越了著名的CNNs。得益于其强大的建模能力基于transformer的视觉主干迅速占据了各种任务的排行榜,包括目标检测、语义分割等。
尽管取得了显著的成功,卷积运算和自关注仍然有其不足之处。卷积运算采用静态权重,缺乏自适应性,而这一点已被证明是至关重要的。又由于自注意最初是为一维NLP任务设计的,它将二维图像视为一维序列,这破坏了图像的关键的二维结构。由于它的二次计算和内存开销,处理高分辨率图像也很困难。此外,自注意是一种只考虑空间维度适应性而忽略通道维度适应性的特殊注意力,而这对于视觉任务来说也是重要的。
  在本文中,我们提出了一种新的线性注意力机制,称为大核注意力(large kernel attention, LKA),它是为视觉任务量身定制的。LKA吸收了卷积和自关注的优点,包括局部结构信息、远程依赖和适应性。同时也避免了它们在通道维度上忽略自适应性的缺点。 基于LKA,我们提出了一种新的视觉主干称为视觉注意网络(VAN),显著优于众所周知的基于CNN和基于Transformer的主干。本文的贡献总结如下:

  • 我们设计了一种新的线性注意机制计算机视觉的LKA,考虑了卷积和自关注的优点,同时避免了它们的缺点。在LKA的基础上,我们进一步引入了一种简单的视觉主干,称为VAN。
  • 我们在大量的实验中表明,在图像分类、目标检测、语义分割、实例分割、姿态估计等各种任务上,VANs的表现优于相似水平的ViTs和CNNs。
    在这里插入图片描述

2 相关工作

2.1 卷积神经网络

  如何有效地计算强大的特征表示是计算机视觉中最基本的问题。卷积神经网络利用局部上下文信息和平移不变性,极大地提高了神经网络效果。自AlexNet以来,CNN迅速成为计算机视觉的主流框架。为了进一步提高可用性,研究者们在CNNs的深度和重量方面投入了大量的精力。我们的工作与MobileNet有相似之处,MobileNet将标准卷积解耦为两个部分,深度卷积和逐点卷积(也称为1 × 1卷积)。我们的方法将卷积分解为三个部分:深度卷积、深度和空洞卷积和逐点卷积。得益于这种分解,我们的方法更适合于有效地分解大核卷积。我们还在方法中引入了注意机制以获得自适应特性。

2.2 视觉注意力方法

  注意力机制可以看作是一种根据输入特征进行自适应选择的过程,它在RAM中被引入到计算机视觉。它在许多视觉任务中提供了好处,如图像分类,目标检测和语义分割。计算机视觉中的注意力可分为通道注意力、空间注意力、时间注意力、分支注意力四种基本类别以及它们的结合如通道和空间注意力。每一种注意力在视觉任务中都有不同的效果。
  起源于NLP的自注意力是一种特殊的注意力机制。由于其在捕获远程依赖性和适应性方面的有效性,使得它在计算机视觉中发挥着越来越重要的作用。各种深度自注意力网络(又称vision-transformer)在不同的视觉任务上取得了明显优于主流CNNs的性能,显示了基于注意力的模型的巨大潜力。然而,自我注意最初是为NLP设计的。在处理计算机视觉任务时,它有三个缺点。(1)它将图像视为一维序列,忽略了图像的二维结构。(2)对于高分辨率图像,二次复杂度过于昂贵。(3)它仅实现了空间适应性,而忽略了通道维度的适应性。对于视觉任务,不同的通道通常代表不同的对象。通道适应性对视觉任务也很重要。为了解决这些问题,我们提出了一种新的视觉注意力方法,即LKA。它包含了自注意力机制的优点,如适应性和长期依赖。此外,它还利用了卷积的优点,如利用局部上下文信息。

2.3 视觉MLPs

  在CMMs出现之前,多层感知机(Multilayer Perceptrons, mlp)是一种流行的计算机视觉工具。但是,由于计算量大、效率低,使得长期以来MLP一直受到限制。最近的一些研究成功地将标准MLP解耦为空间MLP和通道MLP。这种分解大大减少了计算成本和参数量,从而释放出MLP的惊人性能。读者可参考最近的研究,以获得更全面的MLP综述。与我们的方法最相关的MLP是gMLP,它不仅分解了标准MLP,还引入了注意力机制。然而,gMLP有两个缺点。一方面,gMLP对输入大小比较敏感,只能处理固定大小的图像。另一方面,gMLP只考虑图像的全局信息,而忽略图像的局部结构。我们的方法可以充分利用它的优点,避免它的缺点。

3. 方法

3.1 大核注意力

  注意机制可以看作是一种自适应选择过程,它可以根据输入特征选择有区别的特征,并自动忽略噪声响应。注意力机制的关键步骤是生成表示不同区域重要性的注意力映射。要做到这一点,我们应该了解不同特征之间的关系。
在这里插入图片描述有  两种众所周知的方法来建立不同部分之间的关系。第一种是采用自注意机制获取远程依赖。自注意在计算机视觉中的应用有三个明显的缺点,在2.2节中已经列出。第二种是利用大核卷积构建相关性,生成注意力映射。但是这种方式也有明显的缺点。大核卷积带来了大量的计算开销和参数量。
  为了克服上面列出的缺点并利用自关注和大核卷积的优点,我们提出分解一个大核卷积操作来捕获远程关系。如图2所示,大核卷积可以被分为三个部分:空间局部卷积(深度卷积)、空间远程卷积(深度扩张卷积)和通道卷积(1×1卷积)。具体来说,我们可以把 K × K K \times K K×K的卷积分解成 ⌈ K d ⌉ × ⌈ K d ⌉ \lceil \frac Kd \rceil \times \lceil \frac Kd \rceil dK×dK深度空洞卷积空洞为   d \ d  d, 一个 ( 2 d − 1 ) × ( 2 d − 1 ) (2d−1)×(2d−1) (2d1)×(2d1)的深度卷积和一个1×1卷积。通过上述分解,我们可以以较小的计算成本和参数捕获远程关系。在获得远程关系后,我们可以估计一个点的重要性并生成注意力图。如图3(a)所示,LKA模块可以写成
在这里插入图片描述
其中, F ∈ R C × H × W F \in \Bbb R^{C \times H \times W} FRC×H×W是输入特征, A t t e n t i o n ∈ R C × H × W Attention \in \Bbb R^{C \times H \times W} AttentionRC×H×W表示注意力图。注意力图中的值代表每个特征的重要程度。 ⨂ \bigotimes 表示点积。与常见的注意方法不同,LKA不需要像sigmoid和softmax那样额外的归一化函数,如表3所示。我们还认为,注意力方法的关键作用是基于输入特征自适应地调整输出,而不是标准化的注意力图。如表1所示,我们提出的LKA结合了卷积和自注意力的优点。同时考虑了局部上下文信息、大接受野、线性复杂性和动态过程。此外,LKA不仅实现了空间维度的自适应性,还实现了通道维度的自适应性。值得注意的是,在深度神经网络中,不同的通道通常表示不同的对象同时通道维度的适应性对视觉任务也很重要。
在这里插入图片描述

3.2 视觉注意力网络(VAN)

  我们的VAN具有简单的层次结构,即输出空间分辨率递减的四个阶段序列,分别是 H 4 × W 4 \frac H4 \times \frac W4 4H×4W, H 8 × W 8 \frac H8 \times \frac W8 8H×8W, H 16 × W 16 \frac H{16} \times \frac W{16} 16H×16W H 32 × W 32 \frac H{32} \times \frac W{32} 32H×32W。其中, H H H W W W表示输入图片的宽和高。随着分辨率的降低,输出通道的数量也在增加。输出通道 C i C_i Ci变化如表5所示。
  正如图4中所示在每个阶段,我们首先对输入进行下采样,使用步长来控制下采样率。下采样后,一个阶段中的所有其他层保持相同的输出大小,即空间分辨率和通道数量。然后, L L L组批量归一化,1 × 1 卷积,GELU激活、大核注意力和前馈网络按顺序堆叠来提取特征。我们根据参数量和计算成本设计了VAN-B0、VAN-B1、VAN-B2、van - b3、VAN-B4、VAN-B5、VAN-B6七个架构。整个网络的细节如表5所示。
**复杂度分析。**我们给出了分解的参数量和浮点运算量。为了简化公式我们在计算过程中忽略了偏差带来的计算量。我们假设输入和输出特征具有相同大小的 H × W × C H × W × C H×W×C。参数量 P ( K , d ) P(K, d) P(K,d)和FLOPs F ( K , d ) F(K, d) F(K,d)可表示为:
在这里插入图片描述
其中, d d d表示空洞率, K K K表示核大小。根据FLOPs和参数的计算公式,FLOPs和参数的预算节省率是相同的。
实现细节
我们默认采用 K = 21 K = 21 K=21。当 K = 21 K = 21 K=21时,公式(3)在 d = 3 d = 3 d=3时取最小值,对应着 5 × 5 5 × 5 5×5的深度卷积和 7 × 7 7 × 7 7×7的空洞为3深度卷积。对于不同数量的通道数,具体参数如表2所示。结果表明,我们的分解方法在参数和FLOPs方面对大核卷积的分解具有明显的优势。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 实验

  在本节中,定量和定性实验展示了所提出方法的有效性和高效率。我们在ImageNet-1K和ImageNet-22K图像分类数据集、COCO目标检测、实例分割、全景分割和姿态估计基准以及ADE20K语义分割数据集上进行了定量实验。此外,我们通过在ImageNet验证集上使用GradCAM将实验结果和类激活映射(CAM)可视化。实验是基于Pytorch和Jittor的。

4.1 图像分类

4.1.1 ImageNet-1K 实验

设置
  我们在ImageNet-1K数据集上进行图像分类。它包含来自1000个不同类别的1.28M训练图像和50K验证图像。整个训练计划基本和[19]一致。我们采用随机裁剪、随机水平翻转、标签平滑、mixup、cutmix和随机擦除来增强训练数据。在训练过程中,我们使用动量=0.9,权重衰减= 5 × 1 0 − 2 5 \times10^{−2} 5×102的AdamW优化器训练了300个epoch,其中batchsize为1024。余弦调度和预热策略用于调整学习率(LR)。初始学习率设置为 5 × 1 0 − 4 5 \times 10^{−4} 5×104。 我们在注意力层中采用LayerScale的变体,用初值为
0.01的 x o u t = x + d i a g ( λ 1 , λ 2 , … λ d ) ( f ( x ) + x ) x_{out} = x + diag(λ_1, λ_2,… λ_d)(f(x) + x) xout=x+diag(λ1λ2λd)(f(x)+x)替换了 x o u t = x + d i a g ( λ 1 , λ 2 , … , λ d ) f ( x ) x_{out} = x + diag(λ_1, λ_2,…,λ_d)f(x) xout=x+diag(λ1λ2λd)f(x) ,获得比原始LayerScale更好的性能。指数移动平均(EMA)也被用于改进训练过程。在评估阶段,我们报告了在单一裁剪设置下ImageNet验证集的top-1精度。
消融实验
  我们进行了消融实验以证明LKA的每个组成部分都是必不可少的。为了快速得到实验结果,我们选择VAN-B0作为基线模型。表3的实验结果表明LKA的所有部分对于提高性能都是必不可少的。

  • DW-Conv
    DW-Conv可以利用图像的局部上下文信息。如果没有它,分类性能将下降0.5% (74.9% vs. 75.4%)这显示了在图片处理过程中局部结构信息的重要性。
  • DW-D-Conv
    DW-D-Conv表示深度空洞卷积,它在LKA中起捕获远程依赖的作用。如果没有它,分类性能将下降1.3%(74.1%对75.4%),这证明了我们所认为的远距离依赖对视觉任务至关重要这一观点。
  • Attention Mechanism
    注意机制的引入可以看作是使网络实现了自适应特性。得益于此,VAN-B0实现了约1.1% (74.3% vs. 75.4%)的改进。此外,用加法运算代替注意力的准确率也不低。
  • 1x1Conv
    这里,1 × 1 Conv捕获通道维度上的关系。结合注意机制,引入通道维度的适应性。提高了0.8% (74.6% vs. 75.4%)证明了通道维度适应性的必要性。
  • Sigmoid functions
    Sigmoid函数是一种将注意力映射从0归一化到1的常用归一化函数。然而,在我们的实验中,我们发现其对于LKA模块是不必要的。没有sigmoid,我们的VAN-B0达到0.2%
    (75.4% vs. 75.2%)的改进和更少的计算。

  通过以上分析,我们发现我们提出的LKA可以利用本地信息,捕获远程依赖关系,并且在通道和空间维度上都具有自适应性。此外,实验结果还证明了这些特性对识别任务都是积极的。标准卷积虽然可以充分利用局部上下文信息,但忽略了远程依赖性和适应性。对于自注意,虽然它可以捕获远程依赖关系,并且具有空间维度上的适应性,但它忽略了局部信息和空间维度上的适应性。同时,我们也在表1中总结了上述讨论。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  此外,我们还在表6中进行了消融研究,以分解不同大小的卷积核。我们可以发现分解21×21卷积比分解7×7卷积效果更好,这表明大内核对视觉任务至关重要。在分解一个较大的28×28卷积时,我们发现与分解一个21×21卷积相比,增益并不明显。因此,我们默认选择分解21×21卷积。
与现有方法的比较。
  表7给出了VAN与其他MLP、CNN和VIT的比较。在参数量和计算成本相似的情况下,VAN优于常见的CNNs (ResNet、ResNeXt、ConvNeXt等)、ViT(DeiT、PVT、Swin-Transformer等)和MLP(MLP-Mixer、ResMLP、gMLP等)。我们在图6中直观地展示了我们的方法与相似水平的经典方法在不同任务上的比较,可以清楚地看出我们方法的改进。在下面的讨论中,我们将在每个类别中选择一个具有代表性的网络。
  ConvNeXt是一种特殊的CNN,它吸收了ViTs的一些优点,如大的感受野(7×7卷积)和先进的训练策略(300次epoch,数据增强等)。VAN与ConvNeXt相比,由于VAN具有更大的感受野和适应能力VAN- b2比ConvNeXt-T提高了0.7%(82.8%对82.1%)。Swin - Transformer是一个著名的ViT变体,它采用了局部注意力和滑动窗口的方式。由于VAN对二维结构信息友好,具有更大的接受野,在通道维度上具有自适应性,VAN- b2比Swin - t高1.5% (82.8% vs. 81.3%)。对于MLP,我们选择gMPL。VAN-B2比gMLPS[72]高出3.2%(82.8%vs79.6%),这反映了局部的重要性。
吞吐量
  我们测试了Swin-transformer和VAN在RTX 3090硬件环境下的吞吐量。结果如表4所示。此外,我们还绘制了准确度-吞吐量图,如图5所示VAN实现了比Swin-transformer更好的精度-吞吐量权衡。
在这里插入图片描述

4.1.2 可视化

  类激活映射(Class activation mapping, CAM)是一种流行的可视化感兴趣区域(注意图)的工具。我们采用Grad-CAM来可视化VAN-B2模型产生的ImageNet验证集上的注意力。从图7的结果可以看出,VAN-B2可以清晰地聚焦到目标物体上。因此,可视化直观地证明了我们方法的有效性。此外,我们还比较了Swin - T、ConvNeXtT和VAN-B2产生的不同CAM。我们可以发现VANB2的激活区域更加准确。特别是当物体在图像中占主导地位时(最后3行),我们的方法具有明显的优势如图7所示,这表明它有能力获得长相关性。
在这里插入图片描述

4.1.3基于ImageNet-22K的预训练

设置
  ImageNet-22K是一个大规模图像分类数据集,包含约14M张图像和21841个分类。继Swin-Transformer和ConvNeXt之后,我们在没有使用EMA的情况下预训练了90个epoch的VAN。batchsize设置为8196。其他训练细节与ImageNet-1 k相同。在ImageNet-22K上进行预训练后,我们在ImageNet-1K上对模型进行了30个epoch的微调。我们用224 × 224的输入预训练我们的模型然后分别以224 × 224和384× 384的输入微调我们的模型。
结果
  我们比较了当前最先进的CNNs(例如:ConvNeXt , EFFNetV2)和Vit(例如:, Swin-Transformer,ViT和CoAtNet)。如表8所示,VAN在200M参数下达到87.8%的Top-1精度,在不同分辨率下超过了同级ViT、Swin -Transformer、EFFNetV2和ConvNeXt,证明了其较强的适应大规模预训练的能力。
在这里插入图片描述
在这里插入图片描述

4.2目标检测

设置
  我们在COCO 2017基准上进行了目标检测和实例分割实验,其包含训练集118K张,验证集5K张。
MMDetection被用作实现检测模型的代码库。为了公平比较,我们采用了与Swin Transformer和PoolFormer相同的训练/验证策略。多种检测模型(如Mask R-CNN、RetinaNet、Cascade Mask R-CNN、Sparse R-CNN 等),以证明我们方法的有效性。所有骨干模型都是在ImageNet上进行预训练的。
结果
  由表9和表10可以发现,在RetinaNet 1x和Mask R-CNN 1x的设置下,VAN的效果明显优于基于CNN的方法ResNet和基于transformer的方法PVT。此外,我们还在表11中比较了Swin-Transformer和ConvNeXt两种最先进的方法。结果表明,VAN在不同的检测方法(如Mask RCNN和Cascade Mask R-CNN)下都能达到最先进的性能。

4.3语义分割

设置
  我们在ADE20K上进行了实验,ADE20K包含150个语义类别用于语义分割。它按照20000、2000和3000的比例划分数据分别用于训练、验证和测试。MMSEG被用作基本框架,两个著名的分割头Semantic FPN和UperNet用于评估我们的VAN主干。为了公平比较,我们采用了[98]和[15]两种训练/验证方案,验证集的定量结果分别见表12的上、下部分。所有骨干模型都在ImageNet-1K或ImageNet-22K上预训练。
结果
  从表12的上半部分可以看出,在使用FPN的不同骨干网中,基于van的方法优于基于CNN (ResNet、ResNeXt)或基于Transformer的方法(PVT , PoolFormer , PVTv2)方法。例如,我们超越了四个PVTv2变体,分别调高了1.3 (B0), 0.4 (B1), 1.5(B2), 0.8 (B3) mIoU在相近参数量和FLOPs下。在表12的下半部分,与以往的基于CNN的方法和基于swin - transformer的方法相比,4种VAN变体在相近参数量和FLOPs的情况下也表现出优异的性能。例如,基于UperNet ,VAN-B2比ResNet-101和SwinT分别高5.2和4.0 mIoU。对于ImageNet-22K预训练模型,VAN的性能也优于Swin-Transformer和ConvNeXt,且计算开销更小,如表13所示。

4.4全景分割

设置
  我们在COCO全景分割数据集上进行全景分割,选择Mask2Former作为分割头。为了公平比较,我们采用MMDetection中的默认设置,并采用Mask2Former相同的训练/验证方案。所有的骨干模型都在ImageNet-1K或ImageNet-22K上预训练。
结果
  如表14所示,我们观察到VAN的表现在大和小模型上都更胜Swin-Transformer一筹。这里,VAN-B2超过Swin - T 1.7 PQ。此外,值得注意的是,VAN-B6达到了58.2 PQ,达到了全景分割任务的最先进的性能
在这里插入图片描述
在这里插入图片描述

4.5姿态估计

设置
  我们在COCO人体姿态估计数据集上进行姿态估计实验,该数据集包含200K张带有17个关键点。模型在COCO train 2017数据集上进行训练,并在COCO val 2017数据集上进行测试。我们采用SimpleBaseline作为解码器部分,与Swin-Transformer和PVT相同。所有实验均基MMPose。
结果
  实验结果见表15。对于256× 192的输入,VAN-B2超过Swin - T和PVT-S 2.5AP(74.9 vs. 72.4)和3.5AP (74.9 vs. 71.4),而计算量和参数量相似。此外,VAN-B2在更少的计算量和参数量情况下,在256 × 192大小输入时超过了Swin - B 2AP (74.9 vs. 72.9),在384 × 288输入时超过了1.8AP (76.7 vs. 74.9),除了基于Transformer的模型外,VAN-B2还超越了流行的基于CNN的模型HRNet-W32。

4.6细粒度分类

  我们使用CUB-200数据集进行细粒度分类,该数据集是常用的细粒度分类基准,包含11788张属于鸟类的200个子类的图片。我们没有为这个任务设计特定的算法,只是把最后一个线性层替换为200个类别。我们基于mmclassification实现我们的模型。表16的结果显示,VAN-B4在没有任何特殊设计的情况下达到了91.3%的Top-1准确率算法,超过了DeiT和ViT-B。

4.7显著性检测

  我们基于EDN进行显著性检测。我们用VAN替换主干,并在常见的显著性检测基准上进行实验,包括DUTS、DUT-O和PASCAL-S。表17的结果显示,VAN在所有数据集上都明显优于其他主ResNet和PVT。

5 讨论

  最近,基于变Transformer的模型迅速征服了各种视觉排行榜。我们知道,自注意力只是一种特殊的注意机制。然而,人们逐渐默认了自注意力,忽略了潜在的注意方法。本文提出了一种新颖的注意力模块LKA和基于CNN的网络VAN。在视觉任务上超过了最先进的基于Transformer的方法。我们希望这篇论文能够促使人们重新思考自注意力是否具有不可替代性,以及哪种注意力更适合于视觉任务。

6未来的工作

在未来,我们将从以下几个方向继续完善VAN:

  • 结构本身的不断改进在本文中,我们只展示了一个直观的结构。采用不同的内核大小、引入多尺度结构、使用多分支结构等都有很大的改进潜力。
  • 大规模自监督学习与迁移学习 VAN自然的结合了CNNs和ViTs的优势。一方面,VAN可以利用图像的二维结构信息,另一方面,VAN可以根据输入图像动态调整输出,适合自监督学习迁移学习。结合以上两点,我们认为VAN可以在图像自监督学习和迁移学习领域取得更好的表现。
  • 更多应用领域 由于资源有限,我们只在视觉任务中表现优异。在NLP的TCN等其他领域,VANs是否也能表现出色,仍值得探索。我们期待看到VANs成为通用模型。

7总结

  本文结合卷积和自注意力的优点,提出了一种新的视觉注意LKA算法。在LKA的基础上,我们构建了一个视觉主干VAN,在图像分类、目标检测、语义分割等视觉任务上达到了最先进的性能。在未来,我们将继续从第6节提到的方向改进这个框架。

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

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

相关文章

怎样获取字符串数组的长度_使用sizeof(array) / sizeof(array[0])

使用sizeof() C、C中没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢? 其中一种方法是使用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在使用时…

Unity 性能优化之Shader分析处理函数ShaderUtil.HasProceduralInstancing: 深入解析与实用案例

Unity 性能优化之Shader分析处理函数ShaderUtil.HasProceduralInstancing: 深入解析与实用案例 点击封面跳转到Unity国际版下载页面 简介 在Unity中,性能优化是游戏开发过程中非常重要的一环。其中,Shader的优化对于游戏的性能提升起着至关重要的作用。…

redis缓存详解

一、Redisson分布式锁存在问题 1、基于redis实现的分布式锁,如果redis集群出现master宕机,而从节点没有接收到锁对应的key,被选举成新的master就可能存在被其它线程加锁成功则存在加锁问题 2、 基于上面的问题,可以把redis分为多…

SpringBoot国际化配置组件支持本地配置和数据库配置

文章目录 0. 前言i18n-spring-boot-starter1. 使用方式0.引入依赖1.配置项2.初始化国际化配置表3.如何使用 2. 核心源码实现一个拦截器I18nInterceptorI18nMessageResource 加载国际化配置 3.源码地址 0. 前言 写个了原生的SpringBoot国际化配置组件支持本地配置和数据库配置 背…

口袋参谋:99.99%商家都学的防骗技巧!

​99%的淘宝天猫商家,必然都要解决一个问题!!! 如何让自己不被敲诈勒索且骗钱! 直接看真实案例 看这个骗子,是如何赤裸裸诈骗商家的! 如果你不想再当冤大头,告诉你一个99.99%有效…

SSM - Springboot - MyBatis-Plus 全栈体系(六)

第二章 SpringFramework 四、SpringIoC 实践和应用 3. 基于 注解 方式管理 Bean 3.1 实验一:Bean 注解标记和扫描 (IoC) 3.1.1 注解理解 和 XML 配置文件一样,注解本身并不能执行,注解本身仅仅只是做一个标记,具体的功能是框…

分类预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入分类预测

分类预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入分类预测 目录 分类预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于SVM-Adaboost支持向量机结合Ada…

Python 图形化界面基础篇:理解 Tkinter 主事件循环

Python 图形化界面基础篇:理解 Tkinter 主事件循环 引言什么是 Tkinter 主事件循环? Tkinter 主事件循环的使用步骤1:导入 Tkinter 模块步骤2:创建 Tkinter 窗口对象步骤3:设置窗口标题和添加 GUI 元素步骤4&#xff1…

router-link 和 router-view的区别

router-link 实现路由之间的跳转 router-view(路由出口组件 -> 渲染路径匹配到的视图组件) 当你访问的地址与路由path相符时,会将指定的组件替换该router-view router-link router-link 点击实现路由跳转,to属性指向目标地址&…

期权开户需要多长时间?一天可以开好吗?

期权开户一般需要一天到一个月的时间不等。根据不同券商的要求,开户流程和时间可能会有所不同。一些券商会要求客户进行验资,考试,仿真交易等环节,因此需要花费一定的时间来审核和激活账户,下文介绍期权开户需要多长时…

Mybatis-Plus 批量插入数据时报错 java.lang.Object Not Found TableInfoCache

文章目录 前言问题回溯排查过程总结 前言 报错堆栈信息如下,基本是mybatis-plus源码中的一些东西: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: java.lang.Object Not Found TableInfoCache.at com.baomidou.mybatisplus.core.to…

安装wps后,回收站右键菜单出现“恢复误删文件”,通过注册表的方式去掉。

免费的才是最贵的。垃圾流氓软件。 这个东西点开会给你下载一个叫金山数据恢复大师的看起来不知道多少年的老古董。 win R 输入regedit打开注册表按照路径寻找:HKEY_CLASSES_ROOT\CLSID{645FF040-5081-101B-9F08-00AA002F954E}\shellex\ContextMenuHandlers 大功…

黑马JVM总结(五)

(1)方法区 它是所有java虚拟机 线程共享的区,存储着跟类的结构相关的信息,类的成员变量,方法数据,成员方法,构造器方法,特殊方法(类的构造器) 方法区在虚拟机…

makefile之链接静态库

make之链接静态库 (1)方法一: 指定静态库全路径和全名 APP_S_LIBS ./app_lib/libhost.a $(CC) $(CFLAGS) $(SRCOBJ) $(APP_S_LIBS) -o $(TARGET) APP_HEAD_DIR -I./include #APP_LIBS_DIR -L ./app_lib#APP_S_LIBS -lhost APP_S_LIBS ./app_lib/libhost.aCFLAGS $(APP_…

线性代数的本质(一)

文章目录 向量空间向量及其性质基与维数向量的坐标运算 《线性代数的本质》 - 3blue1brown 高中数学A版选修4-2 矩阵与变换 《线性代数及其应用》(第五版) 《高等代数简明教程》- 蓝以中 向量空间 In the beginning Grant created the space. And Grant said, Let there be vec…

ClickHouse进阶(十二):Clickhouse数据字典-2-字典类型

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客 📌订阅…

buuctf crypto 【[GXYCTF2019]CheckIn】解题记录

1.打开文件,发现密文 2.一眼base64,解密一下 3.解密后的字符串没有什么规律,看了看大佬的wp,是rot47加密,解密一下(ROT5、ROT13、ROT18、ROT47位移编码)

第一章 计算机系统概述 五、中断和异常、系统调用

目录 一、中断的作用 二、中断的类型 1、内中断(异常) 2、外中断 三、中断机制的基本原理 四、系统调用 1、定义: 2、与库函数的区别 3、按功能分类 4、作用 一、中断的作用 1、“中断”是让操作系统内核夺回CPU使用权的唯一途径 …

防火墙防火墙

什么是防火墙 防火墙是一种网络安全设备或软件,用于监控和控制网络流量,以保护网络免受未经授权的访问、恶意攻击和数据泄露等威胁。 防火墙的作用 1. 访问控制:防火墙可以根据规则和策略,限制和过滤网络流量,只允许经…

Python基础教程:序列排序

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 话不多说,直接开搞,如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 正文 python中,一般在涉及到列表排序时,都用内置的sort()方法或者全局的sorted()方法&#xff0c…