EfficientViT: Multi-Scale Linear Attention for High-Resolution Dense Prediction——多尺度线性注意力用于高分辨率密集预测

   日期:2024-12-26     作者:xhb273511       评论:0    移动:http://w.yusign.com/mobile/news/5041.html
核心提示:晚上闲下来后整体阅读了EfficientViT,一种新的高分辨率视觉模型家族,专为高效的高分辨率密集预测任务设计。主要内

晚上闲下来后整体阅读了EfficientViT,一种新的高分辨率视觉模型家族,专为高效的高分辨率密集预测任务设计。主要内容包括

  1. 问题背景:高分辨率密集预测在实际应用中具有重要意义,但现有模型计算成本高,难以在硬件设备上部署。

  2. 解决方案

    • EfficientViT:提出了一种新的视觉transformer模型家族,核心是多尺度线性注意力模块。

    • 多尺度线性注意力:通过轻量级和硬件高效的操作实现全局感受野和多尺度学习,避免了传统模型中的低效操作(如软注意力和大核卷积)。

  3. 方法特点

    • ReLU线性注意力:替代软注意力,实现全局感受野和线性计算复杂度。

    • 多尺度学习:通过小核卷积聚合附近token生成多尺度token,增强局部信息提取和多尺度学习能力。

    • 深度卷积:在FFN层中插入深度卷积,进一步提高局部特征提取能力。

  4. 实验结果

    • 语义分割:在Cityscapes和ADE20K数据集上显著提高了效率,性能优于现有SOTA模型。

    • 超分辨率:在轻量级和高分辨率SR任务上提供了更好的延迟-性能权衡。

    • 分割任何任务:在A100 GPU上提供了高达48.9倍的加速,同时保持或优于现有模型的零样本性能。

  5. 贡献

    • 提出了首个在高分辨率密集预测中展示线性注意力有效性的工作。

    • 设计了EfficientViT模型家族,显著提高了多种硬件平台上的速度和性能。

EfficientViT通过创新的多尺度线性注意力模块,显著提高了高分辨率密集预测任务的效率和性能,适用于多种硬件平台。这里主要是自己的阅读记录,感兴趣的话可以参考一下,如果想要直接阅读原文,可以来,如下所示

摘要

高分辨率密集预测支持许多吸引人的实际应用,如计算摄影、自动驾驶等。然而,巨大的计算成本使得在硬件设备上部署最先进的高分辨率密集预测模型变得困难。本文提出了EfficientViT,一种新的高分辨率视觉模型家族,采用新颖的多尺度线性注意力机制。与以往依赖于重软注意力、硬件效率低的大核卷积或复杂拓扑结构以获得良好性能的高分辨率密集预测模型不同,我们的多尺度线性注意力仅通过轻量级和硬件高效的操作实现了全局感受野和多尺度学习(高分辨率密集预测的两个理想特征)。因此,EfficientViT在包括移动CPU、边缘GPU和云GPU在内的多种硬件平台上显著加速了先前的最先进模型,并提供了显著的性能提升。在Cityscapes上没有性能损失的情况下,我们的EfficientViT在GPU延迟上比SegFormer和SegNeXt分别提供了高达13.9倍和6.2倍的减少。对于超分辨率,EfficientViT在提供0.11dB的PSNR增益的同时,比Restormer提供了高达6.4倍的加速。对于分割任何任务,EfficientViT在A100 GPU上提供了48.9倍的高吞吐量,同时在COCO上实现了略好的零样本实例分割性能。

图1:延迟/吞吐量 vs. 性能。所有性能结果均在单模型和单尺度推理下获得。GPU延迟/吞吐量结果在一款边缘GPU(Jetson AGX Orin)和一款云GPU(A100)上使用TensorRT和fp16获得。EfficientViT在多种硬件平台上始终实现了显著的速度提升,同时在Cityscapes、ADE20K和ImageNet上的性能与先前的分割/分类模型相同或更高。

1 引言

高分辨率密集预测是计算机视觉中的一个基本任务,在现实世界中有广泛的应用,包括自动驾驶、医学图像处理、计算摄影等。因此,在硬件设备上部署最先进(SOTA)的高分辨率密集预测模型可以惠及许多用例。

