Deep Image Prior

article/2025/10/10 16:25:04

Deep Image Prior


摘要

深度卷积网络已经成为图像生成和重建的常用工具。人们猜想,他们优秀的表现是归功于他们能够从大量图像样本中学习到真实图像先验的能力。而相反,本文中作者展示生成网络在经过任何学习之前就能够捕获大量的低级图像统计信息,也就是说,这些信息可能并不是通过大量的数据集学习得来。文中具体的实验方法,就是用一个随机初始化的生成网络,仅通过给定的图像就能得到重建后的图像,这种方法在去噪、超分辨、修补等人物上都有优异的表现。它也连接了两个非常流行的图像重建方法派别:基于学习的方法和基于非学习方法(例如self-similarity)。

简介

深度卷积神经网络(ConvNets)在图像去噪、超分辨等重建任务上达到了 state-of-the-art。相似结构的ConvNets更普遍地用在生成图像上,例如GAN、variational autoencoders、direct pixelwise error minimization。

这些 ConvNets 几乎都是基于大量图像数据集的训练,因此有一种假设说他们优异的表现由于它们从数据中学习真实图像先验的能力。然而单单学习还不足以解释深度网络的优异表现。例如,在文章 [Understanding deep learning requires rethinking generalization] 中,即使将标签随机打乱,同样泛化性能好的图像分类网络也可以很好地拟合这些数据。因此,泛化要求网络结构与数据结构“共鸣”。然而它们相互作用的机理,尤其是图像生成的,还尚不清楚。

在本文中,作者展示了一个与期望相反的现象,大量图像统计信息是由卷积生成网络的结构捕获的,而非任何学习能力。这对于解决各种图像恢复问题所需的图像统计信息尤其如此,在这些图像恢复问题中,我们需要图像先验来整理退化过程中丢失的信息。

为了展示这些,作者使用一个未训练的网络,来解决上述的重建问题,做法是让这个网络去拟合该张退化的图像,再无别的数据。在这个框架中,网络的权重就像是恢复的图像的参数化。给定一个退化的图像和对应的观测模型,网络的权重随机初始化,并且被拟合以最大化它们的似然性。

这个简单的构想在图像重建任务重很具竞争性。网络中没有任何一层面是从数据学习来的,而且网络的权重总是随机初始化,因此唯一的先验信息就是网络结构本身。这可能是第一次直接研究由卷积生成网络捕获的先验,而不依赖于从图像学习网络参数。

方法

图像生成的网络,大都是通过公式 x=fθ(z) x = f θ ( z ) 的形式,把随机编码 z z 映射到图像 x。这个方法可以用来从随机分布中采样真实图像,另外这个随机分布也可以被定为坍塌的图像 x0 x 0 ,以用来解决图像重建逆问题。

作者把神经网络翻译为参数化过程: x=fθ(z) x = f θ ( z ) 。其中 x x 是图像,z 是随机向量, θ θ 是网络参数。为了展示参数化的效果,作者考虑图像逆问题,他们可以表示为能量最小化问题:

image_1cakjb65urm7rh679s5gm12bu9.png-5.9kB

其中 E(x;x0) E ( x ; x 0 ) 由任务决定, R(x) R ( x ) 是正则项。 E(x;x0) E ( x ; x 0 ) 项暂且不提。正则项通常能捕获自然图像一般的先验,它的选择更加困难,也是许多研究的一大主题。例如, R(x) R ( x ) 可能是Total Variation(TV),which encourages solutions to contain uniform regions. 在这里,作者把 R(x) R ( x ) 替换为神经网络捕获到的隐含的先验:

$\theta^*=argmin_\theta E(f_\theta(z); x_0),   x^*=f_{\theta^*}(z)$

让网络学习从随机向量到退化的图像的映射,再把学到的参数 θ θ ∗ 直接用来重建得到 x x ∗

就公式(1)而言,由(2)定义的先验 R(x) R ( x ) 是一个指示函数:对所有能从 z z 生成的图像 R(x)=0 ;而对其他信号 R(x)=+ R ( x ) = + ∞ 。既然网络没有任何一部分是从数据训练得来的,这样的 deep image prior 是像TV一样 effectively handcrafted 的。

A parametrization with high noise impedance.

人们可能会想为什么一个高容量的网络可以被用来当做先验。事实上,人们可能会期望找到一组能够恢复任何可能的图像 x x 的参数 θ,包括随机噪声,所以网络不应对生成的图像施加任何限制。虽然几乎所有图像都能被拟合,但网络体系结构的选择对解空间内搜索最小值具有重大影响。在看起来自然的图像面前,网络能避免“坏”的解,并且优化地更快。结果就是最小化公式(2)能得到看起来不错的局部最优解,或者至少是靠近最优解的优化轨迹上的一个点。

