基于高光谱图像的压缩感知网络

压缩感知算法原理

压缩感知(Compressed Sensing, CS)是一种信号处理技术,它允许在远低于Nyquist采样率的情况下对信号进行有效采样和重建。压缩感知理论的核心思想是利用信号的稀疏性,通过少量的线性测量重建出原始信号。以下是压缩感知算法的主要原理:

1. 稀疏表示(Sparse Representation)

压缩感知的一个基本假设是信号在某个变换域中是稀疏的,即信号可以用少量非零系数进行表示。常见的稀疏变换包括傅里叶变换、小波变换等。稀疏表示可以表示为:x=Ψs;其中,x是原始信号,Ψ是变换矩阵,s是稀疏系数向量。这是压缩感知的前提条件,即信号需要在某个变换域中是稀疏的。

2. 线性测量(Linear Measurements)

在压缩感知中,通过一个测量矩阵Φ对稀疏信号进行线性投影,得到少量的观测值:
y=Φx
结合稀疏表示,可以表示为:
y=ΦΨs
其中,y是观测值向量,Φ是测量矩阵。

3. 稀疏重建(Sparse Reconstruction)

稀疏重建的目标是从观测值y中恢复稀疏系数s。这个问题可以形式化为一个优化问题:
在这里插入图片描述

  1. 测量矩阵的选择
    测量矩阵通常是随机生成的,如高斯随机矩阵或伯努利随机矩阵。这些矩阵具有良好的重建性能。

  2. 优化算法
    稀疏重建通常使用以下优化算法:

    • 匹配追踪算法(Matching Pursuit, MP)正交匹配追踪算法(Orthogonal Matching Pursuit, OMP):这些贪婪算法逐步选择和更新稀疏系数。
    • 基追踪算法(Basis Pursuit, BP):通过线性规划求解L1范数最小化问题。
    • 交替方向乘子法(Alternating Direction Method of Multipliers, ADMM):一种迭代优化算法,常用于大规模稀疏重建问题。

高光谱图像的性质

高光谱图像包含数百到上千个连续的光谱波段,而传统的多光谱图像通常只有少数几个波段(如红、绿、蓝)。这种高光谱分辨率使得高光谱图像能够捕捉到更多的光谱信息,从而区分出不同物质的细微差异,提供比传统成像技术更详细的物质识别能力。

现代高光谱传感器不仅具有高光谱分辨率,同时也具备较高的空间分辨率。这使得高光谱图像可以在细节层面上提供丰富的空间和光谱信息。并且高光谱图像在相邻波段之间存在较大的相关性,这导致了数据冗余。这种冗余性可以通过压缩感知等技术来进行压缩和优化,以减少存储和传输的压力。

基于高光谱图像的压缩感知网络

JTenRe3DTV、E3DTV

JTenRe3DTV(Joint Tensor Regularization and 3D Total Variation) 是一种结合张量正则化和三维总变分(3D TV)的方法,旨在压缩感知高光谱图像时保持高光谱和空间保真度。该算法利用张量分解和3D TV 正则化,通过优化问题重建稀疏信号。它能够有效地去除噪声,同时保留图像的细节和结构。

Y. Wang, L. Lin, Q. Zhao, T. Yue, D. Meng, and Y. Leung, “Compressive sensing of hyperspectral images via joint tensor tucker decomposition and weighted total variation regularization,” IEEE Geoscience and Remote Sensing Letters, vol. 14, no. 12, pp. 2457–2461, 2017.

E3DTV(Enhanced 3D Total Variation) 是对传统3D TV 方法的增强,专注于提高重建图像的质量,减少伪影,并增强图像细节。该算法将低秩约束与总变分约束结合起来,处理高光谱图像中的混合噪声。通过利用图像的空间和光谱信息,E3DTV 能够在减少噪声的同时保持图像的准确性和视觉效果。

J. Peng, Q. Xie, Q. Zhao, Y. Wang, L. Yee, and D. Meng, “Enhanced 3dtv regularization and its applications on hsi denoising and compressed sensing,” IEEE Transactions on Image Processing, vol. 29, pp. 7889–7903, 2020.

clc,clear; close all
clear all;clc;
addpath(genpath('compared method'));
addpath(genpath('quality assess'));
addpath(genpath('Enhanced3DTV'));
addpath(genpath('测试图片'));
seed = 2015; 
fprintf('Seed = %d\n',seed);
RandStream.setGlobalStream(RandStream('mt19937ar','seed',seed));%% read data
load FtMyers_63
%x_dc = Xim(1:10,1:10,1:1);
x=Xim(:,:,:);
[w,h,s] = size(x);
%% Generate measurements
ratio  = 0.10; 
N      = h*w;
% A      = PermuteWHT2(N,s,ratio);
A      = PermuteWHT_partitioned(N,s,ratio);
AT     = A';
% A      = PermuteWHT2(N,s,ratio);
b      = A*x(:);%% NCS
fprintf('=========== SLTNCS ============\n');
clear opts
opts.mu    = 2^12;
opts.beta  = 2^7; %2^5
opts.tol   = 1E-3;
opts.maxit = 300;
opts.TVnorm = 1;
opts.nonneg = false;
t1 = cputime;
[U, out] = TVAL3(A,b,N,s,opts);
t1 = cputime - t1;
xrec_ncs = reshape(U,[w,h,s]);
i=1;[mpsnr(i),ssim(i),er(i),sam(i),rmse(i)] = msqia2(xrec_ncs,x);
% 保存为 .mat 文件
%save('SLTNCS_reconstructed_image.mat', 'xrec_ncs');% % lrtdtv
fprintf('=========== JtenRe3DTV ============\n');
clear opts;
opts.maxIter = 100;
opts.tol     = 1e-9;
opts.trX     = x;
opts.gauss_frag = 1;
rk           = [ceil(h*0.6),ceil(w*0.6),6];
lam=0.001;
t2 = cputime;
x_rec_re= LrApprReTV(A,b,size(x),rk,lam,opts);
t2 = cputime - t2;
xrec_rettv=reshape(x_rec_re,size(x)); 
i=2;[mpsnr(i),ssim(i),er(i),sam(i),rmse(i)] = msqia2(xrec_rettv,opts.trX);
%fprintf('mpsnr = %f, ssim = %f, ergas =%f, sam =%f, rmse =%f.\n',mpsnr,ssim,ergas,sam,rmse);
% 保存为 .mat 文件
%save('jr3dtv_reconstructed_image.mat', 'xrec_rettv');
%band_set=[25 15 6];
%temp_show=xrec_rettv(:,:,band_set);
%normColor=@(R)max(min((R-mean(R(:)))/std(R(:)),2),-2)/3+0.5;
%temp_show=normColor(temp_show);
%figure;
%imshow(temp_show);
%imwrite(temp_show, "C:/Users/Z.LS/Desktop/数据对比/定性分析/JR3DTV(C).png", 'png');gcs
fprintf('=========== Enhanced3DTV ============\n');
clear opts;
opts.maxIter = 100;
opts.tol     = 1e-6;
opts.trX     = x;
opts.gauss_frag = 1;
Rk           = 7;
weight       = [0.015,0.015,0.015];
t3 = cputime;
[x_gcs,x1,e,psnrpath] = EnhancedTV_CS(A, b, size(x), Rk, weight, opts);
t3 = cputime - t3;
xrec_ttv=reshape(x_gcs,[w,h,s]);
i=3;[mpsnr(i),ssim(i),er(i),sam(i),rmse(i)] = msqia2(xrec_ttv,opts.trX);
% 保存为 .mat 文件
%save('e3dtv_reconstructed_image.mat', 'xrec_ttv');
%band_set=[25 15 6];
%temp_show=xrec_ttv(:,:,band_set);
%normColor=@(R)max(min((R-mean(R(:)))/std(R(:)),2),-2)/3+0.5;
%temp_show=normColor(temp_show);
%figure;
%imshow(temp_show);
%imwrite(temp_show, "C:/Users/Z.LS/Desktop/数据对比/定性分析/E3DTV(MF).png", 'png');

DCSN (用于小型卫星高效高光谱数据传输的深度压缩感知网络)

C.-C. Hsu, C.-H. Lin, C.-H. Kao, and Y.-C. Lin, “Dcsn: Deep compressed sensing network for efficient hyperspectral data transmission of miniaturized satellite,” IEEE Transactions on Geoscience and Remote Sensing, vol. 59, no. 9, pp. 7773–7789, 2021.

DCSN源代码 github地址

提出了一个低秩驱动的解码器架构,联合空间和频谱超分辨率网络。
在这里插入图片描述
并且编码器端采用条状输入以及非平方卷积核的策略,解码器端由特征增强主干网络和超分辨率解码器组成。
在这里插入图片描述

BTC-Net (一种高效的高光谱图像比特级张量数据压缩网络)

X. Zhou, X. Zou, X. Shen, W. Wei, X. Zhu, and H. Liu, “Btc-net:Efficient bit-level tensor data compression network for hyperspectral image,” IEEE Transactions on Geoscience and Remote Sensing, vol. 62,pp. 1–17, 2024.

