(CVPR '18) ST-GAN:用GAN (STN)来生成组合图片

2019/07/23 DeepLearning GAN

Intro

这篇文章主要讲的是如何用GAN来做图片的组合生成。本文主要介绍的是ST-GAN: Spatial Transformer Generative Adversarial Networks。

Spatial Transformer GANs

Method

由于类似家具摆放的前后景组合情况是有多模态的问题,而不能使用简单的detection方法来解决,所以引入了GAN。ST-GANs寻求完成的目标为,指定一个前景图片和背景图片,指定一个前景图片的初始位置(初始mask),通过G来生成一组针对前景图片的投影变换参数,使用这些参数来改变前景图片的造型后组合图片。

20190723120350.png

如图所示为ST-GANs的基础框架。先概述流程。$p$是一个homography matrices用来对于前景图片FG进行投影变换(单应性变换),根据变换后的mask来进行贴图。$I_{comp}=I_{FG} \bigodot M_{FG}+I_{BG} \bigodot(1- M_{FG})$。
贴图后的结果输入判别器D(持有真实数据)中进行判断真实与否。生成器G接变换后的前景图和背景图后,输出一个对于变换操作参数的更新值,来更新$p$,如此进行迭代,使得前景的变换参数越来越真实。初始的$p_0$来自于人工的选取(如拖拽),来使得最后的效果有初始位置的监督信息。

G是一个带有STN结构的网络,使用了WGAN-GP的优化方法,C(32)-C(64)-C(128)-C(256)-C(512)-L(32)-L(8)。G用ReLU,D用0.2的Leaky ReLU。G使用了STN模块来提升对于图片变换的识别能力(因为组合图中的前景图会有比较明显的变换)

在实验中,有一部分是给人脸佩戴指定的眼镜,希望能够通过生成器G来对眼镜进行恰当的扭曲,值得注意的是在这个任务中,并不需要有相同的人有同时佩戴眼镜和不佩戴眼镜的图片。 20190723121709.png

另外,由于输出的只是一套变换参数,这套参数可以在低分辨率情况下获得,在高分辨情况上使用。

Tricks

在训练的过程中,由于是迭代训练的,有多个G和一个D,在训练第i个G时,1~i-1个G的权重需要freeze。
为了防止生成器的trivial case,即产生的$\Delta p$导致前景图片消失,加一个惩罚项$|| \Delta p||^2_2$来防止$\Delta p_1$过大。

STGAN的问题

其实在戴眼镜这个任务中,输出一个变换参数其实本质上就是完成一个detect关键点的过程,根本不需要这样繁琐的过程,而且inference的效果严重依赖数据集的平衡性。

以下部分为STN。

空间变换网络(STN)

STN作为一个特殊的网络模块可嵌入到网络的某一层中,从而实现支持空间变换(仿射变换、投影变换)等,为网络提供旋转不变性、平移不变形等性质。

架构

20190722092541.png

如图所示,$U$为输入的未变换feature map,$V$为输出的转换后feature map。Localisation net为一个卷积网络,用来学习空间变换的参数$\theta$。Grid generator为基于$\theta$来对feature map的值进行空间变换。

e.g. 坐标仿射变换过程:

$x^s_i$为输入,$x^t_i$为输出,使得输出的点可以变换到输入的feature map空间上。

要注意的是,过程为输出去找输入,而不是输入找输出,防止输出map中有的点无法算出。
在转换的结果中,获得的是在一组离散坐标点上feature map的值,由于网络架构的要求,显然需要一个整数的坐标,同时需要可以求导,在文章中使用了双线性插值的方法来进行求解。

20190722100324.png

如图所示,双线性插值方法可以直观的认为是在一个二维平面上的四个点值来估计某个点的值,配对两组点进行线性连线后,取同水平线的值再进行线性连线。

本文中使用的具体方法为

,$U^C_{nm}$为输入上nm位置的值上,选取了和输出位置距离小于1的像素位置(四个点),越近的权重越高,基于max的可导性质来完成求导。

20190722104633.png

同时,这个模块可以添加到网络中的任意层,参数少,学习速度快,在小体积的网络中表现好。

STN相关的问题

  • 可否使用其他插值方法,如高次多项式插值?(最近邻插值显然不能求导)
  • 初始化参数策略是否为变换到原始位置?

Reference

ST-GAN: Spatial Transformer Generative Adversarial Networks, Chen-Hsuan Lin, Ersin Yumer, Oliver Wang, Eli Shechtman, Simon Lucey

Search

    Table of Contents