Advertisement

Learning Deep CNN Denoiser Prior for Image Restoration论文阅读

阅读量:

Learning Deep CNN Denoiser Prior for Image Restoration

      • 1. 研究目标与产业意义
        • 1.1 研究目标
    • 1.2 实际意义

      • 2. 创新方法:CNN去噪先验与HQS框架
        • 2.1 核心框架:HQS变量分裂与去噪器先验嵌入
    • 2.2 CNN去噪器架构设计

      • 2.2.1 扩张卷积(Dilated Convolution)设计
      • 2.2.2 加速训练技术
      • 2.2.3 边界伪影抑制策略
    • 2.3 与传统方法的对比优势

    • 公式总结

      • 3. 实验设计与结果分析
        • 3.1 图像去噪实验
    • 3.2 图像去模糊实验

    • 3.3 单图像超分辨率实验

      • 4. 未来方向与产业机会
        • 4.1 学术挑战
    • 4.2 产业机会

      • 5. 批判性评价
        • 5.1 不足
    • 5.2 待验证问题

      • 6. 实践启示与背景补充
        • 6.1 核心创新点
    • 6.2 必备背景知识

1. 研究目标与产业意义

1.1 研究目标

论文旨在解决图像恢复 (Image Restoration, IR)中的核心矛盾:

  • 基于模型的优化方法 (如BM3D)灵活但计算成本高;
  • 判别学习方法 (如CNN)高效但任务泛化性差。
    作者提出一种融合框架 :利用变量分割技术(如HQS),将训练好的CNN去噪器作为模块化先验 嵌入优化框架,以解决多种逆问题(如去模糊、超分辨率)。
1.2 实际意义
  • 产业应用 :提升图像恢复任务的效率与质量,适用于医疗影像(如MRI重建)、安防监控(低光照增强)、卫星图像处理等。
  • 技术价值 :为轻量级实时图像处理系统提供新思路,推动边缘计算(如手机端图像增强)的发展。

2. 创新方法:CNN去噪先验与HQS框架

2.1 核心框架:HQS变量分裂与去噪器先验嵌入

通过半二次分裂(Half Quadratic Splitting, HQS) 将图像恢复问题分解为两个交替求解的子问题:

  • 保真项子问题 (与退化模型相关);
  • 正则化子问题 (等效为去噪任务)。

原始优化问题 (公式(2)):
\hat{x}=\arg\min_{x}\frac{1}{2}\left\|y-H x\right\|^{2}+\lambda\Phi(x) \quad (2)
引入辅助变量 z(公式(5)):
\mathcal{L}_{\mu}(x,z)=\frac{1}{2}\left\|y-H x\right\|^{2}+\lambda\Phi(z)+\frac{\mu}{2}\left\|z-x\right\|^{2} \quad (5)
迭代求解过程 (公式(6a)-(6b)):
\begin{cases} x_{k+1} = \arg\min_{x} \|y-H x\|^{2} + \mu \|x - z_k\|^{2} & \text{(6a)} \\ z_{k+1} = \arg\min_{z} \frac{\mu}{2} \|z - x_{k+1}\|^{2} + \lambda \Phi(z) & \text{(6b)} \end{cases}

关键创新(公式(9))
将子问题(6b)等价转化为高斯去噪任务
z_{k+1} = \text{Denoiser}(x_{k+1}, \sqrt{\lambda/\mu}) \quad (9)
此处 \sqrt{\lambda/\mu} 控制去噪强度(噪声标准差)。正则化项 \Phi(z) 被替换为预训练的CNN去噪器 ,无需显式定义先验模型。

代码实现

复制代码
    % 参数初始化(第26-32行)
    totalIter   = 30;          % 迭代次数
    modelSigma1 = 49;          % 初始噪声水平 (σ_max)
    modelSigma2 = 13;          % 终止噪声水平 (σ_min)
    modelSigmaS = logspace(log10(modelSigma1), log10(modelSigma2), totalIter); % 噪声水平衰减序列
    
    % HQS迭代核心(第69-80行)
    for itern = 1:totalIter
    % 子问题(6a):保真项求解(FFT加速)
    rho = lamda*255^2/(modelSigmaS(itern)^2);  % 计算当前μ (ρ = μ)
    z = real(ifft2((upperleft + rho*fft2(z))./(denominator + rho)));
    
    % 子问题(6b):调用预训练CNN去噪器
    [net] = loadmodel(modelSigmaS(itern), CNNdenoiser); 
    res = vl_simplenn(net, z, [], [], 'conserveMemory', true, 'mode', 'test');
    z = z - res(end).x;  % 残差学习:z_{k+1} = z - Denoiser(z)
    end
    
    
    matlab
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/DoOeu79QCqkXBcEga0y1mFwTLPlz.png)
2.2 CNN去噪器架构设计

论文图1所示网络包含三大模块:
图1:CNN去噪器架构

2.2.1 扩张卷积(Dilated Convolution)设计
  • 目的 :扩大感受野(33×33)而不增加网络深度或参数量
  • 层结构 (7层扩张率序列):dilation = [1, 2, 3, 4, 3, 2, 1]
  • 等效感受野计算
    • 传统3×3卷积需16层达到33×33感受野
    • 本文仅需7层(计算效率提升2倍以上)

代码中的模型加载(第73行)

复制代码
    [net] = loadmodel(modelSigmaS(itern), CNNdenoiser); % 按噪声水平加载预训练模型
    
    
    matlab
    
    

预训练模型存储在modelgray.mat(灰度)和modelcolor.mat(彩色),包含25个噪声级别(σ=0,2,…,50)的CNN参数。

