基于BP与OMP算法的图像压缩感知重构及性能分析系统
本系统是一个针对高维图像信号设计的压缩感知(Compressed Sensing, CS)模拟、重构与性能评估平台。通过对比两种经典重构算法——基追踪(Basis Pursuit, BP)与正交匹配追踪(Orthogonal Matching Pursuit, OMP),系统深入展示了在不同采样率下图像重构的质量差异与计算效率。
项目介绍
在传统采样定理的限制下,高分辨率图像的存储与传输面临巨大挑战。本项目实现的压缩感知系统利用图像在离散余弦变换(DCT)域的稀疏性,通过高斯随机矩阵对降维后的观测信号进行重构。系统不仅完成了算法的数学实现,还集成了从图像分块处理、采样观测、特征提取到多指标分析的完整流程,为研究压缩感知理论提供了直观的实验工具。
功能特性
- 多算法对比分析:系统同场对比了基于凸优化的BP算法和基于贪婪迭代的OMP算法。
- 动态采样率测试:支持在0.3至0.7的采样率范围内自动执行循环测试,并生成性能趋势曲线。
- 分块处理机制:采用8x8像素分块技术,有效平衡了BP算法的计算复杂度和大尺寸图像的重构需求。
- 全方位指标评估:自动衡量并记录峰值信噪比(PSNR)和重构耗时,从质量与速度两个维度进行评价。
- 多维可视化方案:提供原图与重构图对比、性能随采样率变化的折线图以及重构残差的3D分布图。
系统要求
- MATLAB R2016b 或更高版本。
- MATLAB Optimization Toolbox(用于调用线性规划求解器)。
- MATLAB Image Processing Toolbox(用于图像读取与显示)。
核心功能与实现逻辑
#### 1. 图像预处理与环境初始化
系统首先初始化实验参数,包括设定图像处理尺寸为64x64像素以及8x8的分块步长。程序会自动加载内置测试图(cameraman.tif),若环境缺少该图片,则通过数学函数生成合成图像。所有图像数据被映射为双精度浮点数以确保计算精度。
#### 2. 压缩采样流程
- 稀疏表征:利用单位矩阵的离散余弦变换(DCT)生成稀疏基矩阵。
- 观测矩阵构建:生成符合标准正态分布的高斯随机采样矩阵,并对其进行正交化处理。
- 传感矩阵合成:将观测矩阵与稀疏基矩阵相乘,得到最终的探测矩阵。
- 线性投影:将图像块拉伸为列向量,通过与观测矩阵相乘,将高维信号压缩为低维观测值。
#### 3. 算法实现细节
- 正交匹配追踪 (OMP) 模块:采用贪婪迭代策略。在每轮迭代中,通过计算探测矩阵各原子与当前残差的相关性,选出最匹配的原子。随后利用最小二乘法进行投影,更新估计系数并减去已解释的信号分量。迭代持续至达到预设次数或残差满足精度要求。
- 基追踪 (BP) 模块:将L1范数最小化问题转化为线性规划标准型。通过引入辅助变量将不可微的L1范数拆分为两个正数之差(u - v),构建约束条件并调用对偶单纯形算法寻求全局最优稀疏解。
#### 4. 性能评估与可视化逻辑
- 多采样率遍历:系统自动在定义的范围内调整M/N比例,重复执行压缩与重构过程。
- 质量计算:实时计算重构图像与原始图像之间的均方差,并转化为PSNR分贝值。
- 统计输出:
*
效果对比图:同窗口显示原图与两种算法在特定采样率下的重构结果。
*
性能轨迹图:绘制PSNR随采样率增长的曲线,以及算法耗时对比图。
*
残差分析:通过mesh函数展示重构误差空间分布,直观反映算法在细节恢复上的差异。
*
数据汇总表:在控制台打印包含采样率、各算法PSNR及对应耗时的详尽报表。
关键函数与实现细节分析
- 分块重构逻辑:系统通过双层嵌套循环遍历图像块。每个块独立进行压缩感知流程,最后将重构出的块拼接回原始矩阵,这种方式在保证重构质量的同时极大降低了内存占用。
- 线性规划转化:在实现BP算法时,将目标函数设定为全1向量,通过构造[A, -A]的等式约束矩阵,成功利用成熟的线性规划工具解决了CS重构中的非光滑优化问题。
- 残差更新:OMP算法中对残差的严格正交化更新保证了每次选择的原子都是对剩余信号贡献最大的,确保了算法的快速收敛。
- 性能鲁棒性:代码包含了异常处理机制,在读取外部测试图像失败时能自动生成动态合成图像,确保系统在不同运行环境下均能正常执行实验。