Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks论文笔记

Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks论文笔记

Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks论文笔记

作者将生成器网络和判别式网络组合到了一起组成了一个生成对抗网络。MDANs和MGANs的区别在于MDANs因为迭代优化,所以能创建更自然的背景,能更好地保存好输入图片的内容,MGANs则用来训练很多图片,所以它能学到很多常用的特征,生成更具有风格化的图片。通常是先通过MDANs生成100张已经迁移的图片,然后有规律地从生成图片中采样裁剪出128*128的图片作MGANs的训练数据。D中的ReLU3_1能区分真实特征小块,这里输出的是分类评分s,s=1证明是真实的patch,也输出Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks论文笔记,代表x的特征映射输出,

Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks论文笔记

Xc代表用于指导合成的content image,X是合成图片,Xt是样本纹理图片,X是用于无指导合成的随机噪声,Et代表texture loss,纹理损失,

Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks论文笔记

Et作为Hinge loss,Si代表第i个神经patch的分类分数,N是在中得到的取样的patch总数,

Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks论文笔记是L2正则化,Xi,j代表第i行第j列的像素的颜色值。
用Et和L2正则化就可以合成随机的纹理,加上最小化的content loss Ec,就能生成上下文相关的纹理图,content loss Ec就是将求Ec括号中两数的均值平方差。
在D中用最大边缘准则Hinge loss来代替Sigmoid function 和二值交叉熵能有效地避免梯度消失,

MGANs要迭代很多次,而且每一个输出图片都要一个单独运行,示例对象(纹理图片)是从MDANs中得到的,并将图片在一次普通卷积之后进行级联的反卷积操作来多图片进行解码,最后能输出任意大小的图片,而且MGANs能将输入的噪声解码成纹理。
跟神经编码层提高结果相比,对抗性训练在预定风格上面的重现性更好。
MGANs跟GANs的区别在于并没有对一整张图片进行操作,而是在同一张图片的patch上进行操作。这样做有利于利用patch之间的上下文联系,跟学习整个对象类的分布或学习上下文无关的数据映射相比这样能让learning更容易也更有效。
MGANs在纹理上面更连贯一些,在处理大数据上更有优势,但是也有缺陷,因为缺乏迭代优化所以它在平坦区域会有所不足。但是它生成结果的速度比其他的快了500倍,

Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks论文笔记

这幅图展示的是MGANs的中间解码的一些结果,
100次的时候能学到整体颜色和强对比的区域在哪里
300次迭代的时候能产生纹理的描边
1000次的时候能学会描绘眼睛
更多的训练能消除结果中的一些伪影。
训练的越多,解码的效果及越好。

作者还根据G不动,通过在D中使用不同的层和改变patch_size的大小来观察结果上是否有什么不同
Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks论文笔记
relu2_1时虽然损失了结构的代价,但是有很清晰的表现
relu3_1在质量和灵活性之间有了一个很好的平衡
relu4_1高层虽然保留了大致的结构,但是在引导过程中很可能变得死板
patch_size的话,在同一层上小的patch_size增加了灵活性,大的patch_size能更好地保存了结构

D不动,移除G中的第一个卷积层或所有层的通道数的时候质量会有损,但是改变G并没有太大的意义,因为所有的这种类似的网络都是由D驱动的。

Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks论文笔记

和其他方法的比较:
迁移的时候更连贯,头发和眼睛都能映射到黑色的纹理,
但是高斯模型就无法保证这种连贯,Gatys的entire face都没有纹理化,Ulyanov的眼睛并没有纹理化,
作者自己在2016年发表的那篇就是第五张图的效果因为使用的是非参数的采样,所以合成的连贯性是最好的,但是因为要求patch matching所以运行起来比较慢。而且模型太过死板限制了应用领域。
但是非参数采样能防止数据失真。
高斯方法大体上能对风格图片产生更真实的色彩分布,也能很好地将背景纹理化。
相比之下作者的方法却因为vgg的限制而无法达到其效果,但是能突出前景物体,生成更连贯的纹理迁移。

作者的方法的局限还有不能在两个面部照片中迁移特征,因为面部特征不能视为纹理,还需要语义理解如表情姿势和性别等信息的帮助;而且对分文理数据的处理起来比较差,一旦学习了同意图片不同描述之间的映射,它就要求高度不变的特征,而预训练的vgg19模型无法处理静态背景。

通过捕捉全局特征分布,其他方法能更好地保存示例纹理的全局外观和感觉,但是相比之下作者的模型可能偏离了示例图片的全局颜色分布,更针对的是保存复杂图片内容连贯的纹理。
未来可能在大数据背景下研究一种框架,不仅包含有马尔科夫模型,还能有粗粒度结构模型,这样就可以为markovian开辟更多的训练数据,也让更复杂的解码器拥有更大的泛化能力。

笔记讲的不是很详细,只是把我所需要的摘录了下来,建议看原文:https://arxiv.org/abs/1604.04382v1