点击我爱计算机视觉标星,更快获取CVML新技术


昨天分享了文章ICCV 2019 | Adobe 无需大量数据训练,内部学习机制实现更好的视频修补,其中借鉴的Deep Image Prior (DIP)是非常有意思的一篇文章,发表1年时间,谷歌学术显示该文已有241次引用,本文为知乎用户 PENG Bo 对其解读,欢迎大家参考。

作者:PENG Bo

出处:知乎技术备忘录专栏

https://zhuanlan.zhihu.com/p/31595192

Deep Image Prior 是发表于CVPR 2018 的 一篇非常有趣的研究,地址为:

https://dmitryulyanov.github.io/deep_image_prior

它让一个深度卷积网络去学习复制被破坏的图像(如,加入噪点的图像),发现这个网络会自动先学会如何重建图像。

例如,给定一幅被破坏的图像x,具体过程如下:

  1. 用随机参数初始化深度卷积网络f。

  2. 令f的输入为固定的随机编码z。

  3. 令f的目标为:输入z,输出x。以此训练f的参数。

  4. 注意选择合适的损失函数。例如对于降噪问题可关注整体的MSE,对于填充问题就应该只关心不需要填充的位置的MSE。

  5. 当训练很久之后,f可实现输出一模一样的x。

  6. 但如果在训练到一半时打断f,会发现它会输出一幅“修复过的x”。

这意味着,深度卷积网络先天就拥有一种能力:它会先学会x中“未被破坏的,符合自然规律的部分”,然后才会学会x中“被破坏的部分”。例如,它会先学会如何复制出一张没有噪点的x,然后才会学会复制出一张有噪点的x。

换而言之,深度卷积网络先天就了解自然的图像应该是怎样的。所以我们也可以理解为什么GAN的方法这么简单却效果这么好。这无疑来自于卷积的不变性,和逐层抽象的结构。个人认为这对于指导设计和测试网络架构很有意义。

Deep Image Prior的重要特点是,网络由始至终,仅使用了输入的被破坏过的图像作为训练。它没有看过任何其它图像,也没有看过正常的图像。但最终效果依然颇为不错。这说明自然图像的局部规律和自相似性确实很强。其实原理有点像NLM,不过相当于升级版。

请看图片例子。最左边是目标图像,它经过JPEG压缩,有很多压缩瑕疵。网络的目标是学会输出它。在100次迭代后,网络学会了输出很模糊的形体。在2400次迭代后,网络学会了输出一张清晰光滑的高质量图片。在50000次迭代后,网络才学会了输出原图。

再看图像由部分像素重建的例子,网络很擅长处理不断重复的纹理:

最后是网友的训练过程,他训练时选的学习速率有点大,最终结果很幽默......

项目地址:https://github.com/DmitryUlyanov/deep-image-prior代码地址:
https://github.com/DmitryUlyanov/deep-image-prior


图像增强、恢复、修补交流群

关注最新最前沿的图像视频增强、图像视频修补恢复,扫码添加CV君拉你入群,(如已为CV君其他账号好友请直接私信)

