会议与时间 Computer Vision and Pattern Recognition, CCF-A, Nov 2016
简介 很多视觉(语义分割、卫星图转化为地图)和图形学(图像生成、图像涂色)的任务都可以归结为Image-to-Image Translation任务,本篇就提出了一种解决这种问题的通用方法cGANS。
文章目录
主要贡献/创新点
- 证明条件GANs在很多图像到图像翻译任务上可以取得好结果。
- 提出一个能产生合理结果的框架,并分析其中构成部分的重要性(component)。
模型搭建
概述
cGANs不同于普通的GANs,除了随机噪声z外,还在Generator和Discriminator中加入了原图x来进行计算。即GAN是学习从噪声z到输出y的映射,conditional GAN是从图像x和噪声z到输出y的映射。
G : { x , z } → y G: \{x, z\} → y G:{
x,z}→y
本文的模型由两部分组成:
- Generator 本文的生成器使用U-Net结构,而非简单的Encoder-Decoder结构。
- Discriminator 判别器使用PatchGAN,即把图像分割成 70 × 70 70 \times 70 70×70的大小,然后输出一个矩阵而不是单个值来作为判别器的结果(区别于原始GAN的判别器)。
模型主要结构
生成器 Generator
参考U-Net结构,由Encoder-Decoder和Skip Connection组成。
Let Ck denote a Convolution-BatchNorm-ReLU layer with k filters. CDk denotes a Convolution-BatchNormDropout-ReLU layer with a dropout rate of 50%. All convolutions are 4 × 4 spatial filters applied with stride 2. Convolutions in the encoder, and in the discriminator, downsample by a factor of 2, whereas in the decoder they upsample by a factor of 2.
Encoder-Decoder
结构
encoder:C64-C128-C256-C512-C512-C512-C512-C512
decoder:CD512-CD512-CD512-C512-C256-C128-C64
- 解码器最后一层后,应用一个卷积来映射到输出通道的数量(通常是3个,但在着色任务(colorization)中是2个),最后接一个Tanh的激活函数。
- 与图例不对应的例外:BatchNorm并不应用于encoder的第一层(C64)
- 编码器使用LeakyRelu(解码器使普通Relu),slope为0.2.
U-Net decoder
个人理解这里就是那个Skip Connection
结构 CD512-CD1024-CD1024-C1024-C1024-C512 -C256-C128
判别器 Discriminator
结构 C64-C128-C256-C512
- 在最后一层后面,应用卷积来映射到1维输出,最后再跟一个Sigmoid函数。
- 与图例不对应的例外:BatchNorm并不应用于第一层(C64)。所有ReLUs都是LeakyReLU,slope为0.2。
目标函数
条件GANs的目标函数如下所示,G的目的是最小化此函数,而D就努力最大化它。
L c G A N ( G , D ) = E x , y [ log D ( x , y ) ] + E x , z [ log ( 1 − D ( x , G ( x , z ) ) ] \mathcal{L}_{c G A N}(G, D)= \mathbb{E}_{x, y}[\log D(x, y)]+\mathbb{E}_{x, z}[\log (1-D(x, G(x, z))] L