Fast Patch-based Style Transfer of Arbitrary Style

论文中通过 Style Swap 和训练一个 Inverse Network 实现任意风格的转换。

论文[2]中,Gatys 等将风格转化问题形式化成纹理生成和内容重建的优化问题,使用 CNN 提取风格图片各层的特征和内容图片的高层特征,输入噪声,反向传播优化损失函数,最后得到风格化的图片。论文[3]中,针对每种风格预先训练出一个生成网络,虽然比前面的方法快,但对于生成任意风格的图片,还是比较麻烦。能不能任意输入 Style 和 Content,然后得到风格化图片呢?论文[1]就是解决这个问题的。

Style Swap

C 和 S 分别代表内容图和风格图,$\phi(\cdot) $ 表示图片经过CNN 后的特征空间。对于 $\phi(C)$ 和 $\phi(S)$ 进行如下的 style swap 操作:

  1. 提取一系列块 $\phi_{i}(C)$ 和 $\phi_{j}(S)$,其中 $n_c$ 和 $n_s$ 分别是抽取的块数;
  2. 对于每块 $\phi_{i}(C)$,选择最接近的 style 块 $\phi_{j}(S)$,方法如下:
    $$
    \phi_i^{ss}(C,S):={\arg\max}_{\phi_j(S),j=1,\cdots,n_s}\frac{<\phi_i(C),\phi_j(S)>}{||\phi_i(C)||\cdot||\phi_j(S)||}
    $$
  3. 将 $\phi_{j}(C)$ 替换成其最接近的 style 块 $\phi_i^{ss}(C,S)$;
  4. 重建 $\phi^{ss}(C,S)$, 平均处理一下 step 3 中重叠部分的值。

Inverse Network

论文中使用 COCO 数据集和收集的艺术照片提前训练出一个 inverse network,每个数据集有8万张左右的自然图片和艺术照片。训练过程详见论文。

风格转换过程

训练好 inverse network 后,整个风格转换过程如图 1 所示,分为以下步骤:

  1. 计算 $\phi(C)$ 和 $\phi(S)$;
  2. 使用 Style Swap 获得 $\phi^{ss}(C,S)$;
  3. 将 $\phi^{ss}(C,S)$ 送进训练好的 inverse network中。


    图1 风格转换示意图

参考资料

请作者吃酒!