自己学习这篇论文后随手记下来的东西,仅代表个人的理解,理解不对的地方,欢迎各位指出!
去噪:Y = x+v v是带标准差σ的AWGN,x是一个干净的图像,y是带噪声的观察对象。
加性高斯白噪声(AWGN):是最基本的噪声与干扰模型服从高斯分布。
PSNR:峰值信噪比,衡量图像失真或是噪声水平的客观标准。两个图像之间PSNR值越大,越相似。PSNR越大,去噪效果越好。普遍基准为30dB,30以下的图像劣化较为明显。
传统方法:训练一个能够在确定的噪声level上加性高斯白噪声(AWGN)的模型。
为图像先验知识建模的模型:NSS(非局部自相似性模型)、稀疏模型、梯度模型、马尔科夫随机场模型(MRF)。
NSS包括:BM3D、LSSC、NCSR、WNNM。
缺点:一、在测试阶段涉及复杂的优化问题,耗时。
二、模型一般是非凸的,涉及几个人工选择的参数。
本文方法:能对未知的噪声level高斯去噪,一个model能解决几种普遍的图像去噪任务,如高斯去噪、图像超分辨率、JPEG图像的块效应。
model:前馈降噪卷积神经网络(DnCNNs)。
训练过程加速和提高性能:残差学习、批处理归一化。
DnCNN的好处:
1. 提出一个端到端的CNN,这个网络利用残差学习从带噪声的图像中移出干净图像。
2. 残差学习和批处理对CNN有益,能加速和提高去噪性能。
3. DnCNN可以处理普通的图像去噪任务,也叫盲去噪。
Model设计:修改VGG,修改了网络的深度,包括:CONV滤波器的大小改为3*3,去掉所有的池化层。对于特定噪声level的高斯去噪,depth=17,普通去噪任务,depth=20。
Depth越大,感受野越大,可以更好的利用大的图像区域上的上下文信息。
去噪过程:用残差学习公式训练一个残差映射R(y)≈v,然后x=y-R(y)。
网络结构:第一层:Conv+ReLU(64个3*3*c的filters)
中间D-2层:Conv+BN+ReLU(64个3*3*64的filters)
最后一层:Conv(c个3*3*64的filters)
test数据集:BSD68(从Berkeley segmentation dataset中选68张图像)和其他12张图像。
噪声来源:从正态分布中输出随机值,也就是高斯噪声。
Input:在原始灰度图像加了随机噪声后的灰度图像。
Output:残差映射R(y)
Depth=17
去噪后的图像=Input-output
计算denoised图像与原始图像的loss函数,更新权重参数。
计算denoised图像与原始图像的PSNR。
训练数据封装在img_clean_pats.npy中。
Test:
Input:原始图像
Input:去噪后的图像和带噪声的图像
Output:带噪声的图像-