
使用对比学习在不同领域之间进行图像转换 - DCLGAN.
三个要点
✔️ 开发了一个新的GAN(DCLGAN),结合了对比学习和双重学习。
✔️ 对DCLGAN的损失函数进行细微修改,以解决模式崩溃问题。
✔️ 实现高质量的图像转换,即使是在差异很大的领域之间。
Dual Contrastive Learning for Unsupervised Image-to-Image Translation
written by Junlin Han, Mehrdad Shoeiby, Lars Petersson, Mohammad Ali Armin
(Submitted on 15 Apr 2021)
Comments: Accepted to NTIRE, CVPRW 2021
Subjects: Computer Vision and Pattern Recognition (cs.CV); Image and Video Processing (eess.IV)
code:![]()
![]()
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的。
背景
图像到图像翻译是一项旨在将一个领域的图像转换为另一个领域的图像的任务。有许多具体的例子,如将一匹马的图像转换成斑马的图像,将低分辨率的图像转换成高分辨率的图像,或将一张照片转换成一幅画。
其中,没有给出图像之间的对应关系的问题设置被称为无监督的图像对图像翻译。无监督设置的问题是,训练容易出现不稳定,因为领域之间可能有几种合适的映射。CycleGAN通过考虑从目的域到源域的逆向转换来约束可能的映射,即所谓的假设周期一致性的 模型来稳定训练。
然而,基于周期一致性的模型无法生成图像中的几何结构发生重大变化的图像。之前实现了SOTA的CUT引入了对比度学习,一种自我监督的表示学习方法,通过最大化输入和输出斑块之间的相互信息含量来实现无监督的图像到图像的翻译。绩效超过传统的基于一致性的模型。
本文提出了一种新的训练方法,将双重学习与对比学习相结合,并提出了CUT中没有解决的模式崩溃的解决方案。
辽宁省
作者将他们新提出的模型命名为DCLGAN,其中DCL代表了DualContrasiveLearning。让我们先来看看DCLGAN的总体概况。
下图给出了DCLGAN的概况,它采用了与CycleGAN类似的架构,由两个生成器和两个判别器组成,前者在域之间进行双向转换,后者在每个域中确定图像是否为真实。
DCLGAN进一步增加了一个多层感知器,在图中显示为$H$,将图像斑块投射到特征向量。
对于DCLGAN训练,使用下式表示的损失函数。
这个损失函数包括三种类型的损失$\mathcal{L}_{GAN},\mathcal{L}_{PatchNCE},\mathcal{L}_{identity}$。让我们仔细看看这些损失中的每一项。
$mathcal{L}_{GAN}$是传统GANs中使用的损失,是生成器生成判别器无法判别的图像所需的术语。
$mathcal{L}_{PatchNCE}$是使输入和输出图像之间的相互信息含量最大化的损失。它也被用于现有的模型CUT中。具体计算方法如下。
在方程中,$hat{z}_l^s$是通过从域$X$转换到域$Y$(查询)得到的图像补丁的特征向量,$z_l^s$是与查询相对应的转换后的源图像补丁的特征向量(正例),$mathbb{z}_l^{S\backslash s}$是转换后的与源图像中的查询不一致的图像斑块(负面例子)。在上面的概览图中,查询对应于红色方块包围的图像补丁,正面例子对应于橙色方块包围的图像补丁,负面例子对应于浅蓝色方块包围的图像补丁。
方程中的函数$l$是下面方程中定义的函数。方程中的函数$sim$使用的是余弦相似性。
加入$mathcal{L}_{PatchNCE}$的效果是将查询和正例特征向量拉到一起,将查询和负例特征向量推开。
最后,$mathcal{L}_{identity}$是一个由以下公式定义的损失。这种损失也被引入CycleGAN,旨在最小化输入和输出图像之间的L1距离,从而避免在输入和输出图像中产生颜色构成截然不同的图像。
这些是DCLGAN的损失函数:第一印象是,DCLGAN结合了CycleGAN的架构和CUT的目标函数。它的独特之处在于,不是用一个编码器将两个领域放入潜伏空间,而是通过利用双重学习提供两个编码器。
模拟DCL
作者进一步完善了DCLGAN,并提出了一个名为SimDCL的模型,该模型在DCLGAN损失函数上增加了损失,以考虑属于同一领域的图像之间的相似性。
$mathcal{L}_{sim}$是编码器和多层感知器$H$提取的特征向量,通过另一个轻量级网络进一步转化为64维的特征向量,并计算属于同一领域的向量之间的L1距离,表示如下其中$x,y$是图像所属的域,$r,f$是表示图像是真实的还是生成的下标。
这明确地增加了属于同一领域的图像具有一些类似特征的损失。
图像转换结果
作者首先将DCLGAN和SimDCL这两个模型与现有的无监督的图像对图像研究进行了比较。我们使用了六个数据集:马⇔斑马、猫⇔狗、城市风景、梵高⇔照片、标签⇔脸谱和橙子⇔苹果,评价指标是Frechet Inception Distance。(FID)。
下表显示了所有基线和比较的结果。
DCLGAN在所有三个数据集上都取得了最好的FID,而且速度相对较快,训练速度只比CycleGAN稍慢。
下表还显示了对所选前四种方法的进一步评估结果。
可以看出,DCLGAN在大多数情况下使用不同的数据集表现最好;SimDCL在大多数情况下比DCLGAN表现差,但在某些任务中表现最好。
让我们看看每个数据集产生的实际图像。
狗⇒猫的转变是值得注意的。DCLGAN能够生成猫科动物的图像,而其他方法产生的图像要么是破碎的,要么是保留了犬科动物的外观。基于周期一致性的方法被认为在其映射中约束性太强,因此当结构在转换前后发生重大变化时,不能很好地生成图像。另一方面,当颜色结构从橙色变为苹果时,CycleGAN有良好的结果。作者还检查了前四种方法是否发生模式崩溃,以强调与CUT的比较。
除了SimDCL和CycleGAN,所有的方法都产生了几乎相同的图像,而不考虑输入。还声称SimDCL是将数据转化为最接近正确数据的方法。
最后
论文描述了一种新的GAN训练方法的发展,它结合了双重学习和对比学习,但没有明确说明为什么具有相似性损失的SimGAN能够抑制模式崩溃,这有点令人困惑。然而,目前还不清楚为什么具有相似性损失的SimGAN能够抑制模式崩溃。
有趣的是,与CUT相比,参数数量的不同对生成的图像质量有多大影响。
未来会不会有更多不使用周期一致性的模型?看看这在未来如何发展将是很有趣的。
与本文相关的类别