vit细粒度图像分类(八)SIM-Trans学习笔记

1.摘要

细粒度视觉分类(FGVC)旨在从相似的从属类别中识别物体,这对人类准确的自动识别需求具有挑战性和实用性。大多数FGVC方法侧重于判别区域挖掘的注意机制研究,而忽略了它们之间的相互依赖关系和组成的整体对象结构,而这些对模型的判别信息定位和理解能力至关重要。
为了解决上述局限性,我们提出了结构信息建模变压器(SIM-Trans),将对象结构信息整合到变压器中,以增强区分表示学习,使其同时包含外观信息和结构信息。
具体而言,我们将图像编码为一系列补丁令牌,构建了一个具有两个良好设计模块的强视觉变压器框架:(i)提出结构信息学习(SIL)模块,利用变压器的自关注权值挖掘对象范围内重要补丁的空间上下文关系,并将其注入模型中导入结构信息;(ii)引入多层次特征增强(MFB)模块,利用多层次特征的互补性和类间的对比学习来增强特征的鲁棒性,实现准确识别。
所提出的两个模块重量轻,可以插入任何变压器网络,并且可以轻松地进行端到端训练,这只取决于视觉变压器本身的注意力权重。
大量的实验和分析表明,所提出的SIM-Trans在细粒度视觉分类基准上达到了最先进的性能。代码可在https://github.com/PKU-ICST-MIPL/SIM-Trans_ACMMM2022上获得。

2.问题

细粒度视觉分类(Fine-grained visual categorization, FGVC)任务[35]的目标是将物体从给定的基本类别中识别到特定的子类别,例如识别鸟类[30]。它不同于一般的图像分类只需要预测基本类别,比如“鸟”。由于其固有的类内方差大、类间方差小的特点,使其面临更大的挑战。例如,“北极燕鸥”和“普通燕鸥”属于“鸟”的基本范畴,只有尾巴和喙有细微的区别,很难区分。

2.1发现

因此,为解决上述问题,研究了定位判别区域提取特征和设计高阶鲁棒特征。
基于定位的方法以其更好的解释和良好的性能得到了广泛的研究。早期的作品[2,3,37]是借助人工标注(即对象或部分标注的边界框)来定位判别区域的。然而,由于对专业知识要求严格,难以获得用于细粒度图像分类的人工注释。针对这一问题,已有大量研究[5,7,9,11,14,15,23,27,31,32,36,39,42]针对仅利用图像类别标签的弱监督细粒度视觉分类任务进行了研究。它们主要是显式检测语义部分[11,14,36,39]或隐式定位显著性区域[5,7,23,42],然后进行特征提取和融合,最后进行分类。第一类方法如[11,14],主要采用区域建议网络来获取判别图像区域的位置。将选取的图像区域调整为固定大小,输入骨干网络进行特征提取和分类。第二类方法[7,23]利用了显著区域检测和利用的注意机制,可随骨干网灵活设计。

然而,上述方法在模型设计中普遍忽略了对象内部判别区域之间的关系。在大面积的不相关背景下,可能会导致定位结果不佳,导致分类性能急剧下降。同时,在回顾基于CNN的FGVC方法的内在结构时,我们发现堆叠卷积和池化操作带来了感受野的扩展和空间辨别的退化。在细粒度视觉分类中,大的连续图像区域被关注,而区别性的细节通常被忽略,这是区分细微差异所必需的。

2.2发展

最近,视觉转换器(vision transformer, ViT)[8]及其变体提出了一种新的解决方案,将图像编码为一系列补丁令牌进行识别,并取得了良好的性能。变压器的多头自关注机制提供了远程依赖,增强了图像块之间的交互性。鉴别贴片信息随变压器层的加深而保持,以确定最终的分类。因此,视觉变压器可以缓解CNN arXiv:2208.14607v1 [cs]中的上述问题。在一定程度上基于FGVC方法。RAMS-Trans[16]提出了动态补丁建议模块来指导细粒度视觉分类中多尺度学习的区域放大。然而,上述方法主要关注重要patch令牌的选择,而忽略了它们在整体对象结构中的关系,这也是识别判别区域所必需的。例如,在许多情况下,由于缺乏对物体结构的认知能力,模型可能会感到困惑[42],例如在树枝中定位鸟的腿。

2.3创新

