Contrastive Learning for Unpaired Image-to-Image Translation(CUT)阅读笔记
Posted Paul-Huang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Contrastive Learning for Unpaired Image-to-Image Translation(CUT)阅读笔记相关的知识,希望对你有一定的参考价值。
CUT阅读笔记
- 论文标题: Contrastive Learning for Unpaired Image-to-Image Translation
- 论文作者:Taesung Park, Alexei A. Efros, Richard Zhang, Jun-Yan Zhu
- 机构:University of California, Berkeley; Adobe Research
- 开源代码:https://github.com/taesungp/contrastive-unpaired-translation
1. 文章整体理解
1.1 相关知识回顾
- 图 像 转 换 \\color{red}图像转换 图像转换(image-to-image translation)的任务是在保留输入图像的结构特征的基础上,加入目标域的外观特征。一个经典的任务就是把马转换成斑马,在保留输入的马的图像结构的同时,将纹路换成目标域(斑马)的纹路。
- 目前主流的方法大都是基于CycleGAN方法及其变种,利用:
- 对 抗 损 失 \\color{red}对抗损失 对抗损失(adversarial loss)强化目标域的外观特征;
- 循 环 一 致 性 损 失 \\color{red}循环一致性损失 循环一致性损失(cycle-consistency loss)来保证原始输入图像的结构不变;
- 一 致 损 失 \\color{red}一致损失 一致损失(Identity Loss)控制生成器(或者说生成图片)的色调,控制整体的颜色产生变化。
但是CycleGAN的假设非常严格,要求输入的图像域和目标域之间存在双射关系,这一点在其实是很难满足的。
1.2 CUT特点介绍
以下只是个人理解,有错误请指出!不喜勿喷~
- 本论文(CUT)提出了一个替代性方案:
-
把 对 比 学 习 \\color{red}对比学习 对比学习应用到Image-to-Image中。
-
只需要 训 练 一 个 生 成 器 和 判 别 器 \\color{red}训练一个生成器和判别器 训练一个生成器和判别器。
-
使用最大化输入输出图像块的互信息(mutual information)来替代循环一致性损失,使用 i n f o N C E l o s s \\color{red}infoNCE\\; loss infoNCEloss作为对比损失函数, 来学会一个生成器。
-
应用生成器(由 编 码 器 和 解 码 器 \\color{blue}编码器和解码器 编码器和解码器组成)中的 编 码 器 \\color{red}编码器 编码器将对应的图像块之间相互联系起来,通过 M u l t i l a y e r P a t c h w i s e C o n t r a s t i v e L o s s \\color{red}Multilayer\\; Patchwise\\; Contrastive\\; Loss MultilayerPatchwiseContrastiveLoss使得编码器专注于两个域之间共性的部分如形状,而忽略两个域之间的差异性部分如纹理。
-
相比于 对 比 学 习 \\color{blue}对比学习 对比学习需要使用 I n t e r n a l + E x t e r n a l P a t c h e s \\color{red}Internal+External\\; Patches Internal+ExternalPatches, C U T \\color{blue}CUT CUT仅仅使用 I n t e r n a l P a t c h e s \\color{red}Internal\\; Patches InternalPatches。
-
I
n
t
e
r
n
a
l
P
a
t
c
h
e
s
\\color{red}Internal\\; Patches
InternalPatches还用在:
1. Texture Synthesis by Non-parametric Sampling
2. ‘Zero-Shot" Super-resolution using Deep Internal Learning - 作者认为:It’s because the external patches are too easy to distinguish, and they sometimes contain false negatives, like the highlighted horse head patch.
-
I
n
t
e
r
n
a
l
P
a
t
c
h
e
s
\\color{red}Internal\\; Patches
InternalPatches还用在:
-
CUT从单张图像本身中提取负性图像块的效果要好于从整个数据集中其他的图像中提取,因此CUT甚至可以在单张图像上实现图像转换。
-
当 某 个 域 的 图 像 由 相 较 于 另 一 个 域 更 多 的 信 息 时 , 可 以 获 得 很 好 的 效 果 \\color{red}当某个域的图像由相较于另一个域更多的信息时,可以获得很好的效果 当某个域的图像由相较于另一个域更多的信息时,可以获得很好的效果。
-
2. 相关概念
2.1 图像转换(image-to-image translation)
- 对称图像转换(pix2pix),使用对抗损失和重建损失形成输入和输出图像之间的映射。
- 非对称图像转换,没有目标域的对应样本,循环一致损失成为事实上的标准做法(例如CycleGAN),通过学习一个从目标域到输入图像的映射,来检查是否输入图像被正确映射到了目标域。之后的做法大多是在循环一致损失的基础上完成的(如UNIT,MUNIT)。
- 在非对称图像转换领域,循环一致损失主要在: 图 像 与 图 像 之 间 , 隐 空 间 到 图 像 , 图 像 到 隐 空 间 \\color{red}图像与图像之间,隐空间到图像,图像到隐空间 图像与图像之间,隐空间到图像,图像到隐空间,三个层面上使用。
- 循环一致损失都基于输入域和目标域之间存在双射关系的严格假设, 当 某 个 域 的 图 像 由 相 较 于 另 一 个 域 更 多 的 信 息 时 就 更 难 获 得 很 好 的 效 果 \\color{red}当某个域的图像由相较于另一个域更多的信息时就更难获得很好的效果 当某个域的图像由相较于另一个域更多的信息时就更难获得很好的效果。
2.2 关系保存(relationship preservation)
-
为了避开双射的限制,一个替代的想法是: 输 入 图 像 中 存 在 的 关 系 , 类 似 地 也 应 该 在 生 成 的 图 像 中 \\color{blue}输入图像中存在的关系,类似地也应该在生成的图像中 输入图像中存在的关系,类似地也应该在生成的图像中,就比如同一张图内近似的图像块,在生成的图像中也应该有这样近似的图像块。
- TraVeLGAN, DistanceGAN and GcGAN通过预定义的距离函数保证共享相似的内容,或是使用triplet loss保存输入图像之间的向量计算;
- 计算输入图像之间的距离和生成图像的距离使之保持一致等等做法,绕开循环一致性损失的限制。
但是这些方法要么是需要预定义一个距离函数,要么保存的关系是基于整个图像的。
-
CUT是通过 最 大 化 互 信 息 的 方 法 \\color{red}最大化互信息的方法 最大化互信息的方法,学习一个输入输出图像块之间的相似性函数,避免了以上的方法的缺陷。
2.3 深度网络的感知相似性度量
1. 大多是图像转换工作都是使用
逐
像
素
重
建
\\color{blue}逐像素重建
逐像素重建进行度量,这无法反映人类的感知习惯并且会导致生成图片非常模糊。
2. 定义一个
高
维
信
号
的
感
知
距
离
函
数
\\color{blue}高维信号的感知距离函数
高维信号的感知距离函数,这一点使用在ImageNet上预训练的VGG分类网络就可以实现 ,并且其在人类感知测试中取得了超过传统度量方法(SSIM and FSIM)的效果。但是这个方法没法适应其他的数据集,并且它也不是一个基于图像对的相似性度量。
ImageNet上预训练的VGG分类需要去了解!
- CUT以互信息作为约束,将图像本身中的负样本利用起来,可以适用于不同特定的输入输出域,从而避免了对相似性函数的预定义。
2.4 对比特征学习
1. 传统的无监督学习需要预先设计好的损失函数来衡量预测表现,新的方法通过最大化互信息绕开这个问题,使用噪声对比估计(
n
o
i
s
e
c
o
n
t
r
a
s
t
i
v
e
e
s
t
i
m
a
t
i
o
n
,
N
C
E
\\color{red}noise\\;contrastive\\;estimation,NCE
noisecontrastiveestimation,NCE)来学习一个Encoder,将关联的信号拉近,并与数据集中的其他样本形成对比。
2. CUT首先将infoNCE loss应用到了条件图像生成领域。
3. CUT方法的数学表达
3.1 相关定义
- 图像输入域为
X
∈
R
H
×
W
×
C
\\mathcal{X}\\in\\mathbb{R}^{H\\times W\\times C}
X∈RH×W×C 而输出图像域
Y
∈
R
H
×
W
×
3
\\mathcal{Y}\\in\\mathbb{R}^{H\\times W\\times 3}
Y∈RH×W×3 ,数据集为
X
=
{
x
∈
X
}
,
Y
=
{
y
∈
Y
}
X=\\{x \\in \\mathcal{X}\\}, Y=\\{y \\in \\mathcal{Y}\\}
X={x∈X},Y={y∈Y}。
在CUT的方法中数据集可以只包含单张图像。 - 在CUT方法中,生成器被
G
G
G分解为两个部分, 先是一个
E
n
c
o
d
e
r
Encoder
Encoder再是一个
D
e
c
o
d
e
r
Decoder
Decoder,这样生成输出图像
y
^
\\hat y
y^可以表示成:
y ^ = G ( z ) = G d e c ( G e n c ( x ) ) (3.1.1) \\hat y=G(z)=G_{dec}(G_{enc(x)})\\tag{3.1.1} y^=G(z)=Gdec(Genc(x))(3.1.1) - 最大互信息采用 N o i s e C o n t r a s t i v e E s t i m a t i o n ( N C E ) \\color{red}Noise\\;Contrastive\\;Estimation(NCE) NoiseCont