论文笔记 [1] Deep Image Prior
论文笔记 [1] Deep Image Prior
本文章提出了一种不同于传统图像深度学习的方法(因为没有用到普通的traindata和groundtruth一一对应的样本集合,只用了一张带噪声的图像,既没有大量样本也没有真实图像,也没有按照传统的深度学习的训练-验证-测试的实验框架,而只是利用了CNN的自适应的学习能力实现了一个可以生成图片的滤波器组),用神经网络处理各种图像问题,并取得了较好的效果。作者在这里自称该方法是一种瑞士军刀式的方法,因为它并没有模拟图像的degradation process,也不用pre-train,就可以处理各类image restoration 问题,如denoising,super-resolution,inpainting,JPEG restoration等。作者认为CNN基于其结构本身就可以理解自然图像,换句话说,CNN可以训练出图像的先验知识,即这种先验知识不是由于网络看过大量样本得到的,而是CNN的实现过程或说网络结构本身就可以得到的。说明我们的自然图像还是有很强的自相似性的。本文称该研究bridge the gap between learning-based method,即CNN网络方法, and learning-free method,即手工设计的先验知识来作的图像复原方法,如基于自相似性。感觉这个方法可以理解成学习图像中具有的相似的patch并由此生成图像的过程,由于CNN的递进感知域是逐渐扩大的,所以生成的图像会受到其他位置像素点的影响,似乎是自动学习出一个类似NLM的方法。论文作者认为,可以用生成网络本身取替代设计的 natural prior,比如TV项。
图像的 inverse task 都可以写成这样的形式:
其中
z 是网络的输入,为 random initialization,
网络结构影响对搜索解空间的方式,如梯度下降法如何下降,有主要的影响。实际上我们的网络对于noise有较高的阻抗(impedance),如图所示:
可以看出,自然图像fit的最快,尽管噪声也能fit,但是较为reluctant,或者说,这些参数对自然图像有low impedance,而对噪声有high impedance。因此可以自然的用来去噪。
- 基本方法
- random input z
- 将degraded图像,如LR,noisy,JPEG-bloked,作为网络要拟合的对象。进行训练,即生成degraded图像。
- 可以看出网络会先拟合natural-looking 的图像,然后再degrade,因此,需要在某个结果较好的iteration停止迭代更新,即认为找到了一个使得E最小的
θ 。 - 在截断处输出的图像即为结果,即
x∗=fθ∗(z) 。
结果图例:
在2400iter的时候没有halo和block,之后一直到50K,最终与原图一样了。
网络结构即hourglass结构,encoder-decoder结构。如图:
虽然z是random的,但是在large-hole inpainting中,如果采用 np.meshgrid (即渐变的图像)作为z,则会增加平滑先验,效果更好。
在训练过程中,每次迭代都要用 addtive normal noise 对 z 进行扰动,认为是noise-based regularization。个人认为是为了让结果尽量减小对input z 的依赖,从而将更多的信息学到网络参数中。
ps : 这个思路虽然简单,但是计算量非常可观,由于需要较大的迭代次数才能生成一副natural-looking的图像。根据作者,对于512*512的图像,在GPU上还要跑好几分钟。。。
reference :
paper:http://sites.skoltech.ru/app/data/uploads/sites/25/2017/11/deep_image_prior.pdf
homepage:https://dmitryulyanov.github.io/deep_image_prior
Deep Image Prior Supplementary Material
THE END
星期四, 07. 十二月 2017 07:44下午