使用《Deep Image Prior》来做图像复原

本文探讨了深度图像先验(DeepImagePrior)如何革新图像复原技术,无需预训练网络和大量数据即可从损坏图像中恢复高质量图像。通过分析DeepImagePrior的原理,展示了其在图像去噪、超分辨率和图像修复任务中的优越性。
TB114OaJ7voK1RjSZFwXXciCFXa.jpg

本文为 AI 研习社编译的技术博客,原标题 :

Demystifying—Deep Image Prior

作者 | Pratik KatteFollow

翻译 | GAOLILI             

校对 | 酱番梨        审核 | 约翰逊·李加薪       整理 | 立鱼王

原文链接:

https://towardsdatascience.com/demystifying-deep-image-prior-7076e777e5ba

在这篇文章中,我将主要介绍图像复原和深度图像先验如何用于图像复原。

  图像复原的介绍

图像复原是指从退化的图像中恢复未知的真实图像。图像的退化可能出现在图像形成、传输和保存期间。图像复原技术广泛应用于卫星图像和低光摄影。并且由于数字技术、计算和通信技术的发展,从退化的图像中复原出原始的图像变得非常重要,这已经发展成一种与图像处理、计算机视觉以及计算成像相交叉的研究领域。

图像复原主要有三个任务:

1.图像去噪:

图像去噪是指复原包含多余噪声的图像。这是图像复原中最简单的任务,已经广泛被多个技术团队所研究。

TB1OEN9J3HqK1RjSZFgXXa7JXXa.jpg

图1 (左)包含噪声的图像,(中)不含噪声的图像,(右)高斯噪声

2. 超分辨率技术:

超分辨率技术是指从一组低分辨率图像重建出相应的高分辨率图像(或一系列高分辨率图像)的过程。

TB1lml.J7voK1RjSZFDXXXY3pXa.jpg

图2.(左)低分辨率图像,(右)高分辨率图像

3. 图像修复:

图像修复是指重建图像丢失损坏部分的过程。图像修复实际上是一种人们填补绘画作品中损坏和丢失部分的传统艺术,但在现如今的研究中已经提出了很多利用深度卷积网络自动修复的方法。

TB1OgV8JVYqK1RjSZLeXXbXppXa.jpg

图3.(左)输入,(右)输出

  什么是Deep Image Prior?

随着AlexNet在2012年ImageNet竞赛中取得成功,卷积神经网络开始流行起来并且被应用在每个计算机视觉和图像处理任务中,而且也被广泛用于执行图像重建这样的逆任务,并且已经取得了最好的表现。

深度卷积网络因其能够从大量图像数据中学习而取得成功。Dmitry Ulyanov发表的令人惊叹的论文“Deep Image Prior”表明解决像图像复原这样的逆问题,网络结构已经能够并且很好的从损坏的图像复原出原图像。这篇论文强调,进行图像复原不需要预训练网络和大量的图像数据,仅仅有损坏的图像就可以。

在图像复原中,基于学习的方法和基于非学习的方法是两种通用的并且研究人员主要使用的方法。

基于学习的方法是一种直接的方法,它将噪声图像作为输入数据,原始图像作为输出数据去训练深度卷积网络进行学习。另一方面,基于非学习的方法或手动制作先验的方法是我们从合成数据里强行加入和告知了什么类型的图像是自然的、真实的等等。用数学表达像自然这样的状态变数非常困难。

在Deep Image Prior里,作者试图通过使用卷积神经网络构造一个新的基于非学习的方法去弥补这两种通用的图像复原方法之间的鸿沟。

  让我们看点技术的东西吧...

TB1QaR.JVzqK1RjSZFCXXbbxVXa.jpg

图4.(左)原始图像,(中)损坏的图像,(右)复原的图像

X→原始图像

TB1uXR9J5rpK1RjSZFhXXXSdXXa.jpg

→损坏的图像

TB1kJWXJ7voK1RjSZFNXXcxMVXa.jpg

→复原图像

我们可以从经验数据中使用最大后验分布来估计看不到的值。

TB1XDqfJZfpK1RjSZFOXXa6nFXa.jpg

使用贝叶斯规则,我们可以将其表示为似然*先验。

TB1ew08JVYqK1RjSZLeXXbXppXa.jpg

我们可以将方程式表示为优化问题,而不是单独使用分布。

对式(1)应用负算法

TB15y04J9zqK1RjSZPxXXc4tVXa.jpg

E(x;ẋ)是数据项,它是负似然对数,R(x)是图像先验项,是先验的负对数。

现在的任务是最小化图像X上的公式(2)。传统的方法是用随机噪声初始化X,然后计算函数相对于X的梯度并遍历图像空间直到其收敛到某个点。

TB1RpR9J5rpK1RjSZFhXXXSdXXa.jpg

图5.常规方法的可视化

另一种方法是构造一个用随机数θ初始化的函数g,它来自不同空间的输出可以映射到图像X,并使用梯度下降更新θ直到其在某个点收敛。因此,与其优化图像空间,我们可以优化θ。