然而,SOTA高分辨率密集预测模型所需的计算成本与硬件设备的有限资源之间存在巨大差距。这使得在实际应用中使用这些模型变得不切实际。特别是,高分辨率密集预测模型需要高分辨率图像和强大的上下文信息提取能力才能正常工作。因此,直接从图像分类中移植高效的模型架构不适用于高分辨率密集预测。

本文介绍了EfficientViT,一种新的面向高效高分辨率密集预测的视觉transformer模型家族。EfficientViT的核心是一个新的多尺度线性注意力模块,能够在硬件高效的操作中实现全局感受野和多尺度学习。我们的模块受到先前SOTA高分辨率密集预测模型的启发。它们表明,多尺度学习[3, 4]和全局感受野[7]对于提高模型性能至关重要。然而,它们在设计模型时没有考虑硬件效率,这对于实际应用至关重要。例如,SegFormer[7]在主干中引入了软注意力[8]以获得全局感受野。然而,其计算复杂度与输入分辨率成二次关系,使其无法高效处理高分辨率图像。SegNeXt[9]提出了一个具有大核卷积(核大小高达21)的多分支模块,以实现大感受野和多尺度学习。然而,大核卷积需要硬件上的特殊支持才能实现良好的效率[10, 11],这在硬件设备上通常不可用。

因此,我们的模块设计原则是在避免硬件低效操作的同时实现这两个关键特征。具体来说,我们提出用轻量级的ReLU线性注意力[12]替代低效的软注意力,以获得全局感受野。通过利用矩阵乘法的结合性,ReLU线性注意力可以将计算复杂度从二次降低到线性,同时保持功能。此外,它避免了硬件不友好的操作,如软注意力,使其更适合硬件部署(图4)。