BTC-Net源代码 github地址

该网络在DCSN的基础上加入了量化卷积和Huffman编码,并在解码器的特征增强主干网络中加入了通道注意力模块,依然保留了网络的整体结构。
在这里插入图片描述

CTCSN (基于CNN-Transformer混合结构的高光谱图像压缩感知网络)

L. Zhang, L. Zhang, C. Song and P. Zhang, “Hyperspectral Image Compression Sensing Network With CNN–Transformer Mixture Architectures,” in IEEE Geoscience and Remote Sensing Letters, vol. 21, pp. 1-5, 2024, Art no. 5506305, doi: 10.1109/LGRS.2024.3403828.

CTCSN源代码 github地址

该网络在DCSN的基础上融合了Transformer和CNN的并行结构,但仍保留了解码器端特征增强主干网络及超分辨率解码器的结构。
在这里插入图片描述
在特征增强主干网络中,添加了混合注意力机制。
在这里插入图片描述
综上三种基于深度学习的高光谱压缩感知网络,共通之处如下:

强调了将深度学习方法与传统压缩感知技术相结合的优势

  • DCSN 利用了卷积神经网络(CNN)来处理高光谱数据的压缩感知问题,强调了轻量级编码器和多尺度特征融合模块(MFA)的重要性。
  • BTC-Net 通过数据驱动的量化神经编码器进行两阶段比特压缩,极大地提高了压缩性能。
  • CTCSN 结合了卷积神经网络(CNN)和Transformer的优点,通过CNN的局部建模能力和Transformer的全局信息处理能力来增强高光谱图像的重建质量。

在处理高光谱图像时,同时考虑空间和光谱信息是至关重要的

轻量级和高效的编码器设计

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

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

相关文章

oncoPredict:根据细胞系筛选数据预测体内或癌症患者药物反应和生物标志物

在14年的时候,oncoPredict函数的开发团队在Genome Biology上发了一篇文章。 这篇文章的核心目的是阐释了使用治疗前基线肿瘤基因表达数据去预测患者化疗反应。开发团队发现使用细胞系去预测临床样本的药物反应是可行的。 鉴于之前的理论,该研究团队首先…

Marin说PCB之----我的创作纪念日

今天早上打开手机无意间看到了CSDN给我发来的私信,不知不觉中已经是512天了,下面小编我就给诸位道友们分享我和CSDN的那些年。 机缘 有一天小编我正在回去的路上,突然从天上落下一本书,叫信号完整性与电源完整性分析: …

Vue的安装配置

1.安装node js Node.js — 在任何地方运行 JavaScript (nodejs.org) 2.测试nodejs是否安装成功 node -v npm -v3.通过npm 安装 vue npm install -g vue/cli4.测试vue是否安装成功 vue --version5.打开PyCharm,创建项目:flask-web vue create flask…

定制化爬虫管理:为企业量身打造的数据抓取方案

在数据驱动的时代,企业如何高效、安全地获取互联网上的宝贵信息?定制化爬虫管理服务应运而生,成为解锁专属数据宝藏的金钥匙。本文将深入探讨定制化爬虫管理如何为企业量身打造数据抓取方案,揭秘其在海量信息中精准捕获价值数据的…

音视频入门基础:WAV专题(1)——使用FFmpeg命令生成WAV音频文件

在文章《音视频入门基础:PCM专题(1)——使用FFmpeg命令生成PCM音频文件并播放》中讲述了生成PCM文件的方法。通过FFmpeg命令可以把该PCM文件转为WAV格式的音频文件: ./ffmpeg -ar 44100 -ac 2 -f s16le -acodec pcm_s16le -i aud…

C#知识|账号管理系统:实现修改管理员登录密码

哈喽,你好啊,我是雷工! 本节主要记录实现修改管理员登录密码的后端逻辑及相关功能,以下为学习笔记。 01 实现逻辑 ①:首先输入原密码,验证,验证通过然后可以输入新密码进行修改; ②:新密码修改为了避免输入失误导致输入的密码与自己以为修改的密码不符的情况,增加了…

JavaScript(15)——操作表单元素属性和自定义属性

操作表单元素属性 表单很多情况,也需要修改属性,比如点击眼睛可以看到密码,本质是把表单类型转换为文本框正常的有属性有取值的,跟其他的标签属性没有任何区别 获取:DOM对象.属性名 设置:DOM对象.属性名…

Android adb shell ps进程查找以及kill

Android adb shell ps进程查找以及kill 列出当前Android手机上运行的所有进程信息如PID等: adb shell ps 但是这样会列出一大堆进程信息,不便于定向查阅,可以使用关键词查找: adb shell "ps | grep 关键词" 关键词查…

