论文阅读笔记(IRCNN):Learning Deep CNN Denoiser Prior for Image Restoration

论文阅读笔记(IRCNN):Learning Deep CNN Denoiser Prior for Image Restoration

2017 CVPR Kai Zhang, Wangmeng Zuo , Shuhang Gu, Lei Zhang

论文地址:https://arxiv.org/abs/1704.03264

代码地址:
MATLAB https://github.com/cszn/IRCNN
PyTorch https://github.com/cszn/DPIR

论文内容梳理

Abstract

目标:解决底层视觉中的逆问题。

主导策略:基于模型的方法和判别学习方法

基于模型的方法能够灵活地解决各种逆问题,但需要复杂的先验知识导致耗时长

判别学习方法测试速度快,但应用范围局限于某种特定任务。

本文思路:

训练一个快速高效的CNN去噪器,将它集成到基于模型的HQS优化方法,从而可以解决其他逆问题。

Introduction

图像退化模型

y = H x + v y=Hx+v y=Hx+v

其中, H H H为退化矩阵, v v v为标准差为σ的加性高斯白噪声。

•当H是恒等矩阵时,IR任务对应图像去噪(image denoising);

•当H是模糊算子(blurring operator),对应着图像去模糊(image deblurring);

•当H是模糊和下采样复合算子(composite operator of blurring and down-sampling),对应着图像超分辨(image super-resolution)

最大后验概率MAP:

x x x可以通过解决MAP问题求解。

x ^ = a r g m a x x l o g p ( y ∣ x ) + l o g p ( x ) \hat{x}=argmax_xlog{p(y|x)}+log{p(x)} x^=argmaxxlogp(yx)+logp(x)

重写公式:

x ^ = a r g m i n x 1 2 ∣ ∣ y − H x ∣ ∣ 2 + λ Φ ( x ) \hat{x}=argmin_x\frac{1}{2}\lvert\lvert{y-Hx}\rvert\rvert^2+\lambda\Phi(x) x^=argminx21yHx2+λΦ(x)

其中,保真项 1 2 ∣ ∣ y − H x ∣ ∣ 2 \frac{1}{2}\lvert\lvert{y-Hx}\rvert\rvert^2 21yHx2,正则项 Φ ( x ) \Phi(x) Φ(x),平衡参数 λ \lambda λ

保真项保证解符合退化过程,正则项强制了输出的属性。

补充MAP公式推导:
P ( x ∣ y ) = P ( y ∣ x ) P ( x ) P ( y ) P(x|y) = \frac{P(y|x)P(x)}{P(y)} P(xy)=P(y)P(yx)P(x)

x ^ M A P = a r g m a x P ( x ∣ y ) = a r g m i n − l o g P ( x ∣ y ) = a r g m i n − l o g P ( y ∣ x ) − l o g P ( x ) + l o g P ( y ) = a r g m i n − l o g P ( y ∣ x ) − l o g P ( x ) \hat{x}_{MAP}=argmax{P(x|y)} \\=argmin{-logP(x|y)} \\=argmin{-logP(y|x)-logP(x)+logP(y)} \\=argmin{-logP(y|x)-logP(x)} x^MAP=argmaxP(xy)=argminlogP(xy)=argminlogP(yx)logP(x)+logP(y)=argminlogP(yx)logP(x)
补充:由于 l o g P ( y ) logP(y) logP(y) x x x因此无关可以省略。
半二次方分裂法HQS:

接下来使用HQS将保真项和正则项解耦。

将正则项中的原始变量进行变量替换,增加二次惩罚项,从而去耦合。

x ^ = a r g m i n x 1 2 ∣ ∣ y − H x ∣ ∣ 2 + λ Φ ( x ) \hat{x}=argmin_x\frac{1}{2}\lvert\lvert{y-Hx}\rvert\rvert^2+\lambda\Phi(x) x^=argminx21yHx2+λΦ(x)

引入辅助变量z,将惩罚项中的x替换成z:

L u ( x , z ) = 1 2 ∣ ∣ y − H x ∣ ∣ 2 + λ Φ ( z ) + μ 2 ∣ ∣ z − x ∣ ∣ 2 L_u(x,z)=\frac{1}{2}\lvert\lvert{y-Hx}\rvert\rvert^2+\lambda\Phi(z)+\frac{\mu}{2}\lvert\lvert{z-x}\rvert\rvert^2 Lu(x,z)=21yHx2+λΦ(z)+2μzx2

迭代求解:

x k + 1 = a r g m i n x ∣ ∣ y − H x ∣ ∣ 2 + μ ∣ ∣ z − x ∣ ∣ 2 x_{k+1}=argmin_x\lvert\lvert{y-Hx}\rvert\rvert^2+\mu\lvert\lvert{z-x}\rvert\rvert^2 xk+1=argminxyHx2+μzx2

