【阅读笔记】Few-Shot Unsupervised Image-to-Image Translation-ICCV-2019

论文地址:https://arxiv.org/pdf/1905.01723.pdfhttps://arxiv.org/pdf/1905.01723.pdf

代码地址:GitHub - NVlabs/FUNIT: Translate images to unseen domains in the test time with few example images.Translate images to unseen domains in the test time with few example images. - GitHub - NVlabs/FUNIT: Translate images to unseen domains in the test time with few example images.https://github.com/NVlabs/FUNIT


Abstract

无监督的图像到图像转换方法学习将给定类别中的图像映射到不同类别中的类似图像,利用非结构化(非注册)图像数据集。虽然非常成功,但当前的方法需要在训练时访问源类和目标类中的许多图像。我们认为这极大地限制了它们的使用。从人类从少量示例中提取新对象的本质并从那里进行概括的能力中汲取灵感,我们寻求一种少样本、无监督的图像到图像转换算法,该算法适用于以前看不见的目标类在测试时,仅由几个示例图像指定。我们的模型通过将对抗性训练方案与新颖的网络设计相结合来实现这种少量生成能力。通过广泛的实验验证和与基准数据集上的几种基线方法的比较,我们验证了所提出框架的有效性。


Introdcution

为了弥合人类和机器想象力之间的差距,我们提出了小样本无监督图像到图像转换(FUNIT)框架,旨在学习用于映射源图像的图像到图像转换模型通过利用在测试时给出的目标类的少量图像,将类转换为目标类的类似图像。该模型在训练期间从不显示目标类的图像,但要求在测试时生成其中的一些图像。

为了继续,我们首先假设人类的小样本生成能力是从他们过去的视觉经验中发展起来的——如果一个人过去看过更多不同的对象类别,他就可以更好地想象新对象的视图。基于这个假设,我们使用包含许多不同对象类别的图像的数据集来训练我们的 FUNIT 模型,以模拟过去的视觉体验

具体来说,我们通过利用另一类的少量示例图像来训练模型将图像从一个类转换为另一类。我们假设,通过学习从少数示例图像中提取用于转换任务的外观模式,该模型学习了一个可泛化的外观模式提取器,可在测试时应用于未见过类的图像,以进行少量图像到图像的翻译任务。在实验部分,我们给出了经验证据,证明随着训练集中类数量的增加,少样本转换性能会提高。


Contributions

1. 我们的框架基于生成对抗网络 (GAN) [13]。我们表明,通过将对抗性训练方案与新颖的网络设计相结合,我们实现了所需的少量无监督图像到图像的转换能力。

2. 通过对三个数据集的广泛实验验证,包括与使用各种性能指标的几种基线方法的比较,我们验证了我们提出的框架的有效性。

3. 此外,我们展示了所提出的框架可以应用于小样本图像分类任务。通过对我们的模型为小样本类别生成的图像训练分类器,我们能够胜过基于特征幻觉的最先进的小样本分类方法。


Method

为了训练 FUNIT,我们使用来自一组对象类(例如各种动物物种的图像)的图像,称为源类。我们不假设任何两类之间存在成对的图像(即没有两种不同物种的动物处于完全相同的姿势)。我们使用源类图像来训练多类无监督图像到图像的转换模型。在测试期间,我们为模型提供了一些来自新对象类(称为目标类)的图像。该模型必须利用少数目标图像将任何源类图像转换为目标类的类似图像。当我们为同一模型提供来自不同新颖对象类的少量图像时,它必须将任何源类图像转换为不同新颖对象类的类似图像。

 我们的框架由一个条件图像生成器G和一个多任务对抗性鉴别器D组成

与现有无监督图像到图像转换框架中的条件图像生成器不同,条件图像生成器G以一幅图像x和一组K类图像{y1......yK}作为输入,并通过以下公式得到输出:

                                                   \LARGE {\overline{x}} = G(x, \{y_1,...y_k\})

即可以这样理解,输入为一张“内容图”和一组“类别图”,输出则会在结构上与内容图类似,但在类别上与类别图一样,实现图像风格转移。


1、小样本图象转换

小样本图像转换器G由内容编码器Ex类编码器Ey解码器Fx组成。内容编码器由几个二维卷积层和几个残差块组成。它将输入的内容图像x映射到内容潜码Zx,这是一个空间特征映射。类编码器由几个2D卷积层组成,然后沿样本轴进行均值操作。具体来说,它首先映射K个单独的类图像{y1,…, yK}的中间潜向量,然后计算中间潜向量的均值,得到最终的类潜码Zy

解码器由几个自适应实例归一化(AdaIN)残差块和两个高级卷积层组成。AdaIN残差块是使用AdaIN作为归一层的残差块。对于每个样本,AdaINfirst将每个通道中一个样本的激活归一化,使其均值和单位方差为零。然后使用一组标量和偏差组成的仿射变换缩放激活。注意,仿射变换是空间不变的,因此只能用于获取全局外观信息。通过一个两层全连通网络,利用zy自适应计算仿射变换参数。

 通过使用这种转换器设计,我们的目标是使用内容编码器提取类不变的潜在表示(如对象姿态),并使用类编码器提取类特定的潜在表示(如对象外观)。通过AdaIN层将类隐藏编码提供给解码器,我们让类图像控制全局外观(例如,对象外观),而内容图像决定局部结构(例如,眼睛的位置)。


2、多任务对抗判别器

我们的鉴别器D是通过同时解决多个对抗分类任务来训练的。每个任务都是一个二分类任务,用来确定输入的图像是源类的实像还是来自G的转换输出。由于存在|S|个源类,D产生个|S|输出。当为源类cx的真实图像更新 D 时,如果 D 的第 cx 个输出为假,我们就会惩罚 D。对于产生源类 cx 的假图像的转换输出,如果 D 的第 cx 个输出为正,则惩罚 D。我们不会因为D没有预测其他类的图像为假而惩罚D。当更新G时,只有当D的第cx输出为false时,我们才会惩罚G。我们的经验表明,该鉴别器比通过解决更难的|S|类分类问题而训练的鉴别器效果更好。


3、学习

我们通过求解一个由给出的极小极大优化问题来训练提出的FUNIT框架:

 其中LGAN、LR、LF分别为GAN损失、内容图像重建损失、特征匹配损失。

GAN 损失是一个有条件的损失,由下式给出:

 内容重建损失:

 特征匹配损失:

我们首先构造一个特征提取器,称为 Df,通过从 D 中删除最后一个(预测)层。然后我们使用 Df 从转换输出 ¯x 和类图像 {y1, ..., yK} 和最小化:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值