为此,我们提出了结构信息建模转换器SIM-Trans,将结构信息引入到视觉转换器中进行细粒度的视觉分类。SIMTrans试图在对象内的区域之间建模上下文信息,以突出区分区域以进行准确识别。
首先,我们构建一个视觉变换主干,将图像编码为一系列补丁标记进行特征提取。
其次,为了对目标结构信息进行建模,我们提出了结构信息学习(SIL)模块来挖掘目标范围内判别块之间的空间上下文关系。得益于变压器的自关注特性,cls令牌(代表整个图像)与patch令牌之间的关注权重与patch令牌是否包含目标信息高度相关。
因此,这种方法可以方便地选择判别补丁。计算斑块之间的相对位置关系和语义关系,构建描绘目标结构信息的图,通过图卷积进一步提取并注入到主干中。SIL模块通过端到端的训练,增强模型学习对象的结构组成,突出重要区域。
第三,为了进一步增强特征的鲁棒性和识别能力,设计了多级特征增强模块。我们建议将最后三个转换层的特征连接起来,以利用它们的互补性,这些互补性已经被前面提到的SIL模块注入了对象结构信息。此外,引入对比学习进一步提高了模型的性能,增强了同类别样本特征表示的相似性,减弱了不同类别样本特征表示的相似性。
本文的主要贡献可以概括如下:

  • 我们提出了结构信息建模转换器SIM-Trans,其中包含两个精心设计的模块,用于促进细粒度表示学习,以包含外观信息和结构信息。
  • •提出结构信息学习(SIL)模块,挖掘对象范围内判别区域之间的空间上下文关系,提高模型对对象结构的理解能力。多级特征增强(MFB)模块旨在利用多级特征和对比学习的互补性来实现鲁棒特征表示。
  • •所提出的SIL和MFB模块是轻量级的,仅依赖于视觉变压器本身的注意力权重。他们可以很容易地插入到任何视觉变压器骨干和训练端到端。在两个典型的细粒度视觉分类基准上的大量实验和分析表明,我们提出的方法达到了新的境界。

2.4补充

Fine-grained Visual Categorization

最近的方法主要集中在细粒度视觉分类的判别区域发现和特征提取[7,14,15,26,33,34]。Ding等[7]提出了S3N,利用稀疏关注估计信息区域,提取判别和互补特征进行分类。他等人[15]提出了M2DRL,通过强化学习范式自动确定判别区域的位置和数量。Song等人[26]提出了双模态PMA,利用渐进式掩模注意模型逐步捕捉可区分的部分。Rao等[24]提出了一种反事实注意学习方法,以获得对细粒度视觉分类更有用的注意。然而,上述方法通常忽略了对象的整体结构信息,这对整个对象范围的定位有很大帮助。在我们提出的方法中,明确地引入目标结构信息来突出显示目标内部的区别区域。

Vision Transformer

近年来,针对计算机视觉任务提出了许多视觉变换方法。ViT[8]首次将纯变压器引入到图像分类中,将图像分割成一系列的patch token作为变压器的输入,取得了很好的效果。Zheng等[41]提出SETR利用ViT作为图像分割的编码器。他等[13]提出TransReID在变压器中引入拼图贴片模块和侧信息嵌入,实现对物体的再识别。最近提出了用于细粒度视觉分类的RAMS-Trans[16],它设计了循环注意多尺度转换器来寻找和放大学习多尺度特征的重要区域。然而,上述视觉转换工作通常忽略了斑块的空间关系,这对于发现有意义的斑块非常重要。我们提出的SIM-Trans将对象结构信息整合到transformer中,以增强判别补丁特征,从而实现精确的细粒度视觉分类。

3.网络

3.1整体结构

我们提出的SIM-Trans是基于视觉转换器的,针对细粒度的视觉分类任务进行了一些关键的改进。给出了SIM-Trans的总体框架如图1所示。视觉转换主干(中间部分)接收图像patch令牌并作为提取器。结构信息学习(SIL)模块(右图)借用变压器层的自关注权值来挖掘对象内判别块的空间上下文信息。多层特征增强(MFB)模块(左图)将不同层次的特征融合在一起,利用它们之间的互补性,同时通过对比学习对特征进行增强。

骨干这一块是没有变的,特别的,将每一次的transformer encoder的结果进行一次上下文信息挖掘,并将结果传递给下次的transformer encoder。同时,每进行一次transformer encoder 与上下文信息结合,保留下来,最终将所有的层度的特征进行融合,得到的结果就是用于分类的最终结果  

3.2 Vision Transformer Backbone

视觉变换主干由特征提取器和分类器头部组成,如图1中间部分所示。

在特征提取器的输入,图像 x\epsilon R^{H*W*3},H和W表示它的高度和宽度,通常通过非重叠分割被分割成N个补丁令牌,标记成{x_{patch}^{1},x_{patch}^{2},x_{patch}^{3}}。但是,这种分割方式可能会由于硬分离而导致patch内的邻居信息不完整。因此,我们采用如下[13]的滑动窗分割方法。其中,patch大小和窗口滑动步长分别记为P和S,图像x的patch序列长度푁可计算如下:

式中,⌊·⌋表示地板操作,N_{H},N_{W}表示劈裂后垂直方向和水平方向的patch号。这样在一定程度上缓解了局部相邻信息保存问题。

然后通过线性映射F(·)将patch令牌{x_{pacth}^{i}}投影到퐷维嵌入中。为了表示整个图像,引入了一个可学习的cls嵌入令牌x_{cls},并将其放在输入序列嵌入的开头。为了整合位置信息,在输入序列嵌入中加入可学习位置嵌入E_{p}\epsilon R^{(N+1)*D},得到푧0作为变压器第一层的输入,如下所示:

变压器特征提取器由L个变压器层组成,每层由一个多磁头自关注(MSA)模块和两个全连接层的前馈神经网络组成。k_{th}变压器层的输出计算如下:

式中LN(·)表示层归一化[1]。最后三个变压器层的输出푐푙푠令牌被连接起来,并被视为图像表示(更多细节见3.3节),将其转发到分类器头部,以获得输入图像I的预测向量pred(I)。分类损失如下:

其中S(I)为训练集,y为图像I的单热标签。 

就正常的vit骨干网络

3.3 Structure Information Learning

视觉变形主干利用自注意机制3拥有一个全局的接受场,可以取得很好的图像分类效果。然而,视觉转换框架通常忽略了斑块的空间关系,这对于细粒度视觉分类任务中鉴别斑块的识别至关重要。因此,我们提出了结构信息学习(SIL)模块,将对象空间上下文信息整合到视觉转换器中,整个过程如图1所示。

对象范围的定位是结构学习的前提。在变压器层,patch令牌与cls令牌之间的关注权重描述了其对最终分类的重要性,这与patch令牌是否包含对象信息高度相关。因此,在注意权重的帮助下,物体可以自然地定位。假设变压器层有H个头,Q和K为所有令牌的D维查询向量和键向量,则注意权值计算如下:

其中,Att_{h}\epsilon R^{(N+1)*(N+1)},h=1,2,...,N=N_{H}*N_{W} 是patch的数量。提取每个头部的补丁令牌和cls令牌之间的注意力权重,并表示为Att_{h}^{cls}\epsilon R^{N*1}.相应的总注意力权重计算如下:

其中补丁令牌之间的注意力权重(x,y) 位置,cls标记表示为A_{(x,y)} 对于过滤掉不重要的补丁,平均值퐴 被计算为阈值,并且新的注意力权重如下:

 受[42]的启发,应用极坐标来测量最具鉴别力的面片与其他面片之间的空间关系,以挖掘对象的结构信息。具体而言,具有最高关注权重的补丁被视为最具鉴别力的补丁,该补丁被设置为参考补丁。给定参考补丁P_{0}=P_{x0,y0},和水平参考方向,其中(x0, y0)是中的索引N_{H}*N_{W} 平面,面片的极坐标p_{x,y} 可以定义为:

 为了引入这些对象结构信息,我们设计了图卷积神经网络来获得对象结构特征。我们首先构造了包含两个分量的图:(i)图像补丁节点特征X 描述了基于极坐标计算的空间上下文相关性和(ii)基于视觉变换器层中cls令牌和图像补丁令牌之间的注意力权重计算获得的边缘权重,总结了图像补丁令牌的意义。具体来说,矩阵Adj=A^{new}*(A^{new})^{T} 表示基于A^{new}的节点之间的边权重, 其中与不重要的补丁相关的边缘权重为零以过滤掉它们的影响。然后采用图卷积来进一步提取结构信息并将其合并到视觉变换器中。

其中,w^{1}w^{2}为可学习参数,\sigma(·)为激活函数。将参考补丁节点的特征作为对象结构特征,并将其添加到cls令牌特征中,用于将结构信息引入变压器主干。通过端到端的训练,可以对目标的组成进行建模,突出图像中重要的patch,提高了模型的分类性能。

总体而言,结构信息学习模块可以将目标的结构信息,即关键判别斑块的空间构成,整合到一个或多个视觉变换层中。可以授权变压器网络学习外观和结构信息,以便进行精确的细粒度分类。

 

3.4 Multi-level Feature Boosting

变压器特征提取器获得图像特征后,在视觉变压器方法(如ViT)中,一般选择最后一层变压器cls令牌푧푐푙푠퐿的特征作为最终分类的图像表示。然而,它普遍忽略了不同层次特征的互补以及对固有的类内和类间语义关系的利用。因此,我们提出了多级特征增强(MFB)模块来增强特征鲁棒性,如图1左侧所示。