Jenkins详细使用教程

目录 1. 什么是Jenkins? 2. 为什么使用Jenkins? 3. 安装Jenkins 3.1 下载相关文件 3.2 解压Linux版本的JDK 3.3 配置JDK环境 3.4 运行jenkins.war 3.5 安装完成 4. 访问Jenkins 5. 修改密码 6. 集成JDK 7. Jenkins集成Git 7.1 使用Jenkins拉取…

C语言——运算符及表达式

C语言——运算符及表达式 运算符运算符的分类(自增运算符)、--(自减运算符)赋值运算符逗号运算符(顺序求值运算符) 表达式 运算符 运算符的分类 C语言的运算符范围很宽,除了控制语句和输入输出…

Internet Download Manager2024免费流行的下载加速器

1. Internet Download Manager(IDM)是一款流行的下载加速器,多线程下载使速度更快。 2. 用户界面友好,易于操作,支持多种浏览器集成和自动捕获下载。 3. 恢复中断的下载,动态文件分割技术提高效率。 4. 定…

Vue3与Element-plus配合 直接修改表格中的一项数据——控制输入框的显示与隐藏

利用控制与隐藏输入框,直接修改表格中的每一项数据。 <!-- 表格模块 --> <div><el-table :data"tablelist" style"width: 100%"><el-table-column align"center" prop"deposit" label"接单押金">&l…

『 Linux 』信号的写入与保存

文章目录 信号的发送信号的保存sigset_t 类型与信号集操作函数阻塞信号集(信号屏蔽字)操作函数未决信号集操作函数验证阻塞信号集与未决信号集 信号的发送 $ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10)…

【音视频】RTSP、RTMP与流式传输

文章目录 前言RTSP与RTMPRTSP&#xff08;Real-Time Streaming Protocol&#xff09;RTMP&#xff08;Real-Time Messaging Protocol&#xff09;主要差异 什么是流式传输&#xff1f;流式传输的特点流式传输与传统下载的区别 使用VLC播放RTSP监控 总结 前言 在现代网络环境中…

一天搞定React(3)——Hoots组件【已完结】

Hello&#xff01;大家好&#xff0c;今天带来的是React前端JS库的学习&#xff0c;课程来自黑马的往期课程&#xff0c;具体连接地址我也没有找到&#xff0c;大家可以广搜巡查一下&#xff0c;但是总体来说&#xff0c;这套课程教学质量非常高&#xff0c;每个知识点都有一个…

学习笔记之Java篇(0726)

2、封装 1、封装的使用细节 2、开发中封装的简单规则&#xff1a; 属性一般使用private访问权限。 属性私有后&#xff0c;提供相应的get/set方法来访问相关属性&#xff0c;这些方法通常是public修饰后&#xff0c;以提供属性的赋值与读取操作&#xff08;注意&#xff1a;b…

情绪稳定的人有什么特点?

第一部分&#xff1a;至纯之人&#xff0c;大器晚成 1.1 单纯&#xff0c;不是天真 你知道吗&#xff1f;那些能够成就大事的人&#xff0c;往往在人性上非常单纯。他们对外界的需求很低&#xff0c;更多的是向内寻求。这样的人&#xff0c;他们的内心世界像一片净土&#xff…

二叉树 N0=N2+1

N0 叶子节点&#xff0c;度为 0 的节点&#xff1b; N1 度为 1 的节点&#xff1b; N2 度为 2 的节点 度为 0 的节点为&#xff1a;H、I、J、K、G 度为 1 的节点&#xff1a;E、F 度为 2 的节点&#xff1a;A、B、D、C N0 N2 1&#xff0c;即&#xff1a;度为 0 的叶子节点 …

力扣高频SQL 50 题(基础版)第四题

文章目录 力扣高频SQL 50 题&#xff08;基础版&#xff09;第四题584.寻找用户推荐人题目说明思路分析实现过程准备数据实现方式结果截图 力扣高频SQL 50 题&#xff08;基础版&#xff09;第四题 584.寻找用户推荐人 题目说明 表: Customer -------------------- | Colu…

虚拟机配置RabbitMQ集群教程

RabbitMQ是常用的一款消息中间件&#xff0c;那么如何在我们虚拟机中创建其集群呢&#xff1f;跟着博主这篇文章让你一步到位 本篇搭建的是三台机器为一个集群&#xff01;假设大家虚拟机都为初始化状态&#xff0c;从0开始&#xff08;注意集群搭建需要CentOS8以上环境&#x…