引言
图像去噪问题是图像生成领域经典的low level问题,最初的图像去噪网络需要配对的噪声图像 x i x_i xi和干净图像 y i y_i yi,去噪网络 f θ f_{\theta} fθ通过 a r g min θ ∣ ∣ f ( x i ; θ ) − y i ∣ ∣ (1) arg\min_{\theta}||f(x_i;\theta)-y_i \tag{1}|| argθmin∣∣f(xi;θ)−yi∣∣(1)对网络进行优化。然而由于实际应用中配对数据难以获得,因此Jaakko Lehtinen 等人在2018年发表的N2N1中提出可以使用配对的噪声图像和噪声图像对网络训练,并且训练网络的期望值是等于使用成对噪声图像和干净图像训练的网络的期望值的,即 E x , x ′ [ f ( x ; θ ) − x ′ ] = E x , y [ f ( x ; θ ) − y ] E x ′ [ x ′ ] = E y [ y ] (2) E_{x,x'}[f(x;\theta)-x']=E_{x,y}[f(x;\theta)-y]\\ E_{x'}[x']=E_y[y] \tag{2} Ex,x′[f(x;θ)−x′]=Ex,y[f(x;θ)−y]Ex′[x′]=Ey[y](2)通过这种方式,N2N首次实现了脱离干净图像训练去噪网络。之后的研究中Krull等人提出,由于配对的噪声图像在实际中任然不好获得,甚至是无法获得,因此在2019年将N2N进一步推广,提出了N2V2。N2V指出在网络进行特征提取的过程中,通过固定的感受野将输入图像某一patch映射为输出图像的某一像素点,如果从这种patch的思想来看,(2)式便可以改写为 E x j , x ′ j [ E x R F ( i ) j [ f ( x R F ( i ) j ; θ ) = s i − x i ′ j ] ] (3) E_{x^j,x^{'j}}[E_{x^j_{RF(i)}}[f(x^j_{RF(i)};\theta)=s_i-x_i^{'j}]] \tag{3} Exj,x′j[ExRF(i)j[f(xRF(i)j;θ)=si−xi′j]](3)此外本文给出了两个前提假设:
assumption 1:
所有像素点与周围的像素点是条件不独立的,即:
p
(
s
,
n
)
=
p
(
s
)
p
(
n
∣
s
)
,
p
(
s
i
∣
s
j
)
≠
p
(
s
i
)
p(s,n) = p(s)p(n|s),\\ p(s_i |s_j) \neq p(s_i)
p(s,n)=p(s)p(n∣s),p(si∣sj)=p(si)
assumption 2:
所有噪声与像素点是条件独立的,即:
p
(
n
∣
s
)
=
∏
i
p
(
n
i
∣
s
i
)
p(n|s) =\prod_{i}p(n_i |s_i )
p(n∣s)=i∏p(ni∣si)
通过这两个假设,我们可以得知(3)式中的
x
i
′
j
x^{'j}_i
xi′j是可以替换成
x
i
j
x^j_i
xij
这是因为
E
x
i
j
[
x
i
j
]
=
E
x
i
′
j
[
x
i
′
j
]
E_{x^j_i}[x^j_i]=E_{x^{'j}_i}[x^{'j}_i]
Exij[xij]=Exi′j[xi′j],因此本文将去噪网络的优化目标进一步推广为:
a
r
g
min
θ
∑
i
∑
j
∣
∣
f
(
x
R
F
(
i
)
j
;
θ
)
−
x
i
j
∣
∣
2
arg\min_{\theta}\sum_i\sum_j||f(x^j_{RF(i)};\theta)-x^j_i||^2
argθmini∑j∑∣∣f(xRF(i)j;θ)−xij∣∣2此外由于这里使用了
L
2
L_2
L2损失,因此作者还做了一个配套的假设,噪声分布是0均值。此外为了使得网络不会退化为一个patch到center pixel的恒等映射,作者还提出了配套使用的blind-point network以及mask-based训练方法。
尽管N2V将图像去噪的训练推向了另一个高度,然而在接下来的一系列研究和实验中表明,这种方法还是存在许多局限性,例如:
1、需要对噪声分布和图像的像素独立性做出先验假设,这种假设在实际应用时通常难以满足。从文章实验可以看出,若不满足这种先验假设,模型结果会出现严重退化。
2、模型若使用blind-point的方式进行训练,则部分像素点是模型所不能观测的,这部分像素点信息的缺失会降低训练的模型的性能。
3、通过后人的实验和分析可以看出,assumption 1的严格满足实际上并不能带来最优的网络性能。
因此后人针对其局限性做出了许多的改进。
Noise2Sim – Similarity-based Self-Learning for Image Denoising3
本文基于一个深度学习的常识,即:使用non-local mean的模型其特征提取能力通常会强于local-based模型,然而N2V的patch-pixel配对思想限制了其无法使用non-local方法(因为模型训练目的是通过某个patch来估计其中的某个像素)。所以作者提出如果可以通过挖掘图像的自相似性的方法,用单张噪声图像重建多张噪声图像,则可以间接实现N2N的non-local mean模型。
先看本文是如何构建多张噪声图片的:本文提出一张图像通常存在多处自我相似或重复的地方(self-similarities/repeated),于是对于一张图像的任意一个像素点,作者将其周围的一定范围看做一个patch,通过全局搜索与之相似的patch,使用相似patch的中心像素来替换,从而构建相似图像。
先说一下本文对图像和噪声的两个先验假设:
assumption 1:
相似的patch与目标patch足够相似。
assumption 2:
噪声是与像素独立的。
…本部分未完待续
Noise2Same: Optimizing A Self-Supervised Bound4
N2V是基于patch的形式实现了单图像的去噪,通过假设噪声图像具有J-不变性(也就是N2V的第一个假设条件),去噪网络可以使用图像中的某一部分,去推断剩余的部分,而这两部分是有着极强的相关性的,即:
对于噪声图像
x
∈
R
m
x \in R^m
x∈Rm任意给定的一个划分
J
=
J
1
,
⋅
⋅
⋅
,
J
k
(
∣
J
1
∣
+
⋅
⋅
⋅
+
∣
J
k
∣
=
m
)
J = {J_1 ,··· ,J_k } ( |J_1 | + ··· + |J_k | = m )
J=J1,⋅⋅⋅,Jk(∣J1∣+⋅⋅⋅+∣Jk∣=m)一个函数
f
:
R
m
→
R
m
f : R^m → R^m
f:Rm→Rm称为J-不变的,如果
f
(
x
)
f(x)
f(x)对于所有的
J
i
∈
J
J_i \in J
Ji∈J值都不取决于
x
J
i
x_{J_i}
xJi。然而本文的分析指出,某些时候,在训练时严格满足J-不变性,反而会损害模型的性能,由此本文提出了一种新的上边界条件,这种上边界条件允许模型可以不严格满足J-不变性。
模型不严格满足J-不变性反而会使得模型性能更佳,这似乎有些与N2V的理论相违背,让我们从N2V开始入手分析。首先,N2V是假设噪声均值为0,并且与图像像素独立,那么我们就有了:
L
(
f
)
=
E
x
,
y
∣
∣
f
(
x
)
−
y
∣
∣
2
=
E
x
∣
∣
f
(
x
)
−
x
∣
∣
2
(4)
L(f) = E_{x,y}||f(x) − y||^2=E_x||f(x)-x||^2 \tag{4}
L(f)=Ex,y∣∣f(x)−y∣∣2=Ex∣∣f(x)−x∣∣2(4),这是因为在假设下,
E
x
[
x
]
=
E
y
[
y
]
E_x[x]=E_y[y]
Ex[x]=Ey[y]。进一步,为了使得
f
(
x
)
f(x)
f(x)不至于成为一个单位映射,作者进一步提出
f
(
x
)
f(x)
f(x)是J-不变性的。让我们将(4)式的后半部分展开看:
E
x
∣
∣
f
(
x
)
−
x
∣
∣
2
=
E
x
,
y
∣
∣
f
(
x
)
−
y
∣
∣
2
+
E
x
,
y
∣
∣
x
−
y
∣
∣
2
−
2
⟨
f
(
x
)
−
y
,
x
−
y
⟩
=
E
x
,
y
∣
∣
f
(
x
)
−
y
∣
∣
2
+
E
x
,
y
∣
∣
x
−
y
∣
∣
2
(5)
E_x||f(x)−x||^2 \\ = E_{x,y}||f(x) − y||^2 + E_{x,y}||x − y||^2 − 2\left\langle f(x) − y,x − y\right\rangle \\ = E_{x,y}||f(x) − y||^2 + E_{x,y}||x − y||^2 \tag{5}
Ex∣∣f(x)−x∣∣2=Ex,y∣∣f(x)−y∣∣2+Ex,y∣∣x−y∣∣2−2⟨f(x)−y,x−y⟩=Ex,y∣∣f(x)−y∣∣2+Ex,y∣∣x−y∣∣2(5)第二行之所以可以变成第三行,是因为在满足J-不变性和噪声0均值的情况下,第二行第三项=0。之后我们就可以看到,由于第三行第二项是一个定值,因此优化
E
x
∣
∣
f
(
x
)
−
x
∣
∣
2
E_x||f(x)-x||^2
Ex∣∣f(x)−x∣∣2就相当于间接优化
E
x
,
y
∣
∣
f
(
x
)
−
y
∣
∣
2
E_{x,y}||f(x)-y||^2
Ex,y∣∣f(x)−y∣∣2。以往实现这种blind-point的方法有两种,一种是mask-based方法,一种是convolutional blind-spot neural network的方法,通过blind-point,(5)可以继续改写为
L
(
f
)
=
E
J
E
x
∣
∣
f
(
x
J
c
)
J
−
x
J
∣
∣
2
(6)
L(f) = E_JE_x||f(x_J^c )_J − x_J||^2 \tag{6}
L(f)=EJEx∣∣f(xJc)J−xJ∣∣2(6)其中
x
J
c
x_J^c
xJc是
x
J
x_J
xJ的补集。然而后面作者分析,最小化(6)并不能使得
f
(
x
)
f(x)
f(x)达到最优。此外作者在这里还对贝叶斯方法进行了简要的分析,贝叶斯方法简单来说就是将前面方法
f
(
x
)
f(x)
f(x)不能利用的
x
J
x_J
xJ的信息通过后验的方法给利用了起来,即:
p
(
y
J
∣
x
J
,
x
J
c
)
∝
p
(
x
J
∣
y
J
)
p
(
y
J
∣
x
J
c
)
,
∀
J
∈
J
p(y_J |x_J ,x_J^c ) ∝ p(x_J|y_J) p(y_J |x_J^c ), ∀J \in \mathcal{J}
p(yJ∣xJ,xJc)∝p(xJ∣yJ)p(yJ∣xJc),∀J∈J然而这样做需要两个先验知识:1、
p
(
x
J
∣
y
J
)
p(x_J|y_J)
p(xJ∣yJ)要是已知的,这是非常困难的。2、要求在整幅图像中噪声都是独立同分布的,然而如果真的应用到实际图像时,噪声通常都是不一致的,甚至是多种噪声的混合。
作者指出,本文的新方法也可以克服这种问题,因为本文是将整幅图像作为输入,而不需要额外的先验知识。这不仅使我联想到深度学习的一个基本常识:使用non-local mean的方法通常可以抓住更多的全局信息,从而在最终性能上强于local-based方法。
我们先看作者是怎么反驳J-相关性的。我们知道J-相关性是通过mask-based方式实现的,其模型的输入我们可以表示为
1
J
c
⋅
x
+
1
J
⋅
r
\mathbb{1}_J^c·x +\mathbb{1}_J·r
1Jc⋅x+1J⋅r其中
r
r
r是替换
x
J
x_J
xJ的量,不同的文章中使用的
r
r
r不同。即使这样,作者敏锐的指出,在整个训练过程中
f
(
x
)
f(x)
f(x)依然对
x
J
x_J
xJ展现出了微弱的相关性,也就是说,
f
(
x
)
f(x)
f(x)并不是严格满足J-不相关的。这里作者甚至构造了J不相关性的一个度量公式:
D
(
f
)
=
E
J
E
x
∣
∣
f
(
x
J
c
)
J
−
f
(
x
)
J
∣
∣
2
/
∣
J
∣
(7)
D(f) = E_JE_x||f(x_J^c )_J − f(x)_J||^2 /|J| \tag{7}
D(f)=EJEx∣∣f(xJc)J−f(x)J∣∣2/∣J∣(7)通过实验给出了具体的数据:
可以看到用随机高斯噪声来填充
r
r
r,即mask-based blind-spot methods,虽然可以得到较低的相关性,然而得到的PSNR值却并不是最好的,Shifting RF(Shifting Receptive Field),即 convolutional blind-spot neural network,是一种严格满足J-不相关性的
r
r
r方法,虽然这个方法可以得到近乎为0的不相关性,然而还是无法得到最好的PSNR。UPS是随机选取
x
J
x_J
xJ周围的点作为
r
r
r,毫无疑问,这必定会使得
r
r
r与
x
J
x_J
xJ的相关性很高,对应的结果就是
f
(
x
)
f(x)
f(x)会不严格满足J-不相关性,从上表也可以反映出这个事实。然而,这种方法训练处的
f
(
x
)
f(x)
f(x)却可以取得最优的性能。
这似乎一下子打破了N2V的假设1,然而我个人认为其实并不是假设出了问题(假设只给出应该是相关的,而没有说相关性要多强),而是N2V等基于这种方法的模型的训练方式,即blind-point的方式有问题(这种方式将相关性默认为了无限强)。此外,当使用mask-based方法进行网络训练时,其结果也是存在问题的:我们先来思考第一种情况,即mask与network相配套的情况,此时我们的训练网络可以看成
g
(
x
)
:
=
f
(
1
J
c
⋅
x
+
1
J
⋅
r
)
g(x):= f(1_J^c · x + 1_J · r)
g(x):=f(1Jc⋅x+1J⋅r)。在训练的时候,
g
(
x
)
g(x)
g(x)通过mask实现了J-不变性,但是
f
(
x
)
f(x)
f(x)却不能被保证是J-不相关的。在测试时,
g
(
x
)
g(x)
g(x)去掉了mask,此时可以看做我们在使用
f
(
x
)
f(x)
f(x)进行预测,这就违反了去噪网络J-不相关的前提假设。我们再来思考第二种情况,即network
f
(
x
)
f(x)
f(x)和mask是分开的,并且自始至终都使用
f
(
x
)
f(x)
f(x)来进行训练和测试。通过mask的方式,我们意图使得
f
(
x
)
f(x)
f(x)拥有J-不变性,也就是使得(5)成立,然而作者给出的实验结果我们也可以看到,这种训练方式实际上是不能使得
f
(
x
)
f(x)
f(x)J-不相关性成立的,因此(5)式实际上是不成立的。
在(5)式中我们说,J-不变性是为了让内积项近似为0,然而通过实验我们可以看出这种不变性却并不会得到最优性能的网络,因此这里作者提出可以用一个上边界的不等式来作为优化目标,这个上边界不需要让内积项近似为0:
通过这个定理,我们可以给出一个全新的目标函数:
L
(
f
)
=
E
x
∣
∣
f
(
x
)
−
x
∣
∣
2
/
m
+
λ
i
n
v
E
J
[
E
x
∣
∣
f
(
x
)
J
−
f
(
x
J
c
)
J
∣
∣
2
/
∣
J
∣
]
1
/
2
(8)
L(f) = E_x||f(x) − x||^2 /m + λ_{inv}E_J[E_x||f(x)_J − f(x_J^c )_J||^2 /|J|]^{1/2} \tag{8}
L(f)=Ex∣∣f(x)−x∣∣2/m+λinvEJ[Ex∣∣f(x)J−f(xJc)J∣∣2/∣J∣]1/2(8)通过这个目标函数我们可以看到,网络
f
(
x
)
f(x)
f(x)并没有被强制要求J-不变性,而是通过一个超参数
λ
i
n
v
\lambda_{inv}
λinv来隐式的调节,同时,它也可以避免我们的网络成为一个恒等映射。虽然依照定理,这个超参数被默认设为2,然而对于不同的噪声和图像分布,相应的调节超参数可以带来更好的效果。第一项是噪声图像的重建损失,这个重建损失将整张图片作为输入。
那么通过引入这个损失,我们的整个训练过程就可以表示为
这里作者通过一个例子给出了网络面对不同的噪声时,如何实现调节:
可以看到
λ
i
n
v
=
2
m
σ
\lambda_{inv}=2m\sigma
λinv=2mσ,其中
σ
\sigma
σ是噪声强度,当噪声较强时,
f
(
x
)
f(x)
f(x)的J-不相关性就会更强。这在直观上很好理解,当噪声强度强时,我们的网络输出结果将更取决于
x
J
c
x_J^c
xJc,而忽略掉已经被噪声严重污染的
x
J
x_J
xJ,同时第一项重建损失的性能也将被削弱。其实这种线性组合的想法也出现在贝叶斯网络去噪中,在贝叶斯网络中,损失是
f
(
x
J
c
)
f(x_J^c)
f(xJc)的重建损失和
y
J
y_J
yJ与
x
J
x_J
xJ的后验损失的线性组合。虽然贝叶斯去噪网络也考虑到了网络不严格J-不变性的情况(贝叶斯网络可以表示为
p
(
y
J
∣
x
J
,
x
J
c
)
∝
p
(
x
J
∣
y
J
)
p
(
y
J
∣
x
J
c
)
,
∀
J
∈
J
p(y_J |x_J ,x_J^c ) ∝ p(x_J|y_J) p(y_J |x_J^c ), ∀J \in \mathcal{J}
p(yJ∣xJ,xJc)∝p(xJ∣yJ)p(yJ∣xJc),∀J∈J,若严格J-不变性,则其应该是
p
(
y
J
∣
x
J
,
x
J
c
)
=
p
(
y
J
∣
x
J
c
)
p(y_J |x_J ,x_J^c )=p(y_J |x_J^c )
p(yJ∣xJ,xJc)=p(yJ∣xJc))然而本文与贝叶斯去噪网络的最大不同点在于,当噪声分布未知时,后验项是无法使用的,而本文则可以通过超参数
L
i
n
v
L_{inv}
Linv来引入这一项,因此本文可以适用于任何的噪声分布。
总之,本文通过对以往基于J-不变性的无监督图像去噪模型进一步分析:
1、指出以往建立在严格J-不变性上的无监督模型并不是最优的,从而提出了可以不必严格要求这种不变性的损失函数。
2、本文提出的方法通过超参数
λ
i
n
v
\lambda_{inv}
λinv来解决噪声分布带来的J-不变性和图像重构之间的平衡问题,从而可以适应用于任何噪声分布。
Lehtinen, J., Munkberg, J., Hasselgren, J., Laine, S., Karras, T., Aittala, M., & Aila, T. (2018). Noise2noise: Learning image restoration without clean data. arXiv preprint arXiv:1803.04189. ↩︎
Krull, A., Buchholz, T. O., & Jug, F. (2019). Noise2void-learning denoising from single noisy images. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 2129-2137). ↩︎
Niu, C., & Wang, G. (2020). Noise2Sim–Similarity-based Self-Learning for Image Denoising. arXiv preprint arXiv:2011.03384. ↩︎
Xie, Y., Wang, Z., & Ji, S. (2020). Noise2Same: Optimizing A Self-Supervised Bound for Image Denoising. arXiv preprint arXiv:2010.11971. ↩︎