具体来说,最后三层变换层的cls令牌的特征被连接起来作为最终的图像特征表示,它们都通过结构学习模块引入了结构信息。通过这种简单而有效的方式,可以利用它们的互补性来提高性能。为了充分利用语义关系进行特征增强,采用对比学习的方法增强同一类别的特征相似度,减弱不同类别的特征相似度。

为了挖掘硬负样本对来帮助模型的训练,在下面的对比学习损失中采用超参数\alpha。对相似度小于\alpha的负对进行过滤。形式上,对规模为N的批上的对比学习损失定义如下:

总之,该方法的视觉变换器主干、结构信息学习模块和特征增强模块是端到端联合训练的。总目标如下:

4.实验

4.1实验设置

4.1.1 数据集

 

4.1.2 实验细节

实现细节。为了与其他方法比较公平,我们将图像的大小设置为304 × 304,如下[16]。我们从ImageNet 21k数据集上预训练的官方ViT-B_16模型加载权重,以便与其他基于SOTA变压器的方法进行公平比较。批量大小设置为16,总训练步数设置为100000。采用动量为0.9的随机梯度下降(SGD)优化器,使用余弦退火调度程序将学习率设置为1e-2。我们在后三层变压器中引入结构信息,Eq. 12中的超参数훼设为0.3。

4.2对比试验

4.3消融实验

4.4可视化

5 结语 

本文提出了一种结构信息建模转换器(SIM-Trans),该转换器将物体的结构信息引入视觉转换器中,以促进识别特征学习,使其同时包含外观和结构信息。提出结构信息学习(SIL)模块,挖掘目标范围内显著斑块的空间上下文关系,提高模型对目标结构的理解能力,突出区分区域。然后提出了多级特征增强(MFB)模块,利用多级特征与对比学习的互补,进一步增强特征表示的鲁棒性,实现精确的细粒度识别。这两个模块的结合相互促进,促进了特征识别。提出的SIM-Trans方法提供了在变压器框架中建模对象结构的尝试,并在两个典型的细粒度基准测试中实现了FGVC任务的最先进水平,特别是在大规模iNaturalist 2017基准测试中取得了令人满意的性能。未来,将研究结构嵌入到变压器框架的初始层,以更好地进行结构建模,提高细粒度视觉分类性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/249723.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 [Vue warn]: Unhandled error during execution of scheduler flush

文章目录 前言一、报错截图二、排除问题思路相关问题 Vue3 优雅解决方法异步组件异同之处:好处:在使用异步组件时,有几个注意点: vue3 定义与使用异步组件 总结 前言 Bug 记录。开发环境运行正常,构建后时不时触发下面…

基于C/C++的MFC的IDC_MFCEDITBROWSE2控件不显示ico问题记录

打开资源文件 *.rc文件 ,在最上方添加 #if !defined(_AFXDLL) #include "afxribbon.rc" // MFC ribbon and control bar resources #endif 如下图所示:

【SpringCloud】使用OpenFeign进行微服务化改造

目录 一、需求与背景二、OpenFeign 远程调用技术原理三、项目代码演示3.1 引入依赖3.2 实现OpenFeign注解修饰接口3.3 指定 OpenFeign 远程调用接口的扫描路径 四、OpenFeign 在日志中打印Request和Response五、OpenFeign 客户端超时配置六、使用 OpenFeign 实现服务降级6.1 实…

C语言数据结构之二叉树

少年恃险若平地 独倚长剑凌清秋 🎥烟雨长虹,孤鹜齐飞的个人主页 🔥个人专栏 🎥前期回顾-栈和队列 期待小伙伴们的支持与关注!!! 目录 树的定义与判定 树的定义 树的判定 树的相关概念 树的运用…

网络编程套接字(2)

TCP 简单的TCP网络程序服务端创建套接字 服务端绑定服务端监听服务端接收连接测试服务端处理请求客户端创建套接字客户端连接服务器客户端连接服务器单执行流的服务器客户端为什么会显示连接成功? 多进程版的TCP网络程序让孙子进程提供服务 多线程版的TCP网络程序 简…

设计模式——模板方法模式(Template Method Pattern)

概述 模板方法模式:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是一种基于继承的代码复用技术,它是一种类行为型模式。模板方法模式是结…

基于node.js和Vue3的医院挂号就诊住院信息管理系统

摘要: 随着信息技术的快速发展,医院挂号就诊住院信息管理系统的构建变得尤为重要。该系统旨在提供一个高效、便捷的医疗服务平台,以改善患者就医体验和提高医院工作效率。本系统基于Node.js后端技术和Vue3前端框架进行开发,利用其…