z k + 1 = a r g m i n z μ 2 ∣ ∣ z − x k + 1 ∣ ∣ 2 + λ Φ ( z ) z_{k+1}=argmin_z{\frac{\mu}{2}\lvert\lvert{z-x_{k+1}}\rvert\rvert^2}+\lambda\Phi(z) zk+1=argminz2μzxk+12+λΦ(z)

x k + 1 x_{k+1} xk+1的迭代公式 x k + 1 = a r g m i n x ∣ ∣ y − H x ∣ ∣ 2 + μ ∣ ∣ z − x ∣ ∣ 2 x_{k+1}=argmin_x\lvert\lvert{y-Hx}\rvert\rvert^2+\mu\lvert\lvert{z-x}\rvert\rvert^2 xk+1=argminxyHx2+μzx2 x x x求偏导取0,得到直接解:

x k + 1 = ( H T H + μ I ) − 1 ( H T y + μ z k ) x_{k+1}=(H^TH+\mu{I})^{-1}(H^Ty+\mu{z_k}) xk+1=(HTH+μI)1(HTy+μzk)

z k + 1 z_{k+1} zk+1的迭代公式 z k + 1 = a r g m i n z μ 2 ∣ ∣ z − x k + 1 ∣ ∣ 2 + λ Φ ( z ) z_{k+1}=argmin_z{\frac{\mu}{2}\lvert\lvert{z-x_{k+1}}\rvert\rvert^2}+\lambda\Phi(z) zk+1=argminz2μzxk+12+λΦ(z)进行重写,对应于噪声水平为 λ μ \frac{\lambda}{\mu} μλ的高斯降噪器对图像 x k + 1 x_{k+1} xk+1进行去噪:

z k + 1 = D e n o i s e r ( x k + 1 , λ μ ) z_{k+1}=Denoiser(x_{k+1},\sqrt{\frac{\lambda}{\mu}}) zk+1=Denoiser(xk+1,μλ )

CNN Denoiser:

•使用Dilated Filter增大感受野

•使用批量归一化和残差学习加速训练

•使用小尺寸样本训练避免边缘伪影

•学习小噪声水平间隔的去噪模型

在这里插入图片描述

网络的三种blocks:

•扩张卷积+ReLU

•扩张卷积+批量归一化+ReLU

•扩张卷积

补充扩张卷积:

扩张卷积(Dilated Conv):

在这里插入图片描述

上图为3×3的内核,扩张因子分别为1,2,3的扩张卷积。

卷积核的参数个数保持不变,感受野的大小随扩张因子增加而增大。

噪声水平:

原文:在噪声水平范围 [0, 50] 上训练了一组降噪器,并将其除以每个模型的步长 2,从而为每个灰度和彩色图像先验建模生成一组 25 个降噪器。

思考:训练时针对每一个噪声级都训练一组降噪器,在应用的时候论文作者假设输入图像的噪声水平已知,选择一个已训练好的某个噪声水平的降噪器使用。

Experiments:

图像去噪:

数据集:400 BSD images, 400 validation set of ImageNet database, 4744 images of Waterloo Exploration Database

图像裁成35×35的大小,选择N=256×4000张训练,并添加高斯噪声。
在这里插入图片描述
在这里插入图片描述

灰度图上测试去噪效果结果与 基于模型的两种方法:BM3D和WNNM,判别学习的两种方法:MLP和TNRD作对比。

彩色图上测试去噪效果与 CBM3D对比。

运行时间测试与BM3D和TNRD对比。

图像去模糊:

使用模糊核,再添加噪声水平为σ的加性高斯噪声。

在这里插入图片描述

与一种判别学习方法:MLP,三种基于模型的方法:IDDBM3D、NCSR、EPLL对比。

测试图像:三个灰度图,三个彩图。

图像超分辨:

使用超分辨的经典图像退化设置:

双三次(bicubic)下采样(matlab函数imresize的默认设置),比例因子为2和3,并通过7×7的标准差为1.6的高斯核进行模糊处理,然后使用比例因子3的下采样。

x k + 1 = x k − α ( y − x k ↓ s f ) ↑ b i c u b i c s f x_{k+1}=x_{k}-\alpha(y-x_k\downarrow_{sf})\uparrow_{bicubic}^{sf} xk+1=xkα(yxksf)bicubicsf

↓ s f \downarrow_{sf} sf表示具有降尺度因子sf的退化算子, ↑ b i c u b i c s f \uparrow_{bicubic}^{sf} bicubicsf表示具有升尺度因子的双三次插值算子,α为步长。

重复上式五次再去噪。

在这里插入图片描述

对比:两种基于CNN的判别学习方法:SRCNN、VDSR,一种基于统计预测模型的判别学习方法:SPMSR,一种基于模型的方法:NCSR,一种基于降噪先验的方法:SRBM3D。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值