高光谱图像聚类的像素-超像素对比学习与伪标签校正

Pixel-Superpixel Contrastive Learning and Pseudo-Label Correction for Hyperspectral Image Clustering

文章目录

  • Pixel-Superpixel Contrastive Learning and Pseudo-Label Correction for Hyperspectral Image Clustering
    • 摘要
    • 引言
    • 相关方法
      • 对比学习
    • 方法
      • 超像素对比学习
      • 像素级对比学习
      • 伪标签校正

摘要

本文提出了一种新的高光谱图像(HSI)聚类方法,名为像素-超像素对比学习与伪标签校正(PSCPC)。该方法结合了像素级和超像素级的对比学习,通过超像素捕获领域特定的细粒度特征,并在超像素内部对少量像素进行比较学习。PSCPC通过一个伪标签校正模块来对齐像素级和超像素级的聚类伪标签,使用像素级聚类结果来指导超像素级聚类,从而提高模型的泛化能力。

引言

硬件成像技术的快速发展,特别是高光谱遥感技术,它使用纳米级成像光谱仪对地面物体进行多波段的同时成像。HSI包含了丰富的空间、辐射和光谱信息,使得图像分析和处理领域中的地面物体分类成为一个重要的研究方向。由于在实际应用中获取大量标记训练样本是困难的,因此无监督分类或聚类方法得到了广泛应用。传统聚类算法在高维数据聚类任务中存在局限性,深度学习结合传统聚类算法的深度聚类算法能够更好地利用HSI的光谱和空间信息。

  • 文章的主要贡献

提出了一种新颖的HSI聚类方法PSCPC,它同时关注硬正样本和硬负样本对。
设计了一个综合的相似性度量标准,考虑了属性和结构信息,以更好地揭示样本之间的关系。
在高置信度聚类信息的指导下,提出了一种样本权重调节策略,动态增加硬样本对的权重,同时减少容易样本的权重。
在六个数据集上的广泛实验结果证明了PSCPC方法的优越性和有效性。
在这里插入图片描述

相关方法

对比学习

物体具有某些一般特征,对比学习学习这样的特征,具有很强的可迁移性,在无标签数据的聚类中能够取得很好的效果。对比学习算法的核心思想是利用样本信息生成监督信号,通过不断缩短正样本之间的距离、推开负样本之间的距离来提取更好的模态特征。构建正负样本并提取特征后,需要设置损失函数来减小表示空间中正例对之间的距离。损失函数一般采用InfoNCE损失

方法

超像素对比学习

HSI研究的先验知识表明,高光谱数据包含丰富的局部空间结构信息和一定的同质性[17],在超像素级别执行任务有助于节省资源并更好地聚合空间信息。超像素是图像分割的结果;每个超像素是一组具有相似属性的像素。尺度参数估计(ESP)方法[24]用于遥感数据的图像分割。
超像素的特征是编码器提取的像素特征图的平均值。

像素级对比学习

HSI聚类的本质是将相似的像素划分为更接近的簇。因此,改进像素级表示学习可以提高聚类精度,因为它鼓励空间上接近的像素具有相似的表示。为了获得平滑的特征和精细的分类,我们提出了一种像素级对比学习方法。由于超像素中的大部分像素属于同一类,为了节省计算资源,我们在每个超像素中随机选择m个像素与超像素特征H进行比较。

伪标签校正

与像素级聚类相比,由于超像素级任务的输入规模较大,聚类的精细度较低。此外,超像素级对比损失将除最接近的k个样本之外的所有样本视为负样本,这可能会分离相似的样本并破坏聚类结构。为了提高聚类模型的鲁棒性,我们提出了伪标签校正模块。具体来说,每个超像素有两个标签。首先,直接使用k均值聚类算法来获得每个超像素的预测标签。其次,对于超像素中的M个像素,根据聚类结果计算该超像素的伪标签ˆy,即各类像素所占的比例。为了避免预测结果过于绝对,这里的预测标签和伪标签都是软标签。伪标签校正模块的目的是保证两种方法得到的结果一致。

在这里插入图片描述

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

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

相关文章

深入Vue.js:从基础到进阶的全面学习指南

简介 Vue.js是什么Vue.js的历史和版本演进Vue.js的优势和适用场景 基本概念 MVVM模式Vue实例模板语法数据绑定计算属性和侦听器 核心功能 指令事件处理表单处理组件系统插槽 进阶功能 动态组件异步组件自定义指令混入插件 状态管理 Vuex介绍核心概念:State、Get…

【嵌入式】智能系统优化:【C++】驱动的【机器学习】与【数据挖掘】技术

目录 一、嵌入式系统简介 二、C在嵌入式系统中的优势 三、机器学习在嵌入式系统中的挑战 四、C实现机器学习模型的基本步骤 五、实例分析:使用C在嵌入式系统中实现手写数字识别 1. 数据准备 2. 模型训练与压缩 3. 模型部署 六、优化与分析 1. 模型优化 模…

什么时候用C而不用C++?

做接口只用C,千万别要C。C是编译器敏感的,一旦导出的接口里有 std::string这些东西,以及类,注定了要为各个编译器的各个版本准备独立的库。 刚好我有一些资料,是我根据网友给的问题精心整理了一份「C的资料从专业入门…

Gitlab---添加描述模版

0 Preface/Foreword Gitlab是代码托管平台,DevOps。因其免费,被广泛使用。GitLab不但可以管理代码,也可以管理issue,创建milestone等等。针对issue管理,支持描述模版功能,即对于新建的issue,可…

深度网络学习笔记(二)——Transformer架构详解(包括多头自注意力机制)

