【论文阅读】用于遥感弱监督语义分割的对比标记和标签激活

【论文阅读】用于遥感弱监督语义分割的对比标记和标签激活

文章目录

  • 【论文阅读】用于遥感弱监督语义分割的对比标记和标签激活
    • 一、介绍
    • 二、联系工作
    • 三、方法
      • 3.1 对比token学习模块(CTLM)
      • 3.2 Class token对比学习
      • 3.3 标签前景激活模块
    • 四、实验结果

Contrastive Tokens and Label Activation for Remote Sensing Weakly Supervised Semantic Segmentation

  

弱监督语义分割(WSSS)取得了显著进展,视觉转换器(ViT)架构由于其利用全局注意力进行全面对象信息感知的固有能力,自然适合此类任务

ViT的特性可能会导致过度平滑的问题,特别是在遥感图像的密集场景中,这会显著损害类激活图(CAM)的有效性,并对分割提出挑战

现有的方法往往采用多阶段策略,增加了复杂性并降低了训练效率

  

提出了一个基于ViT架构的遥感图像WSSS综合框架CTFA(对比token和前景激活)

提出的方法包括一个对比令牌学习模块(CTLM),它结合了patch和class token学习来提高模型性能

  

在patch学习中,我们利用ViT中间层中保留的语义多样性,从这些层中导出关系矩阵,并使用它来监督最终的输出token,从而提高CAM的质量

确保全局和局部标记之间的表示一致性,从而揭示更多的整个对象区域

  

此外,通过使用双分支解码器激活生成的伪标签中的前景特征,我们进一步促进了CAM生成的改进

我们的方法在三个成熟的数据集上展示了出色的结果,为WSSS提供了更高效、更精简的解决方案

  
  

一、介绍

遥感图像数据蕴藏着大量有价值的信息,需要深入探索。语义分割是计算机视觉中的一项关键任务

然而,一个接一个地注释像素以获得分割标签的过程异常耗时耗力,严重阻碍了其实用性

  
因此,人们越来越关注植根于图像级监督的弱监督语义分割(WSSS)技术,这是最容易获得的标签

方法通常需要利用分类模型通过类激活图(CAM)生成伪标签,然后将这些伪标签作为基本事实[7]、[8]来训练分割模型

WSSS方法取得了进展,但遥感图像方面的挑战依然存在

  

包括前景-背景不平衡、大规模变化和多样化的多类别场景

独特的属性对精确估计CAM造成了相当大的障碍,导致分割结果不准确

  
随着数据集中前景比例的降低,分割性能显著下降。另一方面,目前遥感中的弱监督分割方法往往依赖于复杂的多级训练策略来提高伪分割的精度

这些策略虽然有效,但需要多次培训,从而导致更复杂的流程和更高的培训成本
  

  为了应对概述的挑战,我们提出了一种创新的解决方案,该解决方案利用基于视觉转换器(ViT)的架构进行单级WSSS,提供了一种更高效、更精简的方法。现有研究批评CAM的固有缺陷,因为它通常只识别最具鉴别力的语义区域,从而影响语义分割的整体性能。
  

  
现有研究批评CAM的固有缺陷,因为它通常只识别最具鉴别力的语义区域,从而影响语义分割的整体性能
  
传统的卷积神经网络(CNN)受到其归纳偏差的限制,主要捕捉局部特征,难以揭示对象的整体

基于ViT的模型受益于自我关注策略,自然地建立了全局特征交互,克服了CNN的局限性,并揭示了整个对象区域

  

增强了全局关系,从而更准确地生成CAM,有助于提高性能。然而,将基于ViT的方法直接应用于遥感数据的WSSS会带来两个具体挑战:
  

  • 过度平滑问题。如图6所示,基线ViT产生的CAM在整个区域表现出均匀激活的趋势,尤其是在拥挤的场景中,这表明存在过度平滑问题
  • 前台激活不准确。前景激活的不准确是显而易见的,对象的关键区域没有被准确地高亮显示,前景区域被错误地激活。这种不精确性对WSSS的有效性是有害的。

  

