Deep Image Prior:深度卷积网络先天就理解自然图像
点击我爱计算机视觉标星,更快获取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,具体过程如下:
用随机参数初始化深度卷积网络f。
令f的输入为固定的随机编码z。
令f的目标为:输入z,输出x。以此训练f的参数。
注意选择合适的损失函数。例如对于降噪问题可关注整体的MSE,对于填充问题就应该只关心不需要填充的位置的MSE。
当训练很久之后,f可实现输出一模一样的x。
但如果在训练到一半时打断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:深度卷积网络先天就理解自然图像相关推荐
- (Deep learning)深度卷积网络实战——第三部分
2.7 Inception 网络(Inception network) 在上节视频中,你已经见到了所有的Inception网络基础模块.在本视频中,我们将学习如何将这些模块组合起来,构筑你自己的Inc ...
- (Deep learning)深度卷积网络实战——第二部分
2.4 残差网络为什么有用?(Why ResNets work?) 为什么ResNets能有如此好的表现,我们来看个例子,它解释了其中的原因,至少可以说明,如何构建更深层次的ResNets网络的同时还 ...
- (Deep learning)深度卷积网络实战——第一部分
2.1 为什么要进行实例探究?(Why look at case studies?) 这周我们首先来看看一些卷积神经网络的实例分析,为什么要看这些实例分析呢?上周我们讲了基本构建,比如卷积层.池化层以 ...
- (Deep learning)深度卷积网络实战——第四部分
2.10 数据增强(Data augmentation) 大部分的计算机视觉任务使用很多的数据,所以数据扩充是经常使用的一种技巧来提高计算机视觉系统的表现.我认为计算机视觉是一个相当复杂的工作,你需要 ...
- 吴恩达deeplearning.ai系列课程笔记+编程作业(11)第四课 卷积神经网络-第二周 深度卷积网络:实例探究(Deep convolutional models: case studies)
第四门课 卷积神经网络(Convolutional Neural Networks) 第二周 深度卷积网络:实例探究(Deep convolutional models: case studies) ...
- 第二周 深度卷积网络:实例探究(Deep convolutional models: case studies)
第二周 深度卷积网络:实例探究(Deep convolutional models: case studies) 文章目录 第二周 深度卷积网络:实例探究(Deep convolutional mod ...
- 深度卷积网络CNN与图像语义分割
转载请注明出处: http://xiahouzuoxin.github.io/notes/html/深度卷积网络CNN与图像语义分割.html 级别1:DL快速上手 级别2:从Caffe着手实践 级 ...
- 深度学习笔记 第四门课 卷积神经网络 第二周 深度卷积网络:实例探究
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
- 4.4)深度卷积网络:人脸识别和神经风格转换
目录 1)What is face recognition? 2)One-shot learning 3)Siamese network 4)Triplet Loss(重点) 5)Face Verif ...
最新文章
- 单纯形法(三)(概念部分)
- python 第一安装 https网络请求问题
- python装饰器的案例_Python之装饰器的实例
- 【Android 应用开发】Paint 图形组合 Xfermod 之 合成模式表示方法 ( Xfermod 使用步骤 | 透明度 颜色值 公式表示方法 | 老版本表示方法 | 合成区域分块 )
- SparkSql读取外部数据源
- Qt Creator语义突出显示
- 算法面试题解答(七)
- 算法设计与分析——回溯法——符号三角形问题
- 前端技术之_CSS详解第五天
- linux oracle em使用,Linux平台下启动oracle 11g EM控制台
- Windows下安装谷歌测试框架Googletest并测试小例子
- 爬虫如何监听插件_NodeJS概述2-事件插件-简易爬虫
- linux中文件大小设置函数,truncate函数和ftruncate修改文件大小-linux
- BASLER巴斯勒线扫相机使用流程
- 任正非谈任鸿蒙系统,任正非谈鸿蒙系统是怎么回事?任正非谈鸿蒙系统到底谈了什么?...
- ReactJs 简介
- GEE报错Tile error: Error in map(ID=198102T01):Element.copyProperties: The source parameter is require
- java发送短信 短信平台
- TreeSet,海康威视java校招面试题
- net.sf.cglib.beans.BeanCopier用途
热门文章
- SSM整合(相关jar包需求)
- Golang练习题(自己认为比较不错的)
- python注入点查找_python注入点查找工具
- php前端路由权限,SaaS-前端权限控制
- c语言用指针求Amn,[工学]第5章数据结构C语言描述耿国华.ppt
- c2c旅游springboot开源_7个开源的 Spring Boot 前后端分离项目,一定要收藏!
- 博图v16组态wincc_西门子WinCC与S71200OPC通讯方法
- 一般市区有测速吗_高速公路增加这么多龙门架,有抓拍超速违章功能吗?可要仔细辨别...
- 整个电脑键盘被锁住了_蜗居共享经济,如何彻底榨干你家里的电子设备|鼠标|共享经济|键盘|电脑桌|显示器|升降支架...
- zabbix客户端掉线查看进程time_wait过多