DDRM(2022):基于扩散模型的去噪方法

DDRM(2022):基于扩散模型的去噪方法

导出时间:2025/11/24 08:49:09

1、研究背景与动机

1️⃣ 图像修复的老问题:从“模糊照片”到“数学方程”

想象一下,你手里有一张模糊的老照片,或者一张低分辨率的监控截图。 你想让它“变清晰”,但问题是——清晰的原图已经丢失。 这种任务,在计算机视觉里叫做 “图像复原”(Image Restoration)。
更准确地说,它属于一个经典的数学范畴:

线性逆问题(Linear Inverse Problem)

形式上可以写成:
y=Hx+z
其中:
  • x:你想要的“干净原图”
  • y:被模糊、降噪、压缩后的“观测图像”
  • H:表示退化的操作(比如模糊、降采样、遮挡)
  • z:噪声(让图像更糟的部分)
任务目标是:已知 y、已知退化模型 H,去“倒推”原始图像 x

2️⃣ 两大传统思路的困境

在以往的研究里,大家主要靠两种方法去“反推”原图:

(1)监督学习:一对一学习修复

👉 思路:准备成千上万对「退化图像 → 清晰图像」的样本,用深度网络学会“从模糊变清晰”的映射。
👉 缺点:
  • 需要成对训练数据(现实中几乎没有);
  • 只能解决特定类型的退化问题(换个模糊核就得重新训练)。
就像让你专门学修“灰尘模糊”的照片,但突然来了“运动模糊”的照片——你就不会修了。

(2)无监督/先验驱动:靠图像的“自然规律”

👉 思路:不依赖具体任务,而是学习“什么是自然图像的分布”(即图像的统计规律)。 👉 优点:能处理任意退化,只需知道 HHH 就能“还原”。 👉 缺点:通常用到的都是迭代算法(比如梯度下降、朗之万采样),又慢又难调参数。
举个比喻:
  • 监督方法像是“定制化医生”:专治一种病,很快,但只会这一种。
  • 无监督方法像是“老中医”:不挑病种,但诊断过程又慢又玄学。

3️⃣ 扩散模型的崛起:从生成到修复

2020年之后,扩散模型(Diffusion Models) 迅速崛起。 它是一种通过“反向去噪”生成清晰图像的强大生成模型(比如 DDPM、Stable Diffusion)。
它的工作逻辑是:

“我先把一张图加噪声直到几乎全白,再一步步学会把噪声还原成图像。”

于是有人想到: 💡 如果我在扩散去噪的每一步中加入退化信息(比如模糊矩阵 H),那我岂不是能‘边生成边修复’?

4️⃣ DDRM 的诞生:把扩散模型变成“万能修图师”

DDRM 的作者(来自以色列理工 + 斯坦福 + NVIDIA)
正是看到了传统无监督方法“慢”、监督方法“不通用”的痛点,于是提出了:

🔹 DDRM(Denoising Diffusion Restoration Model) ——一个可以用预训练的扩散模型直接解决各种图像复原问题的方法。

它的核心想法是:
  • 不需要针对每种任务重新训练;
  • 不需要 paired 数据;
  • 只用预训练好的扩散生成模型(比如DDPM)
  • 通过数学上定义好的“后验采样”,在20步内就能完成去噪、去模糊、超分辨率、修复等任务。

5️⃣ 形象比喻

如果说普通的扩散模型是一个“从噪声中画出一张图”的画家, 那 DDRM 就像给这位画家一个模糊的参考图, 然后对他说:

“请在还原过程中参考这个模糊图——别完全乱画。”

结果:
  • 他既能保持生成图像的真实感(得益于扩散模型的生成能力),
  • 又能复原被破坏的区域(得益于测量模型的约束)。

一句话总结:

DDRM 诞生的动机是为了解决「无监督图像复原」的老问题: 它想要兼顾三点—— 不需要配对数据、适配任意退化模型、生成质量高还快。



2、核心创新点

1. “不重新训练,也能通吃多任务”

DDRM把预训练好的扩散生成模型直接当作“图像先验”,再把具体的退化算子 HHH(模糊、降采样、遮挡等)塞进采样公式里,就能做去噪/去模糊/超分辨率/修复/上色等多种线性逆问题——无需针对每个任务再训一遍网络。可以理解为:先有一个会“从噪声里画真图”的画家,再给他一张“模糊参考图”约束他按参考去还原。

2. 在“频谱/SVD 空间”里做事,带来通用、可控的后验采样

