基于稀疏表示与过完备字典的图像去噪系统
本系统是一套基于稀疏表征理论的图像去噪解决方案。它通过学习图像的固有特征字典,将含噪图像分解为稀疏的原子组合,从而实现信号与噪声的有效分离,在恢复图像清晰度的同时,能够良好地保留边缘和纹理细节。
项目介绍
图像去噪是计算机视觉领域的基础任务。本系统核心基于“图像块在过完备字典下具有稀疏性”的假设。系统通过从含噪图像本身学习自适应字典(K-SVD算法),并利用正交匹配追踪(OMP)技术寻找各图像块的最优稀疏系数。最终,通过对所有重叠块进行加权平均重建,消除加性高斯白噪声。
功能特性
- 字典学习能力:系统内置K-SVD字典学习算法,能根据输入图像的内容动态更新字典原子,使其比固定字典(如DCT字典)更能捕捉特定图像的结构特征。
- 高效稀疏编码:采用正交匹配追踪(OMP)算法作为稀疏求解器,支持设置最大稀疏度或误差阈值作为停止条件。
- 自动块处理:系统自动将图像切分为 $8 times 8$ 的重叠块,在重建阶段通过滑动窗口加权平均技术消除块效应。
- 性能定量评估:内置PSNR(峰值信噪比)与SSIM(结构相似性)评估模块。
- 结果可视化:提供原始图像、含噪图像、去噪图像及字典学习收敛曲线的直观对比展示。
实现逻辑与功能细节
本系统的核心逻辑分为以下几个阶段:
一、预处理与参数配置
系统首先定义运行参数,包括标准差为25的噪声强度、8x8的图像块大小、256个原子的过完备字典规模。系统读取图像并将其转换为灰度双精度格式,随后注入人工合成的高斯白噪声用于测试。
二、字典学习阶段(K-SVD)
- 训练数据准备:从含噪图像中随机抽取5000个互有重叠的图像块,以提高字典学习的计算效率。
- 去中心化:对每个提取的图像块执行减去均值的操作,确保字典专注于提取交流(AC)分量。
- 字典初始化:生成一个基于离散余弦变换(DCT)的过完备初始字典。
- 迭代更新:
- 稀疏编码:使用批量OMP算法,固定当前字典,为每个训练块寻找最匹配的稀疏表示系数。
- 字典更新:逐个更新字典中的原子。对于每一个原子,寻找使用该原子的样本集合,计算除去该原子后的残差矩阵,通过SVD(奇异值分解)提取残差的主方向作为新原子,并更新对应的稀疏系数。
- 原子替换机制:如果某个原子在学习过程中未被任何样本利用,系统会自动从训练数据中随机抽取新块并归一化后替换该原子,保证字典的利用率。
三、图像去噪重建阶段
系统采用全图滑动窗口策略处理图像:
- 遍历图中每一个可能的 $8 times 8$ 图像块。
- 对当前块进行去均值处理,并调用单向量OMP算法在学习好的字典上进行稀疏求解。
- 利用求解出的稀疏系数和字典重构该块,并补偿回先前减去的均值。
- 像素聚合:考虑到块是相互重叠的,系统建立一个像素累加图和一个权重计数图。每个位置的最终像素值由所有覆盖该位置的重建块像素值的算术平均值决定,这能有效抑制块边缘不连续现象。
四、评估与显示
计算去噪前后图像的PSNR值和SSIM指标。其中SSIM采用简化版实现,通过计算均值、方差及协方差来衡量亮度、对比度和结构的保持情况。最后通过图形界面展示去噪效果和K-SVD迭代过程中的误差收敛曲线。
关键函数与算法分析
- 正交匹配追踪(OMP):
- 算法通过贪心策略,每轮迭代选择一个与当前残差相关性最大的原子。
- 使用最小二乘法更新所有已选原子的系数,确保护送到残差上的投影是正交的。
- 停止条件由最大迭代次数(稀疏度限制)和噪声容限共同控制。
- K-SVD 字典更新:
- 不同于常规的逐列优化,K-SVD在更新原子时同时更新其对应的非零系数。
- 这种基于SVD的秩-1逼近方法保证了误差下降的单调性,使字典能快速收敛。
- 过完备DCT初始化:
- 利用余弦基函数构造初始矩阵,其原子数量多于信号维度(64维向量,256个原子),为稀疏表示提供了冗余的空间。
- 图像块聚合:
- 通过 weight_map 记录每个像素点被处理的次数,实现无缝的图像重建。
使用方法
- 准备环境:确保安装有MATLAB R2016b或更高版本。
- 图像准备:确保工作目录下存在所需测试图像(如内置的cameraman.tif)。
- 运行程序:直接运行主程序脚本。
- 结果查看:程序将自动弹出图像对比窗口,并在命令行输出最终的PSNR和SSIM数值。
系统要求
- 软件平台:MATLAB
- 基础工具箱:Image Processing Toolbox(用于图像读取与显示)
- 硬件要求:由于K-SVD属于计算密集型算法,建议配备4GB以上内存。