本文主要是介绍vit细粒度图像分类(九)RAMS-Trans学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.摘要
在细粒度图像识别(FGIR)中,区域注意力的定位和放大是一个重要因素,基于卷积神经网络(cnn)的方法对此进行了大量探索。近年来发展起来的视觉变压器(ViT)在计算机视觉任务中取得了可喜的成果。与cnn相比,图像序列化是一种全新的方式。然而,ViT的感受野大小有限,由于其patch的大小固定,缺乏像cnn那样的局部关注,并且无法生成多尺度特征来学习判别区域关注。
为了便于在没有框/部分注释的情况下学习判别区域注意,我们使用注意权值的强度来衡量原始图像对应的patch令牌的重要性。我们提出了递归注意多尺度变压器(RAMS-Trans),它利用变压器的自注意以多尺度方式递归学习判别区域注意。
具体来说,我们的方法的核心是动态补丁建议模块(DPPM)引导区域放大,以完成多尺度图像补丁的集成。DPPM从全尺寸图像斑块开始,通过在每个尺度上生成的注意力权重的强度作为指标,迭代地扩大区域注意力,从全局到局部生成新的斑块。我们的方法只需要ViT本身的注意力权重,并且可以很容易地进行端到端训练。
大量的实验表明,除了高效的CNN模型外,ram - trans的性能优于并发作品,在三个基准数据集上取得了最先进的结果。
2.问题
细粒度图像识别一直是一个具有挑战性的问题。目前大多数方法都是由卷积神经网络(cnn)主导的。与传统的图像分类问题不同,FGIR存在类内方差大、类间方差小的问题。因此,FGIR方法需要能够识别和定位图像中的区域注意力,这对分类至关重要。FGIR有一类方法称为基于零件的方法[2,36],其中一些方法使用额外的监督信息,如边界框/零件注释来定位关键区域。然而,标记边界框/部件注释是一项需要大量资源的劳动密集型任务。如何利用模型自身产生的有效信息进行区域注意力定位和放大,是FGIR必须面对的研究方向之一。
2.1发现
cnn的有效性无需在此进一步解释。然而,我们需要再次强调的是,cnn有效的一个关键方面是其翻译不变性和局部特征表示能力。随着深度的增加,cnn会不断下采样,同时模型的接受域也会增加,从而可以同时利用feature map的全局和局部信息。例如,在VggNet[29]和ResNet[17]等网络中,底层卷积的接受场较小,具有更多的局部信息,而高卷积的接受场较大,具有更多的全局信息。作品[41]和[20]将这一特性用于FGIR。一些作品利用了CNN本身特征图的注意属性,如[40]和[35]利用图像特征的注意图来选择区域关注。
变压器[32]近年来逐渐从NLP[6,7,38]的研究热点转向CV任务[9,46]。视觉变压器(vision transformer, ViT)的提出给计算机视觉带来了新的冲击,引起了业界对图像序列化的研究兴趣。ViT将分割后的图像块平坦化,并将其转换为patch令牌。与NLP中的字符序列类似,这些标记将被发送到多头自注意机制进行训练。由于补丁标记是位置不可知的,因此将添加位置嵌入以增加空间信息。然而,当ViT遇到FGIR时,有两个主要问题需要解决。首先,该模型一次处理所有的patch令牌,当数据集的复杂性增加时,例如当图像分辨率很高或图像背景混乱时,该模型可能无法有效捕获patch令牌中携带的区域注意力。
2.2发展
相反,当图像分辨率较低时,这种固定的patch大小更容易使模型丢失局部信息。其次,ViT与cnn的不同之处在于,补丁令牌的长度不会随着其编码器块的增加而改变,因此不能有效地扩展模型的接受域。因此,对于fgil,我们可以做的不仅仅是将平整的原始图像块输入到Transformer中。如果我们借鉴cnn的特点,在模型中引入对局部区域的关注,即扩展有效接受野,则模型的识别性能有可能进一步提高。那么我们就遇到了一个非常重要的问题,如何在注重利用全局信息的ViT中发掘和发现局部信息?最新的transferg[16]给了我们一个很好的答案,那就是利用ViT固有的注意力权重。无论是在变压器的NLP领域还是在ViT训练中,大多数工作都只是简单地要求使用最后一层分类令牌信息,丢弃了看似附属的注意权值。将最后一层变压器前的所有注意权值相乘得到patch令牌的重要性排序,然后将选中的令牌与全局分类令牌作为输入序列连接到最后一层变压器。然而,这种硬注意过滤在两种情况下容易失败,一种是在图像分辨率小的情况下,另一种是在数据集的高复杂性的情况下。在前一种情况下,许多重要的本地信息不容易获得,如果此时必须过滤掉大多数令牌信息,则很可能会失去分类性能。在后一种情况下,当注意机制失效时,模型很容易根据不正确的令牌信息做出错误的判断。
2.3创新
通过初步的可视化实验,我们发现注意权重的强度可以直观地与斑块包含目标物体的程度相关。为此,我们提出了递归注意多尺度变压器(RAMS-Trans),它利用变压器的自注意机制以多尺度方式递归学习区别区域注意。具体来说,该方法的核心是提出的动态补丁建议模块(DPPM),该模块旨在自适应地为每张图像选择最具判别性的区域。
- DPPM从完整的图像斑块开始,通过在每个尺度上生成的注意力权重的强度作为指标,将区域注意力从全局扩展到局部生成新的斑块。细尺度网络以循环方式将前一尺度放大的趋势区域作为输入。•我们从序列到序列学习的角度重新表述了FGIR问题,并设计了一种新的可视化变压器架构,即循环注意多尺度变压器(RAMS-Trans)。它结合了cnn在扩大接受域、加强局部性方面的优势,以及transformer在利用全局信息方面的优势。
- •作为一个实例,我们利用变压器框架,特别是使用多头自关注权重来定位和放大感兴趣的区域,通过顺序化图像来实现我们完全关注的特征表示。
- •广泛的实验表明,与传统的cnn相比,我们的RAMS-Trans模型可以学习到更好的特征表示,并在三个流行的FGIR基准(CUB-200-2011, Stanford Dogs和iNaturalist2017)上并行工作。
2.4补充
CNN based Fine-grained image recognition
FGIR可分为定位分类子网络、端到端特征编码和外部信息三个方向,其中前两个方向是本节的主要内容。根据是否利用边界框/部分注释信息,将第一种方法分为强监督[2,23,36]和弱监督[15]。这类方法通过训练有监督或弱监督的定位子网络来定位关键部件区域。然后,分类子网利用定位子网捕获的细粒度区域信息,进一步提高分类能力。mask - cnn[36]基于部位标注,利用FCN对关键部位(头部、躯干)进行局部化,生成物体/部位加权的蒙版。然而,获取零件注释会增加额外的高额标记成本。许多方法使用注意机制来设置特定的子网络结构,以便仅使用图像级注释来进行分类。第二种方法通常设计端到端模型,将判别特征编码为高阶信息。从双线性池[24]到紧凑核池[13],许多工作使用不同的方法,如设计核模块[5]或特殊损失函数[42]来降低高阶特征的维数。然而,这些方法很难从全局特征视图中获得精细的方差,很难超越以前的方法。
与我们的工作非常接近的一种方法是RA-CNN[12],其共同点是在两个尺度的作用下学习区域特征。然而,我们与RA-CNN有以下两个关键区别。首先,我们不需要额外的参数来学习区域的坐标,我们只需要依靠变压器训练附带的注意权值来进行区域的注意学习。第二,我们不需要强迫2的精度高于1,我们是让两个量表相互学习,共同提高精度。
Transformer in Vision
受用于NLP任务的Transformer[32]的启发[6,7,38],最近出现了大量的模型,它们在计算机视觉方面严重依赖Transformer[9,46]。[3]和[46]是较早将变压器应用于目标检测的工作。ViT[9]是第一个将2D图像转换为1D patch token的作品,将其馈送到后续的变压器层进行训练,达到了与cnn图像识别相当的准确率。DeiT[31]通过引入仿真令牌对ViT[9]进行了增强,并采用知识蒸馏对CNN教师的输出进行了模拟,在大规模数据集上无需训练即可获得满意的结果。SETR[44]提出了一种纯粹基于自注意的编码器来执行语义分割。
最相关的工作是tgf[16],它也利用了对FGIR的关注。然而,有一个关键的区别。我们使用注意力权重来放大和重用区域注意力,而Transformer只过滤Transformer最后一层中的patch令牌。其次,我们提出了一种循环结构来提取和学习多尺度特征,以获得更好的视觉表现。
我们的模型在各种图像分辨率和大规模fir数据集上都很优越(见第4节)。
3.网络
3.1整体结构
循环关注多尺度变压器(RAMS-Trans)的框架。输入从全局全尺寸图像到局部区域关注(从左到右)。将变压器各层的关注权相加,生成patch mask矩阵,其中红色1表示激活patch。红色框表示已选择的补丁。请注意,线性投影、变压器层和Fc(完全连接)层是参数共享的,而CLS令牌则不是。
众所周知,vit能够很好捕捉到图像中的可判别信息,能够确认图像中那一部分区域与任务高度相关,所以先使用vit找到这个任务高相关的区域,把它提取出来,之后再用vit重新推理一遍。
可以这样理解,你想要找一本书,第一次vit推理的作用是帮你找到一个图书馆,第二次vit帮你从图书馆中找到那本书。
固然想法很好,但是要考虑实际情况,如果那个图书馆很小,整个场馆只有十本书,那么两次vit推理就没有必要,还要考虑到推理耗费的时间对于准确率的提升是否的有性价比的。
3.2 Preliminaries: Vision Transformer
Image Tokenization
ViT的创新和关键在于它将2D图像处理成类似字符串的1D序列,然后将其馈送到由标准Transformer编码器堆叠的块中。具体来说,维特푥重塑形象,푥∈R퐻×푊×3,与某些补丁大小,变成一个2 d序列补丁푥푝,푥푝∈R푁×(푃×푃×3),H, W是原始图像的高度和宽度分别3通道的原始RGB图像的数量,和P是人为地设置补丁大小用来分割图像。在ViT中,푃的大小通常是16或32。푁为拆分后的补丁总数,푁=퐻× /푃2。然后ViT使用可训练的线性投影将矢量化的patch푥푝映射到潜在的퐶维嵌入空间中,得到patch令牌푥푝푎푡푐,其中푥푝푎푡푐∈R푁×퐶。
与BERT类似,ViT还初始化类令牌(CLS),以便在令牌化阶段进行最终分类,这些令牌将与补丁令牌连接起来,然后发送到后续的转换器层。此外,由于后续变压器输入的patch令牌是位置不可知的,图像处理依赖于每个像素的空间信息,因此ViT将位置嵌入到每个patch中,可以在后续的训练过程中不断学习:
其中푥푐푙푠∈r1x퐶,푥푝푠∈R(1+푁)×퐶分别为CLS和位置嵌入。然而,固定patch大小的fgfr图像标记化可能存在两个问题:(1)模型一次处理所有patch令牌,当数据集的复杂性增加时,例如,具有混乱的背景,模型可能无法有效捕获patch令牌中携带的区域注意力。(2)这种固定的patch大小使得模型在图像分辨率较低时更容易丢失局部信息。
Encoder Blocks
ViT的主要结构是block,由一堆퐿Transformer的标准编码器组成。每个块由多头自注意网络(MSA)和前馈网络(FFN)组成,后者由两个完全连接的层组成。푘푡层的输出可表示为:
其中퐿푁(·)表示层归一化操作[1]。CNN图像处理的独特之处在于,随着模型深度的增加,原始图像不断被下采样,同时模型的接受野不断变大,从而可以同时利用图像的全局和局部信息。ViT与cnn的不同之处在于,随着编码器块数量的增加,patch令牌的长度不会改变,模型的接受域不能得到有效扩展,这可能会影响模型在FGIR上的精度。
3.3 Proposed Network
受SCDA[35]和RA-CNN[12]的启发,我们提出了循环注意多尺度变压器(RAMS-Trans)来解决上述问题。我们以图2中的两个尺度为例。
首先,模型接受原始输入图像푥1,计算后输出各变压器层的交叉熵损失1和多头自关注权푤푙。然后将푤푙输入到DPPM中,DPPM首先输出原始图像푥1上对应的patch mask矩阵,即二值patch mask矩阵,然后根据该矩阵通过最大连通区域搜索算法得到푥1上区域关注的座标值。在第二阶段,我们通过双线性插值算法获得局部图像输入푥2,从푥1放大,通过l层编码器块重新计算得到交叉熵损失2和多头自关注权푤2。
需要强调的是,我们方法的核心是如何利用ViT本身的特征在原始图像中找到区域注意力,打破ViT因patch大小固定而产生的接受野限制,进而利用多尺度图像表示实现对物体更有效的识别。在cnn中,SCDA使用多通道特征映射的融合来实现目标的定位,从中我们得到启发,因为ViT将原始图像处理成补丁令牌供后续使用MSA和FFN计算,我们是否可以由此得到原始图像对应的每个patch的重要性푥1?由于Transformer的核心之一是MSA,因此很自然会想到使用自关注权重来尝试完成此任务。我们首先进行视觉评估:
Visual Evaluation
仅依靠ViT预训练附带的注意权值,就可以准确定位原始图像中的目标区域,并丢弃不相关和有噪声的区域。在图1中。,我们展示了来自CUB-200-2011、斯坦福狗和iNaturalist2017三个数据集的一些图像。我们使用在ImageNet21k上预先训练的ViT模型提取他们的注意力权重,而根本不需要对目标数据集进行微调,然后使用CAM将它们可视化[45]。在图1中,我们可以看到,仅使用原始的注意力权重,我们就可以很好地定位原始图像中的对象,并掩盖背景和噪声区域。
以上可视化过程说明了ViT在计算其MSA机制时产生的自注意权值与目标物体在原始图像中的位置有一定的相关性。
Dynamic Patch Proposal Module
我们的目标是从푁1/ 2x푁1/2补丁中自适应地选择不同数量的补丁来重组푥2。我们首先将各变压器层的关注权取为:
其中Q、K分别为查询向量和关键向量。然后正则化푤푙
其中휒是正则化因子퐸是对角矩阵。
然后,我们建议对所有先前层的注意权值进行积分,并对所有层的修改后的注意权值递归地应用矩阵乘法,如下:
我们计算푔中所有位置的平均值푔作为阈值来确定目标的定位位置。特别是为了提高定位能力,进一步确定区域注意力,我们设计了放大因子훼作为超参数来提高阈值:
其中,~푀(푥,푦)是补丁掩码矩阵,(x, y)是这些푁1/2 ×푁1/2位置中的特定位置。最后,我们使用算法1提取~푀的最大连接分量,对原始图像中的区域注意力进行定位和缩放푥1。
3.4 Implementation
我们介绍了损失函数的实现细节以及规模类令牌。
Loss Function
在训练阶段,我们的损失函数表示为多任务损失
它们是互补的。휆为平衡两种损失权重的系数,在实验中取1.0。퐿푠푠푠1表示尺度1的细粒度分类损失,퐿푠푠푠2为引导损失,用于引导模型选择更具判别性的区域。这两种损失在反向传播过程中共同作用以优化模型的性能。它使最终的收敛模型能够根据对象的整体结构特征或区域注意特征进行分类预测。
在测试阶段,我们删除了scale 2以减少大量的计算,因此我们的方法在实际应用中不会花费太长时间进行预测。
Scale-wise Class Token
在3.1节中,我们描述了类令牌是如何生成的以及它的作用,主要是与补丁令牌交换信息,最后将类信息提供给分类层。然而,在我们的框架中,原始图像的区域注意力会被定位和放大,因此在尺度之间patch令牌会不同,如果在尺度之间共享类令牌,可能会影响最终的分类性能。因此,我们提出了基于规模的类令牌,即使用不同的类令牌来适应不同规模的补丁令牌:
我们在随后的不同分辨率的实验中证明了这种设计的有效性。
4.实验
4.1实验设置
4.1.1 数据集
CUB-200-2011[33]、Stanford Dogs[22]和iNaturalist2017[18]。
4.1.2实验细节
我们从ImageNet21k上预训练的官方ViT-B_16模型加载模型权重。在所有的实验中,我们使用SGD优化器进行优化,初始学习率为0.03,动量为0.9。我们用权重衰减0。我们使用余弦退火来调整批次大小为16的学习率。该模型总共训练了10000步,其中前500步是热身。我们通过将最短的边缩放到600来调整输入图像的大小,并随机裁剪一个448 × 448的区域进行训练。在测试中,我们使用中心裁剪将图像大小更改为448 × 448。我们将图像分割成ViT中的小块,小块大小为16 × 16。超参数훼选择为1.3。我们使用Pytorch完成了整个模型的构建,并在Tesla V-100 gpu上运行了所有实验。
4.2对比试验
4.3消融实验
4.4可视化
5.结语
在本文中,我们提出了一种新的循环关注多尺度变压器(RAMS-Trans)架构,该架构结合了cnn在扩大有效接受场、加强局域性方面的优势,以及变压器在利用全局信息方面的优势。在没有边界框/部分注释和额外参数的情况下,RAMS-Trans使用转换器的自关注权重来衡量与原始图像对应的补丁标记的重要性,并以多尺度方式递归地学习判别区域关注。最后但并非最不重要的是,我们的方法可以很容易地在CUB-200-2011、斯坦福狗和大规模iNaturalist2017数据集中进行端到端训练,并达到最先进的水平。如何更精确地定位区域注意力,进一步提高分类精度是今后的工作方向。
这篇关于vit细粒度图像分类(九)RAMS-Trans学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!