为了量化地研究这个效果,作者考虑重建的一个基本情况:给一个目标图像 x0 x 0 ,尝试找到 θ θ ∗ 来重建这个图像。它的优化项为:

Snipaste_2018-04-09_15-20-22.png-3.3kB

把公式(3)套进公式(2)中,就变成了要解决如下优化问题:

image_1cakkftge109h3231eilkf5d93v.png-5kB

于是,下图展示了目标图像为不同类型时,能量 E(x;x0) E ( x ; x 0 ) 的梯度下降过程。可以看到,当 x0 x 0 是自然图像或者加一些噪声时下降的最快,后面两种情况有明显的“惰性”。

image_1cakkkin4nalv5k1po41h3kob64c.png-32.8kB

因此,即使在极限情况下网络也可以拟合无结构的噪声,网络的拟合过程显得很“不情愿”,即参数化对噪声具有高阻抗,而对(自然的)信号具有低阻抗。在大多数应用下,作者把公式(2)的优化限制在某个迭代次数中,得到的先验可以将 z z 映射到减少的图像集中,这时的网络参数离初始随机化的参数不会太远。

应用

超分辨

超分辨的任务是从一个低分辨率图像LR增采样t倍,恢复到高分辨率图像HR。为了解决这个逆问题,数据项可以设置为:

image_1caklnntj1g9mg0jde01ah1bnn5p.png-5.3kB

其中 d(.) 是降采样操作,把一个图像降采样t倍。正则化就是为了从无限的可能的HR中找到一个最好的解。优化器使用的是 gradient descent,它基于神经网络和例如Lanczos的降采样操作都是可微的事实。

在实验中,使用set5和set14数据集,与其他方法比较4倍升采样的效果,每张图像的优化次数都是相等的。至于PSNR,作者的方法在两个数据集上达到了27.95和35.06,双三次插值为26.70和33
78,SRResNet为30.09和37.23。作者的方法虽然还是被基于学习的方法超过了,但它优于同样非学习的双三次插值。

image_1cakm6vtbsrgt8oi4vj13f76.png-799.4kB

(以下是Supplementary Material内容)作者使用了编码-解码(可能有一些跳跃连接)的网络结构,如下图,非线性层使用LReLU结构,升采样使用双线性(解卷积也是一种方法,但获得的效果很差),padding用的reflection而非zero。优化器使用ADAM。

image_1cakn7am410afatj8nbjo01usq7j.png-110kB

Snipaste_2018-04-09_16-09-33.png-18.7kB


http://chatgpt.dhexx.cn/article/KSfGMOLI.shtml

相关文章

Automatic Trimap Generation for Image Matting

Automatic Trimap Generation for Image Matting翻译 Abstract image matting 是计算摄影中的一个重要问题。虽然已经研究了二十多年,但是开发一种不需要人工干预的自动matting算法仍然是一个挑战。大多数最先进的matting算法都需要人工干预,以trimap或涂…

Self-augmented Unpaired Image Dehazing via Density and Depth Decomposition程序运行记录

论文题目: 《Self-augmented Unpaired Image Dehazing via Density and Depth Decomposition》 作者列表: 杨洋(天津大学),王超岳(悉尼大学),刘日升(大连理工大学),张…

Learning Continuous Image Representation with Local Implicit Image Function

1. 简介 文章简称为LIIF,即Local Implicit Image Function,受到了3D视觉里场景或物体的隐式表示思想的启发,主要的想法便是把正常的图像当做是连续的,用神经网络表示这个图像之后,对于图像上的每一个像素点其实就当做…

【InternImage】Exploring Large-Scale Vision Foundation Models with Deformable Convolutions

基于Deformable Conv的大规模基础模型 特点: 采用Deformable Conv V3 【v2 19论文】CNN模型 背景 大规模的ViT模型借助模型能力在超大规模数据集上取得了非常高的性能,然而大规模CNN模型研究才刚刚开始。 近期CNN研究倾向于使用大的卷积kernel&#…

ImageMol

ai圈也是卷的狠啊~~ 又发现一个全球首个分子图像自监督学习框架来也 分子是维持物质化学稳定性的最小单位。对分子的研究,是药学、材料学、生物学、化学等众多科学领域的基础性问题。 分子的表征学习(Molecular Representation Learning)是…

Morphological image processing

目录 基本思想: 一.集合论基础 1.集合的概念 2.集合间的关系和运算 二.二值形态学的基本运算 1.腐蚀 (1)概念 (2)结构元素形状对腐蚀运算结果的影响 (3)腐蚀运算在物体识别中的应用 2…

