【CVPR2022 | TopFormer: Token Pyramid Transformer for Mobile Semantic Segmentation介绍及复现】

CVPR2022 | TopFormer介绍及复现



前言

论文名称TopFormer: Token Pyramid Transformer for Mobile Semantic Segmentation
开源代码https://github.com/hustvl/TopFormer

虽然视觉transformers(ViTs)在计算机视觉领域取得了巨大的成功,但其高昂的计算成本阻碍了其在移动设备语义分割等密集预测任务中的应用。在本文中,我们提出了一个移动友好的架构,名为Token
Pyramid Vision Transformer(TopFormer)。TopFormer将来自不同尺度的token作为输入,产生尺度感知的语义特征,然后将这些特征注入到相应的token中,以增加表示。实验结果表明,我们的方法在多个语义分割数据集上显著优于基于CNN和基于ViT的网络,并且在准确性和延迟之间取得了很好的平衡。在ADE20K数据集上,TopFormer在mIoU上的精度比MobileNetV3高5%。

TopFormer介绍

1.Introduction

  Vision Transformer(ViTs)在图像分类、目标检测和语义分割等少数视觉任务中显示出了相当强的效果。尽管取得了成功,但是具有全注意力机制的Transformer体系结构需要强大的计算资源,这超出了许多移动和嵌入式设备的能力。在本文中,我们的目标是探索一个移动友好的Vision Transformer。
  为了使Vision Transformer适应各种密集的预测任务,最近的视觉Transformer如PVT、CvT、LeViT、MobileViT都采用分层结构,这种结构通常用于卷积神经网络(CNNs)中,如AlexNet、ResNet。这些Vision transformer将全局自注意及其变体应用于高分辨率Token,由于Token数量的二次复杂度带来了沉重的计算成本。
  为了提高效率,最近的一些工作,例如Swin Transformer, Shuffle Transformer, Twins和HR-Former,计算本地/窗口区域内的自注意。然而,窗口分区在移动设备上非常耗时。此外,Token slimming和Mobile-Former通过减少Token数量来降低计算能力,但牺牲了它们的识别准确性。
  在这些视觉变压器中,MobileViT和mobile - former是专门为移动设备设计的。它们都结合了CNNs和ViTs的优势。在图像分类方面,MobileViT在相同数量的参数下比MobileNets具有更好的性能。Mobile-Former以更少的失败次数获得比mobilenet更好的性能。然而,与mobilenet相比,它们在移动设备上的实际延迟方面并没有显示出优势,正如所报道的那样。它提出了一个问题:是否有可能设计移动友好的网络,可以在移动语义分割任务上取得比mobilenet更低延迟的更好的性能?
  受MobileViT和Mobile-Former的启发,我们也利用了CNNs和ViTs的优势。一个基于CNN的模块,标记金字塔模块,用来处理高分辨率的图像,快速产生局部特征金字塔。考虑到移动设备上的计算能力非常有限,这里我们使用几个堆叠的轻量级MobileNetV2块和快速下采样策略来构建Token pyramid。为了获得丰富的语义和较大的接受域,采用基于ViT的模块,记作语义提取器,并以Token作为输入。为了进一步降低计算成本,使用平均池操作符将Token减少到一个非常小的数字,例如,输入大小的1/(64×64)。与ViT、T2T-ViT和LeViT不同的是,我们使用嵌入层的最后一个输出作为输入标记,将来自不同尺度(阶段)的标记汇集到非常小的数字(分辨率)中,并沿着通道维度将它们连接起来。然后将新的Token输入到Transformer块中,以产生全局语义。由于Transformer块中的残留连接,学习到的语义与Token的规模相关,表示为感知规模的全局语义。
  为了在密集预测任务中获得强大的层次特征,该方法将感知尺度的全局语义通过不同尺度的标记通道进行分割,然后将感知尺度的全局语义与对应的标记进行融合,以增强表示。扩增标记被用作分割头的输入。为了证明我们的方法的有效性,我们对具有挑战性的分割数据集:ADE20K , Pascal Context和COCOStuff进行了实验。我们检查硬件上的延迟,例如,一个现成的基于arm的计算核心。如图1所示,我们的方法获得的结果比mobilenet更低的延迟。为了证明该方法的通用性,我们还在COCO数据集上进行了目标检测实验。总之,我们的贡献如下。
  提出的TopFormer以来自不同尺度的Token 作为输入,并将Token 集中到非常小的数字中,以便以非常低的计算成本获得尺度感知语义。
  语义注入模块可以将感知尺度的语义注入到相应的令牌中,从而构建强大的层次特征,这对于密集的预测任务至关重要。
  提议的基础模型可以达到比MobileNetV3更好的5% mIoU,在基于arm的移动设备上的ADE20K数据集上具有更低的延迟。这个小版本可以在基于arm的移动设备上进行实时细分,结果很有竞争力。