为了应对这些具体挑战,我们引入了对比令牌学习模块(CTLM)和标签前景激活模块(LFAM)
  

CTLM的主要目标是突出关键对象区域并抑制过度激活的背景区域,它包括逐块对比度模块和逐类对比度模块
  
由于观察到ViT早期层中的图像patch 表示通常更为多样,逐补丁对比度模块监督ViT的最终输出patch token

将不同的令牌基于其语义标签分离为正对和负对,并计算它们的余弦相似性来实现这一点

  

这有助于创建更多样的表示,解决过度平滑问题,并产生更准确的CAM。类对比模块用于增强局部非明显区域和全局对象之间的语义一致性

类对比模块用于增强局部非明显区域和全局对象之间的语义一致性。这是通过最小化类标记嵌入之间的差异来实现的,有助于激活CAM中的更多对象区域

  

ViT中的类标记聚合语义信息,这对于WSSS任务识别关键对象区域至关重要。为了进一步细化前景激活,在辅助CAM中随机裁剪局部图像以获得局部图像的类标记

通过最大化全局图像和局部背景图像的类标记之间的差异,在前景和背景之间引入差异,这有助于实现更准确的前景激活
  
考虑到空中场景中前景对象的尺寸明显较小,包括最小的区域,该模型在准确感知关键对象区域方面遇到了挑战,导致CAM不理想

  

基于中提出的有效激活与小物体相关的功能的概念,我们提出的解决方案结合了标签前景激活模块(LFAM)来应对这一特定挑战

该模块通过双分支解码器实现,包括分别产生语义级和二进制类输出的分割分支和前景分支

我们采用协作丢失机制来细化生成的伪标签,使模型能够更有效地识别前景区域

从而提高整体分割性能
  

通过使用图像级标签在单个训练周期内对具有这些模块的基于ViT的网络进行并行训练

  • 我们提出了一种新的、有效的基于ViT的框架CTFA(对比令牌和前景激活),用于多类遥感场景中的单级WSSS任务
  • 对比令牌学习模块(CTLM)是为了解决过度平滑的问题而提出的。该模块结合了逐块对比学习和逐类对比学习,从而提高了CAM的整体质量并提高了分割性能。
  • 标签前景激活模块(LFAM)旨在激活伪标签的前景区域,从而增强场景中关键对象的表示。

  

二、联系工作

卷积神经网络及其变体已被广泛用于遥感语义分割任务

  

例如,Kuo等人采用基于全卷积网络的深度聚合网络进行土地覆盖分类

He等人提出了一种结合UNet和Swin转换器的混合结构,Zhang等人利用具有定向窗口的转换器进行语义分割

  

不同的网络设计,还根据遥感图像的特点定制了先进的解决方案,如多尺度表示和注意力机制

鉴于完全监督学习已经达到了相对较高的水平,学者们越来越关注高质量注释数据有限的场景。这导致了对弱监督、半监督、无监督和少镜头学习的研究
  

使用图像级标签进行语义分割通常依赖于CAM来生成伪掩模并监督分割结果的学习

  

技术结合了从数据中提取的额外线索,如亲和度信息和共现矩阵

与像素级完全监督的分割任务相比,弱监督标签提供的监督信息较少,通常以涂鸦、点、边界框和图像级注释的形式出现

  

  • 采用基于全卷积网络的多阶段框架进行构建提取。
  • 提出了WSF-Net 采用了自监督连体网络,并进一步提出了多类别WSSS基准
  • 提出了一种显著性图生成器来生成位置信息,从而获得更准确的性能

  

虽然这些方法对遥感场景的WSSS的发展做出了重大贡献,但遥感领域的当前方法通常采用多阶段范式,以实现更准确的CAM生成和更好的性能
  