实用的图片批量压缩优化工具

ImageOptim ImageOptim 支持 PNG/JPEG/GIF 动画,本质是各种影像优化工具的图形前端:AdvPNG、OptiPNG、Pngcrush、JpegOptim、jpegtran、Gifsicle 和 PNGOUT素材。 ImageOptim软件非常小! 2.6M而已ImageOptim操作非常非常非常快捷&#xff01…

【UNI APP】globalData全局变量

uni-app 在app.vue文件export default里面定义globalData,在当前文件(app.vue)里面获取globalData需要用this.$options.globalData获取,其他文件则用getApp().globalData获取。 this.$options是用来获取自…

uniapp 全局数据(globalData)的设置,获取,更改

因为uniapp基本上都是将页面,或者页面中相同的部分,进行组件化,所以会存在父,子,(子,父)之间的传值的情况,但在某些情况下,可以选择将内容设置为一个全局的变…

微信小程序定义和调用全局变量globalData

先看看文件结构: 1.现在app.js里面定义globalData对应的全局变量 2.然后在其他js文件进行调用。例如在photo.js里面 要注意的是需要在文件开始的时候初始化 app这个对象 //获取应用实例 const app getApp()

微信小程序:globalData和Storage数据存储的错误示例

前言 在小程序登录是,将返回的用户数据,存储在globalData中和storage中。 // 存储的数据是一个对象 wx.setStorageSync(userAuthData, user.data.data); this.globalData.userAuthData user.data.data; 之前,数据更新了,为了避…

uni-app之全局变量globalData的使用

一般访问请求的时候,baseurl我们都会用变量来代替,所以我们一半会把大量这种常用的,但是又不会经常变动的数据变成一个常量--globalData export default {onLaunch: function() {},onShow: function() {console.log(App Show)},onHide: function() {console.log(App Hide)},glo…

微信小程序中的共享数据 : globalData

和vue中的vuex作用相同,都是用于设置给所有页面都可以使用的数据的。 globalData在app.js中,它是一个对象,在里面设置要使用到的共享数据。 我们在其他页面要使用globalData中的数据时,首先如下: let app getApp() …

在uniapp中监听globalData中的值变化

小程序里怎么去监听app.js里的globalData数据变化呢 1、先再app.vue 中定义一个全局数据对象globalData,再对象里定义好相应的属性与属性值 globalData:{count:0 },methods:{watch:function(method,istr){var objthis.globalDataconsole.log(obj)Objec…

微信小程序中全局共享数据globalData的使用

1.全局共享数据 全局共享数据的两种方式 通过Vue原型共享数据通过globalData共享数据vuex本地存储 1)在Vue实例原型属性上添加属性,其他任何页面预想使用,直接使用this获取到, 比如: 主要代码:(在入口文件mian.js中) import request from ./utils/request Vue.prototype.re…

Vue全局共享数据之globalData,vuex,本地存储使用方法

目录 一、globalData 二、vuex存储方式 1.vue2用法,2.vue3用法 三、本地存储 uniapp的数据缓存 写在最前面,把vue能用到的存储方法都整理拿出来,方便阅读以及工作用。🍉🍉🍉可以收藏起来即拿即用 Vue全局共…

微信小程序 | 12.生命周期、globalData全局数据

文章目录 1.小程序的生命周期2.全局数据globalData3.globalData的应用3.1.搭配app.js的onLaunch()存储openid3.2.轮询globalData3.2.1.问题描述 3.2.2.解决方式:轮询globalData 1.小程序的生命周期 小程序生命周期(onLaunch、onShow、onHide、onReady、onLoad、onU…

uniapp 全局静态数据(globalData)的修改和使用

uniapp 全局静态数据(globalData)的修改和使用 全局静态数据: 在App.vue中的调用: this.globalData.systemTitle在App.vue中的修改: this.globalData.systemTitle res.title在pages中调用: let title…

微信小程序全局变量(globalData)和缓存(StorageSync)的区别和用法

globalData和storage的区别 一、app.globalData 是全局变量,下次进入的时候,就要重新获取,一般用于: 1、保存一些可能涉及安全类的数据,例如资源类,每次需要很准确的,就建议用全局变量。 2、…

【分布式】什么是分布式技术?

背景: 初代的服务器架构往往比较简单,应用程序、数据库、文件、代码等所有资源都放在一台服务器上,也就是单机结构。随着企业业务量的增多,一台服务器已经难以满足数据处理的需求了,那么对单机进行“复制粘贴”&#…