DDRM对退化矩阵 HHH 做奇异值分解(SVD),把“该服从观测的分量”和“可由先验补全的分量”拆开,在扩散的每一步投影到观测一致的子空间,其余部分交给先验补足——既尊重数据,又发挥生成模型的能力。更妙的是,论文给出内存友好的 SVD 方案,把若干任务(去噪、修复、超分、去模糊、上色)的复杂度从 Θ(n2) 降到 Θ(n)。

3. 有理论“背书”:与 DDPM/DDIM 目标等价,可直接复用

作者证明:在合理假设下,DDRM 的变分目标与 DDPM/DDIM 的目标形式等价;因此用现成的预训练扩散模型就能很好近似最优解——只需换掉 HHH 的 SVD 参数,不用改网络、不用重训。通俗地说:老画家的“画功”不用改,给他新参考规则就能画出“合规的修复图”。

4. 采样“快准稳”:少步数也能出好图

DDRM可直接采用子集时间步进行采样(跳步策略),把传统扩散上百/千步的过程压缩到几十步量级,显著提速,同时保持质量。论文强调这种“跳步”同样适用于 DDRM 的去噪自编码式更新。

5. 跨任务、跨噪声强度的效果与速度优势

在超分、去模糊、修复、上色等多任务上,DDRM不依赖监督配对数据,且在重建质量、感知质量、运行时间上超过主流无监督方法;报告中给出对最近竞争者约 5× 的加速,并且对“训练分布外”的自然图像也能很好泛化。

6. 一个统一的“通用公式”,换 HHH 就换任务

DDRM把各种线性退化都归并到同一个扩散—后验采样框架里:你只要提供对应的 HHH 以及其 SVD(U, Σ, V),就能把同一套扩散模型“切换档位”,在不同任务之间自由切换。工程上极其干净、易复用。

一句话总括

DDRM = 预训练扩散先验 + 退化算子SVD投影 + 快速少步采样。 它用一个统一、无需重训的后验采样公式,把多种图像复原任务一次性拿下,快且稳,还给出了理论保证与工程可复用性。


3、网络 / 算法流程结构(结合图讲解)

image.png

一、整体思路:让“扩散模型”变成“带参照的画家”

我们先从直觉出发。
普通的扩散模型(左边的图)做的是——

“从噪声里一步步学会画出一张清晰的图像”。

而 DDRM(右边的图)做的是——

“在画的过程中参考一张模糊或损坏的图像 y,让画出来的图既真实又符合观测约束”。

这其实是把扩散模型从生成任务(Generate) 变成了条件恢复任务(Restore with Observation)

二、左图:普通扩散模型(DDPM)

我们先看左边👇:

它的流程是:

  1. 前向扩散(q过程)
    • 把真实图像 x0x_0x0 一步步加噪,得到 x1,x2,…,xT。
    • 最后 xT 变成纯噪声。
    • 这叫 “正向扩散”,记为:
    image.png

  2. 反向去噪(p过程)
    • 模型学习如何一步步从噪声还原出清晰图:
    image.png
    • 这就是我们训练好的 DDPM 模型
🧠 形象理解: 普通扩散模型像一个画家,从“满是雪花的电视画面”一步步学会“清晰地画出人脸”。

三、右图:DDRM 的去噪扩散恢复模型(带观测约束)

现在看右边👇: DDRM 把“画画过程”改造成了一个带参照的修复过程

🧱 Step 1:输入观测图像 y

  • y 是退化后的图像(比如模糊、噪声、低分辨率)。
  • 退化关系:
  • y=Hx0+n
  • 其中 HHH 是退化矩阵(比如模糊核、下采样矩阵)。

🔄 Step 2:SVD 分解退化矩阵 H

  • DDRM 的关键数学工具是 奇异值分解 (SVD)
image.png
  • 它能把图像空间分成两部分:
    1. 被观测到的部分(在 U 的子空间中);
    2. 未观测到的部分(在其正交补空间中)。
🧩 意义:

DDRM 在恢复时,只对“未观测部分”依赖生成模型; 对“观测到的部分”直接用 y 提供的线索。

这就保证:
  • 图像符合观测(不偏离 y);
  • 同时保留扩散模型的生成能力。

🎨 Step 3:从噪声开始反向生成(采样阶段)

DDRM 使用预训练好的 DDPM 模型,从随机噪声 xT 开始反向生成。
每一步 t→t−1的采样公式中,
包含两部分更新:
image.png

  • 第一项 At(y,H):根据观测 y + 矩阵 H 调整,确保生成图符合退化约束。
  • 第二项 Bt(xt,ϵθ):由预训练扩散模型预测噪声,再反向去除。