这些模型具有很高的复杂性,需要复杂的训练策略。为了简化训练过程并更好地满足现实世界的需求,我们的方法采用了单阶段范式,并利用对比学习来提高CAM的质量,从而缓解了与单阶段训练相关的挑战
  

许多WSSS方法不是精心构建网络架构,而是依赖于常见的CNN,如DeepLabv3+,作为基础特征提取器和CAM生成器
  
例如1stage,它在DeepLabv3+的框架内采用像素自适应掩模细化,以促进从图像中进行稳健学习

SLRNet利用跨视图监督并利用低秩属性来减轻监督错误的影响
  
徐等人介绍了MCTformer,利用多个类标记来增强定位图[55]。在此基础上,他们引入了MCTformer+[56],结合对比学习来增强类标记的学习

  

Ru等人提出了AFA[45],它利用了ViT框架内的亲和性信息

为了扩展他们的工作,他们引入了TOCO,通过在ViT的各个层强制执行成对的令牌相似性来解决过度平滑问题

  
  

三、方法

如图所示,CTFA框架建立在利用ViT架构的编码器-解码器分割网络上

  
在这里插入图片描述

  

操作步骤:

  • CTFA过程从原始输入图像I∈RH×W×3开始,其中H和W表示高度和宽度维度
  • 具有块大小P的ViT编码器将图像I划分为块并提取特征,得到长度为l=H×W/P2的标记序列
  • 该标记序列表示为Tenc=[T1 pat;T2 pat;··;Ti pat;T cls]
  • 我们使用CAM来导出初始伪标签Lpseudo

  

CAM是通过对从分类层中的输出块重新配置为2D形状的特征图F∈Rhw×d的权重W∈Rc×d求和而导出的

对于特定的c类,CAM定义为:
  

在这里插入图片描述

其中采用Relu函数来消除负激活。然后,基于CAM在所有类别中构建伪标签Lpseudo,利用两个背景阈值τl和τh(0<τl<τh<1)来区分前景、背景和不确定区域
  
对于位置x,y处的每个元素,使用CAM对总类别My(x,y) 进行如下计算:

  
在这里插入图片描述
  
0和255分别表示背景和不确定区域的索引,C分别表示数据集中的总类别
  
Lpseudo还采用了像素自适应细化模块(标准杆数),以进一步增强
  

使用交叉熵来计算分割损失Lseg,将该伪标签用作分割概率结果ps∈RH×W的监督

该框架还通过包括对比令牌学习模块(CTLM)和标签前景激活模块(LFAM)而得到进一步增强

  

3.1 对比token学习模块(CTLM)

基于补丁的令牌对比学习:利用ViT不同层中patch表示的多样性,基于patch的对比学习的主要目的是诱导不同的语义特征,从而缓解ViT中的过度平滑问题
  
这是通过在patch相似性S(Tenc)和从ViT的中间层提取的关系矩阵R(Tmid)之间引入对比损失来实现的。

观察到ViT的中间层仍然保留了一些语义多样性

  

ViT块的早期层的余弦相似性将低于后期层

  
在这里插入图片描述
  
补丁标记T=[T′1 pat;T′2 pat;··;T′l cls]来源于ViT的不同层

在从ViT编码器的最后一层获得patch token序列Tenc之后,我们将其重塑为2D特征图F。随后,根据等式构建绝对余弦相似性矩阵S(Tenc)

  
同时,基于从中间层导出的中间token Tmid生成辅助CAM Maux,该中间层被设置为遵循传统配置的第9层[20]

生成的CAM Maux转换为标签Lmid∈R×h′×w′,并平坦化为序列Smid∈R1×h′w′

通过重复h′w′次并将它们堆叠在一起,构造了标签矩阵
  

对该矩阵进行转置并将其与原始矩阵进行比较,得到关系矩阵R(Tmid),其中对于共享的类别信息,每个元素被标记为正,否则被标记为负

R(Tmid)的命题掩码M askpos和负掩码M askneg,以使正对的相似度最大化,而使负对的相似度最小化

  
在这里插入图片描述
  

