前言

这里的图像去噪,更多地指的是带有某些特殊模式的噪声,这种模式大多有特定的物理机理,例如最常见的高斯白噪声和泊松噪声。常规的方法将这些噪声的信息作为先验信息,手工设计处理算法例如BM3D[2]是在深度学习出现之前具有最高的去噪效果,其原理是字典学习(不太理解了)。而本文将主要介绍的是从文献Noise2Noise[1]开始,基于单幅噪声图像,不增加理想图像的自监督网络。

Noise2Noise

本系列的去噪网络前提都是几乎相同的,均来自于文献Noise2Noise[1],基本假设是噪声独立同分布、噪声的期望为零,根据以上两个条件,产生了一系列的衍生网络,首先介绍其数学原理。

数学原理

设理想的、无噪声的图像为x\mathbf{x},该图像多称为信号图像或者干净图像,对应的被噪声污染的图像为y\mathbf{y},该图像称为退化图像或者噪声图像。理想情况下,如果能够得到对信号图像和噪声图像整个图像空间下的所有分布,则能够以监督学习的方式得到理想的去噪网络f:Rm×nRm×nf:\mathbb{R}^{m\times n}\mapsto\mathbb{R}^{m\times n},能够将一切噪声图像恢复为信号图像,训练该网络的目标函数将是:

minθEx,y[fθ(y)x22]\begin{equation} \min_{\bm{\theta}}\mathbb{E}_{\mathbf{x},\mathbf{y}}\left[\left\|f_{\bm{\theta}}(\mathbf{y})-\mathbf{x}\right\|_2^2\right] \end{equation}

且上式一定存在收敛的解。但是在实际情况下不可能得到这个分布,也不可能训练得到这样完全去噪的网络,实际使用中大多只有噪声图像,如果都有信号图像了,去噪还有什么意义?因此,面向实际情况的去噪网络应当是从噪声图像中自监督学习噪声模式和信号模式的,这就是N2N的基本思想。考虑一幅噪声图像y1\bm{y}_1,如果能够设法取得另一幅来自于同一个信号图像的噪声图像y2\bm{y}_2,N2N的优化目标函数将是:

minθEy1,y2[fθ(y1)y222]\begin{equation} \min_{\bm{\theta}}\mathbb{E}_{\mathbf{y}_1,\mathbf{y}_2}\left[\left\|f_{\bm{\theta}}(\mathbf{y}_1)-\mathbf{y}_2\right\|_2^2\right] \end{equation}

本目标函数是后续一切优化目标函数的基础,要使去噪网络能够去噪,则公式(2)必须具有公式(1)的相同解,设y2=x+n2\bm{y}_2=\bm{x+n}_2,代入上式,得到:

minθEy1,n2[fθ(y1)x+n222]=minθEy1,n2[fθ(y1)x222+n222+2[fθ(y1)x2]Tn2]=minθEy1,n2[fθ(y1)x22]\begin{aligned} \min_{\bm{\theta}}\mathbb{E}_{\mathbf{y}_1,\mathbf{n}_2}\left[\left\|f_{\bm{\theta}}(\mathbf{y}_1)-\mathbf{x+n}_2\right\|_2^2\right]&=\min_{\bm{\theta}}\mathbb{E}_{\mathbf{y}_1,\mathbf{n}_2}\left[\left\|f_{\bm{\theta}}(\mathbf{y}_1)-\mathbf{x}_2\right\|_2^2+\left\|\mathbf{n}_2\right\|_2^2+2\left[f_{\bm{\theta}}(\mathbf{y}_1)-\mathbf{x}_2\right]^{\mathrm{T}}\bm{n}_2\right]\\ &=\min_{\bm{\theta}}\mathbb{E}_{\mathbf{y}_1,\mathbf{n}_2}\left[\left\|f_{\bm{\theta}}(\mathbf{y}_1)-\mathbf{x}\right\|_2^2\right]\\ \end{aligned}

由此可以自然地反推出两幅图像的噪声模式需要满足的条件:

  • 各个像素位置处的噪声独立同分布;
  • 噪声在整个图像空间下的分布期望是零;
  • 噪声的方差对网络保持不变。

才能保证第三项和式为零。其中第三条噪声方差对网络保持不变的含义是,噪声方差在去噪网络作用前后是一个定值,才能保证在最小化目标函数时能够去除带有噪声幅值n222\|\bm{n}_2\|_2^2的项。在保证以上条件后,优化两幅噪声图像的目标函数(2)将会收敛到监督学习条件下理想的目标函数(1),实现了无信号图像下的自监督学习。因此关键点转变为:

如何从单幅噪声图像中获取另一幅噪声图像、抑或是从单幅噪声图像中获取两幅独立的噪声图像?