🧠 通俗解释: 就像画家在每一笔时,会:
  1. 看参考图 y(A_t);
  2. 再凭自己的画功修出合理细节(B_t)。

🧮 Step 4:每一步的条件更新(Conditioned Denoising)

在每次反向扩散时,
DDRM 都把噪声预测结果和观测 y 结合起来做“后验修正”:
image.png

这里的均值 μt会用到:
  • 退化矩阵 H
  • 噪声方差 σt
  • 当前的观测 y
  • 模型预测的干净图像分量
这就构成了 DDRM 的 后验采样(posterior sampling)

⚡ Step 5:快速采样与输出

  • DDRM 不需要从 T=1000 步慢慢采样。
  • 只需几十步(20~50)就能生成高质量结果;
  • 而且每一步计算都是闭式公式(不需要梯度下降)。
最终输出 x0x_0x0 ——就是修复好的高清图像。

四、图像生成 vs. 图像修复的区别(结合图理解)

对比项
普通扩散模型(左)
DDRM(右)
输入
随机噪声
观测图像 y(含退化)
任务目标
从噪声生成真实图像
在观测约束下恢复原图
数学过程
独立的反向扩散
条件化的后验扩散
是否使用 H
❌ 不用
✅ 明确建模
是否需重训
✅ 通常需要
❌ 可直接用预训练模型
输出效果
真实但不对应输入
既真实又与输入匹配

五、算法流程小结(文字版)

输入: 退化图像 y, 已知退化矩阵 H, 预训练扩散模型 εθ 1️⃣ 计算 H 的 SVD 分解 (U, Σ, V) 2️⃣ 从噪声 x_T ~ N(0, I) 开始采样 3️⃣ 对每个时间步 t = T ... 1: a. 用扩散模型预测噪声 εθ(x_t, t) b. 根据 H 和 y 计算条件均值 μ_t(x_t, y) c. 采样 x_{t-1} ~ N(μ_t, Σ_t) 4️⃣ 输出最终去噪图像 x_0(修复结果)

六、形象总结:一位“带着模糊照片的画家”

你可以想象:

  • 普通扩散模型像个“凭感觉画图的画家”,他能画真图,但不知你要哪一张;
  • DDRM 给他一张“模糊的参考照 y”,再说:“请在这张基础上画出清晰版本”;
  • 他每一笔都“对照参考 + 结合经验”, 最后画出一张既符合输入结构自然真实的修复图。
一句话总结:

DDRM 的算法流程 = 扩散模型的反向生成 + 测量模型约束投影。 它像一个“带参照的画家”,在每一步反向去噪时都“看一眼模糊图”, 让生成既符合观测,又保持自然逼真。


4、模型的不足与缺陷

一、依赖“线性退化假设”,适用范围有限

DDRM 的核心理论基础是:
y=Hx+z
也就是说它假设退化过程 是一个线性映射 + 高斯噪声
但现实世界的图像退化往往并不是线性的,例如:
  • JPEG 压缩 → 含有非线性量化;
  • 运动模糊 → 涉及复杂的相机轨迹;
  • 光照/曝光过度 → 非线性饱和;
  • 雾霾/水下成像 → 指数衰减模型。
📉 结果: DDRM 在这些复杂退化下就“无能为力”或效果很差。
💬 形象比喻:

DDRM 就像一位“只会修直线透视”的画师, 让他修曲线扭曲的照片,他就懵了。


二、严重依赖“已知退化矩阵 H”

DDRM 需要明确的退化算子 HHH,而且还要能对它做 SVD 分解。 这在理论上很美,但在现实中非常苛刻:
  • 很多场景下我们根本不知道退化核(比如相机模糊核未知);
  • 有的退化操作 HHH 甚至无法明确写成矩阵形式(比如JPEG压缩、传感器失真);
  • SVD 分解在大分辨率图像下计算代价高。
📉 结果: 在实际应用中,DDRM 只能用于“我们能明确定义退化模型”的任务,例如:
  • 高斯去噪;
  • 均匀模糊去模糊;
  • 降采样超分辨率。
💬 形象比喻:

DDRM 就像一位修图大师,但前提是你必须告诉他“照片是怎么坏的”。不告诉他模糊的原因,他就修不动。


三、仍然“生成式推理”,速度慢于传统复原网络