Transformer架构详解 前言Transformer的整体架构多头注意力机制(Multi-Head Attention)具体步骤1. 步骤12. 步骤23. 步骤34. 步骤4 Self-Attention应用与比较Self-Attention用于图像处理Self-Attention vs. CNNSelf-Attention vs. RNN Transformer架构详…

【第11章】SpringBoot实战篇之文章(下)含条件分页

文章目录 前言一、文章列表查询1. ArticleController2. ArticleService 二 、文章查询1. ArticleController2. ArticleService 三、文章更新1. ArticleController2. ArticleService 四、文章删除1. ArticleController2. ArticleService 五、文章列表查询(条件分页)1.ArticleCon…

速盾:cdn加速 app

CDN(Content Delivery Network)加速是通过将网站的静态资源(如图片、脚本、样式表等)分发到全球多个服务器节点上,使用户能够快速访问这些资源。在移动应用开发中,CDN加速也能够为app提供更快的用户体验和更…

医疗器械网络安全风险管理的基本步骤

医疗器械网络安全风险管理是一个复杂的过程,涉及到多个环节和步骤。以下是一些基本的步骤和关键点: 风险识别:首先需要对医疗器械的软件、网络连接和通信协议等进行漏洞分析,识别潜在的安全漏洞和弱点。这可能涉及对设备的渗透测…

[大师C语言(第二十三篇)]C语言常用第三方库总结

C语言因其高效、灵活和可移植的特性,在系统编程、嵌入式开发、操作系统、网络编程等领域被广泛使用。C语言的标准库提供了一些基础功能,但在实际开发中,开发者通常需要借助第三方库来完成更加复杂的任务。本文将总结一些常用的C语言第三方库&…

MbedTLS源码跨平台编译(window/macos/linux)

1.window平台编译: 克隆: git clone --recursive https://github.com/Mbed-TLS/mbedtls.git 克隆成功 添加OpenSSL环境变量 验证环境 使用cmake编译 cmake ../生成配置时出错 出现上面原因是克隆下来的library与programs及tests目录少文件了,直接下载zip包替换library目录

docker pull image 报错 dial tcp 31.13.88.169:443: i/o timeout

一、错误重现 error pulling image configuration: download failed after attempts6: dial tcp 31.13.88.169:443: i/o timeout 在执行docker build构建镜像,拉取镜像时报错 或者直接docker pull镜像时报错 实质都是拉取镜像源超时报错,那么就是镜像源…

记录移动端项目iOS端相对于安卓的各种兼容性问题

目录 1、iOS端列表页面屏幕滑动滞涩感强烈 2、iOS端的按钮以及添加的边框和倒角属性失效问题 3、iOS错误识别页面时间为 a 标签 4、iOS端调起软键盘界面布局走位问题 5、iOS端滚动条部分滚动样式不生效问题 背景 : 在开发移动端H5项目的过程中,遇到…

let const var的区别

在JavaScript中,let、const和var都用于声明变量,但是它们有几个关键的差异: 作用域 (Scope): var 声明的变量拥有函数作用域或全局作用域。在函数外部声明的var变量是全局的,在函数内部声明的var变量是局部的。let 和 const 声明的…

Java sql中 >、<、≥、≤ 等的转义字符 代替符号

Java中写sql会遇到一些 >、<、≥、≤ 符号转化问题&#xff0c;导致sql语句无法运行。 替代方法如下&#xff1a; 第一种方法&#xff1a; < &#xff1a; < < &#xff1a; < > &#xff1a; > > &#xff1a; > sql示例如下&#x…

IEDA 默认集成依赖概述

IEDA 默认集成依赖概述 目录概述需求&#xff1a; 设计思路实现思路分析 1.Developer Tools:GraalVM Native supportGraphQL DGs Code GenerationSpring Boot DevToolsLombokSpring Configuration ProcessorDocker Compose supportSpring Modulith 2.WebWebSpring WebSpring Re…

详解 Flink 的 window API

一、window 概述 ​ Streaming 流式计算是一种被设计用于处理无限数据集的数据处理引擎&#xff0c;而无限数据集是指一种不断增长的本质上无限的数据集&#xff0c;而 Flink window 是一种将无限数据切割为有限块进行处理的手段。window 是无限数据流处理的核心&#xff0c; …

【Java 新特性系列】Java 8 Optional 类完全指南

Optional 是 Java8 提供的为了解决 null 安全问题的一个 API。善用 Optional 可以使我们代码中很多繁琐、丑陋的设计变得十分优雅。 文章目录 1、Optional 类概述1.1、Optional 类介绍1.2、使用 Optional 的前后对比1.2.1、不使用 Optional1.2.2、使用 Optional 2、Java 8 中 O…

信奥之路(五)——顺序结构

** 以顺序、选择和循环三种基本结构的组合来描述程序&#xff0c;是结构化程序设计方法的主要特征之一。每条语句按照自上而下的顺序依次运行一次&#xff0c;这种自上而下依次执行的程序称为顺序结构程序。 ** 1.题目描述 爸爸妈妈让小明去附近的超市买一些玉米回来。爸爸…

单片机原理及技术(三)—— AT89S51单片机(二)(C51编程)

一、AT89S51单片机的并行I/O端口 1.1 P0口 AT89S51的P0口是一个通用的I/O口&#xff0c;可以用于输入和输出。每个引脚都可以通过软件控制为输入或输出模式。 1.1.1 P0口的工作原理 P0口的工作原理是通过对P0寄存器的读写操作来控制P0口的引脚。 输出模式&#xff1a;当P0口…

python --监听鼠标事件

import pyautogui from pynput import mouse, keyboardpyautogui.FAILSAFE Falseclass MouseMonitor:def __init__(self):self.mouse mouse.Controller()self.lock Truedef on_move(self, x, y):鼠标位移时回调函数if self.lock:print(11)pyautogui.moveTo(500, 500)self.loc…