• 论文笔记 [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 都可以写成这样的形式:

    x=minx E(x;x0)+R(x)

    其中 E 是根据任务不同而不同的项,R是对自然图像的先验知识,比如TV项。其中 x0 是待复原的图像。在这里把 R(x) 用CNN implicitly 提取到的prior替代,所以写成:

    θ=argminθ E(fθ(z);x0),x=fθ(z)

    z 是网络的输入,为 random initialization, θ 为网络参数,最优值通过训练得到。一旦得到了最优的参数,把z进去计算即可得到最优的x,而且x由于是由网络得到的,因此implicitly获得了网络给予的先验约束。因此实际上就是在可行空间中搜索最优θ的过程,可以用gradient descent实现。实际上编码z的过程也可以优化,但是在本文中直接random后就固定下来。

    网络结构影响对搜索解空间的方式,如梯度下降法如何下降,有主要的影响。实际上我们的网络对于noise有较高的阻抗(impedance),如图所示:


    这里写图片描述

    可以看出,自然图像fit的最快,尽管噪声也能fit,但是较为reluctant,或者说,这些参数对自然图像有low impedance,而对噪声有high impedance。因此可以自然的用来去噪。

    • 基本方法
      1. random input z
      2. 将degraded图像,如LR,noisy,JPEG-bloked,作为网络要拟合的对象。进行训练,即生成degraded图像。
      3. 可以看出网络会先拟合natural-looking 的图像,然后再degrade,因此,需要在某个结果较好的iteration停止迭代更新,即认为找到了一个使得E最小的θ
      4. 在截断处输出的图像即为结果,即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下午

  • 相关阅读:
    使用URLEncoder、URLDecoder进行URL参数的转码与解码
    js中的连等==和全等===
    sass用法
    sass/scss 和 less的区别
    JSON与localStorage的爱恨情仇
    ionic2
    雪碧图
    JavaScript交换两个变量值的七种解决方案
    JavaScript中的[]和{}
    为什么 ++[[]][+[]]+[+[]] = 10?
  • 原文地址:https://www.cnblogs.com/morikokyuro/p/13256862.html
Copyright © 2020-2023  润新知