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.mzph.cn/news/37960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python解决-力扣002-两数相加

两数相加:链表表示的逆序整数求和 在这篇技术博客中,我们将讨论一个力扣(LeetCode)上的编程题目:两数相加。这个问题要求我们处理两个非空链表,它们表示两个非负整数。每个链表中的数字都是逆序存储的&…

Redis——String类型详解

概述 Redis中的字符串直接按照二进制的数据存储,不会有任何的编码转换,因此存放什么样,取出来的时候就什么样。而MySQL默认的字符集是拉丁文,如果插入中文就会失败 Redis中的字符串类型不仅可以存放文本数据,还可以存…

通过Python爬虫提升网站搜索排名

目录 怎么使用Python爬虫提升排名 1. 抓取竞争对手数据: 2. 关键词研究: 3. 网页内容优化: 4. 内部链接建设: 5. 外部链接建设: 6. 监测和调整: 需要注意哪些方面 1. 合法性和道德性: …

VB+SQL期刊信息管理系统设计与实现

摘 要 本次毕业设计课题为“期刊信息管理系统”,该系统在正常运营中总是面对大量的读者信息、期刊信息以及两者相互作用产生的借刊信息,还刊信息。因此需要对读者资源、期刊资源、借刊信息、还刊信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。 此次毕…

阿里三年功能测试的一些感悟

一、前言 功能测试是测试工程师的基础功,很多人功能测试还做不好,就想去做性能测试、自动化测试。很多人对功能测试的理解就是点点点,如何自己不用心去悟,去研究,那么你的职业生涯也就停留在点点点上了。在这里&#…

Flv格式视频怎么转MP4?视频格式转换方法分享

FLV格式的视频是一种早期的视频格式,不支持更高的分辨率和比特率,这意味着视频的清晰度和质量受限制,无法很好地保留细节和质量,这种格式的视频已经逐渐被更高质量的视频格式所替代,例如MP4格式,不仅具有很…

Java基础(七)排序算法

排序 1. 冒泡排序 >> 冒泡排序的思想 冒泡排序是一种简单的排序算法,其基本思想是通过多次遍历待排序序列,依次比较相邻的元素并交换位置,使得每次遍历后最大(或最小)的元素冒泡到序列的末尾。具体步骤如下&a…

SpringBoot+Mybatis-Plus实现增删改查超详细步骤

目录 一、介绍 二、前期准备工作 (一) 创建springboot项目和创建数据库 三、项目配置 (一)pom.xl导入相关依赖 1.导入依赖 (二)yml文件中配置连接数据库 2.配置yml文件 四、代码的编写 数据库展…

推断统计(配对样本t检验)

根据题目我们也可以看出配对样本 t 检验是用来检验两配对正态总体的均值是否存在显著差异的一种假设检验方法,虽然是两组数据但是其来自同一部分个体在两个时间段内的测试数据,是同一部份个体! 进行配对样本 t 检验之后也是分别做出原假设和备…

【基础学习笔记 enum】TypeScript 中的 enum 枚举类型介绍

因为之前网上查好多博客都是只说最基础的,所以这里记录一下,最基础的放在最后面。 这里重点要记录的是枚举成员的值可以是字符串(字符串枚举,因为网上大部分只介绍常数枚举),需要注意的一点是,…

ADC实验

查看VR1链接的丝印&#xff1a;XadcAIN3 设置相关寄存器 使用的是通道3&#xff0c;要设置相应的通道寄存器 #include "exynos_4412.h"int main() {unsigned int AdcValue 0;/*将ADC的精度设置成 12bit*/ADCCON ADCCON | (1 << 16);/*使能ADC的分频器*…

SAP ABAP 直接把内表转换成PDF格式(smartform的打印函数输出OTF格式数据)

直接上代码&#xff1a; REPORT zcycle055.DATA: lt_tab TYPE TABLE OF zpps001. DATA: ls_tab TYPE zpps001.ls_tab-werks 1001. ls_tab-gamng 150.00. ls_tab-gstrp 20201202. ls_tab-aufnr 000010000246. ls_tab-auart 标准生产. ls_tab-gltrp 20201205. ls_tab-matn…

MyBatis面试题

MyBatis面试题&#xff1a; 1、MyBatis是什么&#xff1f; Mybatis是一个半ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它内部封装了JDBC&#xff0c;加载驱动、创建连接、创建statement等繁杂的过程&#xff0c;开发者开发时只需要关注如何编写SQL语句&#xf…

荣耀X40 GT真机调试APP,HBuilder X刷新不到设备

今天使用荣耀X40GT进行真机调试App的时候&#xff0c;hbuilder怎么都刷不出来设备&#xff0c;经历一番风雨最终连接成功&#xff0c;特此记录一下。 我的设备Android版本12&#xff0c;MagicOS版本7.0&#xff0c;进行了如下配置&#xff1a; 1、打开“设置”-》“系统和更新”…

keil5突然编译输出框build output 不见了

今天keil5突然编译输出框build output 不见了&#xff0c;但可以编译和下载。 首先尝试&#xff0c;在view里面打开和关闭build output window&#xff0c;没有反应&#xff1b; 其次&#xff0c;点击window-reset view to defaults&#xff0c;果然build output又恢复了&#…

数据结构---图

这里写目录标题 图的基本概念和术语基本概念和术语1基本概念和术语2 图的类型定义抽象数据类型定义二级目录二级目录 一级目录二级目录二级目录二级目录二级目录二级目录二级目录 图的基本概念和术语 基本概念和术语1 V代表顶点的有穷非空集合 E代表边的有穷集合 n为顶点 有向…

数据结构与算法-栈(LIFO)(经典面试题)

一&#xff1a;面试经典 1. 如何设计一个括号匹配的功能&#xff1f;比如给你一串括号让你判断是否符合我们的括号原则&#xff0c; 栈 力扣 2. 如何设计一个浏览器的前进和后退功能&#xff1f; 思想&#xff1a;两个栈&#xff0c;一个栈存放前进栈&…

Python爬虫之解决浏览器等待与代理隧道问题

作为专业爬虫程序员&#xff0c;我们往往需要应对一些限制性挑战&#xff0c;比如浏览器等待和使用代理隧道。在Python爬虫开发中&#xff0c;这些问题可能会导致我们的爬虫受阻。本文将为你分享解决这些问题的方案&#xff0c;帮助你顺利应对浏览器等待和代理隧道的挑战&#…

【vue3】固定上导航栏和左侧导航栏,只显示其他内容在主内容区域

实现思路&#xff1a; 在一个单独的vue组件文件中只写出上导航栏和左侧导航栏的内容将你想要展示的页面主内容写到单独的组件中在index.js写路由&#xff0c;将【想要展示的页面主内容的路由】作为【子路由】写在【只写出上导航栏和左侧导航栏的路由】的下面&#xff1b; 在el…

Oracle 开发篇+Java通过共享模式访问Oracle数据库

标签&#xff1a;共享服务器进程、shared server process释义&#xff1a;shared server process是Oracle的一种数据库连接技术&#xff0c;类似的还有专用模式和DRCP ★ 数据库配置 alter system set shared_server_sessions1 scopespfile; alter system set max_shared_serv…