FrePrompter: Frequency self-prompt for all-in-one image restoration
摘要
基于深度学习的模型在图像恢复方面取得了前所未有的成功。然而,现有的方法局限于特定任务的恢复,当退化类型发生变化时,模型性能并不理想。在本文中,我们提出了一种新颖的提示学习方法,称为频率自提示(FSP),专为图像恢复定制。受频率特性的启发,FSP利用输入图像的退化信息生成频率提示,动态引导恢复网络去除相应的损坏。一方面,频率表示可以分离图像退化和内容成分,这使得学习退化信息更加有效。另一方面,频域自然地编码了全局分布的特定退化信息。我们利用快速可分离卷积(FSP)构建了一个用于一体化图像修复的通用模型,称为FrePrompter,它无需任何退化先验知识即可应用于各种修复任务。
引言
最近,提示学习[8]因其参数高效微调能力而备受关注。受此启发,我们提出了一种名为频率自提示(FSP)的定制化提示学习方法,用于一体化图像修复。FSP利用退化图像中的退化信息生成频率提示,该提示动态引导修复网络。 我们方法的核心见解源于图像恢复任务中的频率特性。一方面,如图1所示,频率表示在一定程度上可以分离图像退化和内容成分。此前诸如Fourmer [9]和FECNet [10]等研究也已表明了傅里叶变换的这一重要特性。该属性使得在频域中学习降质表示更为有效。另一方面,频域天生包含全局属性[11],这可以自然地编码全局分布的特定退化信息。我们利用FSP建立了一个通用模型用于一体化图像恢复。实验结果表明,如图2所示,我们的FrePrompter在一体化图像恢复任务上取得了最先进的性能。
方法
Frequency self-prompt
快速傅里叶变换是一种广泛用于分析图像频率成分的技术。
给定一张图像x∈RC×H×Wx\in R^{C\times H\times W }x∈RC×H×W
F(x)(u,v)=1HW∑h=0H−1∑w=0W−1x(h,w)e−j2π(hHu+wWv) \mathcal{F}(x)(u,v) = \frac{1}{\sqrt{HW}} \sum_{h=0}^{H-1} \sum_{w=0}^{W-1} x(h,w) e^{-j 2\pi \left( \frac{h}{H}u + \frac{w}{W}v \right)} F(x)(u,v)=HW1h=0∑H−1w=0∑W−1x(h,w)e−j2π(Hhu+Wwv)
其中F(x)(u,v)\mathcal{F}(x)(u,v)F(x)(u,v)代表复杂的频率值。
幅度分量A(x)(u,v)A(x)(u,v)A(x)(u,v)和相位分量P(x)(u,v))P(x)(u,v))P(x)(u,v))可以表示为
A(x)(u,v)=R2(x)(u,v)+I2(x)(u,v),P(x)(u,v)=arctan[I(x)(u,v)R(x)(u,v)] \mathcal{A}(x)(u,v) = \sqrt{R^2(x)(u,v) + I^2(x)(u,v)}, \quad \mathcal{P}(x)(u,v) = \arctan\left[ \frac{I(x)(u,v)}{R(x)(u,v)} \right] A(x)(u,v)=R2(x)(u,v)+I2(x)(u,v),P(x)(u,v)=arctan[R(x)(u,v)I(x)(u,v)]
其中R(x)R(x)R(x)和I(x)I(x)I(x)分别表示F(x)F(x)F(x)的实部和虚部。
频率表示具有两个出色的特性:(1) 它能在一定程度上分离图像退化和内容成分。这可以在图1中看到,通过交换幅度和相位,退化被转移到清晰图像上。 该属性使在频域中学习退化表示更为有效。(2) 频域天生包含全局特性[11],它可以自然地编码全局分布的特定退化信息,例如雾霭、噪声等。这些卓越的特性促使我们设计一种基于频率的提示技术,用于一体化图像恢复。
Frequency Self-Prompt
我们的目标是设计一种无需额外输入的图像恢复提示方法。由于图像恢复任务旨在消除输入图像中不需要的退化,这促使我们利用输入图像的退化信息生成动态提示,以指导恢复网络去除相应的损坏。由于上述讨论的频率表示具有优越的特性,我们提出了频率自提示(FSP),它通过输入特征的频率描述符动态调制频率提示分量,最终生成一个感知退化的提示。
设X∈RC×H×WX \in \mathbb{R}^{C\times H\times W}X∈RC×H×W表示输入特征,其对应的傅里叶变换表示为
XF=F(X) X_F=\mathcal{F}(X) XF=F(X)
使用平均池化和最大池化操作,沿空间轴聚合𝑋𝐹的信息,以生成两个频率描述符,这两个描述符可被视为具有频率区分能力的两个紧凑通道表示。
然后,这两个描述符通过逐元素相加的方式合并,并输入到一个具有两个1×1卷积和一个ReLU层的多层感知器(MLP)中。
MF=MLP(MaxPool(XF)+AvgPool(XF)) M_F = MLP(MaxPool(X_F)+AvgPool(X_F)) MF=MLP(MaxPool(XF)+AvgPool(XF))
其中MF∈R2C×1×1M_F \in \mathbb{R}^{2C\times1\times1}MF∈R2C×1×1是频率调制器。AvgPool(⋅)\mathrm{AvgPool}(\cdot)AvgPool(⋅)和MaxPool(⋅)\mathrm{MaxPool}(\cdot)MaxPool(⋅)分别表示平均池化操作和最大池化操作。频率自提示可以被视为潜在空间频率滤波[23],它使用频率描述符来动态调制不同的频率分量。由于频率调制器是独立于空间分辨率,它可以灵活地处理任何输入尺寸。
这里提出一个思考:局部池化是否比全局池化更有效?这个池化形状也未必要是方形的
随后,引入一个可学习频率prompt PF∈R2C×H×(W/2+1)P_F \in R^{2C\times H \times(W/2+1)}PF∈R2C×H×(W/2+1)受频率调制器MFM_FMF来嵌入退化特定信息。随后,一个1×11\times11×1卷积,和ReLu应用于调制频率prompt
P^F=ReLU(Conv1×1(σ(MF)⊙PF)) \hat{P}_F = \mathrm{ReLU}(\mathrm{Conv}_{1 \times 1}(\sigma(M_F) \odot P_F)) P^F=ReLU(Conv1×1(σ(MF)⊙PF))
最后,通过逆快速傅里叶变换将退化频率prompt转化为空间prompt
PS=F−1(PF^) P_S=F^{-1}(\hat{P_F}) PS=F−1(PF^)
然后,将退化感知提示合并到网络中,以指导相应退化的恢复。我们通过通道维度将提示PS∈RC×H^×W^P_S \in \mathbb{R}^{C\times \hat{H}\times \hat{W}}PS∈RC×H^×W^与输入特征X∈RC×H×WX \in \mathbb{R}^{C\times H\times W}X∈RC×H×W连接起来,并使用一个Transformer模块[4]对它们进行融合,最后使用一个3×33\times33×3卷积层恢复到原始维度:
X^=Conv3×3(Trans[X,↑(PS)]) \hat{X} = \mathrm{Conv}_{3 \times 3}(\mathrm{Trans}[X, \uparrow(P_S)]) X^=Conv3×3(Trans[X,↑(PS)])