论文分享 | 可控笔触的快速风格化迁移

风格迁移作为深度学习艺术化工作的典范,各顶级会议上一直有相关论文发表,工业上也有很多面向C端用户的产品。今天我们要介绍的一篇工作来自ECCV2018,解决的问题是如何在进行风格迁移的时候,对笔触大小 (Stroke Size )进行控制。

笔触大小的影响因素

笔触大小对于风格化的结果有着十分直接的感官影响。在进行风格化迁移的时候有三个因素制约笔触大小:风格图的分辨率大小、监督网络VGG 的感受域、生成网络的感受域。

风格图分辨率

风格化的目标来自于风格图的 gram based statistics,gram matrix 包含风格图的尺度信息,分辨率越大、gram matrix 就有着越精细的尺度信息,这反映在风格上就是不同大小的笔触变化。

从左到右,依次是content图,style图,scale 256、scale 512、scale 768生成图,不同的分辨率,对应不同的风格化笔触;

VGG感受域

VGG 是一个典型的层化结构模型,从底层到高层,神经元的感受域由小变大,这也对应笔触的大小。当然VGG的感受域有一个上限,当笔触的大小大于这个上限的时候,VGG网络是学习不出来的。

风格图分辨率

作者做了一个基本的实验得到了如下结论:生成网络的感受域越大越能学习出更大的笔触。

实验效果图如下:

由于VGG在风格化建模中的不可替代性,本文只考虑了从风格图尺度与生成网络的感受域两方面着手,对不同大小的笔触进行精细化学习。

本文方法

模型结构

上面就是本文提出的模型结构图,StrokePyramid 对应着不同感受域大小的生成模型、style 图的不同scale 代表着不同尺度与笔触大小的对应,具体来说、对于尺度为scale 1的风格监督图、设置Stroke Branch 1的生成网络来专门学习出其特定的风格笔触,对于其他的scale依此类推。

在训练的时候、每次迭代只训练一种scale,但是在预测的时候,可以把不同Stroke Branch的layer 加权融合到一起送到Stroke Decoder 里面,得到混合笔触大小的生成图。具体做法如下:

是第 i 个Stroke Branch输出的 feature map,G是一个gating function,对各branch的feature map 分配权重。最后把融合后的tensor送到Decoder里面得到生成图像

有了上面的思路,loss function 就可以很自然地出来了,这里我们不做讲解。

训练技巧

Progressive training:假设k个scale,k个branch,那么每k个iteration,就依次训练单个branch。

Incremental training:如果想要增加新的笔触大小进行训练,只需要在已训练好的模型上增加一层新的 stroke branch,然后用新的scale对新的layer进行 finetuning 就可以了。

实验结果

训练集MS-COCO,branch 设为3,风格图的分辨率分别为 256、512、768。

开源代码:

https://github.com/LouieYang/stroke-controllable-fast-style-transfer

相比于其他控制笔触的方法,本文的质量明显更高。

上图显示的是在预测时,branch之间进行不同插值的情况下,生成图的效果,可以看到由左到右,图像的笔触越来越大,这表明模型的确学会了如何控制笔触大小。

论文链接:

https://arxiv.org/pdf/1802.07101.pdf

欢迎关注我们的微信公众号:极验(geetest_jy)

猜你喜欢

转载自blog.csdn.net/geek_wh2016/article/details/81735717
今日推荐