虽然ViT在计算机视觉方面取得了巨大的成功,但巨大的计算成本阻碍了它们在密集的预测任务上的应用,如在移动设备上的语义分割。
在本文中,作者提出了一种移动端友好的架构,名为Token Pyramid Vision Transformer (TopFormer
)。所提出的最优算法以不同尺度的Token
作为输入,产生尺度感知的语义特征,然后将其注入到相应的Token
中,以增强表征。
实验结果表明,TopFormer
在多个语义分割数据集上显著优于基于CNN
和ViT
的网络,并在准确性和实时性之间取得了良好的权衡。在ADE20K数据集上,TopFormer
的mIoU比MobileNetV3
的延迟更高5%。此外,TopFormer
的小版本在基于ARM的移动设备上实现实时推理,具有竞争性的结果。
开源地址:https://github.com/hustvl/TopFormer
1 背景 为了使ViT适应各种密集的预测任务,最近的ViTs,如PVT
、CvT
、LeViT
以及MobileViT
都采用了分层结构,类似的操作也用于卷积神经网络(CNNs),如AlexNet
和ResNet
。这些ViTs将全局自注意力及其变体应用到高分辨率Token
上,由于Token
数量的二次复杂度,这带来了巨大的计算成本。
为了提高效率,最近的一些工作,如Swin-Transformer
、Shuffle-Transformer
、Twins
和HR-Former
,都在计算在局部/窗口区域内的自注意力。然而,窗口分区在移动设备上是非常耗时的。此外,Token slimming
和Mobile-Former
通过减少Token
的数量而降低了计算能力,但也牺牲了它们的精度。
在这些ViTs中,MobileViT
和Mobile-Former
是专门为移动设备设计的。它们都结合了CNN和ViT的优势。在图像分类方面,MobileViT
比与参数数量相似的MobileNets
具有更好的性能。Mobile-Former
在比MobileNets
更少的FLOPs的情况下取得了更好的性能。然而,与MobileNets
相比,它们在移动设备上的实际延迟方面并没有显示出优势。这提出了一个问题:是否有可能设计出移动友好型网络,在移动语义分割任务上获得更好的性能?
MobileViT
和Mobile-Former
的启发,作者也利用了CNN和ViT的优势。构建了一个基于CNN的模块,称为Token Pyramid Module
,用于处理高分辨率图像,以快速生成局部特征金字塔。考虑到在移动设备上非常有限的计算能力,在这里使用一些堆叠的轻量级MobileNetV2 Block
和Fast Down-Sampling
策略来构建一个Token Pyramid
。
为了获得丰富的语义和较大的感受野,作者还构建了一个基于ViT的模块,即Semantics Extractor
,并将Token
作为输入。为了进一步降低计算成本,使用Average Pooling Operator
将Token
减少到一个非常小的数字,例如,输入大小的1/(64×64)。
与ViT
不同,T2T-ViT
和LeViT
使用嵌入层的最后一个输出作为输入Token
,而TopFormer
将来自不同尺度(阶段)的Token
池化到非常小的数字(分辨率),并沿着通道维度进行拼接。然后,新的Token
被输入到Transformer Block
中以产生全局语义。由于Transformer Block
中的残差连接学习到的语义与Token
的尺度有关,因此该模块被表示为Scale-aware Global Semantics
。
为了获得密集预测任务的强大层次特征,将尺度感知的全局语义通过不同尺度的Token
通道进行分割,然后将标度感知的全局语义与相应的Token
融合,以增强表示。增强的Token
被用作分割Head的输入。
为了证明方法的有效性,在具有挑战性的分割数据集上进行了实验:ADE20K,Pascal上下文和COCOStuff。并测试了硬件上的延迟,即一个现成的基于Arm的计算核心。
图1 如图1所示,TopFormer
比延迟较低的MobileNets
获得了更好的结果。为了证明方法的泛化性,还在COCO数据集上进行了目标检测实验。
综上所述,本文的贡献如下:
<> <>