(ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类

文章目录

  • 相关论文
  • 摘要
  • 引言
    • 类别嵌入局限性——问题1
    • 普通ZSL模型局限性——问题2
    • 自动属性注释过程——对应问题1
    • 深度语义-视觉对齐(DSVA)模型——对应问题2
  • 基于遥感多模态相似性的自动属性标注
    • 属性词汇表构造
    • 使用CLIP模型自动标注属性
    • 对CLIP模型进行训练和微调
  • 用于zero-shot学习的深度语义-视觉对齐模型
    • 问题定义
    • Vision transformer
    • Visual-attribute mapping module视觉属性映射模块
    • Attention concentrating (AC) module注意力聚焦模块
    • 训练损失

相关论文

(ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
(CVPR,2022)ZegFormer:基于解耦的zero-shot语义分割
(CVPR,2023)PADing:通用zero-shot分割的基元生成与语义对齐
(CVPR,2023)ZegCLIP: 使用CLIP进行单阶段零样本语义分割
(NeurIPS,2019)【代码复现】Zero-Shot Semantic Segmentation零样本语义分割

摘要

深度神经网络在遥感图像分类方面取得了令人期待的进展,其中训练过程需要大量的每个类别样本。然而,考虑到遥感目标数据库的动态增长,为每个遥感类别注释标签是耗时且不切实际的。零样本学习(ZSL)允许识别在训练过程中未见过的新类别,为上述问题提供了有希望的解决方案。

然而,先前的ZSL模型主要依赖于手动标注的属性从语言模型中提取的词嵌入来将知识从已见类别转移到新类别。这些类别嵌入可能在视觉上不可检测,而且标注过程耗时且劳动密集。此外,先驱性的ZSL模型使用在ImageNet上预训练的卷积神经网络,这些网络主要关注图像中出现的主要对象,忽视了在遥感场景分类中也很重要的背景上下文

为了解决上述问题,我们提出了自动收集可视检测属性的方法。我们通过描述属性与图像之间的语义-视觉相似性来为每个类别预测属性。通过这种方式,属性注释过程由机器自动完成,而不是像其他方法中那样由人工完成。此外,我们提出了一种深度语义-视觉对齐(DSVA)模型,利用Transformer中的自注意机制将局部图像区域关联起来,整合背景上下文信息进行预测。DSVA模型进一步利用属性注意力图来关注在ZSL中进行知识转移所必需的信息丰富的图像区域,并将视觉图像映射到属性空间进行ZSL分类。

通过大量实验证明,我们的模型在一个具有挑战性的大规模遥感场景分类基准测试中明显优于其他最先进的模型。此外,我们定性验证了由我们的网络注释的属性既具有类别区分性又具有语义相关性,这有利于零样本知识转移。

引言

在这里插入图片描述
通过学习每个已见类别的语义知识所展示的视觉属性(例如,“水”,“道路”和“绿色”),该模型能够识别由该语义知识组成的未见类别,例如公园。样本学习的两个关键因素是类别嵌入ZSL模型

类别嵌入局限性——问题1

以往改进类别嵌入的尝试有两个方面,手动标注的属性来自预训练语言模型的语义嵌入。属性是物体的特征属性,既可人类解释,又能在不同类别之间进行区分。因此,描述每个类别特征的属性嵌入已成为ZSL中最常用和最强大的类别嵌入。手动标注属性通常是一个两步过程,耗时且劳动密集
一些先驱者通过用从预训练语言模型(例如word2vec、glove和BERT)中提取的语义类别嵌入或为RS场景构建的知识图中提取的语义嵌入替换属性来解决这个问题。然而,这些嵌入的每个维度都不包含具体的语义属性,也不能被视觉检测到,因此导致ZSL性能较差

普通ZSL模型局限性——问题2

普通ZSL模型在RS场景分类任务中的泛化能力有限,这是由于RS场景具有以下特点:

  • 与通常关注局部对象的普通光学图像不同,全局上下文和局部对象之间的交互信息都很重要。
  • RS图像具有高的类间差异和类内相似性,因此要求ZSL模型集中于类内区分特征和类间共享特征。
  • CNN网络天然具有较小的感受野,其设计侧重于局部对象特征,无法充分相关全局和局部信息以用于大规模RS场景。

自动属性注释过程——对应问题1

使用CLIP模型预测遥感多模态属性(RSMM-Attributes)用于遥感场景分类。
我们首先构建一个包含具有丰富语义和视觉信息的属性的属性词汇,用于RS场景分类。为了确保每个类别的属性嵌入在视觉上可检测,属性标注过程通过计算属性和示例图像之间的语义-视觉相似性来完成。CLIP模型是使用包含图像和相应文本描述的大规模RS数据集进行预训练的,因此能够将语义文本和视觉RS图像关联在一个共同的空间中。通过这种方式,用于标注的劳动密集型过程被自动模型取代,大大减少了时间消耗。

深度语义-视觉对齐(DSVA)模型——对应问题2

使用RSMM-Attributes在已见和未见类别之间转移知识,并在考虑图像的局部细节和全局上下文的情况下执行ZSL。我们采用了一个视觉Transformer,它使用局部图像区域之间的长程交互来提取图像表示。
为了将语义属性与视觉特征关联起来,我们学习编码每个属性的视觉特性的属性原型。同时,通过计算原型与视觉图像特征之间的相似性,生成属性注意力图,并通过计算图像-属性相似性准确地将图像映射到属性空间。我们进一步提出了一个注意力集中模块,以关注信息丰富的属性区域。

基于遥感多模态相似性的自动属性标注

在这里插入图片描述

我们提出采用CLIP模型来将语义和视觉空间联系起来,为每个遥感场景类别注释遥感多模态属性(RSMM-Attribute)。
给定一个遥感场景类别 y y y和一个属性 a ∈ A a∈A aA ,我们的目标是为该类别注释属性值,表示属性𝑎在类别 y y y中出现的可能性,即 r a ( y ) ∈ R r_a(y) ∈ ℝ ra(y)R。利用CLIP模型,我们可以衡量属性 a a a和类别 y y y之间的关联强度 r a ( y ) r_a(y) ra(y)。最终,我们将获得一个包含每个类别的所有属性值的类别嵌入,表示为 r A ( y ) ∈ R N a r_A(y)∈ ℝ^{N_a} rA(y)RNa,其中 N a N_a Na是属性词汇表的大小。

属性词汇表构造

为了发现具有丰富语义和视觉信息的属性,我们考虑了以下六类属性
在这里插入图片描述

  1. "颜色"组包括场景中出现的颜色(例如绿色、棕色)。
  2. "物体存在"组列出了可能出现的物体(例如树木、土壤)。
  3. "材料"组描述构成场景的材料(例如水泥、金属)。
  4. "纹理"组描述每个类别的纹理和图案(例如对称、平坦)。
  5. "形状"组指示每个场景中显示的主要形状(例如圆形、矩形)。
  6. "功能"组指示每个类别的社会经济功能(例如工业、农业)。

然后,我们遍历与遥感场景相关的所有属性和对象,以填充每个组,并最终获得一个带有二进制的 a a a属性的属性词汇表 N a N_a Na

使用CLIP模型自动标注属性

如图3(右侧)所示,我们采用的CLIP模型由语义编码器 E t ( ⋅ ) E_t(⋅) Et()和视觉编码器 E v ( ⋅ ) E_v(⋅) Ev()组成,将属性名称和探测图像映射到一个共享的语义-视觉空间中。然后,通过相似度度量函数 f s i m f_{sim} fsim计算实值置信度 r a ( y ) r_a(y) ra(y),如下所示:
在这里插入图片描述
属性值 r a ( y ) r_a(y) ra(y)表示属性 a a a在类别 y y y中出现的可能性。按照CLIP的方法,我们将单个属性名称(例如,“狭窄道路”)转化为包含属性的句子(例如,“这张照片包含狭窄道路”),作为 E t ( ⋅ ) E_t(⋅) Et()的输入。相似度度量采用点积进行计算:
在这里插入图片描述
通过这种方式,我们可以很容易地代替人工将每个属性和相应的类别关联起来,并预测每个类的类语义属性为 r A ( y ) ∈ R N a r_A(y)∈ ℝ^{N_a} rA(y)RNa。我们将CLIP模型标注的属性表示为遥感多模态属性(RSMM-Attribute)

对CLIP模型进行训练和微调

CLIP采用对比学习的范式,优化正样本图像-文本对(即 x i x_i xi t i t_i ti,其中𝑖 ∈ {1, 2, …, 𝐵})之间的余弦相似度为1,而负样本图像-文本对(即 x i x_i xi t j t_j tj,其中𝑖 ≠ 𝑗)之间的相似度优化为接近0。
在这里插入图片描述
在这里插入图片描述
我们使用RSICD数据集中的遥感场景图像和相应描述对CLIP模型进行微调。微调过程如图3(左侧)所示,其中一批图像和相应的文本描述使用视觉编码器 E v ( ⋅ ) E_v(⋅) Ev()和语义编码器 E t ( ⋅ ) E_t(⋅) Et()编码到一个共同的空间中。然后,通过优化两个InfoNCE损失函数 L N C E L_{NCE} LNCE的和来训练编码器。

用于zero-shot学习的深度语义-视觉对齐模型

在这里插入图片描述

如图4所示,DSVA模型利用一种带有自注意力层的Transformer来提取图像表示,然后使用Visual-Attribute Mapping (VAM)模块将表示映射到属性空间,并根据属性相似性为每个图像预测类别标签。此外,我们提出了Attention Concentration (AC)模块,通过属性相关的注意力来集中关注信息丰富的图像区域。

问题定义

训练集 S = { x , y , r A ( y ) ∣ x ∈ X , y ∈ Y s } S=\{x,y,r_A(y)|x \in X,y \in Y^s\} S={x,y,rA(y)xX,yYs}

  • x x x:来自RGB图像空间 X X X遥感图像
  • y y y:来自可见类别 Y s Y^s Ys的标签
  • r A ( y ) r_A(y) rA(y):上一步获得的属性嵌入向量 r A ( y ) ∈ R N a r_A(y)∈ ℝ^{N_a} rA(y)RNa

未见类别标签用 Y u Y^u Yu表示,未见类别的属性嵌入向量 { r A ( y ) ∣ y ∈ Y u } \{r_A(y)|y\in Y^u\} {rA(y)yYu}也是已知的。
zero-shot学习任务旨在预测来自未见类别的图像的标签,即 X → Y u X\rightarrow Y^u XYu
广义zero-shot学习(GZSL)旨在对来自可见和未见类别的图像进行分类,即 X → Y u ∪ Y s X\rightarrow Y^u \cup Y^s XYuYs

Vision transformer

在这里插入图片描述
输入图像 x ∈ R H × W × C x ∈ℝ^{H×W×C} xRH×W×C,其中 H , W , C H,W,C H,W,C分别表示高度、宽度和通道数,被重塑为图像块的序列 { x ~ n } n = 1 N \{\tilde{x}_n\}^N_{n=1} {x~n}n=1N,且 x ~ n ∈ R H k × W k × C \tilde{x}_n\in ℝ^{\frac{H}{k}×\frac{W}{k}×C} x~nRkH×kW×C k k k是图像块的行数(或列数), N = k × k N=k×k N=k×k
为了提取图像表示,我们首先学习一个线性嵌入层 f 0 ( ⋅ ) f_0(⋅) f0(),将图像块映射到𝐷维度的块嵌入 Z 0 ∈ R N × D Z^0 ∈ℝ^{N×D} Z0RN×D
在这里插入图片描述
然后,图像块嵌入将被传递到Transformer编码器,它由 L L L层的多头自注意力(MHSA)子网络和多层感知器(MLP)子网络组成:
在这里插入图片描述
其中, l = 1 , 2 , . . . , L l=1,2,...,L l=1,2,...,L表示层的索引,每个潜在嵌入 Z 0 , Z 1 , . . . , Z L Z^0,Z^1,...,Z^L Z0,Z1,...,ZL的形状为 R N × D ℝ^{N×D} RN×D。其中,第一个输入向量 Z 0 Z^0 Z0来自以下公式。
在这里插入图片描述
对于每个子网络,我们采用残差连接并进行层归一化(LN)操作。

在每个多头自注意力模块中,对于归一化的输入向量 L N ( Z l − 1 ) ∈ R N × D LN(Z^{l-1})\inℝ^{N×D} LN(Zl1)RN×D(为简单起见,我们使用 Z Z Z表示),我们计算输入序列中每个元素的加权和,其中权重基于序列中两个元素之间的相似度。输入序列 Z ∈ R N × D Z\in ℝ^{N×D} ZRN×D通过线性层映射为三个张量,即查询(Q)、键(K)和值(V)。随后计算自注意力:
在这里插入图片描述
在这里插入图片描述
输出多头注意力:
在这里插入图片描述

Visual-attribute mapping module视觉属性映射模块

在这里插入图片描述
我们构建了一个视觉属性映射层,用于学习 N a N_a Na个原型向量 p 1 , p 2 , . . . P N a p_1,p_2,...P_{N_a} p1,p2,...PNa。第 i i i个原型向量 p i ∈ R D p_i\in ℝ^{D} piRD编码了第 i i i个属性 a a a的视觉线索。需要注意的是,原型向量是可训练的向量

由于原型向量应该编码每个属性的视觉特性,我们使用点积作为属性原型向量 p i p_i pi和每个局部图像嵌入 z n z_n zn之间的相似度,其中 z n z_n zn表示图像区域 x ~ n \tilde{x}_n x~n包含特定属性的可能性:
在这里插入图片描述
我们将第 i i i个属性与 N = k × k N=k×k N=k×k个局部图像嵌入之间的相似性值重新整形,形成一个注意力图 M i ∈ R k × k M_i\in ℝ^{k×k} MiRk×k,表示属性 a i a_i ai在图像 x x x中出现的可能性:
在这里插入图片描述
然后,我们通过最大化每个图像patch与属性原型之间的相似性来预测属性值得分:
在这里插入图片描述
其中 f a ( x ) ∈ R f_a(x) ∈ℝ fa(x)R是预测的属性值。总体而言,图像 x x x的预测属性嵌入是 f A ( x ) f_A(x) fA(x)。为了将图像分配到特定的类别,我们计算预测属性嵌入与所有训练类别中的真实属性嵌入之间的兼容性得分,如下所示:
在这里插入图片描述

Attention concentrating (AC) module注意力聚焦模块

在这里插入图片描述
注意力图 M i M_i Mi指示与属性原型具有相似特性的图像区域,因此利用这些注意力图有助于模型定位属性信息并在类别之间传递属性知识。为此,我们提出了一个注意力聚焦模块,用于裁剪和突出属性信息丰富的图像区域,并再次使用裁剪后的图 x ^ \hat{x} x^来训练DSVA网络。

给定从VAM模块生成的 N a N_a Na个属性注意力图 { M i } i = 1 N a \{M_i\}^{N_a}_{i=1} {Mi}i=1Na,目标是集中关注与属性相关的图像区域并裁剪原始图像 x x x。我们首先对注意力图求和,以得到平均注意力:
在这里插入图片描述
在这里插入图片描述
α \alpha α β \beta β为平均注意力的空间坐标。生成一个浓度掩模,其大小为 k × k k×k k×k,以突出显示信息图像区域:
在这里插入图片描述
其中,属性注意力高于平均 m ˉ \bar{m} mˉ的区域被标记为1,属性注意力低 m ˉ \bar{m} mˉ的区域被标记为0。然后我们使用最小的边界框来包含 C C C中所有非零值,将原始图像 x x x裁剪成裁剪图 x ^ \hat{x} x^,并将裁剪后的图像再次输入到视觉转换器和VAM模块中。我们在每个批次中迭代运行VAM模块和AC模块,其中AC模块将帮助网络聚焦于指出不同类别之间区分性细节的有信息属性区域

训练损失

  1. 语义兼容性损失
    使用交叉熵损失,鼓励图像与其对应的属性标签具有较高的兼容性得分,如下所示:
    在这里插入图片描述
    在这里插入图片描述
  2. 语义回归损失
    为了促进视觉-语义映射模块的训练,我们进一步将属性预测视为回归问题,并最小化预测属性与真实属性嵌入之间的均方误差(Mean Square Error,MSE),如下所示:
    在这里插入图片描述
    在这里插入图片描述

总损失如下:
在这里插入图片描述

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

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

相关文章

ideaSSM 网上选课管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea 开发 SSM 网上选课管理系统是一套完善的信息管理系统,结合SSM框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库&#xff…

哈希-字母异位词分组

字母异位词&#xff0c;词频一样&#xff0c;但是顺序不一样&#xff0c;可以进行排序&#xff0c;获取一个key&#xff0c;放在map中即可。 class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> ma…

清明的商标从已注册到不良影响的变化!

清明时节雨纷纷&#xff0c;“清明”可以申请注册商标不&#xff0c;普推知产老杨经检索发现&#xff0c;2022年还有以“清明”通过初审下证的&#xff0c;在这之前更多&#xff0c;还有“清明”在方便食品类别上是著名商标&#xff0c;那个2022年通过初审的正在无效程序中。 2…

mbti,INTJ型人格的心理问题分析

什么是INTJ型人格&#xff1f; INTJ来自mbti职业性格测试&#xff0c;16种人格类型之一&#xff0c;INTJ分别代表内向&#xff0c;直觉&#xff0c;理智&#xff0c;独立&#xff0c;而INTJ型人格是一种以冷静和理性著称的人格&#xff0c;这种人格的人总给人一种比较理智&…

图解大型网站多级缓存的分层架构

前言 缓存技术存在于应用场景的方方面面。从浏览器请求&#xff0c;到反向代理服务器&#xff0c;从进程内缓存到分布式缓存&#xff0c;其中缓存策略算法也是层出不穷。 假设一个网站&#xff0c;需要提高性能&#xff0c;缓存可以放在浏览器&#xff0c;可以放在反向代理服…

【智能排班系统】雪花算法生成分布式ID

文章目录 雪花算法介绍起源与命名基本原理与结构优势与特点应用场景 代码实现代码结构自定义机器标识RandomWorkIdChooseLocalRedisWorkIdChooselua脚本 实体类SnowflakeIdInfoWorkCenterInfo 雪花算法类配置类雪花算法工具类 说明 雪花算法介绍 在复杂而庞大的分布式系统中&a…

小坤二次元导航HTML源码

源码介绍 小坤二次元导航HTML源码&#xff0c;很好看的一个htmlの引导页/导航页&#xff01;需要的上&#xff01; 源码下载 小坤二次元导航HTML源码

游戏攻略|基于Springboot和vue的游戏分享平台系统设计与实现(源码+数据库+文档)

游戏攻略分享平台 目录 基于Springboot和vue的游戏分享平台系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台&#xff1a; 2、后台 管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a…

python绘制子图(旭日图、渐变堆积面积图、多数据折线图、比例关系图)

大家好&#xff0c;我是带我去滑雪&#xff01; 子图可以更清晰地展示和理解复杂的数据关系&#xff0c;通过将数据分成多个小图&#xff0c;有助于观察数据间的关系和趋势。减少数据之间的重叠和混淆&#xff0c;使得每个子图更易于理解和解释。不同类型的子图可以呈现数据的不…

蓝鲸6.1 CMDB 事件推送的开源替代方案

本文来自腾讯蓝鲸智云社区用户&#xff1a;木讷大叔爱运维 背景 在蓝鲸社区“社区问答”帖子中发现这么一个需求&#xff1a; 究其原因&#xff0c;我在《不是CMDB筑高墙&#xff0c;运维需要一定的开发能力&#xff01;》一文中已经介绍&#xff0c;在此我再简单重复下&#…

mysql知识点梳理

mysql知识点梳理 一、InnoDB引擎中的索引策略&#xff0c;了解过吗&#xff1f;二、一条 sql 执行过长的时间&#xff0c;你如何优化&#xff0c;从哪些方面入手&#xff1f;三、索引有哪几种类型&#xff1f;四、SQL 约束有哪几种呢&#xff1f;五、drop、delete、truncate的区…

勒索病毒最新变种.rmallox勒索病毒来袭,如何恢复受感染的数据?

导言&#xff1a; 随着信息技术的飞速发展&#xff0c;网络安全问题日益突出&#xff0c;其中勒索病毒便是近年来备受关注的网络安全威胁之一。在众多勒索病毒中&#xff0c;.rmallox勒索病毒以其独特的传播方式和强大的加密能力&#xff0c;给广大用户带来了极大的困扰。本文…

2024 批量下载公众号文章内容/阅读数/在看数/点赞数/留言数/粉丝数导出pdf文章备份(带留言):公众号混知近2000篇历史文章在线查看,找文章方便了

关于公众号文章批量下载&#xff0c;我之前写过很多文章&#xff1a; 视频更新版&#xff1a;批量下载公众号文章内容/话题/图片/封面/音频/视频&#xff0c;导出html&#xff0c;pdf&#xff0c;excel包含阅读数/点赞数/留言数 2021陶博士2006/caoz的梦呓/刘备我祖/六神读金…

大型语言模型(LLMs)面试常见问题解析

概述 这篇文章[1]是关于大型语言模型&#xff08;LLMs&#xff09;的面试问题和答案&#xff0c;旨在帮助读者准备相关职位的面试。 token&#xff1f; 在大型语言模型中&#xff0c;token 指的是什么&#xff1f; 分词&#xff08;Tokenization&#xff09;&#xff1a;可以将…

IDEA/PyCharm/GoLand同时打开2个分支

背景 想对比2个分支的代码&#xff0c;或者在A分支开发时&#xff0c;需要看B分支&#xff0c;切来切去太麻烦&#xff0c;而且新写的代码还没法直接切到B分支。 操作方法 假如有A、B 2个分支。 通过git worktree为B分支新建1个worktree&#xff0c;然后通过打开新项目的方式…

list使用与模拟实现

目录 list使用 reverse sort unique splice list模拟实现 类与成员函数声明 节点类型的定义 非const正向迭代器的实现 list成员函数 构造函数 尾插 头插 头删 尾删 任意位置插入 任意位置删除 清空数据 析构函数 拷贝构造函数 赋值重载函数 const迭代器的…

【c++】初阶模版与STL简单介绍

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章介绍一下模版和对STL进行简单的介绍&#xff0c;后续我们进入对STL的学习&#xff01; 目录 模版1.泛型编程2.函数模板2.1函数模板的原理2.2模版的实例化…

159 Linux C++ 通讯架构实战14,epoll 函数代码实战

ngx_epoll_init函数的调用 //&#xff08;3.2&#xff09;ngx_epoll_init函数的调用&#xff08;要在子进程中执行&#xff09; //四章&#xff0c;四节 project1.cpp&#xff1a;nginx中创建worker子进程&#xff1b; //nginx中创建worker子进程 //官方nginx ,一个…

深入解析Python的lxml库:高效处理XML和HTML的利器

更多Python学习内容&#xff1a;ipengtao.com Python中的lxml库是一个强大的XML和HTML处理库&#xff0c;它基于libxml2和libxslt库&#xff0c;提供了高效的XML解析和处理功能。本文将详细介绍lxml库的安装、特性、基本功能、高级功能、实际应用场景和总结&#xff0c;帮助读者…

phpstorm设置头部注释和自定义注释内容

先说设置位置&#xff1a; PhpStorm中文件、类、函数等注释的设置在&#xff1a;setting-》Editor-》FIle and Code Template-》Includes-》PHP Function Doc Comment下设置即可&#xff0c;其中方法的默认是这样的&#xff1a; /** ${PARAM_DOC} #if (${TYPE_HINT} ! "…