2.网络结构

在这里插入图片描述

  我们的网络由几个部分组成:Token Pyramid Module, Semantics Extractor, Semantics Injection Module 和Segmentation Head。Token Pyramid Module以图像作为输入并产生Token Pyramid。Vision Transformer用作语义提取器,以Token Pyramid为输入,产生尺度感知语义。语义被注入到相应规模的标记中,以通过语义注入模块增加表示。最后,Segmentation Head使用增强的Token Pyramid来执行分割任务。接下来,我们将介绍这些模块的详细信息。

2.1 Token Pyramid Module

  受MobileNet的启发,提议的Token Pyramid Module由堆叠的MobileNet块组成。与mobilenet不同,Token Pyramid Module的目标不是获取丰富的语义和大的接受域,而是使用更少的块来构建Token Pyramid。
我们的Token Pyramid Module首先将图像通过一些MobileNetV2块来产生一系列令牌{T1,…, TN},其中N为尺度个数。之后,令牌{T1,…, TN},平均池化到目标大小,例如,H/64×W/64。最后,将来自不同尺度的Token沿通道维串接以产生新的Token。新的Token将被输入Vision Transformer以产生可感知尺度的语义。因为新的Token数量很少,所以即使新Token有很大的通道,Vision Transformer也可以以非常低的计算成本运行。

2.2 Vision Transformer as Scale-aware Semantics

  尺度感知语义提取器由几个堆叠的Transformer块组成。变压器块的数量为L。变压器块由多头注意模块、前馈网络(FFN)和剩余连接组成。为了保持令牌的空间形状并减少重塑次数,我们用1 × 1卷积层代替线性层。此外,TopFormer的非线性激活都是ReLU6而不是ViT中的GELU函数。
对于Multi-head Attention模块,我们按照LeViT[12]的设置,将key K和queries Q的head尺寸设置为D = 16,将value V的head设置为2D = 32 channels。减少K和Q的通道可以降低计算注意映射和输出时的计算成本。同时,我们还去掉了层标准化层,并在每个卷积上附加一个批量标准化。在推理过程中,可以将批处理归一化与前面的卷积合并,在层归一化上运行速度更快。

2.3 Semantics Injection Module and Segmentation Head

  在获得尺度感知语义之后,我们将它们与其他标记TN直接相加。然而,标记{T1,…, TN}和尺度感知语义。为此,引入语义注入模块以在融合这些标记之前缓解语义差距。如图2所示,语义注入模块(SIM)以Token Pyramid模块的局部令牌和Vision Transformer的全局语义作为输入。局部Token通过1 × 1卷积层传递,然后进行批量归一化,生成要注入的特征。将全局语义输入到1×1卷积层,然后是批处理归一层和sigmoid层,生成语义权值,同时,全局语义也经过1×1卷积层,然后是批处理归一层。这三个输出具有相同的大小。然后,通过Hadamard生成将全局语义注入到局部令牌中,并将注入后的特性添加到全局语义中。多个SIMs的输出共享相同数量的通道,记为M。
  语义注入后,不同尺度的扩充Token捕获了丰富的空间和语义信息,这对语义分割至关重要。此外,语义注入还消除了标记之间的语义鸿沟。该分割方法首先将低分辨率令牌向上采样到与高分辨率令牌相同的大小,然后在元素层面上对所有尺度的令牌进行求和。最后,特征经过两个卷积层生成最终的分割图。
在这里插入图片描述在这里插入图片描述

3.Experiments

在这里插入图片描述

TopFormer复现

环境配置真的很重要,各种版本的包要兼容
开源代码https://github.com/hustvl/TopFormer

大家这里就先按照我这里的版本安装,以免出现问题。

步骤1.安装pytorch

我用的是RTX3090所以cuda版本要求11.x。

pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

步骤2.使用mim安装mmcv-full

pip install -U openmim
mim install mmcv-full==1.3.14

根据系统的类型、CUDA 版本、PyTorch 版本以及 MMCV 版本选择相应的安装命令可以参考https://mmcv.readthedocs.io/zh-cn/1.x/get_started/installation.html#pip

列举一下复现过程可能遇到的一些问题:

  1. ModuleNotFoundError: No module named ‘mmcv.runner
