当前位置: 首页 > news >正文

DIP:《Deep Image Prior》经典文献阅读总结与实现

在这里插入图片描述

文章目录

  • Deep Image Prior
    • 1. 方法原理
      • 1.1 研究动机
      • 1.2 方法
    • 2. 实验验证
      • 2.1 去噪
      • 2.2 超分辨率
      • 2.3 图像修复
      • 2.4 消融实验
    • 3. 总结


Deep Image Prior

1. 方法原理


1.1 研究动机

动机

  • 深度神经网络在图像复原和生成领域有非常好的表现一般归功于神经网络学习到了图像的先验信息
  • 网络结构本身是否具有先验信息呢?

挑战

  • 如何验证网络结构本身是否具有先验信息?
  • 无训练集,无未退化的原图作为标签,使用单张退化的图像进行恢复
  • 唯一的先验信息来自于网络结构本身

贡献

  • 发现了神经网络结构对自然信号的低阻抗性和对噪声信号具有高阻抗的隐式先验信息
  • 在去噪、超分辨率、图像修复等任务上利用这种隐式先验信息实现了非常好的效果
  • 网络仅仅使用退化的单个图像进行训练,所以没有大量数据集带来的图像先验信息,而是网络结构自身所具有的结构先验信息

1.2 方法

使用一个随机向量 z ∈ R c ′ × H ′ × W ′ z \in R^{c' \times H' \times W'} zRc×H×W,和一个神经网络( f θ ( . ) f_{\theta}(.) fθ(.))输出一个我们想要的图像 x ∈ R 3 × H × W x \in R^{3 \times H\times W} xR3×H×W
x = f θ ( z ) x = f_{\theta}(z) x=fθ(z)

然后,针对一个具体的 去噪、超分辨率或图像修复的问题,这就变为了一个最小化能量的问题(最大似然)
x ∗ = m i n x E ( x ; x 0 ) + R ( x ) x^* = \underset{x}{min}E(x;x_0) + R(x) x=xminE(x;x0)+R(x)

其中 m i n x E ( x ; x 0 ) \underset{x}{min}E(x;x_0) xminE(x;x0)是和任务相关的数据匹配项,而 R ( x ) R(x) R(x)是一个正则项。正则项目可以是简单的TV正则化,在本文中想要证明的就是网络结构本身就具有类似于TV正则化的效果,也就是:

x ∗ = m i n x E ( f θ ( z ) ; x 0 ) x^* = \underset{x}{min}E(f_{\theta}(z);x_0) x=xminE(fθ(z);x0)

为了最小化能量,我们可以从观测数据 z z z出发,或者从网络本身出发。DIP考虑的是只从网络结构本身探讨这个问题。

用一个最简单的重构损失来验证:我们使用一个网络参数化图像,然后最小化重构图像和真实图像的损失:
E ( x ; x 0 ) = ∣ ∣ x − x 0 ∣ ∣ 2 E(x;x_0) = ||x - x_0||^2 E(x;x0)=∣∣xx02

m i n θ ∣ ∣ f θ ( z ) − x 0 ∣ ∣ \underset{\theta}{min}||f_{\theta}(z) - x_0|| θmin∣∣fθ(z)x0∣∣

使用不同的 x 0 x_0 x0进行验证:

  • 真实图片作为 x 0 x_0 x0
  • 真实图片+噪声作为 x 0 x_0 x0
  • 真实图片像素点随机打乱作为 x 0 x_0 x0
  • 噪声作为 x 0 x_0 x0

从上面这幅图中可以发现,相同的神经网络对不同的数据进行恢复,如果是真实自然图片网络可以非常快地进行恢复,而对于噪声网络的恢复在迭代很多次之后才能恢复。这展现出一种网络结构的特性:对信号具有低阻抗,而对随机噪声具有高阻抗。因此我们可以在训练过程中使用 early stopping方法,在迭代一定次数后得到的图片的信号信息。


2. 实验验证

2.1 去噪

迭代2400次的时候自然信息就基本拟合了,没有出现拟合噪声信息。
迭代50k的时候就拟合了噪声信息。

和其他方法进行对比

2.2 超分辨率

2.3 图像修复

2.4 消融实验


3. 总结

关键点

  1. 神经网络对自然信息具有低阻性,对随机噪声具有高阻性
  2. 神经网络提供的隐式先验信息可以用来进行去噪、图像修复、超分辨率

优势

  1. 不需要预训练网络,不需要准备训练数据集
  2. 可以同时解决多种问题

问题

  1. 速度慢,处理一个工作需要迭代上千次
  2. 性能不稳定,对不同的噪声达到较好效果的迭代次数不同
  3. 怎么确定终止次数是一个重要问题
  4. 没有从理论上证明这种方法的可靠性(后续有其他文章证明)
http://www.lryc.cn/news/126098.html

相关文章:

  • LAXCUS如何通过技术创新管理数千台服务器
  • 【Java】BF算法(串模式匹配算法)
  • Vue:使用Promise.all()方法并行执行多个请求
  • 21.0 CSS 介绍
  • 下一代计算:嵌入AI的云/雾/边缘/量子计算
  • Gitlab-第四天-CD到k8s集群的坑
  • 【Java基础】Java对象的生命周期
  • 【每日一题】88. 合并两个有序数组
  • Navicat Premium连接sqlserve数据库失败?你需要注意这几点看看配置对了么?
  • 207、仿真-51单片机脉搏心率与血氧报警Proteus仿真设计(程序+Proteus仿真+配套资料等)
  • flutter 初识(开发体验,优缺点)
  • 校验vue prop的几种方式
  • vue+springboot 前后端分离 上传文件处理后再下载,并且传递参数
  • 【Linux操作系统】举例解释Linux系统编程中文件io常用的函数
  • Ubuntu和centos版本有哪些区别
  • Netty:ChannelHandler抛出异常,对应的channel被关闭
  • pytest结合 allure 打标记之的详细使用
  • 【linux】2 软件管理器yum和编辑器vim
  • Angular中的ActivatedRoute和Router
  • Layui精简版,快速入门
  • SSH远程Ubuntu教程
  • NPM与外部服务的集成(下)
  • Flask Web开发实战(狼书)| 笔记第1、2章
  • PHP利用PCRE回溯次数限制绕过某些安全限制实战案例
  • 读书笔记 |【项目思维与管理】➾ 顺势而动
  • 开发利器:接口代理和接口模拟工具
  • MAVEN利器:一文带你了解MAVEN以及如何配置
  • 解决 adb install 错误INSTALL_FAILED_UPDATE_INCOMPATIBLE
  • 学习Vue:Event Bus 与 Provide/Inject
  • Java 工具类之JSON key根据ASCII排序