笔触可控的实时图像风格化迁移(ECCV2018)

笔触可控的实时图像风格化迁移(ECCV2018)

前言

最近刚刚忙完ECCV2018的camera ready,就想着写一篇博文来和大家一起交流,共同进步。这篇博文是基于ECCV2018的接收文章 [1802.07101] Stroke Controllable Fast Style Transfer with Adaptive Receptive Fields ,是和实验室一个动手能力很强的大四本科生师弟 @yangyangyang (浙大准硕士) 共同合作完成的~ 顺便安利下我去年带 @yangyangyang 师弟做他的暑期实习项目时候完成的另外一个工程性的工作:LouieYang/deep-photo-styletransfer-tf 是世界上首个用tensorflow重现的Adobe的 [1703.07511] Deep Photo Style Transfer 算法,作者提供的源码是torch和matlab混写,而我们的源码完全用python复现,只需要运行一行脚本即可得到所需要的颜色风格迁移结果 : ) 在github上的star数量也接近 500了~ 顺便给我们实验室打个广告,实验室以前是和微软合作,现在主要是和阿里合作,实验室的title是 Microsoft Visual Perception Laboratory (VIPA) of Zhejiang University, Alibaba-Zhejiang University Joint Research Institute of Frontier Technologies (AZFT),欢迎大家暑期实习报名我们实验室,导师黎叔非常非常Nice,足够努力的话也可以像 @yangyangyang 师弟一样成果多多哈 ^_^

Stroke Controllable Fast Style Transfer with Adaptive Receptive Fields 这篇文章研究的问题是如何在快速风格化的同时能够实现灵活的连续笔触变化和空间笔触变化,一定程度上打破了Neural Style Transfer领域的 flexibility 和 speed 之间的trade-off。ECCV2018的审稿得分为 Definite Accept + Definite Accept + Probable Accept。

顺便提一句,这篇文章研究的问题是我在写 Neural Style Transfer: A Review (图像风格化算法综述三部曲之 (一) (Neural Style Transfer: A Review)) 的时候和导师讨论想到的,所提的算法的灵感也是写Review那会儿产生的。后来直接在review中把这个问题提前抛了出来,现在也算是自己把自己挖的坑填上了~ 现在想想虽然写Review那会儿非常累,不过还是很有好处的,为后面的论文打下了基础。这篇论文的算法也已经在淘宝拍立淘项目上落地,成功上线,感谢淘宝AI Team的 @黄真川 哥在工程上的帮助 : )

另外非常感谢黎叔在浙大硕士普遍工程导向的大环境下能够资助我去德国开ECCV~ 求ECCV搭伙学术交流群 (〃'▽'〃)

下面开始正题。

项目主页:Stroke Controllable Fast Style Transfer with Adaptive Receptive Fields


笔触可控的实时图像风格化迁移 https://www.zhihu.com/video/1004827587373395968

1. 问题介绍

我觉得做研究首先想到的应该是:所做的问题是不是填补了所在领域的一个空白,在理论上能不能给所在领域带来新的knowledge,有没有实际应用价值。

1.1. 问题是否填补了空白?

在我写review总结style transfer的这一领域challenge的时候,想到虽然Fast Style Transfer速度很快,但是与此同时带来的trade-off是style transfer过程中很多因素变得很难控制,例如笔触大小。给定一个预训练好的网络和一张固定大小的内容图,输出的风格化结果图的笔触大小是固定的,无法让用户进行笔触大小的灵活控制。当然,针对这一问题,利用现有的方法是可以得到一些临时的解决方案的:其一是训练多个能够产生不同笔触大小的网络,缺点很明显,训练的时间开销和存储模型的空间开销会比较大;其二是在前向风格化迁移网络之前将内容图缩小一下,然后用超分辨率放大,但这样会对风格化的质量影响较大。与这两个临时解决方案的结果对比在后面实验部分会进行展示。另外也有同学想到可以用Arbitrary-Style-Per-Model (ASPM)方法测试的时候用不同大小的style图,但由于style transfer领域的速度、质量和灵活性三者之间的trade-off的缘故,现有的ASPM在细节方面的效果很不好,无法实现很精细的任意笔触大小变化,视觉上只能产生某几个离散的笔触大小,这个后面实验结果部分也会展示。总结一下这个问题:现有的图像风格化算法无法实现精细的任意连续笔触大小控制

另外还有个问题是现在的快速风格化结果图中在不同空间区域笔触大小是固定的,而艺术家创作艺术品的时候,不同区域的笔触大小是不同的,根据不同笔触大小可以表达出艺术家不同的思想。风格化算法这一缺点是 AI-Created Art 和 Human-Created Art 之间的差距之一。

由此,就引出了我很感兴趣的一个问题:如何利用一个快速风格化模型实时地实现灵活的连续任意笔触大小控制和空间笔触大小控制。

1.2. 理论上是否带来新的knowledge?

在我做Review的时候,发现很多人对风格化过程中笔触大小的影响因素不是很清楚。这里放几个我当时发现的别人做风格化时候的comment:

