Image Denoising and Inpainting with Deep Neural Networks读书笔记

一、简介

论文提出了一种新的方法来解决low-level视觉问题,它将稀疏编码和深度网络训练与去噪自动编码器(Denoising auto-encoder,DA)结合起来。可以从图像中自动删除像叠加文本这样的复杂模式,而不是仅处理像素随机丢失的简单模式。

论文主要使用灰度图像进行实验,作者也提出推广到彩色图像很容易(具体不知道。。)

图像去噪两大种方法:

第一种,将图像信号转换到另一个域(傅里叶变换等),使得更容易将噪声分离出来。

第二种,直接从图像域中捕获统计信息。稀疏编码方法从完备字典的稀疏线性组合中重建图像,字典是从数据中学习的,而不是人工编造的,这一学习步骤显着地提高了稀疏编码的性能。

图像修复方法可分为非盲修复盲修复两类,在非盲修复中,需要修复的区域需要预先告诉算法,而在盲修复中,不给出损坏像素位置的信息,算法必须自动识别需要修复的像素。

非盲修复算法目前效果很好,论文主要针对困难的图像盲修复做了一些研究。

论文指出虽然稀疏编码模型在实际应用中表现良好,但它们都具有较浅的线性结构,提出将稀疏编码的优势“稀疏”和深度网络的“深度”相结合,解决图像去噪和盲修复问题。

论文使用DA对模型进行预训练,因为DA有助于去噪和修复。DA是一个两层的神经网络,它试图从含噪声的输入中重建原始输入。SDA(Stacked Denoising Auto-encoders)是一系列DA的叠加表示,前一层的输出经过**函数作为下一层的输入,SDA广泛用于非监督预训练和特征学习。

Image Denoising and Inpainting with Deep Neural Networks读书笔记

二、模型介绍

2.1 Problem Formulation

y:原始没有噪声的纯净图像

x:噪声图像

图像污染过程:

Image Denoising and Inpainting with Deep Neural Networks读书笔记

去噪目标函数:

Image Denoising and Inpainting with Deep Neural Networks读书笔记

f是η的反函数,现在可以在一个统一的框架内处理图像去噪和修复问题,方法是在不同的情况下选择合适的η。

2.2 Denoising Auto-encoder (DA)

原始纯净图像yi ,i = 1,2,3,...,N

xi是yi相对应的污染图像

那么DA为:
Image Denoising and Inpainting with Deep Neural Networks读书笔记Image Denoising and Inpainting with Deep Neural Networks读书笔记

σ(x) = (1+ exp(-x))-1 是sigmoid**函数

Image Denoising and Inpainting with Deep Neural Networks读书笔记

可以使用各种优化方法对DA进行培训,以最大限度地减少重建损失:

Image Denoising and Inpainting with Deep Neural Networks读书笔记
在完成一个DA的训练之后,我们可以使用前一层的隐层**(即Image Denoising and Inpainting with Deep Neural Networks读书笔记)作为下一层的输入来训练下一层。这称为叠加去噪自动编码器(SDA)。
 

2.3 叠加稀疏去噪自动编码器(Stacked Sparse Denoising Auto-encoders,,SSDA)

由于直接处理整个图像是很难的,所以从图像中抽取重叠的子图像块(patches)作为数据对象。

将(xi,yi)子图像对送入模型进行训练,经过训练后,SSDA将能够在任何噪声观测的情况下重建相应的干净图像。

预训练:

结合稀疏编码和神经网络的优点,同时为了避免过拟合,首先训练了一个DA,对最小化重建损失提供了一个稀疏诱导项来进行调整。

Image Denoising and Inpainting with Deep Neural Networks读书笔记

其中

Image Denoising and Inpainting with Deep Neural Networks读书笔记

通过选择比较小的ρ将隐藏层的表示调整稀疏,以便KL散度项促使隐藏单元的平均**变得比较小。因此,隐藏单元将在大多数情况下为零,并实现稀疏。

微调:

当训练完第一层DA时,将h(yi)和h(xi)分别作为第二层DA的纯净和噪声输入对。

然后用k层叠加DA的权重初始化一个深度网络。网络有一层输入层,一层输出层,和2K-1个隐藏层(见第一张图b)。整个网络使用标准的BP算法进行训练来最小化目标函数:
Image Denoising and Inpainting with Deep Neural Networks读书笔记

在这里没有使用稀疏正则化,因为预训练的权重将用来调整网络。

无论在在预训练阶段还是微调阶段,都采用了L-BFGS算法(拟牛顿法)对损失函数进行了优化,可以达到最快的收敛速度。

三、实验

训练集:从网上搜集的

测试集:标准测试集

评判标准:PSNR    Image Denoising and Inpainting with Deep Neural Networks读书笔记   Image Denoising and Inpainting with Deep Neural Networks读书笔记

对测试集训练集的纯净图像加上噪声,然后提取子图像块进行SSDAs训练。

3.1  去白高斯噪声 Denoising White Gaussian Noise

对图像加上不同标准差的加性高斯白噪声

对每个噪声级别都训练了一个SSDA,评估了不同的超参数组合,并报告了最佳结果。

K设置为2,节约训练时间,当然K更大一点可能会提高一点效果,但是论文认为不值得。

同时,当噪声级别越高,子图像块越大效果越好。

实验效果:

Image Denoising and Inpainting with Deep Neural Networks读书笔记

数值结果表明,三种算法之间的PSNR差异不大。

但是SSDA在细节上处理得更好,说明SSDA在复杂区域表现更好。

Image Denoising and Inpainting with Deep Neural Networks读书笔记

3.2 图像修复

对于图像修复任务,在文本删除问题上对模型进行了测试。两次训练和测试组合的图像与不同字体和大小的叠加文本从18-pix到36 pix。

修复效果:
SSDA可以完全消除小字体的文本,而较大字体的文本是模糊的。论文指出SSDA是盲修复方法,即使KSVD是一种非盲算法,也会产生类似结果。然而,盲目修复要困难得多,因为它需要自动识别需要修复的模式,这本身就是一个非常具有挑战性的问题。

Image Denoising and Inpainting with Deep Neural Networks读书笔记