虽然 DDRM 比传统扩散模型采样步数少(几十步代替上千步),
但相比 CNN 或 Transformer 型的“单次前向推理”方法(如 Restormer、SwinIR),
它依然需要多步迭代采样,每一步都调用一次扩散网络。
📉 结果:
  • 在 GPU 上跑一张 256×256 图像仍需几秒;
  • 做视频或大图像修复时代价高。
💬 形象比喻:

CNN 修图像“一笔到位”;DDRM 修图像要“画二十几遍”,每次都微调一点。最后画得漂亮,但耗时。


四、模型结构不可学习,难以针对性优化

DDRM 的“主角”其实是 预训练的扩散模型(DDPM), DDRM 自己并没有可学习参数。 这意味着:
  • 它无法根据具体任务(比如去模糊 vs 上色)微调;
  • 也无法学习更复杂的退化结构;
  • 所有任务都被“硬塞”进同一个公式。
📉 结果: 性能受限于原始扩散模型的分布, 即如果预训练模型是在人脸数据上训练的,那用来修风景图就可能失真。
💬 形象比喻:

DDRM 就像一个通才型画家:画人脸很强,但让他修山水画就有点“风格不搭”。


五、对预训练扩散模型的质量高度依赖

DDRM 的去噪/复原能力其实完全继承自原始扩散模型。
如果预训练的扩散模型:
  • 训练数据有限;
  • 噪声调度参数不合理;
  • 没有覆盖输入退化分布;
那么 DDRM 的结果就会出现:
  • 模糊;
  • 偏色;
  • 甚至生成“错误的纹理”。
💬 形象比喻:

DDRM 像一个“借画功的助手”,师傅(扩散模型)画得好,它就强;师傅画得一般,它再聪明也画不出奇迹。


六、对噪声水平估计敏感

DDRM 在每一步采样时,需要估计当前的“噪声水平”。
如果这个估计偏高/偏低,会造成:
  • 过度平滑(噪声估计太高);
  • 残留噪点(估计太低)。
📉 结果: 在真实退化情况下(噪声未知或不均匀)效果不稳。
💬 形象比喻:

它像医生开药,药量多一点会伤身,少一点又不见效。每一步剂量都得刚刚好,容不得差。


七、理论上完美,实际中不鲁棒

虽然 DDRM 有数学上优美的封闭解(closed-form posterior),
但在真实噪声、复杂背景、分布偏移下,它仍容易出现:
  • 修复结果过平滑;
  • 人脸或纹理细节“假脸感”;
  • 色彩偏差;
  • 不同随机种子输出差异大。
📉 原因: 它是生成式采样模型 → 带随机性, 结果每次可能略不同,不如判别式方法稳定。
💬 形象比喻:

DDRM 就像一个天才画家,每次都能画出一幅好图,但——不是每次都一样。


5、改进方向与启示(如何优化 DDRM 思想)

一、回顾 DDRM 的核心思路

在进入改进方向前,我们先快速回顾它的核心逻辑:

DDRM = 预训练扩散模型 + 退化矩阵约束(SVD 投影) + 条件采样(posterior sampling)

它解决的是:
✅ 无需重训模型,
✅ 直接在采样过程中嵌入线性观测约束,
✅ 实现去噪、去模糊、超分、修复等任务。
但它的瓶颈也很明显:
  • 仅适用于线性退化
  • 需要已知退化矩阵 H
  • 对复杂退化不适应;
  • 推理仍然较慢。
于是,后续的研究者开始沿着 DDRM 的思想做了一系列改进👇

二、改进方向一:从线性退化 → 通用退化(DPS、DR2、InDI)

🔹 1. Diffusion Posterior Sampling(DPS, 2022)

核心改进:
  • 把 DDRM 的“线性假设”扩展为任意可微退化函数 f(x)f(x)f(x)
  • 在采样过程中加入梯度引导(gradient guidance)
  • 不再需要 HHH 的显式逆或 SVD 分解。
💡 直觉解释: DDRM 是“数学闭式修复”,DPS 是“梯度引导修复”—— 就像在扩散采样过程中轻轻推模型往“与观测一致”的方向靠拢。
优点:
  • 可用于任意退化(非线性也行);
  • 理论框架通用;
  • 无需知道具体矩阵 H。
缺点:
  • 仍需计算梯度(慢);
  • 对损失函数与引导权重敏感。

🔹 2. DR2(Diffusion Restoration via Regularization, 2023)

核心思想:
  • 将 DDRM 的“投影操作”换成正则约束优化问题
  • 在每步采样后通过正则项强制满足观测一致性。
通俗解释:

DR2 把“直接投影”变成“逐步修正”,让模型在每步采样时都兼顾真实与观测。