3.2 Class token对比学习

类标记是ViT中的一个关键组件,因为它的表示整合了来自关键对象的语义信息。通过确保全局和局部类令牌表示之间的语义一致性,我们揭示了更多的语义区域,从而激活了更完整的对象

我们首先利用辅助CAM Maux,并使用等式将其转换为可靠的标签
  

在识别标签中的不确定区域和背景区域后,我们有意裁剪这些区域,以从原始输入图像I中收集局部图像Ic∈RHc×Wc×3

然后将这些裁剪的图像输入到ViT编码器中,生成包含额外cls的小维标记。为了确保局部和全局表示之间的一致性,由线性层组成的两个投影头Pl和Pg接收这两组标记
  

全局投影头Pg的梯度被停止,并且指数移动平均(EMA)被用于其更新

使用InfoNCE loss公式化损失函数如下:
  

在这里插入图片描述
  
通过等式中的对比学习

全局对象和局部不确定区域的类标记表示变得更加密切相关,而背景区域被抑制。这鼓励激活更多的对象区域

  

在这里插入图片描述
  

3.3 标签前景激活模块

前景和语义预测的双分支解码器概念的启发

优化了语义输出p s∈R H×W和前景输出p f∈R H×W的联合损失,以激活类不可知的前景对象,促进整个对象的揭示
  

由于WSSS任务中没有提供特定的标签,我们自然会专注于优化创建的伪标签Lpseudo

我们为提取的特征Tenc引入了额外的解码器Df,以生成前景输出p f。考虑到输出概率p f,背景概率表示为1−p f,因为它只预测这两类

η是归一化因子,表示不匹配预测输出的总和
  

在这里插入图片描述

  

四、实验结果

数据集描述

为了全面评估我们的方法的有效性,我们在三个常用的遥感数据集上进行了实验。关于这些数据集的详细信息和我们的实施策略描述如下
  

iSAID数据集:

设计用于航空图像中的实例分割和语义分割的iSAID数据集[23]是改编自目标检测数据集DOTA[58]的大量集合。

我们从每个图像中随机裁剪512×512个patch。

  

  • 包括7500个patch的训练集
  • 具有1653个patch的验证集
  • 具有1315个patch的测试集

  

Potsdam 数据集:

ISPRS Potsdam 是在波茨坦市拍摄的航空图像数据集。它包括38张正射校正图像,每张图像的尺寸为6000×6000像素

使用分配用于训练的23张图像

以及保留用于测试的14张图像

512×512像素的非重叠patch。

该过程产生2783个patch的训练集和1794个patch的测试集

  
DeepGlobe数据集:

DeepGlobe包括830张图像,每张图像的平均大小为2448×2448像素。

数据集包括七类:城市、农业、牧场、森林、水、贫瘠和未知。

图像裁剪成大小为512×512像素的非重叠块。

  • 包含9100个切片的训练集、
  • 包含2025个切片的测试集
  • 包含2150个切片的验证集

  

具体细节:

  • ViTB作为我们的基线
  • AdamW优化器进行20000次迭代
  • 批量大小恒定为8
  • 权重衰减设置为1e-2
  • 动量设置为0.9
  • DeepGlobe数据集使用2e-5的学习率外
  • 初始学习率设定为6e-5
  • 学习速率衰减遵循多项式调度器

  
对于解码器部分,我们实现了如中所述的简单分割头,由两个膨胀率为5的膨胀卷积层组成

在推理阶段,采用多尺度测试策略生成多尺度CAM,通过平均融合得到最终的伪标签。随后,采用密集CRF作为后处理步骤来细化最终结果

在这里插入图片描述

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

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

相关文章

【云计算】云数据中心网络(七):负载均衡

《云网络》系列&#xff0c;共包含以下文章&#xff1a; 云网络是未来的网络基础设施云网络产品体系概述云数据中心网络&#xff08;一&#xff09;&#xff1a;VPC云数据中心网络&#xff08;二&#xff09;&#xff1a;弹性公网 IP云数据中心网络&#xff08;三&#xff09;…