【Emgu CV教程】6.8、图像平滑之BilateralFilter()双边滤波

文章目录 一、介绍1.原理2.函数介绍 二、举例1.原始素材2.代码3.运行结果 一、介绍 1.原理 BilateralFilter()双边滤波也是非线性滤波,之前介绍的滤波只考虑空间信息(滤波核或邻域),容易造成边缘模糊和细节丢失,相比…

在Windows系统中执行DOS命令

目录 一、用菜单的形式进入DOS窗口 二、通过IE浏览器访问DOS窗口 三、复制、粘贴命令行 四、设置窗口风格 1.颜色 2.字体 3.布局 4.选项 五、Windows系统命令行 由于Windows系统彻底脱离了DOS操作系统,所以无法直接进入DOS环境,只能通过第三方软…

UE4学习笔记 FPS游戏制作3 添加武器

文章目录 章节目标为骨骼添加武器挂载点添加武器 章节目标 本章节为手部添加一个武器挂载点,并挂载一个武器 为骨骼添加武器挂载点 添加挂载点需要以一个动画片段为基础,为骨骼添加挂载点。 首先找到我们需要的动画片段,通常是idle 双击打…

c++设计模式之观察者模式(发布-订阅模式)

介绍 观察者模式主要关注于对象的一对多关系,其中多个对象都依赖于一个对象,当该对象的状态发生改变时,其余对象都能接收到相应的通知。 如,现在有 一个数据对象三个画图对象,分别wield曲线图、柱状图、饼状图三个对象…

草图导入3d后模型贴材质的步骤?---模大狮模型网

3D模型在导入草图大师后出现混乱可能有多种原因,以下是一些可能的原因和解决方法: 模型尺寸问题:如果3D模型的尺寸在导入草图大师时与画布尺寸不匹配,可能导致模型混乱。解决方法是在3D建模软件中调整模型的尺寸,使其适…

深入解剖指针篇(2)

目录 指针的使用 strlen的模拟实现 传值调用和传址调用 数组名的理解 使用指针访问数组 一维数组传参的本质 冒泡排序 个人主页(找往期文章):我要学编程(ಥ_ಥ)-CSDN博客 指针的使用 strlen的模拟实现 库函数strlen的功能是求字符串…

南京观海微电子---如何减少时序报告中的逻辑延迟

1. 引言 在FPGA逻辑电路设计中,FPGA设计能达到的最高性能往往由以下因素决定: ▪ 工作时钟偏移和时钟不确定性; ▪ 逻辑延迟:在一个时钟周期内信号经过的逻辑量; ▪ 网络或路径延迟:Vivado布局布线后引…

多输入多输出 | Matlab实现PSO-LSTM粒子群优化长短期记忆神经网络多输入多输出预测

多输入多输出 | Matlab实现PSO-LSTM粒子群优化长短期记忆神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现PSO-LSTM粒子群优化长短期记忆神经网络多输入多输出预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现PSO-LSTM粒子群优化长短期记忆神经网络…

C++模板:非类型模板参数、特化以及分离编译

一、非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成…

Linux--Shell基础

学习笔记,记录以下课程中关于Linux的Shell基础知识。 黑马程序员linux入门到精通(下部分)_哔哩哔哩_bilibili 目录 1.编写规范 2.变量 2.1 变量的含义 2.2 变量的定义和使用 2.3 只读变量(了解) 2.4 接收用户输入…

Github 2024-02-02开源项目日报Top10

根据Github Trendings的统计,今日(2024-02-02统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目6HTML项目2TypeScript项目2C#项目1JavaScript项目1 ChatGPT提示库 创建周期:424 天开…

用Python处理TDC激光测距数据并绘制为图片

用Python处理TDC激光测距数据并绘制为图片 说明一、定义全局变量变二、主函数入口三、处理原始文件数据四、将数据叠加统计生成图片五、额外的辅助函数六、将数据进行各种形式统计叠加七、原始数据形式八、 测试结果 说明 1. 主要是将TDC激光测距数据进行统计叠加并绘制为图片…

【数据结构(C语言)】树、二叉树详解

目录 文章目录 前言 一、树的概念及结构 1.1 树的概念 1.2 树的相关概念 1.3 树的表示 1.4 树在实际中的运用 二、二叉树的概念及结构 2.1 二叉树的概念 2.2 二叉树的基本形态 ​编辑2.3 特殊的二叉树 2.4 二叉树的性质 2.5 二叉树的存储结构 三、二叉树的顺序结…