论文笔记:《Interactive Sketch & Fill: Multiclass Sketch-to-Image Translation》
一、主要内容:
提出一个基于GAN的交互式sketch-to-image的方法。
二、功能:
由部分轮廓的草图和条件向量生成完整的图片。(如下图所示)
图中,灰色是算法推荐生成的轮廓,轮廓随着用户增加(绿色)和删除(红色)而更新,最后一列是同一个轮廓在不同的条件向量下产生的结果。
三、优点:
1、交互渐进式的图像生成,生成的完整轮廓能给使用者一个反馈去进行改进;
2、两步走的策略,从局部轮廓到完整轮廓再到生成图像的效果要比直接从局部轮廓生成图像的效果好;
3、实现了一个多类生成器(门机制),根据用户的不同条件去产生不同的类别。
四、方法实现:
该方法主要分为两步:
1.轮廓形状补全,由生成器和鉴别器
组成;
2.外观生成,由生成器和鉴别器
。
4.1 轮廓形状补全
数据集:没看后面的网络结构详解,文中没细说,猜测是用常规的GAN网络实现的。残缺的笔画数据通过从完整的图形轮廓中提取patch(64*64、128*128、192*192)再放如(256*256)的图片中形成的。(如下图)
为了将技术扩展到轮廓之外并生成更多类似人的草图,采用了下图所示的多步程序。将这些生成的草图称为“简化边”。我们以这种方式自动生成数据,创建一个数据集,其中对于给定的完整轮廓/草图或简化的边缘图,将创建75个不同的输入。
结果:形状补充结果见下图,同时实现了一个多模态的补充,条件输入提供了多尺度,让生成器不会忽略部分笔画调节。(不太懂)
4.2 外观合成
主要特点:用了门机制去实现单个模型生成多类外观的功能。
网络构成:由主干网络(使用了残差结构)和外部的一个门网络。门网络的输入为条件向量,将条件向量编码为一个1-hot向量。门网络输出的参数被用于修正生成网络的特征。(下面一个简单的计算过程)
当残差结构的输入为时,其输出为:
假设为门网络
的预测值,y为条件向量,令此时残差网络的结果为:
这表明我们可以通过门网络的输出值,来对生成网络以及鉴别网络的layer进行一个选择,这使得当输入不同类别的特征向量时,整个外观生成网络内部计算的特征也是有所差异的,以此来实现单model去生成多类外观的目的。以前实现该功能可以通过AdaIN来调整输入特征的scale和方差来实现的。channel-wise应用:
上图为Gating和IN以及bias的各种组合的尝试,实验显示单纯的Channelwise Gating效果比较好。
本文的网络结构是基于residual Encoder-Decoder model from MUNIT,命名为SkinntResNet。
五、实验
5.1单类别生成
数据集:edges2shoes、CelebA-HQ。
通过首先使用[33]的预处理代码来简化边缘,并通过草图简化网络[48]进一步减少了笔画。每个数据集仅包含一个类,因此我们可以使用现成的网络(例如pix2pixHD [58])进行渲染。
结果:
从表中数据看出两步策略的效果要好于直接映射到完整图像的单步策略。
5.2多类别
数据集:从搜索引擎上扒的,10类每类200张(150train,50test)。
主要进行了SkinnyResNet和Encoder-Decoder在各种结构下的对比,评价指标为生成图片为正确类的精确度和AMT Fool(一个用户测试?)。
结果如下表:
表中各种结构的解释:
结果表明:
1、条件向量直接注入,没什么效果;
2、通过gating网络注入条件向量有效;
3、门结构对于其它网络的结构也起到一定的作用(能泛化);
4、对于不同形状和不同类别的组合也能起到效果,会自动产生一些类别特有的特征。