在Ubuntu 22.04上安装配置VNC实现可视化

前面安装的部分可以看我这篇文章 在Ubuntu 18.04上安装配置VNC实现Spinach测试可视化_ubuntu18开vnc-CSDN博客 命令差不多一样&#xff1a; sudo apt update sudo apt install xfce4 xfce4-goodies sudo apt install tightvncserver这个时候就可以启动server了 启动server&…

C++:map和set的使用

一、关联式容器介绍 在学习map和set之前&#xff0c;我们接触到的容器有&#xff1a;vector、list、stack、queue、priority_queue、array&#xff0c;这些容器统称为序列式容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面存储的是元素本身。 关联式容器也是用…

李沐-16 PyTorch 神经网络基础【动手学深度学习v2】

注&#xff1a;1. 沐神对应章节视频出处 2.代码使用Jupyter Notebook运行更方便 3.文章笔记出处 一、层和块 层&#xff1a;层&#xff08;1&#xff09;接受一组输入&#xff0c; &#xff08;2&#xff09;生成相应的输出&#xff0c; &#xff08;3&#xff09;由一组可调整…

【Camera Framework笔记】二、Camera Native Framework架构①

一、总体架构&#xff1a; service -> opencamera -> client&#xff08;api1/api2&#xff09; -> device3&#xff08;hal3&#xff09; | | &#xff08;不opencamera…

Linux网络编程--网络传输

Linux网络编程--网络传输 Linux网络编程TCP/IP网络模型网络通信的过程局域网通信跨网络通信&#xff1a;问题总结&#xff1a; Linux网络编程 TCP/IP网络模型 发送方&#xff08;包装&#xff09;&#xff1a; 应用层&#xff1a;HTTP HTTPS SSH等 —> 包含数据&#xff0…

终极版商城平台 涵盖虚拟商品全功能的商城平台 全能商城小程序 智慧商城系统 全品类百货商城服务

终极版商城平台 涵盖虚拟商品全功能的商城平台 全能商城小程序 智慧商城系统 全品类百货商城服务 含uniapp源码 全功能商城系统&#xff1a;完美运营版&#xff0c;简洁无冗余 这款商城系统完美集成了拼团、团购、秒杀、积分兑换、砍价活动&#xff0c;同时支持实物商品与虚拟…

2010年认证杯SPSSPRO杯数学建模B题(第一阶段)交通拥堵问题全过程文档及程序

2010年认证杯SPSSPRO杯数学建模 交通拥堵问题 B题 Braess 悖论 原题再现&#xff1a; Dietrich Braess 在 1968 年的一篇文章中提出了道路交通体系当中的Braess 悖论。它的含义是&#xff1a;有时在一个交通网络上增加一条路段&#xff0c;或者提高某个路段的局部通行能力&a…

深度学习知识点:循环神经网络(RNN)、长短期记忆网络(LSTM)、门控循环单元(GRU)

深度学习知识点&#xff1a;循环神经网络&#xff08;RNN&#xff09;、长短期记忆网络&#xff08;LSTM&#xff09;、门控循环单元&#xff08;GRU&#xff09; 前言循环神经网络&#xff08;RNN&#xff09;RNNs&#xff08;循环神经网络&#xff09;训练和传统ANN&#xff…

VulBG: 构建行为图加强基于深度学习的漏洞检测模型

近年来&#xff0c;人们提出了基于深度学习&#xff08;DL&#xff09;的漏洞检测系统&#xff0c;用于从源代码中自动提取特征。这些方法在合成数据集上可以实现理想的性能&#xff0c;但在检测真实世界的漏洞数据集时&#xff0c;准确率却大幅下降。此外&#xff0c;这些方法…

OpenHarmony网络协议通信—nanopb

简介 nanopb是一种小代码量的协议缓冲区实现&#xff0c;适用于任何内存受限的系统。 下载安装 直接在OpenHarmony-SIG仓中搜索nanopb并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 将下载的Nanopb库代码存在以下路径&#xff1a;./third_party/nanopb 修改添…