2.2.2 加速训练技术
  • 批归一化(Batch Normalization) :加速收敛,稳定梯度
  • 残差学习(Residual Learning)
    网络直接预测噪声残差 \textbf{v} = f(y;\Theta),输出为 \hat{x} = y - \textbf{v}
    损失函数(公式(10))
    \ell(\Theta)=\frac{1}{2N}\sum_{i=1}^{N}\|f(y_{i};\Theta) - (y_{i}-x_{i})\|_{F}^{2} \quad (10)
    其中 (y_i, x_i) 为噪声-干净图像对。
2.2.3 边界伪影抑制策略
  • 训练数据裁剪 :使用35×35小块(而非整图) , 减少边界伪影。
  • 零填充(Zero Padding) :配合扩张卷积边界处理
复制代码
    % 代码中的输入预处理(第45行)
    y = imfilter(im2double(x), k, 'circular', 'conv') + sigma*randn(size(x)); % 使用圆形卷积边界
    
    
    matlab
    
    
2.3 与传统方法的对比优势
特性 传统优化方法 (BM3D) 判别学习方法 (SRCNN) 本文方法
任务泛化性 高(任意H矩阵) 低(固定H) (任意H)
计算效率 低(CPU迭代慢) 高(GPU前向快) (GPU加速)
先验知识依赖 显式定义(如非局部) 隐式学习 隐式学习+模块化
多噪声级别支持 单一模型适应 需训练多模型 25个模型插值覆盖

核心突破

  1. 模块化先验 :CNN去噪器作为即插即用组件(Plug-and-Play Prior)
  2. 硬件加速友好 :CNN前向计算高度并行化(代码中GPU支持)
  3. 统一框架 :同一组去噪器解决去噪、去模糊、超分辨率等任务

代码中的多任务支持(第12行)

复制代码
    taskTestCur = 'Deblur'; % 可替换为'SuperResolution'或'Denoise'
    
    
    matlab
    
    

公式总结
公式 含义 论文编号 代码对应
(5) HQS分裂后的目标函数 理论基础 迭代循环框架
(7) 保真项子问题的闭式解(FFT加速) 理论推导 z = real(ifft2(...))
(9) 去噪子问题的等价表示 核心创新 vl_simplenn(net, z, ...)
(10) CNN去噪器的残差学习损失函数 训练策略 预训练模型生成

3. 实验设计与结果分析

3.1 图像去噪实验
  • 数据集 :BSD68(灰度)、CBSD68(彩色)。
  • 对比方法 :BM3D、WNNM、TNRD、CBM3D。
  • 结果 (表1-2):
噪声级别 BM3D WNNM TNRD 本文
\sigma=25(灰度) 28.57 28.83 28.92 29.15
\sigma=25(彩色) 30.71 - - 31.16
PSNR提升0.2–0.45 dB ,且GPU推理速度显著优于TNRD(表3)。
3.2 图像去模糊实验
  • 设置 :高斯模糊核(\sigma=1.6)与真实模糊核(Levin数据集)。
  • 对比方法 :IDDBM3D、NCSR、EPLL。
  • 结果 (表4):
测试图像 IDDBM3D NCSR 本文
Leaves 26.95 27.50 29.78
PSNR提升2.28 dB ,且视觉上保留更多细节(图3)。

图3:去模糊结果对比(Leaves图像)
注:本文方法(右下)边缘更锐利,无色彩伪影。

3.3 单图像超分辨率实验
  • 设置 :双三次/Gaussian模糊核,缩放因子×2/×3。
  • 结果 (表5):
数据集 模糊核 SRCNN VDSR 本文
Set5(×3) Gaussian 30.42 30.54 33.38
PSNR提升2.84 dB ,且支持任意模糊核(无需重新训练)。

4. 未来方向与产业机会

4.1 学术挑战
  • 模型轻量化 :减少去噪器数量(当前需25个模型)。
  • 迭代加速 :减少HQS迭代次数(当前需30步)。
  • 扩展任务 :盲去模糊、图像修复(Inpainting)。
4.2 产业机会
  • 实时图像处理芯片 :结合CNN去噪器与优化框架的ASIC设计。
  • 多模态融合 :结合物理模型(如光学退化)提升医学影像重建精度。
  • 开源框架 :开发“Plug-and-Play”工具库(如PyTorch版本)。

5. 批判性评价

5.1 不足
  • 存储开销 :25个去噪模型占用大量存储空间(>1GB)。
  • 泛化性验证不足 :未在极端噪声(\sigma>50)或非高斯噪声下测试。
  • 理论解释薄弱 :未分析CNN先验与传统先验(如TV)的数学关联。
5.2 待验证问题
  • 实际场景鲁棒性 :手机拍摄的运动模糊/低光照图像。
  • 计算效率 :CPU端实时性(当前依赖GPU)。

6. 实践启示与背景补充

6.1 核心创新点
  • 即用技术

    • 预训练去噪器 作为正则化先验嵌入优化问题。
    • 扩张卷积设计 :平衡感受野与计算效率。
  • 启发

“任何高斯去噪器均可作为模块化组件解决逆问题。”(原文Section 2.2)

6.2 必备背景知识
  1. 优化算法 :ADMM、HQS(参考[Boyd et al. 2011])。
  2. CNN基础 :残差学习、批归一化([He et al. 2016])。
  3. 图像先验 :BM3D、TV正则化([Dabov et al. 2007])。

全部评论 (0)

还没有任何评论哟~