Contents

图像去噪

Noise Flow

https://github.com/BorealisAI/noise_flow

QA:

1、块(patch)大小 32x32 与论文中不同?(64x64)

实际采样时输入的图像尺寸应该是多少?

实际也应该是32x32,与训练时的patch保持一致,可以从更大尺寸的图像中进行采样,输出时可以进行resize

2、训练是反方向(x—>z,密度估计)的,对于采样任务,是否需要重新正向训练?如何恢复训练(fine-tune)?

根据采样代码运行的结果,推测原始训练时保存的模型就是正向的(采样方向)

代码中有恢复训练的代码,应该可以直接用

3、训练保存的ckpt模型可以直接采样?Why?

而且输入、输出尺寸似乎与patch大小无关

可以,因为训练时保存的就是正向(采样)模型,推理时必须和patch大小保持一致,输入、输出可以不一致(随机截取、resize)

4、为什么训练时的代码看起来像是学习密度估计(反向)?

是正向的,学习的采样过程(不确定)

5、train_noise_flow.py 中 Training/Testing/Sampling的关系?

train使用的是训练集,每次梯度下降更新参数

test、sample使用的是测试集,test执行sess.run()只计算loss,sample会执行采样节点

6、模型中输入为什么要把RAW图像分解为4层?

因为RAW是Bayer颜色空间,重新分解为RGB组合的颜色模式

7、没有看到从高斯分布中随机抽样生成输入数据的过程,并与输入clean图像强度有关

根据noise_flow_model.py的sample()函数中的定义,应该不依赖于clean图像,只利用了clean图像的shape

8、训练是反向的流程和运算,测试、采样确实正向的,不需要重新训练吗?模型参数直接能用?为什么不正向训练?

因为每一层都是Bijectors(双射器),包含forward、inverse方法,一个方向的训练完成,另一个方向的变换也能直接得到,不需要再重新训练

常用的图像去噪算法

图像去模糊

(增强、恢复、超分辨)

图像去噪方法

传统方法     基于人工特征

空间域、频率域     滤波(均值、中值、小波、维纳)

深度学习方法  GAN、GCN等

DnCNN

Image denoising review From classical to state-of-the-art approaches

ToDo:

1、TV

2、小波

3、BM3D

4、DnCNN

QA:

1、知道了噪声的分布(例如:高斯)如何去噪?

Typically, image denoising is based on a specic noise model and involves the estimation of that model’s parameters.

2、噪声流模型有什么用?

单幅图像去噪

待续…