http://mp.weixin.qq.com/s?__biz=MzA3Mjk0OTgyMg==&mid=402395669&idx=1&sn=f2c80f4c0ea86960e981535f83534a8a#rd
【VALSE前沿技术选介16-07期】2016-03-23 Xiaolong Wang [url=]VALSE[/url]
今天要为大家介绍的是近期的一篇基于Generative Adversarial Networks (GAN) 的工作《Generative ImageModeling using Style and Structure Adversarial Networks》。和GAN一样,这篇文章提出的也是一个产生式模型,输入一个随机向量,相应的生成一个RGB图片。由于GAN在16-03期已经介绍过,这里就不再详细解释。和之前的GAN工作不同的是,该文章把图像生成的过程分解成两部: 生成图像三维结构(structure) 和对三维模型进行渲染(style)。由于需要三维结构的信息,这里提出的模型是在NYUv2,一个室内场景的RGBD数据集上面训练的。 将图像生成过程分成这两部(style and structure) 的优点有 :网络具有更好的可解释性(interpretable); 对比以往的工作可以生成更加高清晰度的图片(128* 128); 训练出的三维渲染器可以应用于渲染其他人工生成的场景(synthetic scenes); 提供一种unsupervisedlearning的手段去学习RGBD representation,训练出来的网络可以transfer到其他RGBD recognition 的task中。 首先我们来介绍文章的approach。文中对三维的表达,是从depth图片中求出平面的法向量(surface normals),然后用surface normals来作为3D representation。由于三维的法向量XYZ可以对应图片的RGB channels, 文章在visualize surface normal的时候就用蓝色表示朝向左边的平面,绿色表示水平面,红色表示朝向右边的平面。以下图片显示的就是文章的模型,包含了Structure-GAN和 Style-GAN。
首先给Structure-GAN输入100维的随机向量 (drawn from uniform distribution),它能够对应生成一个平面法向量图(surface normals)。随着输入随机向量的改变,Structure-GAN 输出的surface normals也会不同。接着把输出的surface normal map和另外一个随机向量 输入到Style-GAN,它就会根据提供的三维信息进行渲染,输出在人眼中逼近真实的RGB图片。同理,输入不同的随机向量 会得到不同的渲染效果。 对于该模型的训练,文中提出首先分开训练Structure-GAN 和 Style-GAN, 然后再进行联合训练(Joint Learning)。对于Structure-GAN 的训练和普通的GAN类似,只需要将生成的目标换成surface normals。比较有意思的是Style-GAN的训练,首先它是一个conditional model,需要生成结构和输入的normals符合的真实图片。然而GAN训练中的adversarial loss只是限制了生成的图片接近真实,并没有这种显式的pixel-wise constraint。于是作者提出了这样的假设:如果生成的图片接近真实,那么应该能够从中重建出surface normals。文章提出额外训练一个Fully Convolutional Network (FCN),它的输入是RGB图像,输出是surfacenormals。然后把这个训练好的网络作为除了adversarial loss的另外一个loss,约束了生成的图片不但要真实,还能通过FCN生成和输入一样的surface normals。换一个角度来看,其实Sytle-GAN也可以看成一个surface normals 的auto-encoder,只是将中间的representation限制成为一个RGB image。
在分别训练好了Structure-GAN和Style-GAN后,两个模型被合并在一起进行联合训练。在联合训练的过程中,Structure-GAN不但有原来的adversarial loss,还会接收Style-GAN中传接下来的gradient。由于篇幅限制,详细的介绍可以参考论文。 为了验证文中提出该模型的四个优点,文中提出了几个有趣的实验。 (1) 网络具有更好的可解释性 (interpretable)。因为我们分离了图片的structure和style,而这两个变量又是又两个输入的随机向量 决定的,所以可以通过固定一个向量然后逐渐改变另外一个向量做到:固定图片的style,改变structure 或者固定图片的structure,改变style。如图,可以通过逐渐改变(interpolate) Structure-GAN的输入 向量中的其中几维的数字(固定),我们观察到一个正方体逐渐的生成。
还可以通过逐渐改变Style-GAN的随机向量输入 向量中的其中几维的数字(固定),我们观察到窗户被逐渐关闭。
(2) 更高质量的图片生成。除了展示生成的图片,文中提出了两个quantitative evaluation 的方法。两个方法都是基于以下假设:如果生成的图片足够好,那么他们应该能被state-of-the-art CNN classifier and detector所识别出来。文中对生成的图片进行了场景分类和在生成图片中进行物体检测(Object detection)。在分类的实验中,文中用到了Places-CNN对生成的图片进行分类,如果分类输出的Infinity Norm (概率最大值)越大,说明图片越能“欺骗”分类器。在检测的实验中,文中使用了Fast-RCNN在生成图片中进行物体检测,如果能找到的前景的物体越多,说明图片生成的细节也足够“欺骗”检测器。在这两个实验中,文章提出的方法都取得了比baselines好的结果。那么如果能生成这样的图片,其实是否也是一种潜在的生成在识别问题中的hard negative example的方法呢? (3) 渲染人工生成的场景 (SyntheticScene Rendering)。文中把Style-GAN应用到了三维的渲染中,效果如图。
(4) 无监督学习方法 (Unsupervised representation learning)。GAN的训练过程也是一种无监督学习,文章中的实验也探讨了把学习到的RGBD representation 应用在了场景的分类 (RGBD scene classification) 和RGBD objectdetection中。 最后我们来看下生成的图片,每一对的图片左边是Structure-GAN生成的surface normals,右边是Style-GAN基于surface normals渲染出来的RGB图片。
|