然而,仅靠ReLU线性注意力由于缺乏局部信息提取和多尺度学习能力,容量有限。因此,我们提出通过卷积增强ReLU线性注意力,并引入多尺度线性注意力模块,以解决ReLU线性注意力的容量限制。具体来说,我们通过小核卷积聚合附近的token以生成多尺度token。我们对多尺度token执行ReLU线性注意力(图2,以结合全局感受野和多尺度学习。我们还在FFN层中插入深度卷积,以进一步提高局部特征提取能力。

我们在两个流行的高分辨率密集预测任务上广泛评估了EfficientViT:语义分割和超分辨率。EfficientViT在先前的SOTA高分辨率密集预测模型上提供了显著的性能提升。更重要的是,EfficientViT不涉及硬件低效操作,因此我们的#FLOPs减少可以轻松转化为硬件设备上的延迟减少(图1)。

除了这些传统的高分辨率密集预测任务,我们将EfficientViT应用于分割任何任务[13],这是一个新兴的可提示分割任务,允许零样本转移到许多视觉任务。EfficientViT在A100 GPU上比SAM-ViT-Huge[13]实现了48.9倍的加速,而没有性能损失。我们总结了我们的贡献如下

  • 我们为高效的高分辨率密集预测引入了一个新的多尺度线性注意力模块。它在硬件上保持良好效率的同时实现了全局感受野和多尺度学习。据我们所知,我们的工作是首次展示线性注意力在高分辨率密集预测中的有效性。

  • 我们基于提出的多尺度线性注意力模块设计了EfficientViT,一种新的高分辨率视觉模型家族。

  • 我们的模型在语义分割、超分辨率、分割任何任务和ImageNet分类上在多种硬件平台(移动CPU、边缘GPU和云GPU)上展示了显著的加速,超过了先前的SOTA模型。

2 方法

本节首先介绍多尺度线性注意力模块。与先前的工作不同,我们的多尺度线性注意力同时通过硬件高效的操作实现了全局感受野和多尺度学习。然后,基于多尺度线性注意力,我们提出了名为EfficientViT的新型视觉transformer模型家族,用于高分辨率密集预测。

2.1 多尺度线性注意力

我们的多尺度线性注意力平衡了高效高分辨率密集预测的两个关键方面,即性能和效率。具体来说,从性能角度来看,全局感受野和多尺度学习是必不可少的。先前的SOTA高分辨率密集预测模型通过启用这些特征提供了强大的性能,但未能提供良好的效率。我们的模块通过以轻微的容量损失换取显著的效率提升来解决这个问题。

图2:EfficientViT的构建块(左)和多尺度线性注意力(右)。左:EfficientViT的构建块由一个多尺度线性注意力模块和一个带有深度卷积的FFN(FFN+DWConv)组成。多尺度线性注意力负责捕捉上下文信息,而FFN+DWConv负责捕捉局部信息。右:在通过线性投影层获取Q/K/V token后,我们通过轻量级的小核卷积聚合附近的token生成多尺度token。对多尺度token应用ReLU线性注意力,然后将输出连接并馈送到最终的线性投影层进行特征融合。

提出的多尺度线性注意力模块的图示如图2(右)所示。特别是,我们提出使用ReLU线性注意力[12]来实现全局感受野,而不是重软注意力[8]。虽然ReLU线性注意力[12]和其他线性注意力模块[14, 15, 16, 17]在其他领域已被探索,但它从未成功应用于高分辨率密集预测。据我们所知,EfficientViT是首次展示ReLU线性注意力在高分辨率密集预测中的有效性的工作。

图3:Softmax注意力 vs. ReLU线性注意力。与softmax注意力不同,由于缺乏非线性相似性函数,ReLU线性注意力无法生成尖锐的注意力分布。因此,其局部信息提取能力弱于softmax注意力。

此外,我们的工作引入了新颖的设计来解决其容量限制。

ReLU线性注意力的另一个关键优点是它不涉及硬件不友好的操作,如软注意力,使其在硬件上更高效。例如,图4显示了软注意力和ReLU线性注意力的延迟比较。在相似的计算下,ReLU线性注意力在移动CPU上显著快于软注意力。

解决ReLU线性注意力的局限性。 尽管ReLU线性注意力在计算复杂度和硬件延迟方面优于软注意力,但ReLU线性注意力有局限性。图3可视化了软注意力和ReLU线性注意力的注意力图。由于缺乏非线性相似性函数,ReLU线性注意力无法生成集中的注意力图,使其在捕捉局部信息方面较弱。

为了缓解其局限性,我们提出通过卷积增强ReLU线性注意力。具体来说,我们在每个FFN层中插入深度卷积。结果的构建块概述如图2(左)所示,其中ReLU线性注意力捕捉上下文信息,FFN+DWConv捕捉局部信息。

图4:Softmax注意力和ReLU线性注意力的延迟比较。由于去除了硬件不友好的操作(如softmax,ReLU线性注意力在相似的计算下比softmax注意力快3.3-4.5倍。延迟在Qualcomm Snapdragon 855 CPU上使用TensorFlow-Lite测量,批量大小为1,fp32。

此外,我们提出聚合附近Q/K/V token的信息以获得多尺度token,以增强ReLU线性注意力的多尺度学习能力。此信息聚合过程对每个头中的每个Q、K和V独立进行。我们仅使用小核深度可分离卷积[18]进行信息聚合,以避免损害硬件效率。在实际实现中,独立执行这些聚合操作在GPU上效率低下。因此,我们利用组卷积来减少总操作数。具体来说,所有DWConvs融合为一个单一的DWConv,所有1x1 Convs合并为一个单一的1x1组卷积(图2右,其中组数为3 × #heads,每组中的通道数为d。在获得多尺度token后,我们对它们执行ReLU线性注意力以提取多尺度全局特征。最后,我们将特征沿头维度连接,并将其馈送到最终的线性投影层以融合特征。

2.2 EfficientViT架构

我们基于提出的多尺度线性注意力模块构建了一个新的视觉transformer模型家族。核心构建块(表示为“EfficientViT模块”)如图2(左)所示。EfficientViT的宏观架构如图5所示。我们使用标准的backbone-head/encoder-decoder架构设计。

图5:EfficientViT的宏观架构。我们采用标准的backbone-head/encoder-decoder设计。我们在backbone的第3和第4阶段插入EfficientViT模块。按照常见做法,我们将最后三个阶段(P2、P3和P4)的特征馈送到head。为了简单和高效,我们使用加法来融合这些特征。我们采用了一个简单的head设计,包括几个MBConv块和输出层。

  • Backbone。 EfficientViT的backbone也遵循标准设计,由输入stem和四个阶段组成,特征图尺寸逐渐减小,通道数逐渐增加。我们在第3和第4阶段插入EfficientViT模块。对于下采样,我们使用步幅为2的MBConv。

  • Head。 P2、P3和P4表示第2、3和4阶段的输出,形成一个特征图金字塔。为了简单和高效,我们使用1x1卷积和标准上采样操作(如双线性/双三次上采样)来匹配它们的空间和通道尺寸,并通过加法融合它们。由于我们的backbone已经具有强大的上下文信息提取能力,我们采用了一个简单的head设计,包括几个MBConv块和输出层(即预测和上采样)。在实验中,我们经验性地发现这种简单的head设计足以实现SOTA性能。

除了密集预测,我们的模型还可以通过将backbone与任务特定的head结合,应用于其他视觉任务,如图像分类。

遵循相同的宏观架构,我们设计了一系列不同大小的模型,以满足各种效率约束。我们将这些模型分别命名为EfficientViT-B0、EfficientViT-B1、EfficientViT-B2和EfficientViT-B3。此外,我们为云平台设计了EfficientViT-L系列。这些模型的详细配置在我们的官方GitHub仓库中提供1。

Footnote 1: https://github.com/mit-han-lab/efficientvit

3 实验

3.1 设置

数据集。 我们在三个代表性的高分辨率密集预测任务上评估了EfficientViT的有效性,包括语义分割、超分辨率和分割任何任务。

表1:消融研究。mIoU和MACs在Cityscapes上以1024x2048的输入分辨率进行测量。我们调整模型的宽度,使它们具有相同的MACs。多尺度学习和全局感受野对于获得良好的语义分割性能是必不可少的。

对于语义分割,我们使用两个流行的基准数据集:Cityscapes[24]和ADE20K[25]。此外,我们评估了EfficientViT在两种超分辨率设置下的性能:轻量级超分辨率(SR)和高分辨率SR。我们在DIV2K[26]上训练模型进行轻量级SR,并在BSD100[27]上进行测试。对于高分辨率SR,我们在FFHQ[28]的前3000张训练图像上训练模型,并在FFHQ的前500张验证图像上进行测试2。

Footnote 2: https://rb.gy/7jela

除了密集预测,我们还使用ImageNet数据集[29]研究了EfficientViT在图像分类上的有效性。

延迟测量。 我们在Qualcomm Snapdragon 8Gen1 CPU上使用Tensorflow-Lite3测量移动延迟,批量大小为1,fp32。我们使用TensorRT4和fp16在边缘GPU和云GPU上测量延迟。报告的延迟/吞吐量结果包括数据传输时间。

Footnote 3: https://www.tensorflow.org/lite

Footnote 4: NVIDIA Deep Learning TensorRT Documentation

实现细节。 我们使用Pytorch[30]实现我们的模型并在GPU上进行训练。我们使用AdamW优化器和余弦学习率衰减来训练我们的模型。对于多尺度线性注意力,我们使用双分支设计以在性能和效率之间取得最佳平衡,其中5x5附近的token被聚合以生成多尺度token。

对于语义分割实验,我们使用平均交并比(mIoU)作为评估指标。backbone使用在ImageNet上预训练的权重进行初始化,head随机初始化,遵循常见做法。

对于超分辨率,我们使用Y通道上的PSNR和SSIM作为评估指标,与先前的工作[31]相同。模型使用随机初始化进行训练。

3.2 消融研究

EfficientViT模块的有效性。 我们在Cityscapes上进行了消融研究实验,以研究EfficientViT模块的两个关键设计组件的有效性,即多尺度学习和全局注意力。为了消除预训练的影响,我们随机初始化训练所有模型。此外,我们调整模型的宽度,使它们具有相同的#MACs。结果总结在表1中。我们可以看到,移除全局注意力或多尺度学习都会显著损害性能。这表明它们对于在性能和效率之间实现更好的权衡都是必不可少的。

表2:ImageNet分类上的Backbone性能。‘r224’表示输入分辨率为224x224。‘bs1’表示延迟在批量大小为1的情况下进行测量。

ImageNet上的Backbone性能。 为了理解EfficientViT的backbone在图像分类中的有效性,我们按照标准训练策略在ImageNet上训练我们的模型。我们将结果总结并与SOTA图像分类模型进行比较,如表2所示。

尽管EfficientViT是为高分辨率密集预测设计的,但它在ImageNet分类上实现了极具竞争力的性能。特别是,EfficientViT-L2-r384在ImageNet上获得了86.0的top1准确率,比EfficientNetV2-L提高了0.3的准确率,在A100 GPU上实现了2.6倍的加速。

3.3 语义分割

Cityscapes。 表3报告了EfficientViT与SOTA语义分割模型在Cityscapes上的比较。EfficientViT在不牺牲性能的情况下显著提高了先前SOTA语义分割模型的效率。具体来说,与SegFormer相比,EfficientViT在边缘GPU(Jetson AGX Orin)上实现了高达13倍#MACs的节省和高达8.8倍的延迟减少,同时mIoU更高。与SegNeXt相比,EfficientViT在边缘GPU(Jetson AGX Orin)上提供了高达2.0倍的MACs减少和3.8倍的加速,同时保持更高的mIoU。在A100 GPU上,EfficientViT比SegNeXt提供了高达3.9倍的更高吞吐量,比SegFormer提供了10.2倍的更高吞吐量,同时实现了相同或更高的mIoU。在相似的计算成本下,EfficientViT还显著提高了先前SOTA模型的性能。例如,EfficientViT-B3在比SegFormer-B1更低的MACs下提供了+4.5 mIoU的增益。

表3:与SOTA语义分割模型在Cityscapes上的比较。所有模型的输入分辨率为1024x2048。具有相似mIoU的模型分组进行效率比较。

除了定量结果,我们还在Cityscapes上定性地可视化了EfficientViT和基线模型。结果如图6所示。我们可以发现,EfficientViT在GPU上实现更低延迟的同时,比基线模型更好地识别边界和小物体。

表4:与SOTA语义分割模型在ADE20K上的比较。按照常见做法,图像的短边调整为512。

ADE20K。 表4总结了EfficientViT与SOTA语义分割模型在ADE20K上的比较。与Cityscapes类似,我们可以看到EfficientViT在ADE20K上也实现了显著的效率提升。例如,EfficientViT-B1在比SegFormer-B1更高的mIoU下提供了5.2倍的MACs减少和高达3.5倍的GPU延迟减少。在+1.6 mIoU增益的情况下,EfficientViT-B2比SegNeXt-S减少了1.8倍的计算成本,并在Jetson AGX Orin GPU上运行速度快2.4倍。

3.4 超分辨率

表5展示了EfficientViT与SOTA基于ViT的SR方法(SwinIR[31]和Restormer[35])和SOTA基于CNN的SR方法(VapSR[36]和BSRN[37])的比较。EfficientViT提供了比所有比较方法更好的延迟-性能权衡。

                                                表5:与SOTA超分辨率模型的比较。

在轻量级SR上,EfficientViT在BSD100上提供了高达0.09dB的PSNR增益,同时在GPU延迟上保持相同或更低,与SOTA基于CNN的SR方法相比。与SOTA基于ViT的SR方法相比,EfficientViT在GPU上提供了高达5.4倍的加速,同时在BSD100上保持相同的PSNR。

                                                     图6:Cityscapes上的定性结果。

在高分辨率SR上,EfficientViT相对于先前的基于ViT的SR方法的优势变得更加显著。与Restormer相比,EfficientViT在GPU上实现了高达6.4倍的加速,并在FFHQ上提供了0.11dB的PSNR增益。

3.5 分割任何任务

我们通过利用EfficientViT替换SAM的图像编码器,构建了EfficientViT-SAM,一个新的加速分割任何模型家族。同时,我们保留了SAM的轻量级提示编码器和掩码解码器。训练过程包括两个阶段。首先,我们使用SAM的图像编码器作为教师,训练EfficientViT-SAM的图像编码器。其次,我们使用整个SA-1B数据集[13]端到端地训练EfficientViT-SAM。

图7:吞吐量 vs. COCO零样本实例分割mAP。EfficientViT-SAM是第一个加速的SAM模型,匹配/优于SAM-ViT-H[13]的零样本性能,提供了SOTA的性能-效率权衡。

我们在各种零样本基准上彻底测试了EfficientViT-SAM,以验证其有效性。表6展示了在COCO[38]和LVIS[39]上的零样本实例分割结果,提示使用ViTDet[40]预测的边界框。EfficientViT-SAM在性能/效率方面优于SAM-ViT-H[13]。特别是,EfficientViT-SAM-XL1在COCO和LVIS上优于SAM-ViT-H,同时在A100 GPU上提供了16.5倍的高吞吐量。

图7显示了EfficientViT-SAM与先前SAM模型的比较。EfficientViT-SAM是第一个加速的SAM模型,匹配/优于SAM-ViT-H[13]的零样本性能,提供了SOTA的性能-效率权衡。

除了基于框提示的实例分割,我们还在基于点提示的分割上评估了EfficientViT-SAM。结果总结在表7中。EfficientViT-SAM-XL1在大多数情况下优于SAM-ViT-H,特别是在给出更多点时。在LVIS上,当给出一个点时,我们发现SAM-ViT-H的性能优于EfficientViT-SAM-XL1。这可能是因为我们在端到端训练阶段没有交互式分割设置。需要进一步研究以改善单点设置的性能。

表6:零样本实例分割结果,提示使用ViTDet框。吞吐量在A100 GPU上使用TensorRT和fp16进行分析,包括图像编码器和SAM头。

                                                   表7:零样本点提示分割结果。

4 相关工作

高分辨率密集预测。 密集预测的目标是根据输入图像为每个像素生成预测。它可以被视为从每图像预测到每像素预测的图像分类的扩展。已经进行了大量研究来提高基于CNN的高分辨率密集预测模型的性能[1, 2, 3, 4, 5, 6]。

此外,还有一些工作旨在提高高分辨率密集预测模型的效率[41, 42, 43, 44]。尽管这些模型提供了良好的效率,但它们的性能远远落后于SOTA高分辨率密集预测模型。

与这些工作相比,我们的模型通过轻量级操作实现全局感受野和多尺度学习,提供了更好的性能和效率权衡。

高效的视觉Transformer。 虽然ViT在高计算区域提供了令人印象深刻的性能,但在低计算区域通常不如先前的有效CNN[45, 46, 47, 48]。为了缩小这一差距,MobileViT[49]提出通过用transformer进行全局处理替换卷积中的局部处理,结合CNN和ViT的优势。MobileFormer[50]提出通过双向桥并行化MobileNet和Transformer以进行特征融合。NASViT[51]提出利用神经架构搜索来搜索高效的ViT架构。

然而,这些模型主要关注图像分类,仍然依赖于具有二次计算复杂度的软注意力,因此不适用于高分辨率密集预测。

高效的深度学习。 我们的工作也与高效的深度学习相关,旨在提高深度神经网络的效率,以便我们可以在资源有限的硬件平台上部署它们,如手机和物联网设备。高效的深度学习中的典型技术包括网络剪枝[52, 53, 54]、量化[55]、高效模型架构设计[18, 56]和训练技术[57, 58, 59]。除了手动设计,许多最近的工作使用AutoML技术[60, 61, 62]来自动设计[47]、剪枝[63]和量化[64]神经网络。

5 结论

     本文地址:http://w.yusign.com/news/5041.html    述古往 http://w.yusign.com/static/ , 查看更多
 
特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

举报收藏 0打赏 0评论 0
 
更多>同类资讯
0相关评论

相关文章
最新文章
推荐文章
推荐图文
资讯
点击排行
{
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号