TB1L0WXJ7voK1RjSZFNXXcxMVXa.jpgTB1TECaJ7PoK1RjSZKbXXX1IXXa.jpg

图6.参数化方法的可视化

但是,为什么这种方法可行并且我们要使用它呢?这可能是因为从理论上讲,如果g是满射的,g:θ →x (如果至少一个θ映射到图像X),那么这两种优化方法就是等价的,即它们具有相同的解。但是实际上g会极大地改变搜索图像空间的优化方法。我们实际上可以将g视为超参数并对它进行调整。如果我们观察一下就可以发现,g(θ)是作为一个先验的,它有助于选择一个良好的映射,给出一个我们想要的输出图像,并防止我们得到一个错误的图像。

因此,与其优化两个部分的总和,我们现在只需要优化第一个部分就可以。

现在,公式(2)可以表示为:

TB1.jmdJ7voK1RjSZFwXXciCFXa.jpg

其中z是固定的随机输入图像,θ是随机初始化的权重,它将通过梯度下降来进行更新以获得目标输出图像。

但是,为什么我们应该考虑这种参数化方法的原因依然不明确。从理论上来看,它似乎会产生原始的噪声图像。在论文中作者进行了一项实验,该实验表明,在使用梯度下降来优化网络的时候,卷积神经网络对噪声图像不敏感,并且会更快更容易下降到看到更自然的图像。

TB1HBtzJ9zqK1RjSZPcXXbTepXa.jpg

图7.复原任务的学习曲线:一个自然的图像,同样的图像加一些噪声,一样的随机乱码,和白噪声。看起来自然的图像会更快的收敛,而噪声图像会被拒绝。

  Deep Image Prior 的步骤

TB1uXR9J5rpK1RjSZFhXXXSdXXa.jpg

是损坏的图像(观察到的)

1. 初始化Z:用均匀噪声或任何其他随机图像填充输入的Z。

2. 使用基于梯度的方法求解和优化函数。

TB1ESp.J7voK1RjSZFDXXXY3pXa.jpg

3. 最后我们找到最佳θ时,我们可以通过将固定输入z向前传递到具有参数θ的网络来获得最佳图像。

TB1EOV.JVzqK1RjSZFoXXbfcXXa.jpgTB1B1CcJ3HqK1RjSZFkXXX.WFXa.jpg

图8.图像复原使用Deep Image Prior。从一个随机的权重θ0开始,我们迭代地更新它来达到最小化数据项公式(2)。在每次迭代时权重θ被映射到图像,x = f θ (z),其中Z是固定张量,映射f是具有参数θ的神经网络。图像X被用于计算和任务相关的损失E(x, x 0 )。损失w.r.t.的梯度和权重θ被计算并且用于更新参数。

  总结

《Deep Image Prior》这篇论文试图证明构造具有随机权重的隐式先验在深度卷积神经网络体系结构里非常适合于图像复原任务。论文中的结果表明正确的手动构造的网络结构足以解决图像复原问题。

想要继续查看该篇文章相关链接和参考文献?

点击【使用《Deep Image Prior》】或长按下方地址打开:

https://ai.yanxishe.com/page/TextTranslation/1498

AI研习社今日推荐:雷锋网雷锋网(公众号:雷锋网)雷锋网

卡耐基梅隆大学 2019 春季《神经网络自然语言处理》是CMU语言技术学院和计算机学院联合开课,主要内容是教学生如何用神经网络做自然语言处理。神经网络对于语言建模任务而言,可以称得上是提供了一种强大的新工具,与此同时,神经网络能够改进诸多任务中的最新技术,将过去不容易解决的问题变得轻松简单。

加入小组免费观看视频:https://ai.yanxishe.com/page/groupDetail/33

