您的位置:首页 > Web前端

Fast Patch-based Style Transfer of Arbitrary Style论文理解

2017-04-22 20:53 447 查看

创新点

       这篇论文实现了图像的任意风格转换,不在局限于单个风格的训练。同时支持优化和前向网络的方法。这个方面只在一层进行相关处理。

style swap

   

         

表示content在某一层的feature
maps、

表示style在某一层的feature maps。

        

,就是表示

用对应的

代替后的值。具体怎么替换,采用的是基于块的方式,先确定块的大小为3(可以是5、7等),对

的每个块都在

中查找最接近的块来替换它。论文中一般是在relu3_1进行计算style
swap,具体的计算公式如下。

    


 

         以上可以采用并行的计算方式,具体可以表示成两个卷积层来计算。一个卷积层是采用归一化后的风格块作为卷积核。卷积核的深度是风格块的个数。另一个卷积层就是使用风格块作为卷积核,核的深度仍然是风格块的个数。前一个卷积层最终是为了计算得到content的每个patch对应替换style patch的位置。

 



 

 

 

优化方法

       优化的方法和gatys的方法类似,不过其优化方法很快就可以收敛,且在迭代100次的时候效果就比较好,不需要迭代很多次。其每次迭代速度比gatys的每次迭代速度都比较快。

 

       实验中试验使用的是预训练好的VGG网络,且style layer是使用Relu3_1层。

 

        主要分为如下4步,不断循环:

1.首先计算

表示content在某一层的feature maps、

表示style在某一层的feature
maps。

2.计算

,即style swap之后的结果。

3.计算损耗函数。

4.梯度下降进行更新风格化图像I。

 

优化方法损耗函数

     

        优化方法时使用的损耗函数是如下的函数,初始时风格化图片I是随机初始化的,使得I的特征空间和内容图与风格图交换后的featuremap在feature空间上距离最近。可以直接采用梯度下降的不断更新输入I以得到最终的风格图片I。这里注意梯度下降是对I进行作梯度下降。

 


 

 

前向网络

主要分为3步:

1.首先计算

表示content在某一层的feature maps、

表示style在某一层的feature
maps。

2.计算

,即style swap之后的结果。

3.输入

到前向网络,计算得到风格化图像结果。

前向网络的损耗函数

 

         和优化方法的损耗函数类似,只是前向网络时是经过前向网络得到的风格图去计算,不断的梯度下降更新前向网络的参数。



网络结构



 

        优化和前向网络这两种方式的swap layer都是采用relu3_1。经过实验验证在这一层进行swap然后重构出来的stylized图片的效果相对比较好。

      

        优化和前向网络这两种方式前面编码部分(将颜色空间转换到feature空间)使用的网络都是Table A1的结构。优化方式的网络结构就使用这部分的网络之后进行style swap。前向网络除了编码部分以及style swap之后,还需要从feature空间转换到颜色空间,即解码部分,解码部分的网络和编码部分的网络是对称的,在卷积层之后都紧接着instance normalization,max pooling对应的是最近邻上采用方式。

实验效率

          速度相比一般的风格迁移网络有些慢,主要的时间是花在style swap的计算上,style swap占总计算比达到95%。相比一般的风格迁移主要的优点就是支持任意风格的style 图片。

          随着风格图像尺寸的变大,syle swap部分的计算时间呈线性增长。内容图像增大,syle swap部分的计算时间开始呈线性增长,当增长到很大时,基本不变了。

 



         

论文实验结果

       此方法直接计算视频的风格转换时,效果还不错,偶尔会出现帧的风格有跳动。相比一般算法视频发生跳到小的原因主要是其算法采用的是用最相近的style 的feature 块替换content的块,相应比较稳定,背景区域变化不大时,计算出来的对应替换换结果基本一致的。



       在不同层进行Swap(relu3_1、relu4_1、relu5_1)
       在越高的层数上进行Swap风格化越明显,层数越低效果也越不明显。在越高的层数上进行Swap内容信息越不明显,层数越低内容信息越明显。

      要风格化强些,层数稍高些;内容信息强些,层数稍低点。

      可以考虑综合稍高层和稍低层的结果,弄个权重进行权衡。

      不同patchSize大小进行测试(pathSize = 3、pathSize = 7)
      pathSize越大,风格化越明显。

代码 https://github.com/rtqichen/style-swap
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