docker安装并跑通QQ机器人实践(3)-bs-nonebot搭建

NoneBot2 是一个现代、跨平台、可扩展的 Python 聊天机器人框架&#xff08;下称 NoneBot&#xff09;&#xff0c;它基于 Python 的类型注解和异步优先特性&#xff08;兼容同步&#xff09;&#xff0c;能够为你的需求实现提供便捷灵活的支持。同时&#xff0c;NoneBot 拥有大…

如何在 Netlify 上手动部署 React 和 TypeScript 项目

在本教程中&#xff0c;我将教你如何使用 Vite 在 Netlify 上手动部署 React 和 TypeScript 项目。我将向你展示一些快速简单的步骤&#xff0c;让你的项目能够立即运行。 要跟着本教程操作&#xff0c;有几个先决条件&#xff1a; 一个现有的 React 和 TypeScript 项目&…

bug(警告):[vue-router] Duplicate named routes definition: …

查看警告&#xff1a;[vue-router] Duplicate named routes definition——翻译[vue-router]重复命名路由定义 小编劝诫&#xff1a;当我们在开发过程中警告也一定不要忽略&#xff0c;虽然你在本地跑代码时这些警告影响项目的正常运行&#xff0c;但是会让你产生误区&#xff…

OSPGF高级实验综合

1.实验拓扑 二.实验要求 1、R4为ISP&#xff0c;其上只配置IP地址&#xff1b;R4与其他所直连设备间均使用公有IP&#xff1b; 2、R3-R5、R6、R7为MGRE环境&#xff0c;R3为中心站点&#xff1b; 3、整个OSPF环境IP基于172.16.0.0/16划分&#xff1b;除了R12有两个环回&#x…

深入理解JAVA垃圾收集器CMS,G1工作流程原理 GC流程图 什么社会触发Minor GC?触发MinorGC过程。Full GC 过程。

java CMS&#xff0c;G1垃圾收集器工作流程原理浅析 JVM内存空间基础知识点&#xff08;基于JDk1.8&#xff09; 1.方法区&#xff1a;逻辑概念&#xff0c;元空间&#xff0c;方法区主要用于存储类的信息、常量池、方法数据、方法代码等。方法区逻辑上属于堆的一部分&#xf…

java实现chatGPT SDK

搭建一个 ChatGPT-SDK 组件工程&#xff0c;专门用于封装对 OpenAI 接口的使用。由于 OpenAI 接口本身较多&#xff0c;并有各类配置的设置&#xff0c;所以开发一个共用的 SDK 组件&#xff0c;更合适我们在各类工程中扩展使用 整个流程为&#xff1a;以会话模型为出口&#x…

C++笔试强训day3

目录 1.简写单词 2.dd爱框框 3.除2&#xff01; 1.简写单词 链接 我的思路超级简单&#xff0c;就是将输入的每个string存入vector&#xff0c;然后遍历每个string的第一个元素&#xff0c;如果为小写字母&#xff0c;就-32存入&#xff0c;若为大写&#xff0c;则直接存入。…

Docker in Docker的原理与实战

Docker in Docker&#xff08;简称DinD&#xff09;是一种在Docker容器内部运行另一个Docker实例的技术。这种技术允许用户在一个隔离的Docker容器中创建、管理和运行其他Docker容器&#xff0c;从而提供了更灵活和可控的部署选项。以下是DinD的主要特点&#xff1a; 隔离性&am…

Maven实战—搭建微服务 Maven 工程架构

需求案例&#xff1a;搭建一个电商平台项目&#xff0c;该平台包括用户服务、订单服务、通用工具模块等。 项目架构&#xff1a; 用户服务&#xff1a;负责处理用户相关的逻辑&#xff0c;例如用户信息的管理、用户注册、登录等。订单服务&#xff1a;负责处理订单相关的逻辑…