改进点:
  • 更稳定;
  • 可兼容多种退化形式;
  • 支持盲去模糊等复杂场景。

🔹 3. InDI(Inverse Diffusion Inference, 2024)

创新之处:
  • 把 DDRM 思想扩展到“推理时学习(Inference-Time Adaptation)”;
  • 通过优化一个轻量化网络(或可调参数)适配特定退化分布;
  • 实现“在线自适应”修复。
💬 形象理解:

DDRM 是固定老师照书修;InDI 则是“边修边学”,能根据当前照片自动调整修复策略。


三、改进方向二:提升速度与效率(DDNM、DDNM+、ADIR)

🔹 1. DDNM(Denoising Diffusion Null-space Model, 2023)

核心改进:
  • 发现 DDRM 的 SVD 分解其实就是在建模“退化的零空间(Null Space)”;
  • 提出了更高效的“零空间投影”方法;
  • 能用极少采样步数(甚至 <10 步)实现高质量修复。
💡 启示:

DDRM 的核心其实是“在扩散过程中做约束投影”。DDNM 用更高效的线性代数形式,让这一过程更快更准。

🔹 2. DDNM+(改进版)

  • 支持未知噪声水平估计
  • 加入动态加权策略
  • 更稳定,更通用;
  • 被认为是 DDRM 的“工程强化版”。

🔹 3. ADIR(Adaptive Diffusion Image Restoration, 2024)

思想:
  • 在推理过程中根据退化类型自适应调整扩散噪声调度表 β_t
  • 提高了不同任务(去噪/去模糊/超分)之间的兼容性。
💬 通俗解释:

DDRM 是“一张配方吃到底”; ADIR 能根据菜的味道(退化类型)自动调配“火候”(噪声计划)。


四、改进方向三:提升真实感与细节(RePaint、Palette)

🔹 RePaint(CVPR 2022)

做法:
  • 在每步采样后随机“重采样”部分像素;
  • 让模型多次修正被遮挡或失真的区域;
  • 主要用于图像修补(Inpainting)。
💡 意义:

DDRM 只能修线性退化,RePaint 开始尝试生成式的非线性修补。 把扩散模型真正变成“通用修图师”。

🔹 Palette(Google Research, 2023)

做法:
  • 把修复任务统一成“条件扩散模型”;
  • 在训练阶段显式加入任务条件(噪声、分辨率、缺失率等);
  • 让模型在推理时自适应多种任务。
💡 意义:

DDRM 是“事后使用预训练模型”;Palette 则是“直接训练一个多任务修复模型”。


五、改进方向四:让 DDRM 具备学习能力(Plug-and-Play + Fine-tuning)

虽然 DDRM 本身不训练,但后续研究提出了**“可学习模块插入”**:
  • 在采样过程中加入轻量可学习模块(如UNet适配层、低秩LoRA层);
  • 只需少量步骤调优即可适配新退化;
  • 保留原扩散模型参数不变。
💬 意义:

把“固定算法”变成“可适配算法”,既继承DDRMs数学优雅,又具备学习能力。


六、未来启示:DDRMs 思想的长期价值

启示方向
核心思想
未来趋势
统一性
将所有图像复原任务看作“扩散采样 + 约束优化”
更通用的统一复原框架
可适应性
在采样中动态调整噪声或约束
自适应任务条件控制
无监督性
不依赖成对训练样本
更适合真实世界部署
生成质量
保持生成模型的逼真纹理能力
向高感知质量方向优化
计算效率
降低采样步数、提升推理速度
结合快速ODE采样/蒸馏
多模态融合
融合深度、语义、语音等条件
从单图修复到多模态生成

七、形象总结:从 DDRM 到“通用修图大脑”的演化

阶段
代表模型
关键特征
DDRM (2022)
线性逆问题 + SVD
“带公式的修图师”
DPS (2022)
梯度引导
“懂得随任务微调的修图师”
DDNM (2023)
零空间投影
“数学效率专家”
DR2 (2023)
正则修正
“稳定派修复大师”
InDI (2024)
在线适配
“自学型修图AI”
Palette (2023)
多任务条件训练
“通用修复工厂”
一句话总结:

DDRM 是“扩散 + 约束”范式的开端,它让生成模型第一次变成了真正意义上的“万能图像修复器”。 后续研究(DPS、DDNM、RePaint、InDI 等)在此基础上,让它变得更通用、更快、更稳、更聪明,正在把“扩散模型”推向 一体化视觉修复大脑 的时代。