(请务必注明:图像修补

喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。

(不会时时在线,如果没能及时通过验证还请见谅)


长按关注我爱计算机视觉

Deep Image Prior:深度卷积网络先天就理解自然图像相关推荐

  1. (Deep learning)深度卷积网络实战——第三部分

    2.7 Inception 网络(Inception network) 在上节视频中,你已经见到了所有的Inception网络基础模块.在本视频中,我们将学习如何将这些模块组合起来,构筑你自己的Inc ...

  2. (Deep learning)深度卷积网络实战——第二部分

    2.4 残差网络为什么有用?(Why ResNets work?) 为什么ResNets能有如此好的表现,我们来看个例子,它解释了其中的原因,至少可以说明,如何构建更深层次的ResNets网络的同时还 ...

  3. (Deep learning)深度卷积网络实战——第一部分

    2.1 为什么要进行实例探究?(Why look at case studies?) 这周我们首先来看看一些卷积神经网络的实例分析,为什么要看这些实例分析呢?上周我们讲了基本构建,比如卷积层.池化层以 ...

  4. (Deep learning)深度卷积网络实战——第四部分

    2.10 数据增强(Data augmentation) 大部分的计算机视觉任务使用很多的数据,所以数据扩充是经常使用的一种技巧来提高计算机视觉系统的表现.我认为计算机视觉是一个相当复杂的工作,你需要 ...

  5. 吴恩达deeplearning.ai系列课程笔记+编程作业(11)第四课 卷积神经网络-第二周 深度卷积网络:实例探究(Deep convolutional models: case studies)

    第四门课 卷积神经网络(Convolutional Neural Networks) 第二周 深度卷积网络:实例探究(Deep convolutional models: case studies) ...

  6. 第二周 深度卷积网络:实例探究(Deep convolutional models: case studies)

    第二周 深度卷积网络:实例探究(Deep convolutional models: case studies) 文章目录 第二周 深度卷积网络:实例探究(Deep convolutional mod ...

  7. 深度卷积网络CNN与图像语义分割

    转载请注明出处:  http://xiahouzuoxin.github.io/notes/html/深度卷积网络CNN与图像语义分割.html 级别1:DL快速上手 级别2:从Caffe着手实践 级 ...

  8. 深度学习笔记 第四门课 卷积神经网络 第二周 深度卷积网络:实例探究

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  9. 4.4)深度卷积网络:人脸识别和神经风格转换

    目录 1)What is face recognition? 2)One-shot learning 3)Siamese network 4)Triplet Loss(重点) 5)Face Verif ...

最新文章

  1. 单纯形法(三)(概念部分)
  2. python 第一安装 https网络请求问题
  3. python装饰器的案例_Python之装饰器的实例
  4. 【Android 应用开发】Paint 图形组合 Xfermod 之 合成模式表示方法 ( Xfermod 使用步骤 | 透明度 颜色值 公式表示方法 | 老版本表示方法 | 合成区域分块 )
  5. SparkSql读取外部数据源
  6. Qt Creator语义突出显示
  7. 算法面试题解答(七)
  8. 算法设计与分析——回溯法——符号三角形问题
  9. 前端技术之_CSS详解第五天
  10. linux oracle em使用,Linux平台下启动oracle 11g EM控制台
  11. Windows下安装谷歌测试框架Googletest并测试小例子
  12. 爬虫如何监听插件_NodeJS概述2-事件插件-简易爬虫
  13. linux中文件大小设置函数,truncate函数和ftruncate修改文件大小-linux
  14. BASLER巴斯勒线扫相机使用流程
  15. 任正非谈任鸿蒙系统,任正非谈鸿蒙系统是怎么回事?任正非谈鸿蒙系统到底谈了什么?...
  16. ReactJs 简介
  17. GEE报错Tile error: Error in map(ID=198102T01):Element.copyProperties: The source parameter is require
  18. java发送短信 短信平台
  19. TreeSet,海康威视java校招面试题
  20. net.sf.cglib.beans.BeanCopier用途

热门文章

  1. SSM整合(相关jar包需求)
  2. Golang练习题(自己认为比较不错的)
  3. python注入点查找_python注入点查找工具
  4. php前端路由权限,SaaS-前端权限控制
  5. c语言用指针求Amn,[工学]第5章数据结构C语言描述耿国华.ppt
  6. c2c旅游springboot开源_7个开源的 Spring Boot 前后端分离项目,一定要收藏!
  7. 博图v16组态wincc_西门子WinCC与S71200OPC通讯方法
  8. 一般市区有测速吗_高速公路增加这么多龙门架,有抓拍超速违章功能吗?可要仔细辨别...
  9. 整个电脑键盘被锁住了_蜗居共享经济,如何彻底榨干你家里的电子设备|鼠标|共享经济|键盘|电脑桌|显示器|升降支架...
  10. zabbix客户端掉线查看进程time_wait过多