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

news2025/1/18 20:08:06

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.coloradmin.cn/o/1801989.html

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

相关文章

【Flask开发实战】首页模板

一、前言 前面我们已经完成登录页面的设定,登录后临时调转到“hello flask”的界面。现在我们根据实际首页的设计需要,来完成首页相关内容的开发。一般系统首页会放一些分析数据,多以图表的方式展示,方便使用者了解信息。以防火墙…

JavaScript事件监听之其它事件(页面加载事件、元素滚动事件、页面尺寸事件、M端事件)

目录 1. 页面加载事件(load、DOMContentLoaded)2. 元素滚动事件(scroll)3. 页面尺寸事件3.1 resize3.2 获取元素宽高3.3 获取元素位置(offsetLeft和offsetTop、getBoundingClientRect) 4. M端事件 1. 页面加载事件(load、DOMContentLoaded) load事件: 使用场景: 等…

MyBatis二级缓存开启条件

MyBatis缓存为俩层体系。分为一级缓存和二级缓存。 一级缓存: 一级缓存默认开启,一级缓存的作用域是SqlSession级别的,这意味着当你更换SqlSession之后就不能再利用原来的SqlSession的一级缓存了。不同的SqlSession之间的一级缓存是隔离的。…

基础概念解析:SOCKS5代理究竟是什么?SOCKS5代理ip使用场景有哪些?

在当今数字化时代,网络安全和隐私保护已成为我们日常生活中不可忽视的问题。随着网络攻击手段的日益复杂,如何安全地访问互联网资源成为了一个亟待解决的问题。SOCKS5代理作为一种先进的网络协议,为我们提供了解决这一问题的有效方案。 本文…

实用的 C 盘搬家软件

一、简介 1、一款专门用于 Windows 系统的文件夹移动工具,它允许用户将程序或游戏的安装文件夹从一台驱动器移动到另一台驱动器,或者同一个驱动器内的不同路径,而无需重新安装或破坏现有的程序安装。 二、下载 1、下载地址: 官网链…

3-1RT-Thread时钟管理

这里写自定义目录标题 时钟节拍是RT thread操作系统的最小时间单位。 第一个功能,rt tick值自动加1,在RT thread当中通过RT_USING_SMP定义了多核和单核的场景。第二个功能,检查当前线程的时间片,首先获取当前线程,将当…

AI 写高考作文丨10 款大模型 “交卷”,实力水平如何?

前言 在科技日新月异的今天,人工智能(AI)已不再是遥不可及的未来科技,而是逐渐融入我们日常生活的实用工具。从智能语音助手到自动驾驶汽车,从智能家居系统到精准医疗诊断,AI技术正以其强大的计算能力和数…

端午搞个零花钱,轻松赚取创业的第一桶金!2024最受欢迎的创业项目,2024新的创业机会

好好的端午节, 净给我添堵! 本来我打算在端午节愉快的玩耍, 结果一大早起床却看到舍友在给一堆设备充电, 然后装的整整齐齐, 满满一书包。 我好奇他小子这是要干嘛? 不会是打算今天回去给亲朋好友准备…

Centos7 安装配置SFTP

Centos7安装配置SFTP 更新源安装 OpenSSH 服务启动服务设置为开机自启动新建一个用户 (sftpuser为你要设置的用户的用户名)编辑配置文件设置sftp用户的根目录重启SSH服务代码实现 由于最近工作中需要实现动态上传文件到帆软服务器,但是帆软没有提供相关API&#xff…

Allegro限制走线区域和元器件摆放区域

一、Line to Shape 当你的板框是线条形式时,先将线条闭合成shape,点击Shape–>Compose Shape,选择如下参数,再逐一选中分散线条,选择完毕右键Done即可 二、Z-Cope使用 点击Edit–>Z-Cope,选择如下参数&…

Django项目上线-报错汇总

Django项目上线-报错汇总 下列报错基本都是Python环境相关 pip install 报错 WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. debian运行pip报错ssl module in Python is not available - z417 - 博…

SM481,SM432和利时DCS备件

SM481,SM432和利时DCS备件。POU名只能包含字母、数字、下划线,第一个字符必须是字母或者下划线,且遵循以下原则:SM481,SM432和利时DCS备件。关于重名,不能与变量名、变量组名、POU文件夹名、任务名、SM481,SM432和利时DCS备件。工…

OpenCompass 大模型评测平台C-Eval 基准任务评估实战

1. 引言 在人工智能迅速发展的今天,大型语言模型(LLMs)在多个领域展现出了巨大的潜力和应用价值。然而,如何评价这些模型的性能,了解它们的优缺点,成为了一个重要课题。OpenCompass,一个由上海…

【Java】解决Java报错:ArrayIndexOutOfBoundsException

文章目录 引言1. 错误详解2. 常见的出错场景2.1 直接访问数组越界2.2 循环中的索引错误2.3 多维数组的错误访问 3. 解决方案3.1 检查数组长度3.2 正确使用循环3.3 多维数组的正确访问 4. 预防措施4.1 使用增强型 for 循环4.2 编写防御性代码4.3 单元测试 结语 引言 在Java编程…

C++学习插曲:“name“的初始化操作由“case“标签跳过

问题 "name"的初始化操作由"case"标签跳过 问题代码 case 3: // 3、删除联系人string name;cout << "请输入删除联系人姓名&#xff1a;" << endl;cin >> name;if (isExistPerson(&abs, name) -1){cout << "…

Linux--进程间通信(system V共享内存)

目录 1.原理部分 2.系统调用接口 参数说明 返回值 1. 函数原型 2. 参数说明 3. 返回值 4. 原理 5. 注意事项 3.使用一下shmget&#xff08;一段代码&#xff09; 4.一个案例&#xff08;一段代码) 1.简单封装一下 2.使用共享内存 2.1挂接&#xff08;shmat&#x…

netty+springboot+vue聊天室(需要了解netty)

先看看这个使用websocket实现的聊天室&#xff0c;因为前端是使用websocket&#xff0c;和下面的demo的前端差不多就不解释实现原理&#xff0c;所以建议还是看看(要是会websocket的大佬请忽略) springbootwebsocketvue聊天室 目录 一、实现内容二、代码实现1.后端2.前端源码…

java基础语法整理 ----- 上

java基础语法 一、变量二、数据类型三、标识符四、键盘录入五、判断语句1. 三种格式2. 练习题 六、switch语句七、循环八、循环控制语句九、方法 一、变量 1.什么是变量&#xff1a; 在程序运行过程中&#xff0c;其值可以发生改变的量从本质上讲&#xff0c;变量是内存中的一…

Java--命令行传参

1.有时你希望运行一个程序时再传递给它消息&#xff0c;这要靠传递命令行参数给main&#xff08;&#xff09;函数实现 2.选中文件右键找到如图选项并打开 3.在文件地址下输入cmd空格符号&#xff0c;再按回车调出命令窗口 4.如图一步步进行编译&#xff0c;在向其传入参数&…

Web自动化测试-掌握selenium工具用法,使用WebDriver测试Chrome/FireFox网页(Java

目录 一、在Eclipse中构建Maven项目 1.全局配置Maven 2.配置JDK路径 3.创建Maven项目 4.引入selenium-java依赖 二、Chrome自动化脚本编写 1.创建一个ChromeTest类 2.测试ChromeDriver 3.下载chromedriver驱动 4.在脚本中通过System.setProperty方法指定chromedriver的…