图像去噪
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、噪声流模型有什么用?
单幅图像去噪
待续…