from mmcv.runner import get_dist_info, init_dist
from mmcv.utils import Config, DictAction, get_git_hash

如果这里直接默认安装不指定相应的mmcv版本就很有可能出现这个错误。因为mmcv后期的版本架构变了,runner在mmengine包中。

  1. AssertionError: MMCV==1.7.1 is used but incompatible. Please install mmcv>=1.3.13, <=1.5.0.
    在这里插入图片描述

  2. tools/dist_train.sh: 7: Bad substitution
    在这里插入图片描述

下面是README.md中的代码

sh tools/dist_train.sh local_configs/topformer/<config-file> <num-of-gpus-to-use> --work-dir /path/to/save/checkpoint

我们如何按照上面代码运行可能提示tools/dist_train.sh: 7: Bad substitution,我们只需要将sh改成bash

bash tools/dist_train.sh local_configs/topformer/<config-file> <num-of-gpus-to-use> --work-dir /path/to/save/checkpoint

例如:

bash tools/dist_train.sh local_configs/topformer/topformer_base_1024x512_80k_2x8city.py 1 --work-dir /path/to/save/checkpoint

总结

提示:这里对文章进行总结:

以上就是今天要讲的内容,本文仅仅简单介绍了TopFormer及复现,有问题欢迎评论区留言!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: CVPR2022是计算机视觉领域的顶级国际会议,而Transformer是一种基于自注意力机制的神经网络模型,已经在自然语言处理领域取得了很大的成功。在计算机视觉领域,Transformer也被广泛应用于图像生成、目标检测、图像分割等任务中。因此,CVPR2022中关于Transformer的研究和应用将会是一个热门话题。 ### 回答2: CVPR2022是计算机视觉领域内的一场重要学术会议,其中涉及到了许多最新的技术和研究成果。其中,Transformer是一个备受关注的话题。 Transformer是一种基于注意力机制的神经网络结构,最初是被提出作为解决自然语言处理任务的一种方法。但是,后来人们发现Transformer同样适用于计算机视觉领域中的各种任务,如目标检测、图像分割、图像生成等。 在CVPR2022中,许多研究人员展示了他们基于Transformer的新方法和改进。其中,一些新方法表现出了很好的性能,证明了Transformer在计算机视觉领域中的应用前景。 另外,还有一些关于Transformer的应用研究值得关注。例如,一些研究人员提出了一种基于Transformer的迁移学习方法,可以将已经训练好的模型应用于新的数据集,从而提高模型的泛化能力。此外,还有一些研究人员探究了Transformer结构在图像内部表示方面的作用,以及如何优化Transformer以提高其计算效率等问题。 总之,Transformer在计算机视觉领域中的应用前景十分广阔,CVPR2022中越来越多的研究人员开始关注并致力于Transformer的发展和应用,相信在不久的将来,Transformer将会在计算机视觉领域中扮演更加重要的角色。 ### 回答3: CVPR是计算机视觉领域的顶级国际学术会议。每年,来自世界各地的研究人员都会在该会议上展示他们的最新研究成果,并分享他们的见解和经验。CVPR2022 TransformerCVPR2022的一个重要话题,它展示了近年来该领域中的最新技术。 Transformer是一种用于自然语言处理(NLP)和计算机视觉(CV)的深度学习模型。该模型在2017年由谷歌公司提出,并在机器翻译任务中获得了巨大的成功。近年来,Transformer已被广泛应用于计算机视觉领域,并在图像分类、目标检测、图像分割、人体姿势估计等任务上取得了优异的结果。 CVPR2022 Transformer展示了一系列最新的技术和应用。首先,该会议涵盖了Transformer模型的各种变体,包括BERT、RoBERTa、GPT和DeiT等。这些变体旨在通过使用更好的语言和图像表示方法来提高模型的性能。其次,该会议还探讨了Transformer在各种计算机视觉任务中的应用,如自然场景文本识别、物体检测和图像生成等。 与传统的卷积神经网络(CNNs)相比,Transformer模型具有许多优势。首先,Transformers可以捕获长期依赖性,因此它们在处理序列数据时更加有效。其次,Transformers具有自注意力机制,这意味着它们能够高效地对重要信息进行集中处理。最后,Transformers可以通过使用预训练模型来提高其性能,这使得它们更适合于小样本或零样本学习。 总之,CVPR2022 Transformer是计算机视觉领域中的一个重要话题,它展示了这一深度学习模型在图像处理中的最新技术和应用。Transformer模型的优越性能使得它成为计算机视觉领域中的一项关键技术,将随着时间的推移变得更加成熟和广泛应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HuangZouZou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值