采样方法

Noise2Noise使用的是最原始的方法,即在噪声图像y\bm{y}上直接加入某个高斯白噪声m\bm{m}得到Noiser的噪声图像z\bm{z},然后对噪声图像y\bm{y}和“更”噪声图像z\bm{z}使用公式(2)构造目标函数完成网络训练。文中选用的网络结构是30层的残差神经网络RED30,在BSD300、SET14和KODAK三个测试图像集上测试去噪效果,实验结果表明,N2N原理对高斯白噪声的去除能力优于泊松噪声和伯努利采样噪声。

新的发展

自从N2N问世以来,一改图像去噪领域的传统思路,直接从待去噪图像中学习成为新的分支,由此衍生出一批X2X的去噪网络。

Noiser2Noise

本文[3]采用了更简单的一种方法,即直接将输入的噪声图像和其经过去噪网络fθf_{\bm{\theta}}处理后的输出图像作为一对噪声图像,直接构建目标函数,即:

minθEy1,y2[fθ(y)y22]\min_{\bm{\theta}}\mathbb{E}_{\mathbf{y}_1,\mathbf{y}_2}\left[\left\|f_{\bm{\theta}}(\mathbf{y})-\mathbf{y}\right\|_2^2\right]

网络结构仍然与N2N保持一致,即使用RED30,本文结果表明,直接自反构造的目标函数能够在具有较低信噪比的情况下取得比N2N和BM3D更好的去噪效果。

Neighbor2Neighbor

本文[4]在目标函数的构造上有所创新,文章认为两幅噪声图像y\bm{y}z\bm{z}是来自同一信号图像的不同条件分布,而并非N2N所认为的来自于同一条件分布,即有:

Eyx(y)=x,Ezx(z)=x+ε\mathbb{E}_{\bm{y|x}}(\bm{y})=\bm{x},\quad\mathbb{E}_{\bm{z|x}}(\bm{z})=\bm{x+\varepsilon}

因而用这两幅图像构造自反性的目标函数时,得到的结果将是:

Lrec=Ex,y,zfθ(y)z22σz2+2εEx,y[fθ(y)x]\mathcal{L}_{\mathrm{rec}}=\mathbb{E}_{\bm{x,y,z}}\left\|f_{\bm{\theta}}(\bm{y})-\bm{z}\right\|_2^2-\sigma_{\bm{z}}^2+2\bm{\varepsilon}\mathbb{E}_{\bm{x,y}}\left[f_{\bm{\theta}}(\bm{y})-\bm{x}\right]

在该情况下,如果仍然要得到如公式(1)的目标函数,必须要保证两幅噪声图像的相似性,即ε0\bm{\varepsilon}\to0,因此本文使用子网格划分cell方法构造两幅独立同分布的噪声图像,如下图所示:
Neighbor2Neighbor子图像获取方法
简言之,即将原始图像中的每个k×kk\times k像素块中随机选取两个像素点,由两个像素点取代原始像素块的中心点,填充至下采样图像中对应位置处构成两幅下采样图像,通过此法获取的两幅下采样图像具有较高的相似程度,因此能够保证其收敛至监督学习条件下的目标函数。

文章还认为单靠采样技巧得到的图像相似性没有保证,在目标函数中增加正则项,保证经采样方法得到的两幅图像具有相似性,即:

Lreg=Ex,yfθ[g1(y)]g2(y)g1[fθ(y)]g2[fθ(y)]22\mathcal{L}_{\mathrm{reg}}=\mathbb{E}_{\bm{x},\bm{y}}\left\|f_{\bm{\theta}}[g_1(\bm{y})]-g_2(\bm{y})-g_1[f_{\bm{\theta}}(\bm{y})]-g_2[f_{\bm{\theta}}(\bm{y})]\right\|_2^2

当采样函数与网络函数的顺序可以交换时,上式为零,即保证了两幅图像的相似性,因此只需要将该项作为一项惩罚函数加入目标函数即可,最终的目标函数为:

L=Lrec+λLreg\mathcal{L}=\mathcal{L}_{\mathrm{rec}}+\lambda\mathcal{L}_{\mathrm{reg}}

Self2Self

本文[5]在采样方法上有所创新,即使用了逐像素的伯努利采样法,如下式:

ys(i,j)={y(i,j),with probability p0,with probability 1pyˉs(i,j)=y(i,j)ys(i,j)\bm{y}_s(i,j)=\begin{cases} \bm{y}(i,j),&\text{with probability }p\\ 0,&\text{with probability }1-p \end{cases}\qquad \bm{\bar{y}}_s(i,j)=\bm{y}(i,j)-\bm{y}_s(i,j)

以此法可以得到一系列的采样图像对{(ym,yˉm)}m=1M\{(\bm{y}_m,\bm{\bar{y}}_m)\}_{m=1}^M,以每对图像对作为输入至网络中的训练样本,使用隐空间的Unet网络完成去噪训练,如下图所示:
隐空间的Unet去噪网络
由于采样概率的存在,网络的损失函数只计算在采样点处的损失,未被采样取得的点不计入计算范围,因此其损失函数对应修改为:

minθm=1Mbm[fθ(ym)ym]22\min\limits_{\bm{\theta}}\sum_{m=1}^M\left\|\bm{b}_m\odot[f_{\bm{\theta}}(\bm{y}_m)-\bm{y}_m]\right\|_2^2

式中的bm\bm{b}_m表示伯努利采样模板阵,其在采样点处为1,其余位置处为零。

经过该方法训练得到的网络fθf_{\bm{\theta^*}}在生成去噪图像时,期望的去噪图像就是去噪图像的期望,这里使用NN个采样图像的均值近似求解期望,即有:

x^=1Nn=1Nfθ(bM+nym)\bm{\hat{x}}=\frac{1}{N}\sum_{n=1}^Nf_{\bm{\theta^*}}(\bm{b}_{M+n}\odot\bm{y}_m)

Self2Self在多个数据集上取得了新的SOTA,大幅超过了BM3D代表的字典学习模型和以DIP以代表的物理先验信息模型,但是其缺点是网络结构过大,需要训练的样本数量较多(需要对同一幅图像作多次采样),处理一张256×256256\times 256分辨率图像的时间长达1.2小时[8],因此其实用性较差,且距离彻底的基于监督学习的去噪网络仍然有约1dB1\mathrm{dB}的PSNR差距,具有理论上的研究意义。

Recorrupt2Recorrupt

本文[6]采用的方法有点类似于Noise2Noise,其也是直接在噪声图像上加入高斯白噪声,不同之处在于,此处加入的白噪声是直接严格正交的,即:

y1=y+Az,y2=yBz\bm{y}_1=\bm{y}+\bm{Az},\quad\bm{y}_2=\bm{y}-\bm{Bz}

其中的z\bm{z}是从某个高斯分布中抽样取得的一个噪声图像zN(0,I)\bm{z}\sim\mathcal{N}(0,\bm{I}),矩阵A,B\bm{A,B}满足ABT=Σx\bm{AB^{\mathrm{T}}=\Sigma_x},即其服从的噪声分布是事先已知的。优化函数相应地修改为:

minθEy,zfθ(y+Az)(yBz)22\min_{\bm{\theta}}\mathbb{E}_{\bm{y},\bm{z}}\left\|f_{\bm{\theta}}(\bm{y+Az})-(\bm{y-Bz})\right\|_2^2

经过该方式训练得到的网络fθf_{\bm{\theta^*}}在生成去噪图像时,仍然是使用与文献[5]类似的方法,即期望的去噪图像就是去噪图像的期望,这里是直接对期望的积分计算作近似,使用的是蒙特卡洛积分法,即:

x^=Ω(z)fθ(y+Az)ΦI(z)dz=n=1Nfθ(y+Azn)\bm{\hat{x}}=\int_{\Omega(\bm{z})}f_{\bm{\theta^*}}(\bm{y}+\bm{Az})\Phi_{\bm{I}}(\bm{z})\mathrm{d}\bm{z}=\sum_{n=1}^Nf_{\bm{\theta^*}}(\bm{y}+\bm{Az}_n)

其中znN(0,I)\bm{z}_n\sim\mathcal{N}(0,\bm{I})是从标准的高斯白噪声中采样得到的采样噪声。

零样本去噪

零样本去噪是自监督去噪领域最近兴起的又一种花活,其甚至去除了数据集的要求,即自监督学习也可以不需要从大量的噪声图像中获取数据集,而是只需要一幅噪声图像、而且这幅噪声图像就是待处理的图像,就可以完成对噪声模式的学习、去除与图像恢复。

零样本学习兴起的主要理由是,去噪任务面向实时性的要求,传统的基于噪声-信号对的监督学习方式和基于纯噪声图像的自监督学习方式都需要大量的数据集,且网络结构复杂,难以实现实时性处理。

Noise2Fast

文献[7]虽然不是最早提出零样本去噪学习的,但是由于它发了一篇Nature子刊,必须重视。这篇文章在优化目标上面没有创新,采用的与Neighbor2Neighbor[4]相同的目标函数,在采样上采用了与它类似的采样方法,即奇偶位置(沿横轴和纵轴各采样一次)的像素相互采样,得到长条形的左右采样图和偏平形的上下采样图,使用两幅相同朝向的采样图像作为噪声图像对训练一个轻量级的全卷积网络,整个流程如下图所示:
Noise2Fast采样去噪全流程
该算法简单,但是有效,甚至能够与大样本自监督学习模型R2R相媲美,不过仍然比不过大样本的监督学习模型,但是其处理时间仅需要不到1分钟。

消融实验用Unet取代全卷积网络甚至让效果变差了,推测是欠拟合。

Zero-Shot Noise2Noise

文献[8]在优化函数上略加改进,借鉴了文章Neighbor2Neighbor[4]的自反对称性,使用2层全卷积网络(无池化或者批处理),输入与输出使用残差连接,则应当计算残差图像的损失,即:

L=Ey1,y2g1(y)fθ[g1(y)]g2(y)22\mathcal{L}=\mathbb{E}_{\bm{y}_1,\bm{y}_2}\left\|g_1(\bm{y})-f_{\bm{\theta}}[g_1(\bm{y})]-g_2(\bm{y})\right\|_2^2

残差连接可以加深网络的层数,我不太理解这里加残差的用意,它的网络也不深啊。

文章为了加强下采样图像与去噪图像之间的像素一致性,将最后一项也修改为残差项,即:

L=Ey1,y2g1(y)fθ[g1(y)]g1[yfθ(y)]22\mathcal{L}=\mathbb{E}_{\bm{y}_1,\bm{y}_2}\left\|g_1(\bm{y})-f_{\bm{\theta}}[g_1(\bm{y})]-g_1[\bm{y}-f_{\bm{\theta}}(\bm{y})]\right\|_2^2

对于两幅图像的自反对称,其连续性consistency应当分别保证,则连续性损失函数为:

Lcons=12Ey1,y2fθ[g1(y)]g1[yfθ(y)]22+12Ey1,y2fθ[g2(y)]g2[yfθ(y)]22\mathcal{L}_{\mathrm{cons}}=\frac{1}{2}\mathbb{E}_{\bm{y}_1,\bm{y}_2}\left\|f_{\bm{\theta}}[g_1(\bm{y})]-g_1[\bm{y}-f_{\bm{\theta}}(\bm{y})]\right\|_2^2+\frac{1}{2}\mathbb{E}_{\bm{y}_1,\bm{y}_2}\left\|f_{\bm{\theta}}[g_2(\bm{y})]-g_2[\bm{y}-f_{\bm{\theta}}(\bm{y})]\right\|_2^2

该项作为正则项加入至目标函数中,与Neighbor2Neighbor[4]的重建损失一起构成最终的目标函数:

L=Lrec+λLcons\mathcal{L}=\mathcal{L}_{\mathrm{rec}}+\lambda\mathcal{L}_{\mathrm{cons}}

本文采用的下采样的方式又是另一种,其双卷积核的采样,而这两个卷积核是正交的,本质上相当于对2×22\times2的像素块分辨率收缩,如下图:
卷积核下采样
本文方法网络更加轻量,甚至能够在CPU上实时处理,效果不弱于主流的处理自监督和零样本自监督去噪方式。

参考文献


[1] Lehtinen J. , Munkberg J. , Hasselgren J. , 等.Noise2Noise: Learning Image Restoration without Clean Data[M/OL].arXiv,2018

[2] Dabov K. , Foi A. , Katkovnik V. , et al.Image Denoising by Sparse 3-D Transform-Domain Collaborative Filtering[J/OL].IEEE Trans. on Image Process.,2007,16(8):2080-2095

[3] Moran N. , Schmidt D. , Zhong Y. , et al.Noisier2Noise: Learning to Denoise From Unpaired Noisy Data[A].2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)[C/OL].Seattle, WA, USA:IEEE,2020:12061-12069

[4] Huang T. , Li S. , Jia X. , et al.Neighbor2Neighbor: Self-Supervised Denoising from Single Noisy Images[A].2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)[C/OL].Nashville, TN, USA:IEEE,2021:14776-14785

[5] Quan Y. , Chen M. , Pang T. , et al.Self2Self With Dropout: Learning Self-Supervised Denoising From Single Image[A].2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)[C/OL].Seattle, WA, USA:IEEE,2020:1887-1895

[6] Pang T. , Zheng H. , Quan Y. , et al.Recorrupted-to-Recorrupted: Unsupervised Deep Learning for Image Denoising[A].2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)[C/OL].Nashville, TN, USA:IEEE,2021:2043-2052

[7] Lequyer J. , Philip R. , Sharma A. , et al.A fast blind Zero-shot Denoiser[J/OL].Nat Mach Intell,2022,4(11):953-963

[8] Mansour Y. , Heckel R. .Zero-Shot Noise2Noise: Efficient Image Denoising without any Data[A].2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)[C/OL].Vancouver, BC, Canada:IEEE,2023:14018-14027