1. 基本原理
1.1 摘要总结
总览:
- 从统计模型中生成一个合成噪声样本,配对已有噪声数据进行Noise2Noise去噪
- 训练一个网络,让其无法区分合成含噪数据和真实噪声数据,从而其倾向于输出均值(当噪声均值为0的时候,这个结果就是无噪声数据)
先前工作的局限:
- Noise2Noise:需要配对噪声数据,有的无法收集(动态场景:如户外、自拍?)
- Noise2Self和Noise2Void:只需要一张含噪数据,通过盲点网络等进行训练。这些方法都很好,但是在noise2noise的基础上增加了几个假设:
- 噪声在空间上是不相关的
- 信号在全局是相关的
Noiser2Noise的优势:
- 可以使用单个噪声数据进行训练
- 适用于像素级别(白噪)和空间相关的噪声
1.2 方法原理
动机
A为一个随机分布,M和N是随机采样结果。那么观测到的如果是二者的和
Z
=
M
+
N
Z = M +N
Z=M+N,现在需要预测N是不准确的。如果我们现在最小化误差,根据统计关系就是求解
E
[
N
∣
Z
]
E[N|Z]
E[N∣Z],根据对称性,其就是
Z
2
\frac{Z}{2}
2Z.这也是Noise2Noise的原理,因为M和N都是从Z中抽样得到的,那么二者的概率是相同的,所以M和N的均值都是 N/2。
那么根据这种理论,两次独立观测的最佳拟合位置其实就是其均值。如果现在我们有一个基础值x,我们观测到了
x
+
Z
x+ Z
x+Z,想要预测
x
+
N
x+N
x+N, 此时
x
+
N
x+N
x+N的最佳预测位置就是
x
+
Z
2
x + \frac{Z}{2}
x+2Z.
Noiser2Noise原理推导
假设X是无噪数据,我们可以观测到的是含有噪声的数据
Y
=
X
+
N
Y = X + N
Y=X+N
N是服从某种噪声模式的噪声,如果我们知道这种噪声分布 A,那么我们就可以生成一个新的噪声 M A M~A M A
因此训练过程就变为了:
-
给定一个观测的噪声数据Y,生成一个噪声版本数据
Z = Y + M = X + N + M Z = Y + M = X + N + M Z=Y+M=X+N+M -
训练根据给定的Z预测Y训练网络:
a r g m i n θ [ ∣ ∣ f ( Z ; θ ) − Y ] ∣ ∣ 2 \underset{\theta}{argmin} [||f(Z;\theta) - Y]||_2 θargmin[∣∣f(Z;θ)−Y]∣∣2
需要注意的是,网络从未单独观测N或者M,因此最小化损失函数其实是从观测Z中减去了M,但是这是不可能的,其最佳优化是 E [ Y ∣ Z ] E[Y|Z] E[Y∣Z]
E [ Y ∣ Z ] = E [ X ∣ Z ] + E [ N ∣ Z ] E[Y|Z] = E[X|Z] + E[N|Z] E[Y∣Z]=E[X∣Z]+E[N∣Z]
因为 M和N都是同一个分布的采样,所以 E [ M ∣ Z ] = E [ N ∣ Z ] E[M|Z] = E[N|Z] E[M∣Z]=E[N∣Z],所以:
2 E [ Y ∣ Z ] = E [ X ∣ Z ] + ( E [ X ∣ Z ] + E [ N ∣ Z ] + E [ M ∣ Z ] ) = E [ X ∣ Z ] + E [ X + N + M ∣ Z ] = E [ X ∣ Z ] + Z \begin{aligned} 2E[Y|Z] &= E[X|Z] + (E[X|Z] + E[N|Z] + E[M|Z]) \\ &= E[X|Z] + E[X+ N + M|Z] \\ &= E[X|Z] + Z \end{aligned} 2E[Y∣Z]=E[X∣Z]+(E[X∣Z]+E[N∣Z]+E[M∣Z])=E[X∣Z]+E[X+N+M∣Z]=E[X∣Z]+Z
因此我们真正想要的 E [ X ∣ Z ] E[X|Z] E[X∣Z]就是将我们网络的输出乘以2,然后减去我们输入到网络的噪声数据。
在实际中,有许多可信的干净图像可以产生特定的噪声,因此 E [ X ∣ Z ] E[X|Z] E[X∣Z]并非真正干净图像的精确重构,而是这组干净图像的平均值。
提升效果
由于现在输入网络的是双噪声图像,甚至在训练过程中需要认为地添加噪声,为了减小认为偏置影响,使得输入更接近于单噪声输入,采用了下面两种策略方法:
- 第一种方法是在测试时简单地向网络输入未增强的噪声图像,希望它对输入分布的这种变化具有一定的鲁棒性。作者这里概念性地分析了可能性,测试结果也表示有的情况可能会有更好地效果,但是网络倾向于输出比真实结果更平滑的结果。
- 第二种方法是,我们不需要在训练过程中添加与自然噪声强度相同的噪声。根据分析如果原始噪声
N
A
N~A
N A和
M
B
M ~B
M B,而A和B都是零均值的高斯分布的高斯噪声,且
σ
B
=
α
σ
A
\sigma_B = \alpha \sigma_A
σB=ασA,那么观测噪声
Y
=
X
+
N
Y = X + N
Y=X+N 和构建噪声
Z
=
X
+
N
+
M
Z = X + N + M
Z=X+N+M ,存在关系
E
[
M
∣
Z
]
=
α
2
E
[
N
∣
Z
]
E[M | Z] = \alpha^2 E[N|Z]
E[M∣Z]=α2E[N∣Z],那么最后的优化目标其实也是可以推导的:
E [ X ∣ Z ] = ( 1 + α 2 ) E [ Y ∣ Z ] − Z α 2 E[X|Z] = \frac{(1+\alpha^2)E[Y|Z] - Z}{\alpha^2} E[X∣Z]=α2(1+α2)E[Y∣Z]−Z
非加性噪声(例如伯努利噪声)
推导方法和加性噪声类似,就是将加法换为了点乘,最后的结果是
E
[
X
∣
Z
]
=
E
[
Y
∣
Z
]
−
k
Z
1
−
k
E[X|Z] = \frac{E[Y|Z] -kZ}{1-k}
E[X∣Z]=1−kE[Y∣Z]−kZ
2. 实验结果
展示了如何从原始输入中加噪构建输入噪声数据,然后根据网络输出倍增减去输入得到干净图片的过程

不同的加噪模型的影响

和其他去噪方法的对比

对于结构化噪声

3. 总结
很难受,这个工作让我感觉好坏参半,优点和缺点都很明显
缺点:
-
需要假设噪声模型?
- 如果我已经知道了噪声模型,那么只用传统方法就有很多方法去噪了,效果甚至不逊于本文的结果;
- 对于不同形式的噪声模式,其对应的加噪后处理(对网络输出结果处理得到真实图片)过程是不同的,那么实用性是不是不太高
- 有的噪声模型根本就不可简单表示出来,那么第二点就有很大的问题了
-
文章缺少一个流程图或者总览描述图?
- 用一张图可以在三分钟内简述清楚,而不是让人满文找重点和归纳
-
个人感觉一些推导不是非常严谨,或者可以提供一些proof
优点:
- 我非常喜欢这种概率推导的工作,可以从另一个角度看待问题。
- 思路非常简洁:已知单个噪声图像和噪声模式,再添加一点人造噪声,构建Noise2Noise的噪声对模式进行训练。
- 可能解决了Noise2Noise需要噪声配对的问题(只能说是可能。。因为需要已知噪声模式)
- 相比Noise2Void或Noise2Self,其不需要做噪声无相关性的假设(但是没有对比)。