-
2022-04-13 10:49:10
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
`在实际生活中为了获得高分辨率、高质量的图像需要对测量目标进行全采样,导致产生大量的数据量和耗时操作,时常会因为采集不到足够多的测量值从而导致图像质量不好。根据数据冗余的原理,压缩感知方法成为解决这一问题的重要突破口,通过对信号的稀疏表示,获得测量矩阵,测量矩阵以远小于Nyquist采样定理要求的采样数,获得测量值,再结合测量矩阵和稀疏基组成的恢复矩阵,求解出待测信号。
一、图像进行稀疏变换
稀疏域一般包含傅里叶域、Z域、拉普拉斯域等,本文将以傅里叶域为例对一个二维图像进行稀疏变换域重建。
clear all Picture = imread('D:\CS实验\orignal.png'); Picture_Gray = rgb2gray(Picture);%灰度处理 Picture_FFT = fft2(Picture_Gray);%傅里叶变换 Picture_FFT_Shift = fftshift(Picture_FFT);%对频谱进行移动,是0频率点在中心 Picture_AM_Spectrum = log(abs(Picture_FFT_Shift));%获得傅里叶变换的幅度谱 Picture_Phase_Specture = log(angle(Picture_FFT_Shift)*180/pi);%获得傅里叶变换的相位谱
二、利用幅度谱和相位谱重建图像
1.利用幅度谱和相位谱重建图像
Picture_Restructure = ifft2(abs(Picture_FFT).*exp(j*(angle(Picture_FFT))));%双谱重构 figure(1) subplot(221) imshow(Picture_Gray) title('原图像') subplot(222) imshow(Picture_AM_Spectrum,[])%显示图像的幅度谱,参数'[]'是为了将其值线性拉伸 title('图像幅度谱') subplot(223) imshow(Picture_Phase_Specture,[]); title('图像相位谱') subplot(224) imshow(Picture_Restructure,[]); title('双谱重构图')
2.运行结果
总结
图像的幅度谱代表的是图像各像素点的亮度信息,即该像素应该显示什么颜色,但是做出来的幅度谱却不知道每一点在原图像中具体是哪一点,即幅度谱虽然存储了各个像素点的幅值信息,但是原像素点的位置已经被打乱,所以仅凭幅度谱是没有办法重构原图像的。幅度谱的中心是低频部分,越亮的地方代表的幅度越大。幅度谱中“十”字形亮线表示原图像中水平和垂直方向的分量较其他方向要多,因为在人们周围的自然场景中水平和垂直的线条出现的可能性较大。
来看下仅有幅度谱重构出来的原图像:Picture_Restructure = ifft2(abs(Picture_FFT));%幅度谱重构
可以看到仅有幅度谱重构出来的图像啥也不是,,,而相位谱记录的是所有点的相位信息,看起来相位谱是一团噪声,这也说明相位信息是以一种更为隐蔽的方式出现在人们面前的,但它非常重要,因为相位信息中携带者图像的位置信息,没有它将无法从品频谱还原出原图像。
相位谱重构原图像:Picture_Restructure = abs(ifft2(exp(j*(angle(Picture_FFT)))));%相位谱重构
重点参考:https://blog.csdn.net/qq_36554582/article/details/88701865
更多相关内容 -
基于交替下降求解的稀疏信号重建算法 (2012年)
2021-06-12 14:25:59实际工程应用中,由于各种误差不可避免,信号重建过程中字典矩阵只是近似知道,因此降低了信号重建质量。为有效解决字典矩阵和观测数据同时含有噪声的多测量矢量(MMV)稀疏重建问题,基于多测量矢量欠定系统正则化... -
用于稀疏信号重建的正交最小二乘算法:用于欠定但稀疏解的贪心算法-matlab开发
2021-06-01 17:28:26在上一版本之后添加ols_gp:通过正交最小二乘法和梯度追踪进行稀疏重建ols_nomp:通过正交最小二乘法和近似共轭梯度追踪进行稀疏重建ols_pcgp:通过正交最小二乘法和部分共轭梯度追踪进行稀疏重建 -
精炼块正交匹配追踪的稀疏信号重建
2021-03-04 09:55:36精炼块正交匹配追踪的稀疏信号重建 -
压缩感知:稀疏信号重建
2018-10-11 12:49:21利用凸优化解决压缩感知的核心问题:稀疏信号重建。
来考虑这样一个线性方程组: A x = b Ax = b Ax=b其中 A ∈ R m × n , x ∈ R n , x ∈ R n A \in \R^{m\times n},x \in \R^{n},x \in \R^{n} A∈Rm×n,x∈Rn,x∈Rn。从图中明显看出这是一个欠定方程组,因为只要 A 的行满秩,该方程组有无穷多组解,否则也可能无解(即 b 不在 A 的列空间内,但我们不考虑这种情况)。
这个方程组是怎么和压缩感知扯上关系的呢?因为 矩阵A 可以看成一个从 n 维空间到 m 维空间的线性映射,显然 n ≫ m n\gg m n≫m,这是一个压缩映射。
现实的场景是: 采集到的信号 x 是 n 维的,利用压缩变换 A 将原信号压缩成 m 维的 b,由于 m ≪ n m\ll n m≪n,这将将大大提高信息传播和存储的效率。在这里,我们考虑信号 x 是稀疏的,即 n 个维度中大部分元素为零,只有少量的非零元。
上面这个方程组 A x = b Ax = b Ax=b 的目的就是利用压缩的信号 b,恢复原始信号 x。
如果你认为这就是一个简单的求解线性方程组问题的话,那就大错特错了,因为如前所述,这个方程组有无穷多个解!
实际上,原始信号重建问题对应的是一个约束问题:
原 始 问 题 : { min ∣ ∣ x ∣ ∣ 0 , s . t . A x = b 原始问题:\left\{ \begin{array}{lr} \min ||x||_0, \\ s.t. \:Ax=b \end{array} \right. 原始问题:{min∣∣x∣∣0,s.t.Ax=b即 在满足约束 A x = b Ax = b Ax=b 的条件下,经可能地减少 x 中非零元的数目。
不幸的是,上述问题并不是一个凸优化问题,因为 ∣ ∣ ∙ ∣ ∣ 0 ||\bullet||_0 ∣∣∙∣∣0 表示非零元个数,不是一个凸函数。
取而代之,我们将优化问题中的目标函数换成 l 1 l_1 l1 范数和 l 2 l_2 l2 范数来看看,即考虑优化问题:
替 代 问 题 1 : { min ∣ ∣ x ∣ ∣ 2 , s . t . A x = b 替代问题1: \left\{ \begin{array}{lr} \min ||x||_2, \\ s.t. \:Ax=b \end{array} \right. 替代问题1:{min∣∣x∣∣2,s.t.Ax=b
替 代 问 题 2 : { min ∣ ∣ x ∣ ∣ 1 , s . t . A x = b 替代问题2:\left\{ \begin{array}{lr} \min ||x||_1, \\ s.t. \:Ax=b \end{array} \right. 替代问题2:{min∣∣x∣∣1,s.t.Ax=b
上述问题可以用现有的凸优化求解器快速求解! 因为 l 2 l_2 l2范数是凸函数,而替代问题2 可以通过一些变换转换成凸问题。结果如下:
- 图1 对应原始的稀疏信号;
- 图2 对应在 l 2 l_2 l2范数约束下重建的信号;
- 图2 对应在 l 1 l_1 l1范数约束下重建的信号。
从结果可以看出, l 2 l_2 l2正则化不能保证稀疏性,而 l 1 l_1 l1正则化可以!
以下是在 matlab 中调用 CVX 的 mosek 求解器,对上述 l 2 , l 1 l_2, l_1 l2,l1 约束问题求解的代码。
clear all n = 256; m = 128; A = randn(m,n); u = sprandn(n,1,0.1); % u = rand(n,1); b = A*u; figure(1); subplot(3,1,1); plot(1:n, u); title('exact solu'); cvx_solver mosek cvx_begin variable x(n) %minimize( max(norm(x, inf), norm(x,1)/sqrt(n)) ) %minimize ( max(abs(x))) minimize (norm(x)) subject to A*x == b cvx_end xl2 = x; subplot(3,1,2); plot(1:n, xl2); title('l2 solu'); cvx_begin variable x(n) minimize( norm(x,1) ) subject to A*x == b cvx_end xl1 = x; subplot(3,1,3); plot(1:n, xl1); title('l1 solu'); fprintf('\n\nl2 error: %3.2e, l1 error: %3.2e\n', norm(u-xl2), norm(u-xl1));
-
基于加权l1范数的稀疏信号重建
2015-03-19 09:09:50基于加权l1范数的稀疏信号重建,稀疏信号是带噪声的-Sparse signal reconstruction based on the weighted l1 norm sparse signal with noise -
OLS 正交最小二乘算法:稀疏信号重建
2020-04-16 19:05:27考虑线性系统 寻找解决方案的形式为: 如果数据向量在的列空间中,则上式具有精确解: ...如果具有零空间分量,我们将无法满足差分方程,因此我们放宽了要求,并要求尽可能小。... 实际上,我们给出了组合列向量的...考虑线性系统
寻找解决方案的形式为:
如果数据向量
在
的列空间中,则上式具有精确解:
如果
具有零空间分量,我们将无法满足差分方程,因此我们放宽了要求,并要求
尽可能小。
这导致最小二乘问题的定义:
一般最小二乘法解是
有多种解决方案。 例如,正规方程式:
提供解决方案:
正规方程的构造,右边的向量
,显然在
的列空间中。 实际上,我们给出了组合列向量的方案:
现在,我们可以使用高斯消除和
分解之类的工具来解决该问题。
在数值问题中,正规方程可能是一个较差的选择,而
和奇异值分解(SVD)等方法较为好。
用SVD下的基础投影,投影在
范围空间:
算子将
个向量投影到范围空间(列空间,图像)上。
SVD奇异值分解为
这意味着伪逆是
正规方程的解是
MATLAB的代码:
function [s, residual] = OLS(A, y, m, err) % Orthogonal Least Squares [1] for Sparse Signal Reconstruction % Input % A = N X d dimensional measurment matrix % y = N dimensional observation vector % m = sparsity of the underlying signal % Output % s = estimated sparse signal % r = residual % [1] T. Blumensath, M. E. Davies; "On the Difference Between Orthogonal % Matching Pursuit and Orthogonal Least Squares", manuscript 2007 if nargin < 4 err = 1e-5; end s = zeros(size(A,2),1); r(:,1) = y; L = []; Psi = []; normA=(sum(A.^2,1)).^0.5; NI = 1:size(A,2); for i = 2:m+1 DR = A'*r(:,i-1); [v, I] = max(abs(DR(NI))./normA(NI)'); INI = NI(I); L = [L' INI']'; NI(I)=[]; Psi = A(:,L); x = Psi\y; yApprox = Psi*x; r(:,i) = y - yApprox; if norm(r(:,end)) < err break; end end s(L) = x; residual = r(:,end);
例子:
% Demo % Generate Sparse Signal signal = GenSig(150, 10); % Create Measurement Matrix A=matrix_normalizer(randn(100,150)); % Create Measured Signal y = A*signal; figure % reconstruct Signal by OLS [s1, residual] = OLS(A, y, 10); stem(signal), hold on, stem(s1,'r+')
结果:
-
python实现稀疏矩阵示例代码
2020-09-21 07:10:09本篇文章主要介绍了python实现稀疏矩阵示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
一种近似稀疏信号的压缩传感重建方法 (2010年)
2021-05-20 00:25:22研究近似稀疏信号压缩传感数据的快速准确重建,提出一种基于分析模型的近似10平滑函数重建方法ASL0。采用分析模型避免了合成模型的累计误差;引入近似10范数使优化求解过程得以简化,保证了算法的快速实现。对一维... -
带有熵和加权Weight1-范数的稀疏编码算法在信号重建中的应用
2021-03-15 10:19:23压缩感测理论近年来引起了广泛的关注,并且稀疏信号重建已广泛用于信号处理和通信中。 本文解决了稀疏信号恢复的问题,尤其是在非高斯噪声的情况下。 本文的主要贡献是提出了一种算法,其中负熵和重新加权方案代表了... -
Justin Romberg 压缩感知:利用凸优化实现稀疏信号重建的科普
2016-05-21 22:02:36Justin Romberg 压缩感知:利用凸优化实现稀疏信号的重建的科普 1.利用凸优化算法解决压缩感知问题时,问题通常被分为2类,一类是转化为线性方程组的问题(LPs问题),另一类是转化为二次凸规划的问题(SOCPs问题...Justin Romberg 压缩感知:利用凸优化实现稀疏信号的重建的科普
1.利用凸优化算法解决压缩感知问题时,问题通常被分为2类,一类是转化为线性方程组的问题(LPs问题),另一类是转化为二次凸规划的问题(SOCPs问题),其中LPs问题采用路径追踪原始对偶(primal-dual)算法,SOCPs问题采用内点算法中的对数障碍(log-barrier)法
带等式约束的最小化l1范数问题描述如下:
A为M*N的欠定矩阵,x是要采样的信号,b是采样值,大意就是,在方程组条件不足的情况下求解出原始信号x,当x的1范数最小的时候,x差不多就是我们想要的结果了。
L1范数的数学表述形式如下:(本质上来说,就是把矩阵里面的数值求取绝对值然后加起来)
由这个问题引出了著名的基追踪算法(BP算法),算法的原理就是不断寻找l1范数最小的x来解释我们采样到的信号b,如果我们找到了一种足够稀疏的信号(l1范数足够小的信号)
那么我们就认为我们的方程组找到了最合适的解。
2.我们经常能够看到最小化l1范数的误差估计问题,误差估计数学问题描述为如下的问题
A是M*N的满秩矩阵,y是得到的采样值,假设,我们通过信道采样y的时候难免信号会有丢失或者噪声,也就是说我们的得到的y本质上是y=y+e,这里的e就是噪声信号。,同样这个噪声估计的问题也是一个LP问题
3.带有二次约束问题的最小化l1范数问题:
这个问题我们用数学公式表达出来是这样的:
在1问题的基础上我们把原来的等式转为二次约束模型。在这里ε表示一个确定的参数,把原来1问题中的带有等式约束的模型,通过引入松弛变量的方式转为了二次凸规划(SOCP)的问题。这个数学公式的意思是,寻找出一个足够稀疏的信号x满足,在这里e代表一个很小的误差变量
4.有界冗余相关的l1范数最小化:
这种算法也叫Dantzig算法
数学问题描述如下:
我们重新描述了上面的问题,转为上面的公式这里的伽马是一个具体的参数,在1问题里面我们重新引入一种松弛变量,这个数学问题的意思是,找到一种尽可能稀疏的x使得,Ax-b的剩余项与A*的任何一列最大程度的不相关A*(Ax-b).
所以问题4中的数学模型是一种LP问题
5.在图像上面引入TV模型,重写上面的公式的表述形式
如果我们要把压缩感知的模型应用在图像上,因为图像的梯度是稀疏的,这里我们用梯度来描述整个图像
定义梯度的操作算子:
分别定义了水平方向和竖直方向的梯度算子这里描述为h和v方向上的梯度
因为整个图像每个点都是梯度的,这里我们把梯度全部加起来(也就全变分)
这就是传说中的(全变分)TV模型,(全变分)TV模型国内研究的人也很多,常用来做去噪和复原的算法,相关论文有很多。
有了上面的定义,我们把上面的数学模型应用在图像复原,上面的每一个数学模型都可以写成SOCP(二次规划)问题
A.带有等式约束的最小化TV模型
B.带有二次规划的最小化TV模型
C.Dantzig TV模型
下一章我将会介绍内点算法。
-
基于字典学习的稀疏角度采样光声信号重建
2021-01-27 00:50:46针对该问题, 提出了一种基于字典学习与稀疏表示的恢复重建算法, 采用该算法对光声信号进行预处理, 并进行仿真实验。结果表明:与不经过光声信号超分辨率重建的时间反演法图像重建结果相比, 经所提算法处理后的光声... -
李廉林 哈工大讲学 稀疏信号处理 ppt
2019-04-12 11:32:27还可以参考李廉林老师的书《稀疏感知导论》,ppt共五讲,内容分别如下稀疏信号处理理论、方法及应用研究进展概况 稀疏信号的表示与采样原理 稀疏信号重建算法之梯度优化方法 鲁班稀疏Bayesian优化方法 压缩感知... -
压缩感知与稀疏恢复MATLAB实现
2021-07-16 13:16:42详细报告见https://blog.csdn.net/weixin_42845306/article/details/118786180 -
基于稀疏逼近的EEG信号的压缩感知重建研究
2021-02-22 22:42:45目的对一维的多通道非平稳信号EEG随机...结论基于压缩感知理论的信号采样包含了原信号的足够信息,利用EEG信号的稀疏性(或可压缩性)先验条件,通过一定的线性或非线性的解码模型可以以很高的概率重建原始图像或高维信号。 -
小波模极大值点的信号稀疏表示及重建
2021-03-01 17:07:07作为压缩感知理论的前提,稀疏表示要求信号本身是稀疏的或者在某种正交基下可以稀疏表示。本文针 对信号本身及小波变换后均不够稀疏的情况,提出一种基于模极大值点的信号稀疏表示算法。该算法在小波变 换的... -
CS-MRI中稀疏信号支撑集混合检测方法 (2014年)
2021-06-14 07:54:45通过分析一种特殊的基于奇异值分解(SVD)的信号稀疏表示方法,提出一种结合稀疏信号位置和大小信息的支撑集混合检测方法,并根据该方法改进稀疏信号重建算法FCSA。实验结果证明,在相同的欠采样率下,改进FCSA算法... -
压缩感知l1重建算法matlab代码-SparseGravitationalWaves:稀疏方法(和压缩感测)应用于重力波信号处理
2021-05-20 11:36:12不稳定紧密紧凑的二元系统的早期(平稳阶段)吸气部分有望在时频(“线性调频”)平面()上产生稀疏信号。 最终,在傅立叶域中的检测器间互相关空间中,所谓的“随机背景”稀疏。 “最近”已经开发了一个功能强大的... -
使用平滑的L0范数算法恢复相关行稀疏信号
2021-03-17 18:15:39本文关注于稀疏信号的恢复,该稀疏信号可以被建模为在同一位置集具有不同非零系数的联合稀疏模型(JSM)2。 利用平滑的L0范数算法将非凸且难处理的混合L2,0范数优化问题转换为可解决的问题。 与一系列的单测量... -
图像视频信号的压缩采样与稀疏重建
2021-02-08 23:38:02图像视频信号的压缩采样与稀疏重建 -
稀疏信号恢复的测量矩阵构建算法
2021-03-26 14:06:53在压缩感测中,测量矩阵和稀疏字典(基本)之间的较小相干性可以具有更好的信号重建性能。 随机测量矩阵(例如,高斯矩阵)已被广泛使用,因为它们与几乎所有稀疏基数都具有较小的相干性。 但是,通过降低与固定... -
论文研究-基于压缩感知信号重建的自适应正交多匹配追踪算法.pdf
2019-07-22 23:34:26在研究和总结传统匹配算法的基础上,提出了一种新的自适应正交多匹配追踪算法(adaptive orthogonal multi matching pursuit,AOMMP)用于稀疏信号的重建。该算法在选择原子匹配迭代时分两个阶段,引入自适应和多匹配的... -
论文研究-稀疏信号欠Nyquist采样与重构研究现状分析.pdf
2019-07-22 21:02:56将出现的各种欠Nyquist采样总结为一个基本模型,并针对频域稀疏和时域稀疏信号分别对采样模型及原理进行了阐述,分析了采样信号的子空间探测和重建方法,讨论了稀疏信号欠Nyquist采样与重构的实现与应用现状,... -
稀疏信号恢复的测量矩阵构造算法
2021-04-26 02:18:10在压缩感测中,测量矩阵和稀疏字典(基本)之间的较小相干性可以具有更好的信号重建性能。 随机测量矩阵(例如,高斯矩阵)已被广泛使用,因为它们与几乎所有稀疏基数都具有较小的相干性。 但是,通过降低与固定... -
基于块稀疏贝叶斯的生物发光断层重建
2021-02-03 14:22:40生物发光断层成像(BLT)是一种非侵入、高灵敏度的光学分子影像技术,可以通过探测生物体表面的光信号重建出生物体内部光源的三维分布情况。由于光在组织中传播时, 散射占据主导作用, 导致BLT重建问题的病态性, 给光源... -
加窗截取改善信号非稀疏表达的稀疏性
2021-02-04 23:15:35为了把压缩传感技术应用到变换域非稀疏信号中,提出了一种能够改善信号非稀疏表达稀疏性的新方法。该方法采用可移动窗口函数把信号在变换域中的非稀疏表达截取成多个窗截表达,只要控制每个窗口函数宽度远小于信号的... -
稀疏信号与压缩感知系列讲座PPT(李廉林老师)
2014-05-06 22:40:41稀疏信号处理理论、方法及应用研究进展概况 稀疏信号的表示与采样原理 稀疏信号重建算法之梯度优化方法 鲁班稀疏Bayesian优化方法 压缩感知滤波器等应用实例 -
OMP_omp稀疏算法_omp_匹配追踪重建_压缩感知_
2021-09-30 04:35:27OMP(正交匹配追踪)算法,用于压缩感知,稀疏信号的重建.