TP-Diff:Learning Deblurring Texture Prior from Unpaired Data with Diffusion Model论文阅读_dccf: deep color correction from unpaired data
利用扩散模型从无配对数据中学习去模糊纹理先验
摘要
由于获取大量真实的模糊-清晰图像对既困难又昂贵,因此从无配对数据中学习盲图像去模糊是一种更实用且更有前景的解决方案。不幸的是,主流方法严重依赖对抗学习来弥合模糊域到清晰域的差距,忽略了真实世界模糊模式的复杂性和不可预测性。在本文中,我们提出了一种新颖的基于扩散模型(DM)的框架,称为 TP-Diff,用于图像去模糊,通过从无配对数据中学习空间变化的纹理先验。具体来说,TP-Diff 执行 DM 来生成辅助恢复模糊图像纹理的先验知识。为实现此目标,我们提出了一个纹理先验编码器(TPE),它引入了一种记忆机制来表示图像纹理,并为 DM 训练提供监督。为了充分利用生成的纹理先验,我们提出了纹理迁移Transformer层(TTformer),其中一种新颖的滤波器调制的多头自注意力(FM-MSA)通过自适应滤波有效地去除空间变化的模糊。此外,我们实现了一种基于小波的对抗损失来保留高频纹理细节。广泛的评估表明,TP-Diff 提供了一种有前景的无监督去模糊解决方案,并在广泛使用的基准测试中优于最先进(SOTA)的方法。
1 引言
图像去模糊一直是一个备受关注的话题。模糊的多样性和空间变化性为开发有效的解决方案带来了重大挑战。早期的传统方法[32, 34, 33, 16, 1]旨在找到清晰图像的后验分布并最大化后验概率,但缺乏泛化能力。
近年来,人们对深度学习的兴趣日益增长。大多数方法[26, 11, 22, 2]使用合成的配对数据来监督深度神经网络(DNN),取得了卓越的性能。然而,真实世界的模糊复杂且不可预测,使得手动模拟真实的配对数据变得不可行。虽然最近的研究[38, 62]开发了使用双相机系统的配对数据集,但这既昂贵又耗时。此外,它存在使模型过拟合所用相机特定特性的风险。因此,直接从无配对的模糊-清晰数据中学习去模糊呈现出一个有前景的解决方案。
现有的无监督去模糊方法可分为三种范式:1) 基于先验的方法[8, 15, 36, 45, 60]旨在训练一个子网络来估计用于去除模糊的先验知识,如图1(a)1(a)1(a)所示。然而,找到合适的先验知识来同时建模各种模糊几乎是不可能的。2) 基于再模糊增广的方法[35, 51]采用一个转换模型将模糊从未知域转换到已知域,从而降低去模糊过程的难度,如图1(c)1(c)1(c)所示。尽管取得了良好的结果,但这些方法受限于现有去模糊模型的能力,并产生额外的计算成本。3) 基于CycleGAN的方法[27, 6, 28, 3, 61]构建模糊-清晰转换循环来学习这两个域之间的映射,如图1(b)1(b)1(b)所示。不幸的是,这些方法忽略了模糊程度的空间多样性,并且往往倾向于过拟合单一的模糊模板。这些限制阻碍了无监督图像去模糊的进步和有效性。基于CycleGAN的方法是基于GAN的方法
图1: 先前无监督去模糊方法及我们框架的示意图。(d) 我们的 TP-Diff 利用 DM 将纯高斯噪声去噪为空间变化的纹理先验,用于去模糊任务。虚线表示仅在训练期间使用。
最近,扩散模型(DMs)在图像生成[13, 14, 40, 43]方面展现出令人印象深刻的性能。在图像去模糊中,大多数方法直接使用 DMs 合成清晰图像,这虽然消除了模糊但也引入了不可预测的伪影[17, 37, 50]。相比之下,HiDiff [5]提出使用 DMs 来估计清晰图像的潜在先验表示以辅助去模糊。然而,这种先验在空间上是无序的且具有特定数量,并且无法从无配对数据中学习。因此,这启发我们解决“如何使 DMs 能够学习空间变化的纹理先验并在无配对去模糊任务中利用它”的问题。HiDiff指在潜在空间处理所以在空间上是无序的,并且无论图像简单还是复炸,都有相同数量的先验表示,并且需要使用配对数据集训练。
为此,我们提出了一种新颖的基于扩散模型的框架用于无监督图像去模糊(TP-Diff)。核心思想是使 DM 能够从无配对数据中学习空间变化的纹理先验,并辅助去模糊过程,如图1(d)所示。具体来说,我们遵循[3, 61]在清晰域和模糊域之间构建循环结构以学习映射关系。TP-Diff 的训练过程涉及两个阶段,如图2(b)所示。
在第一阶段,我们使用提出的纹理先验编码器(TPE)从大量无配对数据中学习纹理表示,并将其编码以在潜在空间中获得纹理先验 zzz。此外,我们在去模糊网络中提出了纹理迁移Transformer(TTformer)层,以有效利用学习到的纹理先验。在第二阶段,我们冻结 TPE 的参数,并联合训练 DM 和整个循环结构,使去噪网络能够生成更可靠的空间变化纹理先验 z^\\hat{z}z^。在推理时,去噪网络从纯高斯噪声产生纹理先验 z^\\hat{z}z^,用于指导去模糊网络。与直接生成清晰图像相比,在潜在空间中生成纹理先验需要更少的迭代次数[5, 53]。
我们的贡献总结如下:
- 我们提出了用于无监督图像去模糊的 TP-Diff,其中 DM 可以高效地学习空间变化的纹理先验用于模糊去除。据我们所知,这是首次将 DM 集成到无配对复原任务中的工作。
- 我们提出了 TPE,它引入了一种记忆机制来在潜在空间中编码模糊图像的纹理先验。
- 我们提出了 TTformer 层,其中滤波器调制的多头自注意力(FM-MSA)采用自适应滤波来去除空间变化的模糊。
- 我们提出了一种基于小波的对抗损失,有助于在训练期间保留高频纹理细节。
- 大量实验表明,TP-Diff 在广泛使用的基准测试中优于 SOTA 方法。
2 相关工作
2.1 深度监督图像去模糊
受益于合成的大规模配对数据,深度学习在监督图像去模糊方面取得了显著成功。其中,一些无先验方法[2, 6, 22, 24, 30, 47, 57, 58]尝试开发更鲁棒的模型,直接学习使用多尺度学习和监督[2, 6, 57]、注意力机制[47, 58]和频域学习[22, 30]来去除模糊。然而,卷积神经网络(CNNs)的平移不变性限制了它们处理空间变化模糊的有效性。
为了解决这个问题,基于先验的方法[5, 11, 19, 26]学习模糊先验以指导去模糊网络。典型的,UFPNet [11] 和 HiDiff [5] 分别通过基于流和基于扩散的模型预测先验表示。尽管取得了显著性能,但它们无法从无配对数据中学习先验。值得注意的是,这种从输入预测先验的做法被视为模糊模式的反问题,为解决空间变化的模糊提供了灵感。
2.2 深度无监督图像去模糊
无监督图像去模糊直接使用无配对数据进行训练。缺乏像素级约束使其具有挑战性。现有方法可分为三种范式:基于先验的方法、基于再模糊增广的方法和基于CycleGAN的方法。根据清晰数据的分布特征,基于先验的方法[8, 36, 60]使用最大后验概率来估计去模糊过程的先验。然而,通过假设先验知识同时处理多种模糊几乎是不可能的。为了避免直接训练无配对数据,基于再模糊增广的方法[18, 35, 51]训练一个额外的转换模型,将输入从未知模糊域转换到已知模糊域[35]或生成更多样化的模糊数据[51]。尽管如此,这些方法仍然依赖于在合成配对数据上预训练的去模糊模型。
为了直接基于无配对数据实现训练,基于CycleGAN的方法[3, 9, 27, 28, 61]构建清晰-模糊-清晰和模糊-清晰-模糊的转换循环,通过对抗学习[12]学习清晰域和模糊域之间的映射。最近的 SEMGUD [3] 提出了一种自增强去模糊策略,逐步改进生成的伪配对数据和重构器,取得了先进的结果。然而,这种自增强策略依赖于在合成配对数据上训练的全监督模型,并且忽略了真实模糊的空间多样性。在我们的工作中,TP-Diff 通过在不同区域学习纹理先验,能够在不使用任何配对数据的情况下定制化去除各种模糊。
2.3 扩散模型
最近,扩散模型(DM)[13, 43]在低级视觉任务中引起了越来越多的关注,例如超分辨率[25, 55]、去噪[23]、修复[29]等。在图像去模糊中,一些工作[17, 37, 50]直接使用 DM 通过随机迭代去噪过程从高斯噪声生成清晰图像。虽然这种做法可以生成清晰的纹理,但它也引入了不可预测的伪影。其他工作[5, 53]使用 DM 来估计清晰图像的潜在先验表示以辅助去模糊,在避免伪影的同时产生优异的结果。然而,这些方法忽略了真实场景中模糊的空间多样性,并且也无法用无配对图像进行训练。在本文中,我们将 DM 应用于从无配对数据中学习空间变化的纹理先验用于去模糊,这是首次将 DM 用于无配对图像重建的工作。
3 方法
3.1 整体架构
图2: (a) TP-Diff 概述。纹理先验编码器(TPE)用于从无配对数据中提取纹理先验。扩散过程和去噪网络分别用于添加噪声和生成纹理先验。(b)训练和推理策略示意图。(c)(c)(c) 滤波器调制的多头自注意力(FM-MSA)和 (d)调制的前馈网络(TM-FFN)构成了纹理迁移Transformer层(TTformer),用于在去模糊网络中利用纹理先验。
如图2(a)2(a)2(a)所示,我们的 TP-Diff 主要包括四个组件:纹理先验编码器(TPE)、扩散模型(DM)、去模糊网络和再模糊网络。具体来说,TPE 用于获取纹理先验 zzz,它作为 DM 训练的真实值(ground truth)。DM 由一个扩散过程和一个去噪网络组成,分别用于添加噪声和生成纹理先验。去模糊网络和再模糊网络共同构成整个循环结构,分别设计用于去除和合成模糊。在去模糊网络内部,提出的纹理迁移Transformer(TTformer)层利用纹理先验知识有效去除模糊。
为了有效训练 TP-Diff,我们遵循既定实践[5, 25],将训练过程分为两个阶段,如图2(b)所示。以模糊图像 b∈Bb\\in\\mathcal{B}b∈B 和无配对的清晰图像 s∈Ss\\in\\mathcal{S}s∈S 作为输入。第一阶段,我们利用 TPE 在潜在空间中获得空间变化的纹理先验 z∈RH×W×Cz\\in\\mathbb{R}^{H\\times W\\times C}z∈RH×W×C,并将其与整个循环结构联合训练以去除模糊。在此阶段,从 TPE 输出的 zzz 直接馈送到去模糊网络,不涉及扩散和去噪过程。第二阶段,我们冻结 TPE 的参数,联合训练 DM 和整个循环结构。这使得去噪网络能够生成更可靠的空间变化纹理先验 z^∈RH×W×C\\hat{z}\\in\\mathbb{R}^{H\\times W\\times C}z^∈RH×W×C。在此阶段,从 TPE 输出的 zzz 首先通过扩散过程添加噪声输出 zT∈RH×W×Cz_{T}\\in\\mathbb{R}^{H\\times W\\times C}zT∈RH×W×C,然后通过多次迭代的去噪过程生成先验 z^\\hat{z}z^。H×W×CH\\times W\\times CH×W×C 是先验的大小。请参阅补充材料以获取更详细的算法和结构。接下来,我们按顺序描述训练策略和推理过程。
3.2 第一阶段:潜在纹理先验提取
在此阶段,我们的目标是获得一个高质量的纹理先验来指导模糊去除。具体来说,我们使用 TPE(它引入了一个可学习的记忆库)在训练期间从大量无配对数据中学习纹理表示,从而提取空间变化的纹理先验 zzz。然后,为了充分利用纹理先验并增强模型能力,我们在去模糊网络中的多个尺度上集成了 TTformer,并通过空间自适应池化(SAP)将 zzz 馈送到每个尺度。下面我们介绍核心组件 TPE 和 TTformer。
图3: 纹理先验编码器(TPE)的结构,用于从无配对的模糊-清晰输入中获取空间变化的纹理先验。Idx(⋅)(\\cdot)(⋅) 表示提取得分最高的索引。Sel(⋅)(\\cdot)(⋅) 表示根据索引选择 token。
纹理先验编码器(TPE)。 如图3所示,TPE 由一个纹理记忆增强部分和一个纹理记忆迁移部分组成。在增强部分,我们初始化一组可学习的记忆(memory),并从富含纹理的清晰图像中提取 token 作为参考纹理模板来增强记忆。在迁移部分,我们从增强的记忆中搜索相似的 token,并用它们来表示输入模糊图像中的纹理模板。
具体来说,在增强部分,我们首先通过一个卷积层将清晰图像 sss 压缩到更高维空间,获得富含纹理的 token zs∈RH×W×Cz_{s}\\in\\mathbb{R}^{H\\times W\\times C}zs∈RH×W×C。然后,我们使用 zsz_{s}zs 来增强引入的可学习记忆 M∈RN×L\\mathcal{M}\\in\\mathbb{R}^{N\\times L}M∈RN×L。NNN 是记忆大小,在我们的模型中设置为 256。LLL 是记忆维度,等于 CCC。具体地,我们为 M\\mathcal{M}M 生成一个对应的注意力图,公式化为:
Attne=SoftMax(M⊗R(zs)),Attn_{e}=\\text{SoftMax}(\\mathcal{M}\\otimes\\text{R}(z_{s})),Attne=SoftMax(M⊗R(zs)), (1)
其中 Attne∈RN×HWAttn_{e}\\in\\mathbb{R}^{N\\times HW}Attne∈RN×HW 是每个记忆与富含纹理的 token 之间的相似度。SoftMax(⋅)(\\cdot)(⋅)、R(⋅)(\\cdot)(⋅) 和 ⊗\\otimes⊗ 分别表示 softmax 函数、reshape 操作和矩阵乘法。接下来,我们可以从所有富含纹理的 token zsz_{s}zs 计算增强的记忆 M^\\widehat{\\mathcal{M}}M,公式化为:
M^=M⊙FC(Attne⊗R(zs)),\\widehat{\\mathcal{M}}=\\mathcal{M}\\odot\\text{FC}(Attn_{e}\\otimes\\text{R}(z_{s})),M=M⊙FC(Attne⊗R(zs)), (2)
其中 ⊙\\odot⊙ 表示逐元素乘法。FC(⋅)(\\cdot)(⋅) 是用于在注意力聚合后精炼 token 的全连接层。这种设计允许记忆库学习所有清晰数据中有价值的纹理模板。
在迁移部分,我们也压缩模糊图像 bbb 并获得模糊 token zb∈RH×W×Cz_{b}\\in\\mathbb{R}^{H\\times W\\times C}zb∈RH×W×C。然后,我们从增强的记忆中搜索具有与模糊输入相似纹理模板的相似 token。生成的注意力图 Attnt∈RHW×NAttn_{t}\\in\\mathbb{R}^{HW\\times N}Attnt∈RHW×N 由下式给出:
Attnt=R(zb)⊗R(M^).Attn_{t}=\\text{R}(z_{b})\\otimes\\text{R}(\\widehat{\\mathcal{M}}).Attnt=R(zb)⊗R(M). (3)
我们为每个模糊 token 选择具有最高注意力图分数的增强记忆,然后将它们聚合为 TPE 的输出 zzz,公式化为:
z=R(Sel(Idx(Attnt);M^))z=\\text{R}(\\text{Sel}(\\text{Idx}(Attn_{t});\\widehat{\\mathcal{M}}))z=R(Sel(Idx(Attnt);M)) (4)
其中 Idx(⋅)(\\cdot)(⋅) 表示沿着注意力图的行提取具有最高排序分数的索引。Sel(⋅)(\\cdot)(⋅) 表示从增强的记忆中选择相应的 token 进行聚合。
与采用 token 加权和的原始自注意力(vanilla self-attention)不同,我们仅使用最相关的 token 以确保选定的记忆代表具有相似纹理模板的区域。与直接在图像空间中学习相比,所提出的特征空间先验对特征学习更鲁棒,训练更稳定。此外,TPE 足够鲁棒,能够从不同的无配对清晰图像中受益。我们在第 4.4 节提供了详细分析。
TPE的核心思想
TPE本质上是一个纹理字典学习和检索系统,它通过两个关键步骤工作:
- 构建纹理字典(从清晰图像学习各种纹理模式)
- 检索匹配纹理(为模糊图像的每个区域找到最合适的清晰纹理)
1. 纹理记忆增强部分(构建纹理字典)
想象你有一个\"纹理图书馆\"(记忆库M),它最初是空白的:
- 初始化:创建一个256×C大小的可学习记忆库M(256种可能的纹理模板,每种有C维特征)
- 输入清晰图像:将清晰图像s通过卷积压缩成特征图zs(H×W×C),这包含了图像中各种纹理信息
- 建立关联:
- 计算记忆库M与清晰图像特征zs之间的相似度(公式1)
- 通过这个相似度,让记忆库\"学习\"清晰图像中的各种纹理
- 更新记忆库:M̂ = M ⊙ FC(Attn_e ⊗ R(zs))(公式2)
关键点:这个过程让记忆库学习到从大量清晰图像中提取的有价值纹理模板,就像图书馆收集了各种书籍(纹理模式)。
2. 纹理记忆迁移部分(检索匹配纹理)
现在,面对一张模糊图像,我们需要为其每个区域找到最合适的清晰纹理:
- 输入模糊图像:将模糊图像b压缩成特征图zb(H×W×C)
- 检索过程:
- 计算模糊图像特征zb与增强记忆库M̂之间的相似度(公式3)
- 对于模糊图像的每个位置,找出记忆库中最匹配的那个纹理(公式4中的Idx和Sel操作)
- 将这些最匹配的纹理组合起来,形成输出z
关键区别:与普通自注意力(对所有匹配纹理加权平均)不同,TPE只选择最匹配的那个纹理。这就像在图书馆中,不是把所有相关的书都拿来读,而是精准地找到最适合解决当前问题的那一本书。
TTformer。 现有的基于 Transformer 的复原方法[22, 47, 58]在监督学习中取得了卓越的性能,但在无监督特征学习中尚未被探索。因此,我们引入 TTformer 层来有效地将获得的先验知识集成到无监督去模糊中。它由两个组件组成:滤波器调制的多头自注意力(FM-MSA)和变换调制的前馈网络(TM-FFN)。
具体来说,如图2(c)2(c)2(c)所示,对于输入特征 F\\mathcal{F}F 和输入先验 zzz,FM-MSA 利用自适应滤波操作来有效去除空间变化的模糊。详细地,我们使用两个三层卷积 Convs(⋅)(\\cdot)(⋅) 来预测滤波器的垂直和水平偏移 Δp∈RH×W×2K2\\Delta p\\in\\mathbb{R}^{H\\times W\\times 2K^{2}}Δp∈RH×W×2K2 和权重 Δm∈RH×W×K2\\Delta m\\in\\mathbb{R}^{H\\times W\\times K^{2}}Δm∈RH×W×K2,公式化为:
Δp,Δm=Convs(z),Convs(z),\\Delta p,\\Delta m=\\text{Convs}(z),\\text{Convs}(z),Δp,Δm=Convs(z),Convs(z), (5)
其中 KKK 是核大小。然后,以滤波后特征 F^∈RH×W×C\\hat{\\mathcal{F}}\\in\\mathbb{R}^{H\\times W\\times C}F^∈RH×W×C 中坐标为 (x,y)(x,y)(x,y) 的像素为例,滤波过程公式化为:
其中 F′=Norm(F)\\mathcal{F}^{\\prime}=\\text{Norm}(\\mathcal{F})F′=Norm(F) 表示归一化的输入特征 F∈RH×W×C\\mathcal{F}\\in\\mathbb{R}^{H\\times W\\times C}F∈RH×W×C。随后,视觉 token 可以表示如下:
Q=R(PDConv(F′)),\\mathcal{Q}=\\text{R}(\\text{PDConv}(\\mathcal{F}^{\\prime})),Q=R(PDConv(F′)),
K,V=R(PDConv(F^)),R(PDConv(F^)),\\mathcal{K},\\mathcal{V}=\\text{R}(\\text{PDConv}(\\hat{\\mathcal{F}} )),\\text{R}(\\text{PDConv}(\\hat{\\mathcal{F}})),K,V=R(PDConv(F^)),R(PDConv(F^)), (7)
其中 PDConv(⋅)(\\cdot)(⋅) 是 1×11\\times 11×1 逐点卷积和 3×33\\times 33×3 深度卷积。最后,我们遵循现有工作[58]生成转置注意力图(transposed-attention map)并与 V\\mathcal{V}V 执行点积以获得 FM-MSA 的最终输出 F^\\hat{\\mathcal{F}}F^。此过程可描述为:
F^=Conv(R(SoftMax(Q⊗KC)⊗V))⊕F,\\hat{\\mathcal{F}}=\\text{Conv}(\\text{R}(\\text{SoftMax}(\\frac{\\mathcal{Q}\\otimes \\mathcal{K}}{\\sqrt{C}})\\otimes\\mathcal{V}))\\oplus\\mathcal{F},F^=Conv(R(SoftMax(CQ⊗K)⊗V))⊕F, (8)
其中 CCC 是 token 的维度。⊕\\oplus⊕ 表示逐元素加法。自适应滤波的设计可以充分利用纹理先验,并显著提高模型恢复各种纹理的能力。
此外,如图2(d)所示,我们使用 TM-FFN,类似于[25, 53],来聚合来自 FM-MSA 输出的局部特征。详细地,TM-FFN 首先使用纹理先验 zzz 获得动态参数 γ,φ∈RH×W×C\\gamma,\\varphi\\in\\mathbb{R}^{H\\times W\\times C}γ,φ∈RH×W×C,然后通过以下公式调制输入特征 F\\mathcal{F}F:
其中 F′∈RH×W×C\\mathcal{F}^{\\prime}\\in\\mathbb{R}^{H\\times W\\times C}F′∈RH×W×C 是调制后的特征。最后,我们采用门控机制来增强特征编码,并通过以下公式获得 TM-FFN 的输出 F^∈RH×W×C\\hat{\\mathcal{F}}\\in\\mathbb{R}^{H\\times W\\times C}F^∈RH×W×C:
F^=Conv(GELU(PDConv(F′))⊙PDConv(F′))⊕F.\\hat{\\mathcal{F}}=\\text{Conv}(\\text{GELU}(\\text{PDConv}(\\mathcal{F}^{\\prime})) \\odot\\text{PDConv}(\\mathcal{F}^{\\prime}))\\oplus\\mathcal{F}.F^=Conv(GELU(PDConv(F′))⊙PDConv(F′))⊕F. (10)
优化目标。 我们的目标是通过 TPE 获得空间变化的纹理先验 zzz,并将其与整个循环结构联合训练。为此,我们遵循现有工作[3, 61],使用相同的对抗损失 LGAN\\mathcal{L}_{GAN}LGAN 和循环一致性损失 LCYC\\mathcal{L}_{CYC}LCYC 来监督训练。此外,为了尽可能保留高频纹理细节,我们提出了一种基于小波的对抗损失,公式化为:
其中 Φ(⋅)\\Phi(\\cdot)Φ(⋅) 表示使用小波变换提取高频分量。DN(⋅)DN(\\cdot)DN(⋅) 是去模糊网络。DS(⋅)D_{S}(\\cdot)DS(⋅) 是判别器,试图最大化去模糊图像和清晰图像之间的区分度。第一阶段的总目标函数 Ls1\\mathcal{L}_{s1}Ls1 是上述损失的加权和,公式化为:
Ls1=λGANLGAN+λCYCLCYC+λWaveLWave,\\mathcal{L}_{s1}=\\lambda_{GAN}\\mathcal{L}_{GAN}+\\lambda_{CYC}\\mathcal{L}_{CYC}+\\lambda_{Wave}\\mathcal{L}_{Wave},Ls1=λGANLGAN+λCYCLCYC+λWaveLWave, (12)
其中超参数 λGAN\\lambda_{GAN}λGAN、λCYC\\lambda_{CYC}λCYC 和 λWave\\lambda_{Wave}λWave 控制各项的重要性。
3.3 第二阶段:纹理先验生成
在此阶段,我们联合训练 DM 和整个循环结构,使去噪网络生成有效的纹理先验以增强去模糊网络。具体来说,遵循现有工作[5, 25, 53],我们的 DM 由前向扩散过程和后向去噪过程组成。在前向扩散过程中,我们首先采用 TPE(其参数已冻结)来生成纹理先验 z∈RH×W×Cz\\in\\mathbb{R}^{H\\times W\\times C}z∈RH×W×C 作为真实值,然后通过扩散过程向 zzz 添加噪声,得到与纯高斯噪声具有相同分布的 zT∈RH×W×Cz_{T}\\in\\mathbb{R}^{H\\times W\\times C}zT∈RH×W×C。在后向去噪过程中,我们使用去噪网络,以从模糊输入通过卷积层提取的特征 c∈RH×W×Cc\\in\\mathbb{R}^{H\\times W\\times C}c∈RH×W×C 为条件,并以 zzz 为目标,生成重构的纹理先验 z^∈RH×W×C\\hat{z}\\in\\mathbb{R}^{H\\times W\\times C}z^∈RH×W×C。
扩散过程。 遵循现有工作[13, 43],我们从 zzz 开始执行前向马尔可夫过程,通过 TTT 次迭代逐步添加高斯噪声,如下所示:
q(zT∣z)=N(zT;αˉTz,(1−αˉT)I),q(z_{T}\\mid z)=\\mathcal{N}(z_{T};\\sqrt{\\bar{\\alpha}_{T}}z,(1-\\bar{\\alpha}_{T})\\mathrm{I}),q(zT∣z)=N(zT;αˉTz,(1−αˉT)I), (13)
其中 TTT 是迭代步数的总数。N(⋅)\\mathcal{N}(\\cdot)N(⋅) 表示高斯分布。αt=1−βt\\alpha_t=1-\\beta_tαt=1−βt,αˉt=∏i=1tαi\\bar{\\alpha}_t=\\prod_{i=1}^{t}\\alpha_iαˉt=∏i=1tαi,其中 t∈{1,…,T}t\\in\\{1,\\ldots,T\\}t∈{1,…,T},β1:T∈(0,1)\\beta_{1:T}\\in(0,1)β1:T∈(0,1),是通过重参数化[21]的迭代推导得出的超参数,用于控制每一步添加的噪声量。
去噪过程。 为了从高斯噪声生成纹理先验 z^\\hat{z}z^,我们执行从 zTz_TzT 到 zzz 的后向马尔可夫链,并通过 TTT 次迭代逐步去除噪声。在从 ztz_tzt 到 zt−1z_{t-1}zt−1 的逆步中:
其中 ϵ\\epsilonϵ 表示 ztz_tzt 中的噪声,它是唯一需要在每一步使用去噪网络估计的不确定变量。因此,我们使用一个由一系列堆叠残差块组成的神经网络,表示为 ϵθ\\epsilon_{\\theta}ϵθ,以条件 ccc 来估计噪声。然后,我们将 ϵθ\\epsilon_{\\theta}ϵθ 代入方程(14)得到:
zt−1 = 1αt(zt − 1−αt1−αˉtϵθ(zt,c,t)) + 1 − αtϵt,z_{t-1}\\!=\\!\\frac{1}{\\sqrt{\\alpha_{t}}}(z_{t}\\!-\\!\\frac{1-\\alpha_{t}}{\\sqrt{1- \\bar{\\alpha}_{t}}}\\epsilon_{\\theta}(z_{t},c,t))\\!+\\!\\sqrt{1\\!-\\!\\alpha_{t}} \\epsilon_{t},zt−1=αt1(zt−1−αˉt1−αtϵθ(zt,c,t))+1−αtϵt, (15)
其中 ϵt ∼ N(0,I)\\epsilon_{t}\\!\\sim\\!\\mathcal{N}(0,\\mathrm{I})ϵt∼N(0,I)。ϵθ(zt,c,t)\\epsilon_{\\theta}(z_{t},c,t)ϵθ(zt,c,t) 是由去噪网络估计的噪声。通过重复方程(15)中的 TTT 次采样迭代,我们可以获得重构的纹理先验 z^\\hat{z}z^。使用残差块作为去噪网络的目的是确保输入和输出的分辨率相同,同时最小化模型参数。如图2(a)所示,去噪网络的输出 z^\\hat{z}z^ 最终用于指导去模糊网络。与其他纹理先验生成方法相比,我们的 DM 更有效。我们在第 4.4 节提供了详细分析。
优化目标。 我们的目标是联合训练去噪网络 ϵθ\\epsilon_{\\theta}ϵθ 和整个循环结构。为此,我们在方程(12)中的 Ls1\\mathcal{L}_{s1}Ls1 基础上额外加入了扩散损失 Ldiff\\mathcal{L}_{diff}Ldiff,公式化为:
Ls2=Ls1+λdiffLdiff, Ldiff=∥z−z^∥1 .\\mathcal{L}_{s2}=\\mathcal{L}_{s1}+\\lambda_{diff}\\mathcal{L}_{diff},\\ \\ \\mathcal{L }_{diff}=\\|z-\\hat{z}\\|_{1}\\ .Ls2=Ls1+λdiffLdiff, Ldiff=∥z−z^∥1 . (16)
3.4 推理
在推理过程中,仅给定一个模糊输入图像 bbb,我们首先从模糊输入中提取模糊特征 ccc 作为去噪网络的条件。然后,我们随机采样纯高斯噪声 zTz_TzT。在方程(15)中进行 TTT 次去噪过程后,去噪网络使用 zTz_TzT 和 ccc 生成纹理先验 z^\\hat{z}z^。最后,我们将 z^\\hat{z}z^ 馈送到由 TTformer 组成的去模糊网络中以计算去模糊结果。
以下是流程的全面梳理
整体框架(TP-Diff)
目标:从非配对模糊-清晰图像中学习空间变化的纹理先验,指导去模糊任务。
核心组件:
- 纹理先验编码器(TPE):提取模糊图像的纹理先验。
- 扩散模型(DM):生成纹理先验(非直接生成清晰图像)。
- 去模糊网络:利用纹理先验去除模糊(含TTformer层)。
- 再模糊网络:将清晰图像合成模糊图像(仅训练阶段使用)。
训练策略:分两阶段(避免联合训练的不稳定性)。
第一阶段训练:潜在纹理先验提取
目标:训练TPE提取高质量纹理先验 zzz,并联合优化循环结构。
流程:
-
输入:非配对模糊图像 b∈Bb \\in \\mathcal{B}b∈B 和清晰图像 s∈Ss \\in \\mathcal{S}s∈S。
-
TPE提取纹理先验 zzz:
- 纹理记忆增强(清晰图像 sss 引导):
- 压缩 sss 为纹理丰富token zs∈RH×W×Cz_s \\in \\mathbb{R}^{H \\times W \\times C}zs∈RH×W×C。
- 计算记忆库 M∈RN×L\\mathcal{M} \\in \\mathbb{R}^{N \\times L}M∈RN×L 的注意力图:
Attne=SoftMax(M⊗R(zs))\\text{Attn}_e = \\text{SoftMax}(\\mathcal{M} \\otimes \\text{R}(z_s))Attne=SoftMax(M⊗R(zs)) - 更新记忆库:
M^=M⊙FC(Attne⊗R(zs))\\widehat{\\mathcal{M}} = \\mathcal{M} \\odot \\text{FC}(\\text{Attn}_e \\otimes \\text{R}(z_s))M=M⊙FC(Attne⊗R(zs))
- 纹理记忆迁移(模糊图像 bbb 应用):
- 压缩 bbb 为模糊token zbz_bzb。
- 检索相似纹理:
Attnt=R(zb)⊗R(M^)\\text{Attn}_t = \\text{R}(z_b) \\otimes \\text{R}(\\widehat{\\mathcal{M}})Attnt=R(zb)⊗R(M) - 输出先验 zzz:
z=R(Sel(Idx(Attnt);M^))z = \\text{R}(\\text{Sel}(\\text{Idx}(\\text{Attn}_t); \\widehat{\\mathcal{M}}))z=R(Sel(Idx(Attnt);M))
(仅选择最相关token,提升鲁棒性)
- 纹理记忆增强(清晰图像 sss 引导):
-
循环结构训练:
- 去模糊路径:sb=Deblur(b,z)s_b = \\text{Deblur}(b, z)sb=Deblur(b,z)
- 再模糊路径:bs=Reblur(s)b_s = \\text{Reblur}(s)bs=Reblur(s)
- 重建路径:s^=Deblur(bs,z)\\hat{s} = \\text{Deblur}(b_s, z)s^=Deblur(bs,z), b^=Reblur(sb)\\hat{b} = \\text{Reblur}(s_b)b^=Reblur(sb)
-
损失函数:
- 对抗损失 LGAN\\mathcal{L}_{\\text{GAN}}LGAN:确保生成图像分布匹配目标域。
- 循环一致性损失 LCYC\\mathcal{L}_{\\text{CYC}}LCYC:约束 b→sb→b^≈bb \\to s_b \\to \\hat{b} \\approx bb→sb→b^≈b, s→bs→s^≈ss \\to b_s \\to \\hat{s} \\approx ss→bs→s^≈s。
- 小波对抗损失 LWave\\mathcal{L}_{\\text{Wave}}LWave(创新点):保留高频纹理细节
LWave=Es[logDS(Φ(s))]+Eb[log(1−DS(Φ(DN(b)))]\\mathcal{L}_{\\text{Wave}} = \\mathbb{E}_{s}[\\log D_S(\\Phi(s))] + \\mathbb{E}_{b}[\\log(1 - D_S(\\Phi(\\text{DN}(b)))]LWave=Es[logDS(Φ(s))]+Eb[log(1−DS(Φ(DN(b)))]
(Φ(⋅)\\Phi(\\cdot)Φ(⋅):小波变换提取高频分量) - 总损失:
Ls1=λGANLGAN+λCYCLCYC+λWaveLWave\\mathcal{L}_{s1} = \\lambda_{\\text{GAN}} \\mathcal{L}_{\\text{GAN}} + \\lambda_{\\text{CYC}} \\mathcal{L}_{\\text{CYC}} + \\lambda_{\\text{Wave}} \\mathcal{L}_{\\text{Wave}}Ls1=λGANLGAN+λCYCLCYC+λWaveLWave
(超参数 λGAN=1,λCYC=0.1,λWave=0.2\\lambda_{\\text{GAN}}=1, \\lambda_{\\text{CYC}}=0.1, \\lambda_{\\text{Wave}}=0.2λGAN=1,λCYC=0.1,λWave=0.2)
第二阶段训练:纹理先验生成
目标:冻结TPE,训练扩散模型生成纹理先验 z^\\hat{z}z^,增强去模糊网络。
流程:
-
扩散过程(加噪):
- 用冻结TPE生成真实先验 zzz。
- 通过 TTT 步马尔可夫过程添加高斯噪声:
q(zT∣z)=N(zT;αˉTz,(1−αˉT)I)q(z_T \\mid z) = \\mathcal{N}(z_T; \\sqrt{\\bar{\\alpha}_T} z, (1 - \\bar{\\alpha}_T)\\mathrm{I})q(zT∣z)=N(zT;αˉTz,(1−αˉT)I)
(αˉt=∏i=1tαi\\bar{\\alpha}_t = \\prod_{i=1}^{t} \\alpha_iαˉt=∏i=1tαi, αt=1−βt\\alpha_t = 1 - \\beta_tαt=1−βt,βt\\beta_tβt 控制噪声强度)
-
去噪过程(生成先验):
- 从噪声 zTz_TzT 重建 z^\\hat{z}z^,条件为模糊图像特征 ccc(卷积提取):
zt−1=1αt(zt−1−αt1−αˉtϵθ(zt,c,t))+1−αtϵtz_{t-1} = \\frac{1}{\\sqrt{\\alpha_t}} \\left( z_t - \\frac{1 - \\alpha_t}{\\sqrt{1 - \\bar{\\alpha}_t}} \\epsilon_\\theta(z_t, c, t) \\right) + \\sqrt{1 - \\alpha_t} \\epsilon_tzt−1=αt1(zt−1−αˉt1−αtϵθ(zt,c,t))+1−αtϵt
(ϵθ\\epsilon_\\thetaϵθ:去噪网络,5层ResBlock,参数量0.1M)
- 从噪声 zTz_TzT 重建 z^\\hat{z}z^,条件为模糊图像特征 ccc(卷积提取):
-
损失函数:
- 扩散损失 Ldiff\\mathcal{L}_{\\text{diff}}Ldiff:L1约束生成先验 z^\\hat{z}z^ 接近TPE输出 zzz
Ldiff=∥z−z^∥1\\mathcal{L}_{\\text{diff}} = \\| z - \\hat{z} \\|_1Ldiff=∥z−z^∥1 - 总损失:
Ls2=Ls1+λdiffLdiff(λdiff=1)\\mathcal{L}_{s2} = \\mathcal{L}_{s1} + \\lambda_{\\text{diff}} \\mathcal{L}_{\\text{diff}} \\quad (\\lambda_{\\text{diff}}=1)Ls2=Ls1+λdiffLdiff(λdiff=1)
- 扩散损失 Ldiff\\mathcal{L}_{\\text{diff}}Ldiff:L1约束生成先验 z^\\hat{z}z^ 接近TPE输出 zzz
推理阶段
输入:单张模糊图像 bbb。
步骤:
- 提取条件特征 c=Conv(b)c = \\text{Conv}(b)c=Conv(b)。
- 采样高斯噪声 zT∼N(0,I)z_T \\sim \\mathcal{N}(0, \\mathrm{I})zT∼N(0,I)。
- 扩散模型生成先验 z^\\hat{z}z^:
- 通过 T=8T=8T=8 步去噪(公式15),生成 z^\\hat{z}z^。
- 去模糊网络输出:
- s^=Deblur(b,z^)\\hat{s} = \\text{Deblur}(b, \\hat{z})s^=Deblur(b,z^)。
关键模块设计
1. 纹理迁移Transformer层(TTformer)
作用:在去模糊网络中高效利用纹理先验。
结构:
- FM-MSA(滤波调制多头自注意力):
- 自适应滤波:用先验 zzz 预测滤波器偏移 Δp\\Delta pΔp 和权重 Δm\\Delta mΔm:
Δp,Δm=Convs(z),Convs(z)\\Delta p, \\Delta m = \\text{Convs}(z), \\text{Convs}(z)Δp,Δm=Convs(z),Convs(z) - 调制特征:对输入特征 F\\mathcal{F}F 滤波:
F^(x,y)=∑(Δm(x,y)∗F′(x+Δpx,y+Δpy))\\hat{\\mathcal{F}}(x,y) = \\sum \\left( \\Delta m(x,y) * \\mathcal{F}\'(x + \\Delta p_x, y + \\Delta p_y) \\right)F^(x,y)=∑(Δm(x,y)∗F′(x+Δpx,y+Δpy)) - 自注意力:生成 Q,K,V\\mathcal{Q}, \\mathcal{K}, \\mathcal{V}Q,K,V 并计算输出(公式8)。
- 自适应滤波:用先验 zzz 预测滤波器偏移 Δp\\Delta pΔp 和权重 Δm\\Delta mΔm:
- TM-FFN(变换调制前馈网络):
- 用先验 zzz 动态调制特征:
γ,φ=Convs(z),F′=Norm(F)⊙γ⊕φ\\gamma, \\varphi = \\text{Convs}(z), \\quad \\mathcal{F}\' = \\text{Norm}(\\mathcal{F}) \\odot \\gamma \\oplus \\varphiγ,φ=Convs(z),F′=Norm(F)⊙γ⊕φ - 门控机制增强输出(公式10)。
- 用先验 zzz 动态调制特征:
2. 多尺度设计
- 纹理先验 zzz 通过空间自适应池化(SAP)输入到不同尺度的TTformer层。
- 去模糊网络层级配置:
[4,6,6,4]
个TTformer层,通道数 C=48C=48C=48。
创新点总结
- 首篇扩散模型用于非配对复原:DM生成低维纹理先验(非完整图像),减少迭代步数(T=8T=8T=8)。
- TPE记忆机制:从大量非配对数据学习鲁棒纹理表示。
- TTformer自适应滤波:通过FM-MSA处理空间变化模糊。
- 小波对抗损失:保留高频纹理细节。
- 两阶段训练:解耦先验学习和生成过程,提升稳定性。
至此梳理完毕
4 实验
4.1 数据集和指标
我们在广泛使用的数据集上评估我们的方法:GoPro [31], HIDE [42], RealBlur [38], RB2V_Street [34], 和 RSBlur [39]。为了公平比较,我们遵循现有工作[3, 35],将 GoPro、RB2V_Street 和 RSBlur 数据集的训练集拆分为独立的模糊和清晰图像部分,以构成用于训练的无配对模糊-清晰对。我们进行了三组实验:i) 使用 GoPro 训练集进行训练,并在 GoPro、HIDE、RealBlur-R 和 RealBlur-J 的测试集上进行测试。ii) 使用 RB2V_Street 训练集进行训练,并在其测试集上进行测试。iii) 使用 RSBlur 训练集进行训练,并在其测试集上进行测试。我们保持与先前工作[3, 35]相同的评估指标 PSNR(dB) 和 SSIM。
4.2 实现细节
我们遵循现有工作[3, 63]使用相同的判别器,并使用 UNet [41] 作为再模糊网络。在去模糊网络中,我们设置 TTformer 的数量为 [4,6,6,4],注意力头数为 [1,2,4,8],通道数 CCC 为 48,自适应滤波的核大小 KKK 为 5。在去噪网络中,我们将 ResBlock 的数量设置为 5,迭代步数 TTT 设置为 8。训练期间,超参数 λGAN\\lambda_{GAN}λGAN、λCYC\\lambda_{CYC}λCYC、λWave\\lambda_{Wave}λWave 和 λdiff\\lambda_{diff}λdiff 分别设置为 1、0.1、0.2 和 1。我们使用 Adam 优化器,β1=0.9\\beta_{1}=0.9β1=0.9 和 β2=0.999\\beta_{2}=0.999β2=0.999,两个训练阶段的学习率均为 1×10−41\\times 10^{-4}1×10−4。每个阶段的 epoch 数为 200。我们将批大小(batch size)设置为 8,输入块大小(patch size)为 256×256256\\times 256256×256,并使用随机水平和垂直翻转进行数据增广。所有实验均基于 PyTorch,并在 NVIDIA RTX A6000 GPU 上进行训练。
4.3 与最先进方法的比较
我们将我们的方法与 16 个 SOTA 模型 [2, 3, 11, 20, 24, 27, 28, 35, 37, 46, 49, 61, 63] 进行比较。为了公平比较,我们从其原始论文或官方发布的代码复现结果中获取性能。
定量比较。 在 GoPro [31], HIDE [42], RealBlur-R [38], 和 RealBlur-J [38] 测试集上的性能比较如表 1 所示。TP-Diff 优于最新的无配对训练方法(例如 UCL [49])。这是因为我们通过 DM 生成的纹理先验可以有效地处理空间变化的模糊。值得注意的是,尽管最新的 SEMGUD [3] 提出了一种自增强策略获得了良好的性能,但该方法通过引入预训练的全监督模型来指导模型训练,缺乏公平性。因此,我们训练了另一个版本的模型,使用类似的策略(名为 TP-Diff-se)进行优化,以进行公平比较。表 1 显示,在使用更少参数的情况下,我们的方法也取得了更好的结果,证明了其有效性。
此外,我们还在真实的 RB2V_Street [34] 和 RSBlur [39] 数据集上验证了 TP-Diff 的泛化能力。表 2 显示,TP-Diff 在 RB2V_Street 和 RSBlur 上分别比其他基于无配对训练的方法高出 0.66 dB 和 0.23 dB。结果验证了 TP-Diff 具有很强的泛化能力,并且可以通过生成的纹理先验有效处理各种真实模糊。请参阅补充材料以获取更多定量结果和效率分析。
定性比较。 我们在图 4 中评估了不同方法的视觉质量。结果表明,TP-Diff 在视觉质量上有了很大的提升,特别是在具有细节纹理的区域。例如,在图 4 的第一行和第五行,TP-Diff 可以恢复更清晰的窗户。结果验证了 TP-Diff 可以利用 DM 生成纹理先验,这些先验有助于产生更精细的结果。请参阅补充材料以获取更多视觉结果。
4.4 消融研究
在本节中,我们探讨了每个关键组件的有效性。所有消融研究在相同设置下训练,并在 GoPro [31] 上进行评估以确保公平比较。
单个组件的有效性。 我们在表 3 和图 5 中构建消融实验,以证明 TP-Diff 中每个组件的有效性。我们从完整模型中移除每个组件以比较性能,并保持相同的模型大小以确保公平性。当不使用 DM(“w/o DM”)时,PSNR 降低了 1.67dB,这表明 DM 可以生成有价值的纹理先验以增强去模糊性能。当我们移除 TPE(“w/o TPE”)和 TTformer(“w/o TTformer”)时,PSNR 分别下降了 0.77dB 和 0.94dB,并且视觉质量严重下降。这证明 TPE 可以产生准确的纹理先验,而 TTformer 可以利用纹理先验有效去除模糊。当我们移除多尺度学习(“w/o MS”)、仅在第二阶段训练 DM(“w/o JT”)以及移除基于小波的对抗损失(“w/o WaveLoss”)时,性能也会下降。这表明这些组件在提高模型能力方面是有效的。总体而言,我们的完整模型达到了 28.13 dB 的 PSNR 和更好的视觉质量,证明了每个组件的有效性。
TPE 的有效性。 我们在表 4 中构建了几个实验来证明 TPE 的有效性。(a) 和 (h) 表明,与 [25, 5] 中使用的潜在编码器相比,TPE 更有利于从无配对输入中提取纹理先验。(b)、© 和 (h) 表明,结合增强部分和迁移部分会带来更高的性能,验证了 TPE 中每个组件的必要性。此外,(d) 和 (h) 表明,所提出的特征空间先验对特征学习更鲁棒,对训练更稳定。为了证明 TPE 足够鲁棒,能够从不同的无配对清晰图像中受益,我们比较了 (e) 聚类引导的采样图像、(f) 重用单个清晰图像(取十次的平均值)和 (h) 随机采样清晰输入的性能。得益于记忆机制,即使在随机采样情况下,TPE 也能够学习有益的纹理。此外,根据 (g)-(i),更大的记忆大小 NNN 有助于学习更多样化的纹理,但会降低模型效率。在权衡之后,我们在模型中将 NNN 设置为 256。
DM 的有效性。 为了证明 DM 在生成纹理先验中的必要性,我们在表 5 中将其与其他方法 [48, 10, 52] 进行了比较。DM 的性能优于其他方法,证明了在无配对复原中生成纹理先验的优势。此外,在图 6 中,性能与迭代步数 TTT 呈正相关,当 TTT 超过 8 时增益逐渐减小。这表明只需少量迭代即可重建纹理先验。在权衡之后,我们将 TTT 设置为 8。
FM-MSA 的有效性。 我们在表 6 中比较了 (a) 无滤波、(b) 原始滤波(vanilla filtering)、© 可变形滤波 [7] 和 (d) 可分离滤波 [44],以展示图 2© 中提出的 FM-MSA 内部自适应滤波的可靠性。它们要么不能自适应地改变不同区域的权重,要么不利于捕捉非局部模糊。我们的方法能够处理更复杂的模糊,并且性能优于其他方法。
5 结论
在本文中,我们提出了一种新颖的基于扩散模型的框架,用于学习纹理先验(TP-Diff)。具体来说,我们通过执行扩散模型来生成空间变化的纹理先验,从而恢复去模糊图像。为此,我们引入了 TPE 来编码模糊输入的纹理先验,以及 TTformer 层来利用纹理先验恢复纹理细节。这种设计充分利用了无配对清晰图像中的纹理知识,并为其他无配对复原任务提供了启发。大量实验表明,我们的 TP-Diff 优于现有的 SOTA 方法。
利用扩散模型从无配对数据中学习去模糊纹理先验
补充材料
在本补充材料中,第 A1 节说明了我们 TP-Diff 中的详细架构。第 A2 节描述了详细的训练和推理算法。第 A3 节分析了模型效率。第 A4 节详细描述了我们方法中的纹理先验与 HiDiff [5] 的区别。第 A5 节详细解释了实验中提到的自增强策略。第 A6 节分析了性能上限。第 A7 节描述了我们方法中使用的数据集。第 A8 节分析了局限性。最后,第 A9 节展示了更多的定量和定性比较结果。
A1 架构细节
如主论文第 3.1 节所述。去模糊网络和再模糊网络共同构成了整个循环结构,分别设计用于去除和合成模糊。在去模糊网络内部,为了充分利用纹理先验并增强模型能力,我们在多个尺度上集成了纹理迁移Transformer(TTformer),并将纹理先验 z^\\hat{z}z^ 馈送到其中。
具体来说,我们在图 A1 中说明了去模糊网络的详细架构。我们遵循现有方法 [58],通过在每个尺度上堆叠一些 TTformer 层来学习特征,其中标明了层数。在每个 TTformer 层中,包含一个滤波器调制的多头自注意力(FM-MSA,参见主论文图2©)和一个变换调制的前馈网络(TM-FFN,参见主论文图2(d))。去模糊网络的参数为 11.8M。再模糊网络基于标准 U-Net 结构的残差块,参数大小为 29.2 MB,并且仅在训练期间使用。
此外,我们使用一个由五个堆叠的 ResBlock 组成的神经网络,表示为 eθe_{\\theta}eθ,来估计噪声。使用 ResBlock 作为去噪网络的目的是确保输入和输出的分辨率相同,同时最小化模型参数。去噪网络的参数为 0.1M。
A2 算法
TP-Diff 的第一阶段和第二阶段训练算法分别在算法 1 和算法 2 中展示。TP-Diff 的推理算法在算法 3 中展示。
算法 1: TP-Diff 训练:第一阶段
A3 效率
我们在主论文中报告了与其他最先进方法相比的参数和运行时间,本节详细分析了我们方法中核心组件的有效性。具体来说,在推理期间,我们的 TP-Diff 参数为 11.89M,计算开销为 52.7G MACs(乘加操作)。值得注意的是,我们的计算开销也低于最新的方法 SEMGUD(TP-Diff:52.7G vs. SEMGUD:63.6G)。在我们的 TP-Diff 中,用于先验重建的扩散模型参数为 0.12M,在 3090 GPU 上输入 256×256 时的运行时间为 5.2ms,其中 8 次迭代总共消耗了 9.2G MACs。虽然我们使用了扩散模型,但它只占整体模型开销的一小部分,证明了我们方法的效率。
A4 与 HiDiff [5] 的先验差异
需要强调的是,我们的纹理先验与 HiDiff [5] 中的清晰先验有显著不同,原因如下:
- 所获先验的能力不同: 我们不同区域的纹理先验仅用于处理相应区域的模糊。
- 应用场景不同: HiDiff 中用于生成先验的监督来自配对数据,对于无配对输入不可行。受益于我们的 TPE,TP-Diff 可以从无配对数据中学习纹理先验,并且对于不同的清晰输入足够鲁棒。请注意,这是首次尝试将扩散模型引入无配对复原,并可能启发其他无配对任务。
- 用于生成先验的去噪网络结构不同: 我们的 TP-Diff 使用 CNN 构成去噪网络,而 HiDiff 使用 MLP。相比之下,我们的去噪网络参数更少(TP-Diff: 0.12M vs. HiDiff: 0.44M),在 3090 GPU 上输入 256×256 时具有可比拟的运行时间(TP-Diff: 5.2ms vs. HiDiff: 3.4ms)。
图 A1: 去模糊网络的网络结构。
我们纹理先验的空间多样性体现在,不同区域的先验仅用于处理对应的区域。相比之下,HiDiff 使用一组具有特定数量的无序先验,它无法明确表示不同区域的模糊。我们在主论文的表 4 中比较了它们的性能,证明了我们 TP-Diff 中生成的先验的优势。
A5 关于 SEMGUD [3] 中的自增强策略
在主论文的表 1 中,最新的 SEMGUD [3] 提出了一种自增强策略以获得良好的性能,该方法通过引入预训练的全监督模型来指导模型训练,缺乏公平性。如 SEMGUD 补充材料的 D 部分所述,为了训练稳定性,它在从模糊输入估计先验之前引入了预训练的 NAFNet(在 GoPro 上 PSNR 为 33.69 dB)作为额外的去模糊模型,从而带来了更多的性能提升。相比之下,TP-Diff 通过直接使用无配对数据从头开始训练更加公平。因此,我们训练了另一个版本的模型,使用类似的策略(名为 TP-Diff-se)进行优化,以进行公平比较。实验结果表明,在使用相同策略时,我们也获得了更好的性能(TP-Diff-se:30.16dB vs. SEMGUD:29.06dB)。
A6 关于性能上限
值得强调的是,在第一阶段(即,不涉及扩散模型),我们的模型使用无配对的模糊-清晰图像作为输入。在这种情况下,模型性能受限于无配对清晰图像的选择,如果直接使用完全配对的模糊-清晰图像作为输入,则性能达到上限。理论上,这也代表了第二阶段可以达到的上限。如果直接使用配对数据输入,模型性能达到上限(GoPro: 33.46dB/0.965, HIDE: 31.52dB/0.945)。此外,从主论文表 1 中 HiDiff 的结果也可以注意到,当使用完全配对输入时,我们的方法也能生成更有益的纹理先验并产生更好的结果。
A7 更多数据集细节
我们在广泛使用的数据集上评估我们的方法:GoPro[31], HIDE[42], RealBlur[38], RB2V_Street[34], 和 RSBlur[39]。
- GoPro[31] 数据集包含 2,103 对训练对和 1,111 对测试对。
- HIDE[42] 数据集仅包含 2,025 对测试图像对。
- RealBlur[38] 数据集包含两个子集:RealBlur-R 和 RealBlur-J。每个子集包含 980 对测试对。
- RB2V_Street[34] 数据集包含 9,000 对训练对和 2,053 对测试对。
- RSBlur[39] 数据集包含 8,878 对训练对和 3,360 对测试对。
在训练期间,我们的方法需要无配对的模糊图像集 B\\mathcal{B}B 和清晰图像集 S\\mathcal{S}S。为了公平比较,我们遵循现有工作 [3, 15, 35] 构建训练数据。具体来说,我们以特定的 0.6:0.4 的比例将 GoPro(包含 2,103 个图像对)、RSBlur(包含 13,358 个图像对)和 RB2V_Street(包含 11,000 个图像对)数据集的训练集拆分为两个捕获不同场景的不相交子集。在第一个子集中,我们选择模糊图像形成模糊图像集 B\\mathcal{B}B,而在第二个子集中,我们选择清晰图像构建清晰集 S\\mathcal{S}S。训练图像集和测试图像集的统计信息报告在表 A1 中。
基于此,我们进行了三组实验:i) 使用 GoPro 训练集进行训练,并在 GoPro、HIDE、RealBlur-R 和 RealBlur-J 的测试集上测试。ii) 使用 RB2V_Street 训练集进行训练,并在其测试集上测试。iii) 使用 RSBlur 训练集进行训练,并在其测试集上测试。
A8 局限性
尽管我们的纹理先验可以处理空间变化的模糊,但需要生成的纹理先验的分辨率会随着输入分辨率的增加而增加。这意味着扩散模型的计算量会增加。因此,期望使扩散模型学习一组固定数量的纹理先验来学习清晰特征,以避免显著增加计算成本。
此外,更强大的再模糊是提高性能的重要因素之一。然而,TP-Diff 的核心是使强大的 DM 能够通过预测未知的纹理先验来辅助去模糊过程。为了实现这一点,我们提出了 TPE 来监督 DM 训练并学习生成空间变化的纹理先验。未来我们将进一步探索用于提高再模糊性能的 DM。
A9 更多结果
在本节中,我们首先提供实验来验证扩散模型的有效性。然后我们分析损失函数中超参数的敏感性。最后,我们展示更多的可视化结果。
超参数 λWave\\lambda_{Wave}λWave 的影响。 为了探索我们在方程(11)中提出的基于小波的对抗损失的影响,我们讨论了不同的 λWave\\lambda_{Wave}λWave,如图 A2 所示。实验结果表明,过小的 λWave\\lambda_{Wave}λWave 无法有效保留纹理结构,而过大的 λWave\\lambda_{Wave}λWave 会影响图像的光照并降低性能。因此,我们在模型中经验性地将 λWave\\lambda_{Wave}λWave 设置为 0.2。
超参数 KKK 的影响。 为了展示主论文图2©中 FM-MSA 内部自适应滤波的可靠性,我们在图 A3 中分析了核大小 KKK 对描述自适应滤波中复杂模糊的影响。性能与 KKK 呈正相关。这证明了我们的自适应滤波在处理复杂模糊方面的强大潜力。虽然更大的 KKK 将允许参考更多像素,但它也会增加计算开销。我们最终将 KKK 设置为 5。
交叉验证实验。 在表 A2 中,我们遵循[18, 19]使用 RealBlur-J 和 RSBlur 进行交叉验证以验证泛化能力。结果表明,与其他无配对训练方法相比,我们的 TP-Diff 能够实现更好的泛化能力。值得注意的是,将我们方法的交叉验证结果与其他广义去模糊方法进行比较是不公平的,因为无配对输入本身已经比配对输入更具挑战性。此外,TP-Diff 的核心是通过引入预测有益纹理先验的扩散模型来辅助去模糊过程,而不是学习模糊退化模板。
更多视觉结果 为了进一步验证我们方法的有效性,我们在六个不同的基准测试上展示了所提出的 TP-Diff 与其他先进方法之间的更多比较结果。在 GoPro[31], HIDE[42], RealBlur-J[38], RealBlur-R[38], RSBlur[39], 和 RB2V_Street[34] 上的结果分别如图 A4, 图 A5, 图 A6, 图 A7, 图 A8, 和 图 A9 所示。