All brushes same size · Issue #28 · DmitryUlyanov/texture_netsgithub.com图标https://github.com/DmitryUlyanov/texture_nets/issues/41github.com图标All brushes same size · Issue #28 · DmitryUlyanov/texture_netsIs it possible to scale style when generating image after training(using test.lua) · Issue #41 · DmitryUlyanov/texture_netsgithub.com图标Is it possible to scale style when generating image after training(using test.lua) · Issue #41 · DmitryUlyanov/texture_netshttps://github.com/DmitryUlyanov/texture_nets/issues/41github.com图标All brushes same size · Issue #28 · DmitryUlyanov/texture_netsIs it possible to scale style when generating image after training(using test.lua) · Issue #41 · DmitryUlyanov/texture_netsgithub.com图标Style transfer not much · Issue #62 · jcjohnson/fast-neural-stylegithub.com图标

然后发现现有的风格化论文中也没有对笔触大小影响因素这一问题做总结和深入探讨过。于是我就产生了在我的论文中放入Pre-analysis一章,对风格化过程中影响笔触大小的各种影响因子做一个深入具体的分析。这就是给style transfer这一领域带来的理论部分的贡献了。最终审稿人也对我的这些思考和分析做了肯定:

Review #1: I particularly enjoyed the discussion in Section 3 discussing the interplay between the size of the style image, receptive field size in the generator, and receptive field size in the loss network; these issues have been floating in the folklore of neural style transfer for some time, and it’s nice to see them clearly discussed in a paper.

Reviewer #2:I like the analysis on the factors that influence the stroke size in stylized results.

2. 理论分析 (Pre-analysis)

对于风格化过程中笔触大小的影响因子,我主要总结了三个:风格图大小,损失函数的感受野,前向网络的感受野。

首先我们发现,VGG的风格特征表达是尺度敏感的 (scale-sensitive),所以当我们使用不同大小的风格图训练网络,得到的结果是具有不同笔触大小的,下面是我画的一张示例图。要得到更大的笔触,可以通过放大风格图来实现。

但当我们放大风格图到高清的情况的时候,笔触大小就不会随之越来越大了。原因就在于损失函数的感受野的限制。当笔触单元超过感受野大小时候,大笔触和更加大的笔触在结果图中的视觉效果是没有区别的。王鑫学长已经在他的CVPR文章中用了一个coarse-to-fine的多模型Multimodal架构解决了这一问题:A Hierarchical Deep Convolutional Neural Network for Fast Artistic Style Transfer 。所以这里我们不讨论高清图的情况。后面实验部分也将我们的方法和王鑫学长的方法做了对比和讨论。除了效果外,我们的模型大小是 0.99 MB,而Multimodal的模型大小是 32.2 MB。

另外风格化前向网络的感受野也是风格化结果中笔触大小的重要影响因素之一。同样一张风格图,不同的前向网络感受野会产生不同大小的笔触。

更深入更详细的分析大家可以去看我们的paper,这里篇幅原因不做详细讨论了。

3. 算法框架

基于上面的分析,不考虑高清图的情况,我们抓住两个重要影响因子:风格图大小和前向网络的感受野,来设计我们自己的笔触可控的快速图像风格化架构。我们通过将一个网络分割成不同的branch,设计一个金字塔的结构(StrokePyramid),每个branch用对应的风格图大小来进行训练,来实现不同的笔触大小。之后通过在特征空间进行特征插值(feature interpolation),来实现任意的连续笔触大小控制。测试时笔触的大小利用我们设计的门函数结构来进行控制。

大家看到我们的架构后会想到一个问题,能不能设计另外一种架构:一个共用的encoder和多个不同的decoder,同样设计不同的支路用不同的风格图大小来训练,从而实现连续笔触大小控制(我称之为Multiple-Encoder-Single-Decoder方法,MESD)。但这个方法有一个很大的缺陷:当进行连续笔触大小控制,进行特征插值的时候,有一个隐含的要求是前后连续的不同笔触大小的结果图中,除了笔触大小外,其余的如笔触的方向、笔触的布局等都应该是相同的 (我称之为 Stroke Consistency,笔触前后的连续性),如果不同的话,在特征插值的时候就会出现问题,如下面的结果图中,分别由于前后笔触结果图中的笔触方向不同和笔触布局不同,导致无法得到精细的连续笔触变化。MESD由于使用了多个完全独立的decoder,造成笔触连续控制时候前后的结果图中笔触方向和布局等都发生了变化。而通过我们金字塔状的架构设计,能够鼓励前后笔触结果图中除了笔触大小外,其余的如笔触方向和布局等艺术因子都保持不变。

4. 部分实验结果

与现有方法的对比

可以看到在不同笔触大小结果图中,我们的方法鼓励了其余的艺术因子,如笔触布局和方向等的一致性。

与之前提到的临时的可能解决方案的比较

我们的方法细节上更精细。

连续笔触控制对比实验:与Arbitrary-Style-Per-Model (ASPM)的对比

可以看到ASPM在细节方面的效果不是很理想,导致无法实现精细的连续笔触大小控制。

更多连续笔触控制结果

空间笔触控制结果

5. 未来工作

虽然我们一定程度上解决了风格化过程中的笔触大小的灵活控制问题,但仍旧没有找到不同笔触大小的VGG风格表征之间的转换关系(目前也做了很多实验,没有贴出来)。这一问题的探讨涉及到Deep Network的表征的可解释性,是未来一个比较有挑战性的问题。


作者:Yongcheng Jing

Fortunately advised by Prof. Mingli Song and Prof. Yizhou Yu

文章被以下专栏收录