TB1Hpx8JVzqK1RjSZFCXXbbxVXa.jpg
<think>嗯,用户现在想了解Deep Image Prior(DIP)技术是否能处理椒盐噪声。首先,我需要回顾之前关于DIP的知识以及它在图像去噪中的应用。根据之前的回答,DIP利用神经网络的结构作为隐式先验,适用于多种图像复原任务,如去噪、超分辨率等。但椒盐噪声是脉冲噪声,不同于高斯噪声或其他类型的噪声,需要特别考虑。 用户提供的引用中提到,DIP通过优化随机输入z来拟合退化图像,网络会先拟合自然图像部分,然后再拟合噪声。这可能在处理椒盐噪声时有效,因为椒盐噪声是稀疏的极端值,而自然图像的结构可能更容易被网络捕捉。引用[2]指出,DIP对自然图像有低阻抗,对噪声高阻抗,因此可能适合分离椒盐噪声。 接下来,需要验证DIP处理椒盐噪声的具体方法。引用[4]提到DIP在图像恢复中的应用,但需要结合其他策略,如早停法,防止过拟合噪声。引用[5]提到标准DIP的挑战是确定最佳迭代次数,避免噪声被拟合。这说明早停是关键步骤。 另外,引用中提到的深度展开方法和自适应策略可能对椒盐噪声有效。例如,结合中值滤波或形态学处理作为预处理,可能提升效果。同时,用户之前的回答中提到了中值滤波和自适应中值滤波,这些方法是否可与DIP结合使用? 需要综合这些信息,整理出DIP处理椒盐噪声的可行性、方法步骤、优势和局限性,并给出实践建议。同时,用户之前的问题生成了相关问题,可能需要类似的结构,比如方法对比、参数调整、评估指标等。 最后,确保回答符合格式要求:使用中文,行内公式用$...$,独立公式用$$...$$,引用文献标注正确,并生成相关问题。需要检查是否有遗漏的引用信息,并确保逻辑连贯,用户能够清晰理解DIP在椒盐噪声处理中的应用。</think>Deep Image Prior(DIP)技术能够有效处理椒盐噪声,其核心思想是通过神经网络结构隐式捕获自然图像的统计先验,从而分离噪声与真实图像内容。以下是具体分析及实现方法: --- ### 一、DIP处理椒盐噪声的可行性 1. **噪声特性适配** 椒盐噪声表现为随机分布的极值点(0或255),属于稀疏脉冲噪声。DIP通过以下机制适配此类噪声: - **隐式图像先验**:卷积神经网络(CNN)的结构天然倾向于优先拟合自然图像的低频信息(如边缘、纹理),而高频噪声(如椒盐点)的拟合速度较慢[^4]。 - **优化动态差异**:网络在训练初期优先恢复图像结构,后期逐渐过拟合噪声,通过早停(Early Stopping)策略可截断噪声拟合阶段[^2][^5]。 2. **与传统方法的对比** - **中值滤波**:直接替换噪声点,但可能模糊细节。 - **DIP**:通过生成式重建保留更多图像结构,尤其适合高密度噪声或复杂背景场景[^4]。 --- ### 二、DIP处理椒盐噪声的方法 #### 1. **基础实现流程** - **网络架构**:通常采用U-Net或编码器-解码器结构,输入为随机噪声 $z$,输出为去噪图像 $\hat{x} = f_\theta(z)$。 - **损失函数**:最小化输出与噪声图像的均方误差(MSE): $$ \mathcal{L}(\theta) = \| f_\theta(z) - y \|^2 $$ 其中 $y$ 为含噪图像。 - **早停策略**:通过验证集或噪声方差监测,在PSNR峰值时终止训练(约迭代1000-3000次)[^5]。 #### 2. **改进方案(结合引用内容)** - **多阶段优化**: 1. **预处理**:使用自适应中值滤波初步去除极端噪声点[^4]。 2. **DIP重建**:输入预处理图像,细化恢复细节。 3. **后处理**:对残差噪声区域进行局部修复(如非局部均值滤波)。 - **扩散模型引导**: 引入扩散先验约束生成过程,防止网络陷入噪声过拟合(如UNROLLED DIFFUSION-GUIDED DIP)[^5]。 #### 3. **代码示例(PyTorch)** ```python import torch import torch.nn as nn class DIP_Net(nn.Module): def __init__(self): super().__init__() self.encoder = nn.Sequential( nn.Conv2d(3, 32, 3, padding=1), nn.ReLU(), nn.Conv2d(32, 64, 3, padding=1) ) self.decoder = nn.Sequential( nn.Conv2d(64, 32, 3, padding=1), nn.ReLU(), nn.Conv2d(32, 3, 3, padding=1) ) def forward(self, z): x = self.encoder(z) return self.decoder(x) # 初始化 net = DIP_Net() optimizer = torch.optim.Adam(net.parameters(), lr=0.001) z = torch.randn(1, 3, 256, 256) # 随机输入 # 训练(早停需手动监控) for epoch in range(2000): output = net(z) loss = torch.nn.functional.mse_loss(output, noisy_image) optimizer.zero_grad() loss.backward() optimizer.step() ``` --- ### 三、优势与局限性 | 优势 | 局限性 | |-------------------------------|---------------------------------| | 无需预训练数据,单图像自适应 | 计算成本高(需逐图优化) | | 保留细节优于传统滤波 | 早停阈值依赖经验或额外监控指标 | | 可扩展至混合噪声场景 | 对极端高密度噪声(>50%)效果下降 | --- ### 四、实践建议 1. **噪声密度判断**:若椒盐噪声密度>30%,建议先进行中值滤波预处理。 2. **迭代监控**:通过实时计算PSNR或SSIM指标确定早停时机[^5]。 3. **混合先验**:结合全变分(TV)正则化项约束平滑性: $$ \mathcal{L}(\theta) = \| f_\theta(z) - y \|^2 + \lambda \text{TV}(f_\theta(z)) $$ --- ### 五、效果对比(参考引用[4][^4]) - **自然图像**:DIP在纹理丰富区域(如树叶、建筑)的去噪效果优于传统方法。 - **医学图像**:对CT/MRI中的椒盐噪声,DIP可保留病灶边缘特征,减少伪影[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值