cvpr 2019一篇做style transfer的一篇论文,思路和上一篇有点像。这篇论文的基本思路是获得全局和局部的style风格,同时也使用多尺度特征和特定的loss。
过去做任意style transfer的方法包括AdaIN,Avatar-Net等。这里使用的是SANet和一个特定loss,学习得到内容特征和风格特征之间的语义关联性,特定的loss可以帮助保持内容信息,在不丢失style 信息的前提下。整体结构如下:
如上,这里将内容图像$I_c$和风格图像$I_s$作为输入,encoder和decoder是预训练好的VGG网络,同时引入两个SANet进行风格转换。这里使用两个SANet,分别从VGG特征的relu_4_1和relu_5_1上分别获得特征,从而得到全局和局部的特征。输出特征表示为:
该部分使用的是残差连接(上述结果用1x1卷积处理)的形式,可以表示为:
将relu5_4部分获得的该特征上采样,与relu4_1部分获得的特征相加,再卷积,得到$F^m csc$,送入到decoder获得最终的输出图像。这个SANet很简单,就是个Non-local变过来的,如下所示:
这里分别来看几个loss,首先是内容Loss,其为输出风格图像和输入内容图像的特征的均值的欧式距离,用来确保内容一致性,表示如下:
风格loss表示为:
这里的$\phi$是特征图,这里使用了多个层的特征。同时为了考虑全局和局部特征,这里还定义了新的identity loss,表示为:
这里$I{cc}$表示输出图像从两个同样的内容图像合成而来,对于$I{ss}$亦然,这个loss注重保持内容的结构一致性而不是改变style 统计特性。同时两部分保持内容和风格的平衡。