Homomorphic Latent Space Interpolation for Unpaired Image-to-image Translation

  • Latent Space Interpolation

主要解决什么问题

在隐空间中找一条路径,来从一个 domain 的图片转移到另一个 domain。

解决的思路

基于这样一个假设:深度神经网络可以把自然图片给 model 成 flag and smooth 的分布。

但是这样存在一个问题,这个方法直接映射出来的图片并不能区分不同的 attribute,中间 interpolate 出来的过渡并不平滑(比如下图的嘴直接闭上了..)所有的 attribute 沿着 interpolation 的路径一起变化的时候,用户就无法控制其中的某些特定 attribute 了

20190710010534.png

有没有办法找一条路对应到特定的 attribute 呢?之前有的工作是设定一些 attribute vector 来试图精细地控制。怎么生成呢?先生成一些关于这个 attribute 的正负样本,然后分别求两个聚类的均值,就得到了这样一个 vector。这样操作的局限性在于,忽略了很多 attribute 是 multi-modal 的,用一个 universal 的 smile 来 interpolate 最终只能生成一个 average 的 smile。

核心知识点

文中定义一些 grouped feature,比如各种情绪(喜怒哀乐这种),然后目标是学习 Encoder(E),使得 $F_i = E(I_i), F_j = E(I_j), I(F_i, F_j)$ 是 interpolate 出来的结果要尽量真实。用一个 decoder 来把 latent feature 给 map 回 image space,这样设计来保证 feature 没有丢失原图的信息。

Decoder 和 Reconstruction 都是用 perceptual loss 训的。

本文的 encoder 在训练的时候是用 vgg 的 intermediate layer 当做 guide 来学的,具体来说是 minimize $E(I)$ 过一个 1x1 conv 之后和 VGG 的 ReLU5_1 层输出的 l2 loss。作者表示这一层的 semantic information 起到了额外的 guidance 作用,相当于是一项 regularization。

作者表示

这么 interpolate 的话只定义了一种插值方式。文中作者对这个公式进行了扩展,变为

// 我也不知道为啥公式要换一行才不会炸啊.. 我也很绝望啊

作者通过同态来解决这个问题20190710163815.png 这里的 A 是把 latent feature 转成 attribute vector 的映射。