- 论文链接:https://arxiv.org/abs/2007.01758
文字版
这次给大家带来一篇做 GAN 逆推的论文,单位是上海交通大学倪冰冰老师组的
我会从这 5 个方面来介绍这篇论文
背景
首先是背景,stylegan 能学到解耦合的一些信息,这对我们定向做编辑很有好处,而基于 stylegan 做编辑的前提就是要把真实图片逆推到 stylegan 的空间中
动机
然后是动机,可以看到之前的一些方法的逆推效果不够好,但是他这个文章有点奇怪,这篇文章写的时候应该周博磊老师那个组的 Indomain inversion 已经出了,但是他整篇文章都没有提到这篇文章,只和一些传统的方法进行了对比
研究目标
然后他的研究目标呢,就是想做一个又快又好的逆推
方法
然后来讲一下他的方法,先看一下网络整体的一个框架。我之前说过,现在做 GAN 逆推一般就是两个套路,第一个就是不用网络,用一个优化迭代器不断迭代调整,第二个就是学一个 encoder,也就是文章中的 embedding network。这篇文章把两个方法的优点结合了起来,提出了一个叫协同学习的策略。这个框架图比较大,我把它拆成几块来讲一下。
首先,我先讲一下他是如何推理的,他的推理阶段只用过一个 embeding network
关于训练的话,我拆成两块来分析,第一就是迭代器阶段,因为他不是一个学网络的过程,简单来说就是初始化一个向量,这个向量通过生成器之后能生成一张图片,这个图片和我们想要的图片肯定存在差异,这个时候会产生 loss,这个 loss 回传去调整初始化的向量。这个方法存在两个问题,第一个就是速度很慢,第二个就是如何初始化是非常影响最后的效果,就是万一掉到局部最优里面去了就爬不出来了。loss 的话就是一个 MSE 的 loss 和特征的 loss
第二个方法是训一个 encoder,比较好理解,学习的是原图到 code 的一个映射。他的问题在于 encoder 的表现能力不是那么强,所以可能泛化能力会比较差,这个也是现在我看到的很多基于 encoder 做 gan 逆推的一个共同问题。一般来说,现在的方法都是把 encoder 和迭代器串联起来的,用 encoder 的输出当作迭代器的初始化,但是这样就会把迭代的时间加入到推理中去,速度上会吃一些亏
然后我讲一下这篇文章中用到的 encoder 结构,他是进去一张图片,通过两个网络来提取 id 特征和 attribute 特征,这个 EidE_{id}Eid 就是 ArcFace 的前几层,EattrE_{attr}Eattr 是 ResNet 的前几层,然后这两个网络的输出用类似于 GauGAN 的 SPADE 融合方式进行融合,输出的特征经过一个树接,也就是局部连接层得到输出。他这里和 GauGAN 的 SPADE 有一点点不同,他的融合是直接把 FC 的输出截成两段做的,然而真正的 SPADE 是用卷积做的。
前面说了迭代器和 encoder 都有缺点,这篇文章提出了一个叫协同学习的方法,把两个方法的优点结合起来,规避了缺点。这个协同学习只在训练中出现。每次都把 encoder 的输出作为迭代器的输入,这解决了迭代器初始化敏感的问题。同时,用迭代器处理后的图片监督训练 encoder,而不是用原图,这解决了 encoder 表达能力不够的问题。
对于训练的 loss,采用了图片和 code 的 MSE loss,以及图片的 perception loss
实验
然后来看实验,先看运行时间,可以看到相比那些迭代器的方法,他是最快的。另外注意一下,stylegan-encoder 方法是 encoder 和迭代器串联起来的
然后是一些定量实验,可以看到在这两个数据集上的各个指标上,本文的方法和最佳的方法差距都很小,但是时间比 image2stylegan++ 要快得多
然后是这个定性的实验,可以看到本文的方法和 image2stylegan++ 最大限度保留了细节,其他的方法会略有模糊
然后是一个关于迭代器初始化的实验,这个实验主要就是说明本文的 encoder 输出效果已经很好了,不必在推理的时候叠一个迭代器。第一行是随机初始化,可以看到迭代了 100 步效果还是很垃圾,第二行是从平均脸开始迭代,100 步之后效果还行,但是嘴唇等细节还是不好,第三行是本文的方法,就算不迭代,效果也已经和原图差不多了
然后是协同学习的定量实验,先看第一个表,可以看到如果切断协同学习初始化的这一段,即每次都是从平均脸开始迭代,效果会变差
第二个表是说如果用原图监督,而不是迭代器处理后的图片监督,效果也会差不少
还有挺有意思的一个实验,就是说网络的所谓解耦合,因为现在是一张图进入两个网络,作者就想是不是这两个网络学到了解耦合的特征。这个表的意思就是说如果不用两个网络提特征融合,而是直接一个简单的 resnet,效果会变差。这个图的意思就是说从融合起来的效果来看,网络的确把 id 特征和属性特征分开了
结论
文章的结论就是提出了一个又快又好的逆推方法
视频版
[arXiv] Collaborative Learning for Faster StyleGAN Embedding