【图像重建】OMP算法二维图像压缩感知图像重建(含PSNR)【含Matlab源码 3714期】

在这里插入图片描述
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、OMP算法二维图像压缩感知图像重建简介

压缩感知技术(compressed sensing, CS)是一种用于信号采样的新理论[.传统的信息采样是基于Nyqiust采样定理, 认为信号的采样率只有不低于最高频率的2倍, 信号才能被精确地重构.但是压缩感知理论指出, 若一个信号是稀疏信号或是可以在某个变换域上表现为稀疏信号, 那么可以通过一个与变换基并不相关的矩阵将此信号投影到低维空间上.这一在低维空间上的投影, 包含了原信号的全部信息可以精确地重构出原信号.在压缩感知理论下, 信号采样并不是直接测量信号本身, 其关键在于梳理信息在信号中的结构与内容[.

压缩感知理论由Donoho和Candes等在2004年首次提出来, 目前压缩感知理论的主要研究方向[分为信号稀疏性、测量矩阵和重构算法这3大部分.压缩感知中的采样过程相对简单, 但重构非常复杂, 所以对于重构算法的研究是压缩感知中相当重要的一方面[.目前来说, 重构算法中贪婪迭代算法是应用非常广泛的一类, 该类算法通过迭代方式来选出信号的最佳支撑, 之后基于贪婪准则选择局部最优解, 逐步逼近原始信号.最典型的贪婪算法是匹配追踪算法(Matching Pursuit), 以及在其基础上改进的正交匹配追踪算法(Orthogonal Matching Pursuit)[.本文将针对OMP算法重构时间较长的问题, 结合子空间追踪(SP)算法的思想, 引入共轭梯度下降算法代替最小二乘法, 对正交匹配追踪(OMP)算法进行改进以及重构仿真实验.

1 压缩感知理论

在CS理论下, 需要传输的信号并非是原始信号本身的采样值, 而是原始信号在某个稀疏域上的投影.压缩感知本质是一种非线性压缩信号以及重建的方法.设有一维信号x∈ R, 信号长N位, x=[x1, x2, x3, …, xn].RN内任何信号都可用M× N维的正交基向量Ψ =[Ψ1, Ψ2, …, Ψ a]的线性组合表示, 即 i, 其中系数α =[α1, α2, α3, …, α n].如果系数向量α中最多有K个非零的元素存在, 那么可以认为信号x是K-稀疏信号.而依据压缩感知理论所述, 对于所有 ≤ K的信号, 都存在一个常数δ∈ (0, 1), 使得
(1-δ) x22≤ Φx22≤ (1+δ) x22
成立, 其中δ称为等距常数, 为上式成立的最小值.当其成立时, 则认为观测矩阵Φ满足有限等距性质(RIP).此时存在观测方程y=Φ x, y∈ RM为x在观察矩阵Φ M× N上投影为M×1维的观察向量.这时可以利用y中至少M≥ K×log(N/K)个观察值将原信号还原出来.由于其中M≪N, 所以采样的信号并不完全, 称为欠采样, 正对K-稀疏信号, 可以通过重构模型min x0, s.t.y=Φ x进行信号还原, 因为y=Φ x是存在多个解的, 这是一个NP-hard问题[.因此通过间接方式进行求解或是将其转换为l1范数min x1, s.t.y=Φ x求解问题[.

2 正交匹配追踪算法OMP算法

OMP算法是在MP算法的基础上进行改进的, 在沿用了MP算法原子选择标准而来, 来甄选相关性最大的原子.同时通过对已选原子集的正交投影化改进MP算法迭代选择中出现的次优问题

OMP算法步骤

输入 观测矩阵Φ, 观测向量y, 迭代次数为K

输出 还原信号 x˙

Step 1 初始化 设迭代次数t=1, 残差rt=y, 支撑集索引Λ为空集;

Step 2 计算残差rt与观察矩阵的列向量ϕ j, 内积中的最大值所对应的索引, 即

λ t=arg maxj=1, 2,3K,…,n;

Step 3 更新索引集Λ, 使Λ t=Λ t-1∪ {λ1}, 更新原子集Φ t=[Φ t, ϕλt], 将内积最大值所对应观察矩阵列向量ϕ λ t记入原子集;

Step 4 运用最小二乘法计算 x˙使残差最小

x˙=arg min y-Φtx˙2;

Step 5 更新残差rt=y-Φ t x˙, 令迭代次数增加1;

判断 停止条件(迭代次数< k)如果不成立执行Step 2, 若是成立则停止迭代输出 x˙.

OMP算法的基本思想是依据内积选择观察矩阵的列, 使得选择的列与当前残差到达最大相关, 之后在残差中减去相关的部分信号, 再重复上述步骤直到迭代次数到达稀疏度K.

OMP算法利用已选择的原子集合的正交化来保证迭代的局部最优解.但是无法保证局部最优解的和是全局最优解.而SP算法在重构过程中引入了回溯思想, 既是使得选入信号支撑集的元素并非永久性保存, 而是随着迭代的进行, 对于支撑集中已经存在的原子进行再次计算, 剔除其中非最优的原子, 并且依据现在迭代环节加入最优原子, 其目的在于以使局部最优解尽量接近于全局最优[.

通过Matlab仿真分析, 结果如图1(实验采样率为60%), 可见与引入“ 回溯” 的思想的SP算法, OMP 算法得到欠定方程最优解的时间明显更短, 但是重构质量相对较差.

⛄二、部分源代码

%%****************************************************
% 测量数和迭代次数有待调整

clc;
clear all;
tic
C = 4;
B = 8;
K = 8;
M = 32;
X_TEST = imread(‘lena2.bmp’);

[a,b] = size(X_TEST);
%subplot(1,2,1);
imshow(X_TEST);
title(‘lena256*256原图像’);

in_X1= double(X_TEST); %in_X1是0-255的数值
in_X = im2double(X_TEST); %in_X1是0-1的数值

index_col = 1;
out_Y1 = CS(in_X, C, B, index_col, K, M);
%index_row = 1;
%out_Y2 = CS(in_X, C, B, index_row, K, M);

%AVR_Y = (out_Y1+out_Y2)/2;
AVR_Y = out_Y1
%T_MSE = 0;
%Z1 = im2double(Z);

%for i = 1 : a
% for j = 1 : b
% mse = (in_X(i,j) - AVR_Y(i,j))^2;
% T_MSE = mse + T_MSE ;
% end
%end

%subplot(1,2,2);

AVR_Y;
AVR_Y1 = AVR_Y * 255;
AVR_Y = round(AVR_Y1);
%for i = 1 : a
% for j = 1 : b
% mse = (X_TEST(i,j) - AVR_Y(i,j))^2;
% T_MSE = mse + T_MSE ;
% end
%end
figure;
imshow(AVR_Y, [0, 255]);
title(‘OMP重构结果’);
errorx=sum(sum(abs(AVR_Y1-in_X1).^2)) % MSE误差
psnr=10log10(255255/(errorx/a/b)) % PSNR
% 误差(PSNR)

%T_MSE = T_MSE * 255^2
%MSE = sqrt(T_MSE/(a*b))
%PSNR = 10 * log10(255^2/MSE)
toc

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]马博珩, 彭艺. 基于OMP算法的快速压缩感知图像重构[J].云南大学学报(自然科学版), 2017,39(2): 207-211.

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值