基于压缩感知的多算法图像重构仿真系统
项目介绍
本项目是一个集成的MATLAB仿真平台,旨在演示和评估压缩感知(Compressed Sensing, CS)技术在图像重构中的应用。系统涵盖了从图像稀疏化表示、测量矩阵构造、观测数据获取到多种重构算法实现的全过程。通过对比不同数学优化策略下的重构效果,本项目为信号处理、医学成像和数学优化领域的研究提供了直观和量化的实验参考。
功能特性
- 多算法并行对比:系统集成了贪婪类、阈值类及基于梯度的优化算法,提供一站式性能测试。
- 自主实现稀疏变换:内置纯数学实现的二维Haar小波变换(DWT),不依赖外部图像处理工具箱即可完成信号稀疏化。
- 多维度性能评价:自动计算并输出像素级均方误差(MSE)、峰值信噪比(PSNR)以及各算法的实际运行耗时。
- 可视化展示系统:生成高质量的对比图表,同屏展示原始图像与六种不同算法重构后的结果,便于定性观察。
- 批处理计算能力:采用循环结构自动遍历所有算法,支持灵活调整采样率、稀疏度等核心参数。
系统要求
- MATLAB R2016b 或更高版本。
- 包含基础的图像处理工具箱(用于读取初始测试图像)。
- 硬件建议:由于矩阵运算复杂度较高,建议内存 8GB 以上。
运行逻辑与实现细节
1. 预处理阶段
系统首先将输入图像(默认为cameraman.tif)通过线性插值调整至指定尺寸(如64x64)。接着,通过自定义实现的二维离散小波逆变换函数,将空间域图像映射到小波稀疏基下。在这一步,图像被分解为低频逼近系数和高频细节系数,形成稀疏系数向量。
2. 压缩观测阶段
系统采用高斯随机矩阵作为测量矩阵。对于维度为N的信号,通过一个M×N的随机矩阵进行线性投影,生成长度为M的观测向量(M < N)。实验中采样率通过M/N比例进行动态控制,模拟了原始信号在采集阶段的压缩过程。
3. 重构算法实现逻辑
系统实现了六种核心重构算法,每种算法通过不同的策略寻找下式中的最稀疏解:
- 正交匹配追踪(OMP):通过迭代选择与残差最相关的测量矩阵列,并利用最小二乘法进行投影重构。
- 压缩采样匹配追踪(CoSaMP):在每轮迭代中识别并保留多个支撑集原子,通过原子修剪过程提高重构精度。
- 迭代硬阈值(IHT):基于梯度下降思路,在每次迭代后通过硬阈值算子保留K个最大系数,将解强制投影回稀疏空间。
- 子空间追踪(SP):通过子空间的选择与精炼,在已知稀疏度的情况下快速收敛至最优解。
- 梯度投影重构(GBP):利用一阶梯度更新,结合L1范数的符号函数作为梯度偏移,寻找目标函数的极小值。
- 迭代软阈值算法(ISTA/BP):作为基追踪(Basis Pursuit)的模拟实现,通过软阈值算子进行收缩迭代,解决L1范数正则化问题。
4. 逆变换与评价
重构出的稀疏系数向量被重新排列成二维矩阵,随后调用自定义的二维Haar反小波变换函数。通过行与列的逆加权处理,将信号从变换域还原至像素空间。最后,系统通过计算原始图像与重构图像的残差平方和来确定MSE,并换算为标准DB单位的PSNR。
关键函数与实现细节分析
稀疏化实现细节
系统没有直接调用MATLAB官方的dwt2函数,而是通过手动矩阵运算实现了Haar小波。其逻辑是利用L=[1, 1]/sqrt(2)和H=[1, -1]/sqrt(2)作为低通和高通滤波器,先后对图像进行行分解和列分解,生成包含LL、LH、HL、HH四个子带的系数矩阵。
测量矩阵构造
Phi = randn(M, N) / sqrt(M) 的实现遵循了受限等距性(RIP)原则。通过对矩阵元素进行归一化处理,确保了在大数定律下观测向量y能保持原始信号x的能量分布,这是CS理论能够成功重构的数学前提。
参数敏感性
- 采样率(sample_rate):直接决定了观测值M的大小,实验表明采样率低于0.3时,大多数贪婪算法的重构质量会迅速下降。
- 目标稀疏度(sparsity_k):在OMP和CoSaMP等算法中作为终止条件或搜索范围。系统根据每列非零元的估计值进行全局配置。
可视化输出逻辑
结果可视化部分通过 subplot(2, 4, i+1) 将图像排列。第1格始终显示原始图像,后续格位按照算法运行顺序动态填充。每个子图的标题都包含了该算法实时计算出的性能指标,以便于直接进行横向对比研究。