作者单位:哈工大、鹏程实验室、武汉大学
论文链接:https://arxiv.org/pdf/2111.13924.pdf
编者言: 对比学习在high-level任务上取得了显著的成功,但获得的全局视觉表征不适应丰富纹理和上下文信息的low-level任务,本文对对比学习框架的改进并联合超分辨率模型实现了新的SOTA。
看点
本文中提出了一种对比学习框架,从样本构建和特征嵌入两个角度研究了基于对比学习的SISR。现有的方法使用一些简单的样本构建方法(比如将低质量输入视为负样本,GT视为正样本),并采用先验模型(比如预训练的VGG)来获得特征嵌入,而不是探索任务友好的模型。为此,
- 本文提出了一个有效的和任务特定的数据增强策略,以产生多个信息积极和硬负样本
- 没有采用预训练网络,而是设计了一个继承自鉴别器网络的简单有效的嵌入网络,可以与主SR网络进行迭代优化,从而使其任务泛化。
方法
前瞻
针对数据
I
\mathcal{I}
I,用表示学习模型
E
E
E和InfoNCE损失来提取表示
R
=
{
r
i
∣
r
i
=
E
(
I
i
)
,
I
i
∈
I
}
\mathcal{R}=\{r_i|r_i = E(I_i),I_i\in\mathcal{I}\}
R={ri∣ri=E(Ii),Ii∈I},
L
I
n
f
o
N
C
E
\mathcal L_{InfoNCE}
LInfoNCE基于softmax,对于第
i
i
i个样本,
L
i
\mathcal L_i
Li被计算为:
L
i
=
−
log
exp
(
r
i
T
⋅
r
i
+
/
τ
)
exp
(
r
i
T
⋅
r
i
+
/
τ
)
+
∑
j
=
1
K
exp
(
r
i
T
⋅
r
j
−
/
τ
)
,
\mathcal{L}_{i}=-\log \frac{\exp \left(r_{i}^{T} \cdot r_{i}^{+} / \tau\right)}{\exp \left(r_{i}^{T} \cdot r_{i}^{+} / \tau\right)+\sum_{j=1}^{K} \exp \left(r_{i}^{T} \cdot r_{j}^{-} / \tau\right)},
Li=−logexp(riT⋅ri+/τ)+∑j=1Kexp(riT⋅rj−/τ)exp(riT⋅ri+/τ),其中,
τ
\tau
τ为超参数,
r
i
+
r_{i}^{+}
ri+为来自同一样本
I
i
I_i
Ii的随机数据扩增而生成的正样本表示。K是负样本的个数,这些负样本是从数据集中随机选取的其他图像。总对比损失为:
L
InfoNCE
=
1
N
∑
i
=
1
N
L
i
\mathcal{L}_{\text {InfoNCE }}=\frac{1}{N} \sum_{i=1}^{N} \mathcal{L}_{i}
LInfoNCE =N1i=1∑NLi当有一个以上的正样本时,对于第
i
i
i幅图像,对比度损失调整为:
L
i
=
−
1
P
∑
p
=
1
P
log
exp
(
r
i
T
⋅
r
p
+
/
τ
)
exp
(
r
i
T
⋅
r
i
+
/
τ
)
+
∑
j
=
1
K
exp
(
r
i
T
⋅
r
j
−
/
τ
)
,
\mathcal{L}_{i}=-\frac{1}{P} \sum_{p=1}^{P} \log \frac{\exp \left(r_{i}^{T} \cdot r_{p}^{+} / \tau\right)}{\exp \left(r_{i}^{T} \cdot r_{i}^{+} / \tau\right)+\sum_{j=1}^{K} \exp \left(r_{i}^{T} \cdot r_{j}^{-} / \tau\right)},
Li=−P1p=1∑Plogexp(riT⋅ri+/τ)+∑j=1Kexp(riT⋅rj−/τ)exp(riT⋅rp+/τ),其中P为正集的个数,总损失
L
S
u
p
C
L
\mathcal L_{SupCL}
LSupCL公式不变。对比学习有利于各种下游任务,并实现有前景的表现。可以发现,要使用对比学习方法,需要精心设计的样本选择和构建策略,需要探索一个与任务相关的潜在空间。
正负样本生成
信息正样本生成: 除了唯一的HR,还应用不同的高通核在HR图像,进一步生成锐化图像
K
P
K_P
KP作为正集。对于第
i
i
i个图像,正集表示如下:
P
i
=
{
P
j
∣
P
j
=
Sharpen
(
I
i
H
R
)
}
j
=
1
K
P
,
\mathcal{P}_{i}=\left\{P_{j} \mid P_{j}=\operatorname{Sharpen}\left(I_{i}^{H R}\right)\right\}_{j=1}^{K_{P}},
Pi={Pj∣Pj=Sharpen(IiHR)}j=1KP,Sharpen是一个随机的锐化函数。这与现有的基于对比学习的SR方法不同,现有的方法只考虑HR作为正样本。为了生成信息量更大的正样本,我们对HR应用了不同的高通核。这个正样本生成策略的设计遵循如下两点:(i) SR任务的目标是获得细致的结果。为此可以使用一些信息丰富的正样本来为重建结果引入更多高频细节。(ii) SR是一个不适定问题,LR和HR图像的映射是“一对多”的。除了给定的HR之外,还有许多可能的HR样本。这些生成的正样本可以看作是其中较为粗糙的一部分。
硬负样本生成: 最近的研究只是简单地对降质图像进行任务处理,这易于识别。为此,本文采用多个负样本,这可以缩小求解空间,进一步提高SR网络的性能。具体来说,首先从HR生成轻微模糊的图像作为的硬负样本集
N
i
\mathcal N_i
Ni,因为它们接近GT,从而使重建的SR图像更接近HR。负样本集的生成如下:
N
i
=
{
N
j
∣
N
j
=
Blur
(
I
i
H
R
)
}
j
=
1
K
N
,
\mathcal{N}_{i}=\left\{N_{j} \mid N_{j}=\operatorname{Blur}\left(I_{i}^{H R}\right)\right\}_{j=1}^{K_{N}},
Ni={Nj∣Nj=Blur(IiHR)}j=1KN,其中默认使用
K
N
=
K
P
=
4
K_N=K_P=4
KN=KP=4。Blur采用高斯核模糊函数。
特征嵌入网络
最近的工作基于预先训练的VGG模型设计了一个对比损失。本文则认为任务友好的嵌入网络更好,因为VGG获得的特征往往是分类任务的高级语义信息。此外,一个好的SR嵌入网络应该是退化感知的,这样即使SR非常接近HR,对比损失也可以工作,即 一个好的嵌入网络能分辨出细节的变化。
本文发现在GAN框架中学习到的鉴别器是退化感知的,因为它可以正确地分类输入图像的真伪,通过强制其区分SR和HR图像,获得任务友好的嵌入网络,如下图。值得注意的是,为了增强高频分量的学习,我们将图像分离为低频和高频分量,只使用频率分量来训练嵌入网络。本文使用Haar小波变换提取信息高频分量:LL、LH、HL、HH。然后将三个高频相关的分量(LH、HL和HH)叠加作为输入,并将其输入到
E
D
E_D
ED鉴别器中。采用对比度鉴别器丢失来训练
E
D
E_D
ED而不是二元分类。这是一种使用softmax交叉熵公式的单-批分类,计算如下:
L
C
L
D
=
E
I
H
R
[
log
e
E
D
(
H
w
(
I
H
R
)
)
e
E
D
(
I
H
R
)
+
∑
I
L
R
e
E
D
(
H
w
(
I
S
R
)
)
]
+
E
I
L
R
[
log
e
−
E
D
(
H
w
(
I
S
R
)
)
e
−
E
D
(
I
S
R
)
+
∑
I
H
R
e
−
E
D
(
H
w
(
I
H
R
)
)
]
,
\begin{aligned} \mathcal{L}_{C L D} &=\mathbb{E}_{I^{H R}}\left[\log \frac{e^{E_{D}\left(\mathcal{H}_{w}\left(I^{H R}\right)\right)}}{\left.e^{E_{D}\left(I^{H R}\right)}+\sum_{I^{L R}} e^{E_{D}\left(\mathcal{H}_{w}\left(I^{S R}\right)\right)}\right]}\right.\\ &+\mathbb{E}_{I^{L R}}\left[\log \frac{e^{-E_{D}\left(\mathcal{H}_{w}\left(I^{S R}\right)\right)}}{e^{-E_{D}\left(I^{S R}\right)}+\sum_{I^{H R}} e^{-E_{D}\left(\mathcal{H}_{w}\left(I^{H R}\right)\right)}}\right], \end{aligned}
LCLD=EIHR[logeED(IHR)+∑ILReED(Hw(ISR))]eED(Hw(IHR))+EILR[loge−ED(ISR)+∑IHRe−ED(Hw(IHR))e−ED(Hw(ISR))],其中
H
w
\mathcal H_w
Hw是提取和叠加LH,HL和HH的操作。
对比损失
为了充分利用这些正负样本,本文通过嵌入网络对多中间特征进行对比损失。SR图像、正样本和负样本的特征表示分别用 f , p , n f,p,n f,p,n表示,上标 l l l为 E D E_D ED中的层数索引,对比损失如下: L i , l = 1 K P ∑ j = 1 K P − log exp ( s ( f i l , p j l ) / τ ) exp ( s ( f i l , p j l ) / τ ) + ∑ k = 1 K N exp ( s ( f i l , n k l ) / τ ) \mathcal{L}_{i, l}=\frac{1}{K_{P}} \sum_{j=1}^{K_{P}}-\log \frac{\exp \left(s\left(f_{i}^{l}, p_{j}^{l}\right) / \tau\right)}{\exp \left(s\left(f_{i}^{l}, p_{j}^{l}\right) / \tau\right)+\sum_{k=1}^{K_{N}} \exp \left(s\left(f_{i}^{l}, n_{k}^{l}\right) / \tau\right)} Li,l=KP1j=1∑KP−logexp(s(fil,pjl)/τ)+∑k=1KNexp(s(fil,nkl)/τ)exp(s(fil,pjl)/τ)其中,s是相似函数,采用像素级余弦相似度的平均值作为特征图之间的度量: s ( f x , f y ) = 1 H W ∑ h = 1 H ∑ w = 1 W f h w x f h w y ∥ f h w x ∥ ∥ f h w y ∥ . s\left(f^{x}, f^{y}\right)=\frac{1}{H W} \sum_{h=1}^{H} \sum_{w=1}^{W} \frac{f_{h w}^{x} f_{h w}^{y}}{\left\|f_{h w}^{x}\right\|\left\|f_{h w}^{y}\right\|} . s(fx,fy)=HW1h=1∑Hw=1∑W∥fhwx∥∥fhwy∥fhwxfhwy.故总对比损失为: L C L = 1 N L ∑ i = 1 N ∑ l = 1 L L i , l , \mathcal{L}_{C L}=\frac{1}{N L} \sum_{i=1}^{N} \sum_{l=1}^{L} \mathcal{L}_{i, l}, LCL=NL1i=1∑Nl=1∑LLi,l,其中 N N N其中为训练图的数量, L L L为特征层的数量,本实验中设置为4。整体损失 L S R \mathcal L_{SR} LSR定义为: L S R = L 1 + α L C L \mathcal{L}_{S R}=\mathcal{L}_{1}+\alpha \mathcal{L}_{C L} LSR=L1+αLCL。
实验
消融实验
不同损失与预训练模型与w/o小波变换的消融实验: