Denoising/图像恢复

本文探讨了图像去噪与恢复领域的最新进展,重点介绍了几种先进的深度学习方法,包括利用生成对抗网络(GAN)进行噪声建模的GCBD算法,针对混合失真图像修复的FDR-Net,以及采用双深图像先验(Double-DIP)进行无监督图像分解的技术。这些方法在去噪、特征解耦、域适应等方面展示了强大的能力。

去噪是图像恢复/增强领域的一个经典问题,现在来关注一下,其实我更想关注unpaired real data 的去噪问题



GCBD-Image Blind Denoising With Generative Adversarial Network Based Noise Modeling

2018 cvpr 的一篇文章

novel two-step framework. First, a Generative Adversarial Network (GAN) is trained to estimate the noise distribution over the input noisy images and to generate noise samples. Second, the noise patches sampled from the first step are utilized to construct a paired training dataset, which is used, in turn, to train a deep Convolutional Neural Network (CNN) for denoising
典型的估计噪声分布来获取paired images

大量的实验证明GAN 可以用来学习复杂的分布,那么直观来看我们可以用GAN 的生成器将clean 图像映射到一个具有和真实图像相似噪声的的图像。但是作者说: “it is not trivial to realize this goal”, “we found that it doesn’t work this way”. 尽管可以学习到类似的噪声分布,但是没有证明原始的分布没有被改变

为了解决这个问题,我们选择训练一个生成器学习这种噪声而不是噪声图片

豁然开朗就是这个意思吧
文章反复提到 internal information 和external information


  • framework
    2
    上图没怎么看懂,GAN 干了什么,怎么约束的Noise?
    文章说为了简化问题,假设图像具有均值为0 的未知噪声

  • Noise Model
    在构建成对训练数据之前,需要从噪声图像(noise image)估计噪声模块(approximate noise block)
    噪声模块可以更好的噪声模型和噪声数据生成(noise modeling noise data generation)
    这里才是文章的关键啊,估计噪声块,从噪声图像中去除背景干扰生成纯噪声的块(图像),这就太强了啊,那他是怎样估计噪声块的呢—
    假设纯噪声块图像为V(with weak background), 假设噪声的均值为0,那么使用含噪声块的噪声图像减去平滑块(smooth patch)的均值即可,使用文章算法并没有得到一个可信的结果,我觉得噪声为0的假设对于自然图像的采集可能可取,但是对于特定且不确定噪声有待商榷
    总结下文章使用的快速平滑块搜索算法(fast smooth patch search algorithm, FSPSA)
    噪声模型 y = x + n y=x+n y=x+n
    假设噪声均值为0,那么 y m e a n = x m e a n y_{mean}=x_{mean} ymean=xmean
    在假设如果我们图像块足够平滑即使smooth patch,那么就有 n ≈ y − x s m o o t h − m e a n n\approx y-x_{smooth-mean} ny
### Denoising Diffusion Probabilistic Models (DDPM) 的图像去噪原理 DDPM 是一种基于马尔可夫链的生成模型,其核心思想是在数据上逐步加入噪声并学习这一过程的逆向操作来去除噪声。具体来说,在前向过程中,通过一系列步骤逐渐增加高斯噪声到输入图像;而在反向过程中,则训练网络预测每一步应移除多少噪声。 #### 前向扩散过程 在前向扩散阶段,给定初始干净样本 \( \mathbf{x}_0 \),按照预定的时间步数 T 和标准差参数 σ_t ,依次执行如下更新: \[ q(\mathbf{x}_{t}|\mathbf{x}_{t-1})=\mathcal{N}\left(\sqrt{1-\beta_{t}}\cdot\mathbf{x}_{t-1},\,\beta_{t}\cdot I\right)\] 其中 β 表示预定义的一系列正实数值,用于控制各时刻加权系数大小[^1]。 #### 反向去噪过程 对于任意 t ∈ {1,...,T } , 定义条件分布 p_θ(x_(t−1)|x_t), 并利用变分下界优化目标函数以最小化重建误差: \[ L_\text{simple}=L_0+\sum^{T-1}_{t=1}{E_q[\epsilon_t]} \] 这里 ε 被视为从均值为零的标准正态分布采样的随机变量。为了简化计算复杂度,实际实现时通常采用近似方法估计上述期望值[^2]。 ### 应用实例:图像去噪 当应用于图像去噪任务时,DDPM 展现出卓越性能。该类模型能够有效恢复被不同强度和类型的噪声污染过的图像质量。例如,在处理椒盐噪声或高斯白噪声等问题场景中,DDPM 不仅可以还原原始细节特征,还能保持整体结构一致性而不引入过多伪影。 此外,由于 DDPM 构架灵活易于扩展的特点,研究者们已经探索了多种增强策略,比如结合 U-net 结构作为基础架构、调整时间表设置以及引入注意力机制等手段进一步提升效果[^3]。 ```python import torch.nn as nn class UNet(nn.Module): def __init__(self, ... ): super().__init__() self.encoder = ... self.middle_block = ... self.decoder = ... def forward(self, x, timestep): encoded_features = [] h = self.encoder(x) for feature in h: encoded_features.append(feature) h = self.middle_block(h[-1], timestep) for i, module in enumerate(self.decoder): if isinstance(module, ResnetBlock): cat_in = torch.cat([h, encoded_features.pop()], dim=1) h = module(cat_in, timestep) else: h = module(h) return h ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值