点击下方卡片,关注「集智书童」公众号
想要了解更多:
前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF」
行业技术方案 👉「AI安防、AI医疗、AI自动驾驶」
AI模型部署落地实战 👉「CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」
欢迎扫描上方二维码,加入「 集智书童-知识星球 」,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!
免责声明
凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。
自从Transformer在NLP中得到广泛应用,其在CV领域的潜力也被认识到并激发了许多新方法。然而,在图像分块后,用图像块替换词标记进行Transformer的计算量巨大(例如,ViT),这限制了模型的训练和推理。在本文中,作者提出了一种新的Transformer中的注意力机制,称为交叉注意力(Cross Attention),它交替地在图像块内部进行注意力,而不是整个图像,以捕捉局部信息,并在从单通道特征图划分出的图像块之间应用注意力以捕捉全局信息。
这两种操作的运算量都小于标准Transformer中的自注意力。通过交替应用块内和块间的注意力,作者实现了交叉注意力,以保持较低的计算成本并构建了一个分层网络,称为交叉注意力Transformer(CAT),用于其他视觉任务。
作者的基础模型在ImageNet-1K上达到了最先进水平,并在COCO和ADE20K上提升了其他方法的性能,表明作者的网络有望成为通用 Backbone 网络。
1 Introduction
随着深度学习的发展以及卷积神经网络的应用,计算机视觉任务得到了极大的提升。自2012年以来,CNN在很长一段时间内主导了计算机视觉领域,作为各种视觉任务中的关键特征提取器,以及在其他任务中的任务分支编码器。基于CNN的各种网络有不同的改进和应用,下游任务也有这些多种方法,比如目标检测、语义分割等。
近来,Transformer 作为一种新的网络结构,在NLP领域取得了显著成果。得益于其提取全局信息的能力,还解决了如RNN和LSTM等序列模型难以并行化的问题,使得NLP的发展实现了重要的飞跃,同时也启发了计算机视觉任务。
近期的研究将Transformer引入计算机视觉领域作为图像提取器。然而,NLP中序列的长度是固定的,这导致Transformer在处理可变分辨率输入的图像时能力下降。在用Transformer处理图像时,一种简单的方法是将每个像素视为一个标记,类似于文本标记进行全局注意力。iGPT展示了由此带来的计算量是巨大的。一些工作(如ViT、iGPT)将一个区域内的像素集作为一个标记,这在一定程度上减少了计算量。然而,随着输入大小的增加,计算复杂度显著增加(公式1),这些方法生成的特征图形状相同(图1(b)),使得这些方法不适用于后续任务的主干网络。
在本文中,作者受到CNN局部特征提取能力的启发,采用一个区域内的像素间注意力来模拟CNN的特征,将输入大小增加带来的指数级计算量减少到与区域大小成指数关系的计算量。同时,如图3(b)所示,为了考虑图像的整体信息提取和通信,作者设计了一种在单通道特征图上执行注意力的方法。与对所有通道的注意力相比,公式1和3展示了计算量有显著减少。通过交替进行内部注意力和单通道特征图的注意力,执行交叉注意力。作者可以用交叉注意力构建一个强大的主干网络,生成不同尺度的特征图,满足下游任务对不同粒度特征的要求,如图1所示。作者引入了全局注意力,而不会增加计算量或只增加很少的计算量,这是将Transformer和CNN特征联合在一起更为合理的方法。
作者的基础模型在ImageNet-1K上实现了82.8%的top-1准确率,与现有的基于CNN和基于Transformer的网络相当。同时,在其他视觉任务中,作者的CAT作为目标检测和语义分割方法的主干网络,可以提高它们的性能。
Transformer和CNN的特征相互补充,更高效、更完美地结合它们以发挥两者的优势是作者长期的目标。作者提出的CAT是朝这个方向迈出的一步,希望在这个方向上有更好的发展。
2 Related work
基于卷积神经网络(CNN)的网络CNN具有共享权重、平移、旋转不变性和局部性等特点,在计算机视觉领域取得了优于多层感知机的巨大成就,并成为过去十年视觉任务的标准网络。作为在计算机视觉中首次取得巨大成功的CNN网络,AlexNet为基于CNN的网络后来的发展奠定了基础,并且在性能提升方面,[3; 8; 9; 10; 11; 43]成为了视觉任务中选择的主干网络。为了提高效率,Inceptions[4; 5; 44; 45; 46],MobileNets[6; 47; 48],以及ShuffleNets[49; 7]也是那些需要推理速度任务的可选网络。
基于Transformer网络的全球注意力Transformer最初是为了自然语言处理(NLP)中的机器翻译而提出的,其核心的多头自注意力(MSA[29])机制在提取不同层次词间关系特征方面至关重要。最初的几个基于Transformer的网络 Backbone ,如ViT[33]和Deit[38],将图像划分为多个块(块大小为16×16),将每个块展平为一个标记,并引入CLS-Token[50]用于分类。CvT[35]和CeiT[51]将卷积层引入以替换QKV[29]的线性投影。CrossViT[34]通过将图像划分为不同大小的块,集成了不同粒度的全局特征,用于两个分支。然而,这些方法将所有块一起用于MSA,只关注不同块之间的关系,随着输入大小的增加,如公式1所示,计算复杂性急剧增加,难以应用于需要大分辨率输入的视觉任务。
基于Transformer网络的局部注意力块内信息间的关系在视觉[52, 53]中至关重要。最近,TNT[37]将每个块划分为更小的块。通过提出的TNT块,捕获全局信息和块内的信息。Swin[36]将每个块视为一个窗口,以提取块内的相关信息,并使用移位窗口来捕捉更多特征。然而,这两种方法都有其问题。首先,为了结合全局信息交互和局部信息交互,[37]中计算量的增加不容忽视。其次,[36]中局部信息交互与相邻块之间的交互缺乏全局信息交互。作者提出了一个跨块自注意力块,以有效保持全局信息交互,同时避免随着输入分辨率的增加而导致的计算量巨大增加。
层次网络和下游任务Transformer已成功用于视觉任务[54, 55, 56, 57]和NLP任务[50, 58, 59, 60, 61, 62, 63]。然而,由于典型Transformer中输入和输出的形状一致,难以实现类似基于CNN网络[8, 19, 48, 9]的层次结构,这对于下游任务非常重要。与ResNet[8]结合的FPNs[14, 20, 64, 65]已成为目标检测的标准范式。在语义分割[21, 22, 23, 28]中,使用金字塔特征来提高性能。最近的PVT[32, 36]和Swin[36]在不同阶段降低特征的分辨率,类似于ResNet[8],这也是作者使用的方法。
3 Method
Overall architecture
作者的方法旨在结合 Patch 内的注意力和 Patch 间的注意力,并通过堆叠基本块构建分层网络,这可以简单应用于其他视觉任务中。如图2(a)所示,首先,作者将输入图像尺寸缩小到,(在作者的实验中),并通过参考ViT[33]中的 Patch 处理模式,使用 Patch 嵌入层将通道数增加到。然后,使用几个CAT层在不同尺度上进行特征提取。
在上述预处理之后,输入图像进入第一阶段。此时, Patch 的数量为, Patch 的形状为(其中N是 Patch 嵌入层之后的 Patch 大小)。第一阶段输出的特征图形状为,记为。然后进入第二阶段, Patch 投影层执行空间到深度操作,它将形状为的像素块从形状变为,然后通过线性投影层投射到。在接下来的阶段,经过几个跨注意力块的处理,生成形状为的,特征图的长度和宽度可以减少一次,维度增加到两倍,类似于ResNet[8]中的操作,这也是Swin[36]的做法。通过四个阶段后,作者可以得到,这四个不同尺度和维度的特征图。像典型的基于CNN的网络[8, 9]一样,可以为其他下游视觉任务提供不同粒度的特征图。
3.1.1 Inner-Patch Self-Attention Block
在计算机视觉中,每个像素需要特定的通道来表示其不同的语义特征。类似于自然语言处理(NLP)中的单词标记,理想情况下应将特征图中的每个像素视为一个标记(例如,ViT,DeiT),但计算成本过于巨大。如公式1所示,随着输入图像分辨率的增加,计算复杂性呈指数级增长。例如,在传统的RCNN系列[12, 13, 67, 68]方法中,输入的短边至少需要800个像素,而YOLO系列[16, 17, 69]论文也需要超过500个像素的图像。大多数语义分割方法[21, 22, 25]也需要边长为512像素的图像。在预训练阶段,计算成本至少是224像素的5倍。
受到CNN局部特征提取特性的启发,作者将CNN中的卷积方法的局部性引入到Transformer中,以在每个块内进行逐像素自注意力,称为内块自注意力(IPSA),如图3(a)所示。作者将一个块视为一个注意力范围,而不是整张图片。同时,Transformer可以根据输入生成不同的注意力图,这相对于具有固定参数的CNN具有显著优势,这类似于卷积方法中的动态参数,并在[70]中被证明是有益的。[37]已经揭示了像素间的注意力也是至关重要的。作者的方法在显著降低计算成本的同时,考虑了块内像素之间的关系。以下为计算公式:
其中是IPSA中的块大小。与标准Transformer中的MSA相比,计算复杂度从与的二次相关降低到与的线性相关。假设,,,根据公式1,,而根据公式2,,后者要少得多。
3.1.2 Cross-Patch Self-Attention Block
仅在像素间添加注意力机制可以确保捕获一个图像块内像素之间的相互关系,但整张图片的信息交换同样至关重要。在基于CNN的网络中,堆叠的卷积核通常会扩展感受野。提出了膨胀/孔洞卷积[24]以获得更大的感受野,并期望在实际中最终扩展到整张图片。Transformer天然能够捕捉全局信息,但像ViT[33]和Deit[38]这样的努力最终并非最佳解决方案。
每个单通道特征图自然具有全局空间信息。作者提出了跨图像块自注意力(Cross-Patch Self-Attention),将每个通道特征图分离并将每个通道划分为的块,并使用自注意力来获取整个特征图的全局信息。这类似于Xception[46]和MobileNet[6]中使用的深度可分离卷积。作者的方法的计算量可以按如下公式计算:
其中是CPSA中的块大小,,分别代表特征图的高度和宽度。计算成本比ViT(公式1)和其他基于全局注意力的方法要低。同时,如图2(b)所示,作者结合MobileNet[6]的设计,堆叠IPSA块和CPSA块,以提取和整合一个图像块内像素之间以及一个特征图内图像块之间的特征。与Swin[36]中的移动窗口相比,后者是人为设计的,难以实现,且捕获全局信息的能力较弱,作者的方法更为合理且易于理解。根据上述假设相同的情况下,按照公式3计算的约为,远低于MSA的。
多头自注意力机制在[29]中提出。每个头可以注意到NLP中单词间不同的语义信息。在计算机视觉中,每个头可以注意到图像块间不同的语义信息,类似于基于CNN的网络中的通道。在CPSA中,作者将头的数量设置为块大小,使得一个头的维度等于块大小,这对性能没有用,如表5所示。因此在作者的实验中默认设置为单头。
位置编码作者在IPSA中采用相对位置编码,参考[36, 71, 72],而对于在完整单通道特征图上执行自注意力的CPSA,作者在嵌入在图像块嵌入层的特征中添加绝对位置编码,可以形成如下形式:
其中ab.pos.表示绝对位置编码,Patch.Emb表示表1中的图像块嵌入层。绝对位置编码在CPSA中有助于提高性能,结果如表6所示。
3.1.3 Cross Attention based Transformer
交叉注意力块由两个内部 Patch 自注意力块和一个跨 Patch 自注意力块组成,如图2(b)所示。CAT层由几个CAB组成,网络的每个阶段都由不同数量的层和一个 Patch 嵌入层组成,如图2(a)所示,CAB的流程如下:
(8) (9) (10) (11)
其中 是一个带有LN的块(例如,IPSA,MLP)的输出。作者比较了[33]中 Patch 嵌入层的卷积,其中卷积核大小设置为P,步长也是P,以及像[16]那样切片输入,结果显示在表5中,两者的性能相同。作者的默认设置是前者。根据阶段3中的CAB数量和 Patch 投影层的维度,设计了三种不同计算复杂度的模型,分别是计算量为、、的CAT-T、CAT-S和CAT-B。
4 Experiment
作者在ImageNet-1K[73]、COCO 2017[74]和ADE20K[75]数据集上分别进行了图像分类、目标检测和语义分割实验。以下,作者将比较CAT架构与现有技术水平架构在三项任务中的表现,然后报告作者在CAT中采用的一些设计选择的消融实验。
Image Classification
对于图像分类,作者报告了在ImageNet-1K[73]上的单幅裁剪的top-1准确度,该数据集包含来自1000个类别的1.28M训练图像和50K验证图像。作者实验中的设置大部分遵循[38]。作者采用1024的批量大小,0.001的初始学习率,以及0.05的权重衰减。作者使用AdamW[76]优化器训练模型300个周期,采用余弦衰减学习率调度器和20个周期的线性预热。作者的训练中使用了随机深度[77],三个变体架构分别采用0.1、0.2和0.3的比率,并且在CAB的自注意力中采用0.2的dropout[78]率以避免过拟合。作者使用了[38]中与[36]类似的多数正则化策略和增强方法,以使作者的结果更具可比性和说服力。
结果在表2中,作者展示了作者的实验结果,证明了当FLOPs比ResNet101[8]少65%时,作者的CAT-T能够达到80.3%的top-1精度。同时,在分辨率的图像上,作者的CAT-S和CAT-B的top-1分别为81.8%和82.8%。这样的结果与表中的最先进结果相当。例如,与具有相似计算量的Swin-T[36]相比,作者的CAT-S提高了0.5%。特别是,与Swin[36]中的移位操作相比,作者的方法在捕捉图像块间关系方面具有更强的能力。Swin-T(带移位)的top-1准确度提高了1.1%,而CAT-S则超过了1.6%。
Object detection
对于目标检测,作者在COCO 2017[74]数据集上进行了实验,使用mAP作为评价指标,该数据集包含来自80个类别的118k训练图像、5k验证图像和20k测试图像。作者在一些框架上进行了实验以评估作者的架构。实验中使用的批处理大小为16,初始学习率为1e-4,权重衰减为0.05。作者采用了AdamW[76]优化器、1x调度和NMS[80]。其他设置与MMDetection[81]相同。注意,作者采用了0.2的随机深度[77]比率以避免过拟合。关于多尺度策略,作者在训练时随机选择一个短边尺度,范围在480到800之间,间隔为32,而长边小于1333,这与[54, 82]相同。
结果如表格3所示,作者在一些基于 Anchor 点和 Anchor-Free 点的框架中使用了CAT-S和CAT-B作为主干网络,它们都取得了更好的性能,并且在计算成本上可比较或更低。在多尺度策略下,CAT-S使FCOS[15]提高了3.4%,RetinaNet[13]提高了3.7%,Cascade R-CNN[85]提高了4.8%。而对于实例分割,作者使用了MASK R-CNN[83]的框架,使用CAT-S时, Mask mAP提高了4.2%。作者实验过的所有方法性能均优于原始方法,这表明作者的CAT在特征提取方面具有更好的能力。
Semantic Segmentation
对于语义分割,作者在ADE20K[75]数据集上进行实验,该数据集有2万张图片用于训练,2千张图片用于验证,以及3千张图片用于测试。设置如下:初始学习率为6e-5,批量大小为16,总共有160k和80k次迭代,权重衰减为0.05, Warm up 迭代为1500。作者在Semantic FPN[86]框架下进行实验,输入为,并使用MMSegmentation[87]中的基本设置。需要注意的是,在训练过程中,CAT使用了0.2的随机深度[77]比率。结果如表格4所示,作者使用CAT-S和CAT-B作为主干网络,在Semantic FPN[90]的框架下。Semantic FPN使用CAT-S和CAT-B时获得了更好的性能,特别是使用160k次迭代和CAT-B时,作者达到了44.9%的mIoU,比使用ResNet101[8]作为主干网络提高了4.2%,使得Semantic FPN的性能与其他方法相当,而对于80k次迭代,结果提高了4.8%,这表明作者的架构作为主干网络比ResNet[8]更有力。
Ablation Study
在本节中,作者报告了在架构设计和在ImageNet-1K[73],COCO 2017[74],ADE20K[75]上进行实验时,作者所做的一些消融实验的结果。
Patch嵌入函数作者比较了patch嵌入层中的嵌入函数,卷积方法和[16]中的方法,前者使用的核大小和4的步长进行卷积层以将输入的分辨率降低到原始的,后者则将输入从切割为,其中作者的S为4以实现与前者相同的效果。表5的结果显示这两种方法性能相同。为了更好地与其他工作[36]进行比较,作者选择卷积方法作为默认设置。
多 Head 和偏移窗口多 Head 在[29]中提出,代表了单词之间不同的语义特征。作者将每个CPSA中的头数设置为与patch大小相等,这对性能没有影响,如表5所示。为了研究Swin[36]中的偏移窗口,作者在CAB的第三个块中进行了带/不带偏移窗口的实验,结果显示在作者的架构中,偏移操作并没有表现得更好。
CPSA中自注意力机制的绝对位置和丢弃作者进行了CPSA的绝对位置编码消融研究,并在三个基准测试上提高了性能。为了更好的训练,作者在CPSA中采用了自注意力的丢弃[78],并设置丢弃率为0.0和0.2。0.2的丢弃率取得了最佳性能,说明CPSA中存在一点过拟合。所有的结果都在表6中报告。
5 Conclusion
在本文中提出了一种名为Cross Attention的方法,旨在更好地结合卷积神经网络(CNN)在局部特征提取的优势和Transformer在全局信息提取的优势,构建了一个稳健的基础网络结构,即CAT。它能够像大多数基于CNN的网络那样生成不同尺度的特征,并且能够适应其他视觉任务中不同尺寸的输入。CAT在各种视觉任务数据集上(例如,ImageNet-1K、COCO 2017、ADE20K)取得了最先进的表现。关键在于,作者交替地在特征图块内部进行注意力机制处理,以及对单通道特征图进行注意力机制处理,而几乎没有增加计算量,以捕捉局部和全局信息。希望工作能够朝着将CNN和Transformer整合在一起,以创建一个多领域方法的方向发展迈出一步。
参考
[1].CAT: Cross Attention in Vision Transformer.
扫码加入👉「集智书童」交流群
(备注: 方向+学校/公司+昵称 )
点击下方“ 阅读原文 ”,
了解更多AI学习路上的 「武功秘籍」