Style Transfer 相关论文工作(近期阅读整理)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/XGL1569348/article/details/80295794

考完了本学期的最棘手课程,整理下前一阵子看的有关Style Transfer文章…

A Neural Algorithm of Artistic Style


在本文之前,Gatys在Texture Synthesis Using Convolutional Neural Networks中提出了使用Gram矩阵在深层特征中进行约束可以生成不错的纹理图片(协方差的方式去除掉了位置信息)。协方差矩阵可以用来反映不同kernel获取的feature是否存在相关关系,Gram作为一个特殊形式协方差矩阵,通过不减去均值来降低计算开销。

利用公式 J c o n t e n t ( C , G ) = 1 2 ( a ( C ) a ( G ) ) 2 来计算Content Loss,这里的矩阵C、G都是中间浅层的feature map,而不是pixel。

利用公式 J s t y l e [ l ] ( S , G ) = 1 ( 2 × n C × n H × n W ) 2 i = 1 n C j = 1 n C ( G i j ( S ) G i j ( G ) ) 2 来计算单层不带权重的Style Loss。这里的S,G都取深层的feature map。

这里的G(Gram矩阵)即 G i j = v i T v j v 是中间层feature map)

利用公式 J ( C , S , G ) = α J s t y l e ( S , G ) + β J c o n t e n t ( C , G ) 作为loss func来进行梯度下降更新G图中的像素(C为内容图,S为风格图,G为生成图)。最后的style loss是多个深层的style loss合起来加权的。

这个方法把style transfer的任务转化为一个优化问题,时空开销都比较大,512*512的图片甚至需要3G+的显存。

Perceptual Losses for Real-Time Style Transfer and Super-Resolution


本文在上面的前提上,加了一个前置的生成网络,用前置网络来做图片生成,再利用同样的方式(pretrained VGG-16)来计算Loss,梯度更新生成网络的参数。最后就会得到一个深度学习“滤镜”网络,不同的是这个“滤镜”甚至可以适用于超清化。只需要一次向前传播就可以生成要的图片。

训练的时候,风格转移的loss和Gatys.相同通过和C, G来计算,超清化任务的loss就是一张低清图和高清图的Content Loss。

这个前置网络的设置用了不少流行的技巧。取消池化,用3x3的小kernel(除第一层和最后一层),先使用stride 2 downsample,然后是五个残差块(这里的残差块好像不是He的版本),再用stride 1/2 upsample(fractionally convolution)。因为增大了感受野,在相同计算代价的前提下可以做一个更深的网络,获得更强的描述能力。最后一层用tanh来缩放到0-255。

最后的Loss函数还加了一个一个Total Variation Regularization(相邻像素的差值),用来平滑优化视觉结果。(Pixel Loss不表)

最后的loss:
l = λ c × l f e a t C , G ( C , G ) + λ s × l s t y l e S , G ( S , G ) + λ T V × l T V ( G )

(这个网络里用的是批归一化,后来作者有一篇Instance Normalization: The Missing Ingredient for Fast Stylization,论述IN比BN更适合图像生成任务。)

在Style Transfer的任务上,把优化过程,变成一个单次的生成过程。据原论文来说,在生成效果类似的前提下,有三个数量级的提速。

前置网络模型如下图:
网络模型

Texture Networks: Feed-forward Synthesis of Textures and Stylized Images


这里不提太多关于这篇的内容,这个工作其实和上文异曲同工,生成网络上用的是一个多尺度的金字塔(下图)。
这里写图片描述

这篇文章里有一个有意思的东西。在前面提到,loss的制定时,我们确定了一套 α , β 超参来调节风格和内容的倾向,也就是相当于定死了这个比例,这篇文章给了一个等效于动态调节的方法:
训练的时候,噪音 Z 被加在每层金字塔的z卷积块后,Join前的激活值上,用这样的input 获得一张output生成图片。当然,loss的计算和前面相同,也是设定死了一个loss的比例。

在生成测试的时候,我们就可以通过一个权重 k 来调节input的噪声的幅度来影响最后生成图的style或content的偏向。
这里写图片描述

Deep Photo Style Transfer


这篇文章的工作集中于:第一,风格迁移的范围扩展到转移照片的风格,抑制图片的扭曲,把transfer的过程变成颜色空间的局部仿射变换。第二:通过语义分割来解决风格溢出的问题。

作者在原来的Loss中再添加了一项Photorealism regularization: L m = c = 1 3 V c [ O ] T M I V v [ O ] (这里的 M I 是一个只依赖于最后生成结果的Matting Laplacian N × N 矩阵, V c 是每个channel的激活压成 N × 1 ),通过这项loss来惩罚非颜色仿射变换。(Matting Laplacian相关之后补充

最后增强的style loss: L s + l = c = 1 C 1 2 N l , c 2 i j ( G l , c [ O ] G l , c [ S ] ) i j 2 (C个mask,每个块内自主计算gram,也就是说需要识别出大致的类别label)

最后的Loss : L t o t a l = l = 1 L α l L c l + Γ l = 1 L β l L s + l + λ L m

这个工作感觉更类似于一个有监督的的上色过程,毕竟Photo Style只能在两张现实照片中传递,图像的边缘信息继承原图。语义分割的过程还是比较暴力。类似 Controlling Perceptual Factors in Neural Style Transfer 中也有提出类似效果的空间控制方式。

Stable and Controllable Neural Texture Synthesis and Style Transfer Using Histogram Losses


这篇文章的工作主要是阐述了Gram矩阵为什么在Style Transfer任务中会有不稳定性,并提出了加入直方图统计信息来强化约束。

包括这篇文章和Deep Photo Style Transfer在内,都认为Gatys的方法对超参的调节非常敏感。在Gram没有保存均值、方差等统计信息的情况下,导致了不稳定性和重影。

新约束的方法是把生成图和风格图都在深层提取出特征后,根据风格图的feature map对生成图的feature map进行直方图匹配(histogram matching),最后求match前后feature map之间的L2范式。(histogram matching的相关在附录

新加入的histogram loss:
L h i s t o g r a m = l = 1 L γ l | | O i R ( O i ) | | F 2
O 是各层的原始激活, R ( O i ) 是histogram matching过的激活值。求导的时候,把梯度过小的后者视作常量。)

最后用于style transfer的loss:
L = L g r a m + L h i s t o g r a m + L t v + L c o n t e n t

Fast Patch-based Style Transfer of Arbitrary Style


一个可以输入任意任意内容图、风格图,输出生成图的方法。待更新…


附录:

Histogram matching

直方图匹配这个方法要做的是处理单频道内(灰度)的直方图信息匹配,让目标图 G 类似于样本图 C
由统计信息易得,原始图像的灰度概率: P r ( r ) = n k N ,样本图的灰度概率: P z = ( z ) n k N 。两个直方图均进行相同的均衡化处理(即把灰度均衡分散到灰度空间中), s = T ( r ) = i = 0 k P ( r i ) v = G ( z ) = i = 0 k P ( z i ) ,得到一个 s v 作为均衡化后的原始样本直方图。
两个均衡化后的直方图分布显然是相同的(如下图的中间坐标系),因此我们就得到了一个从 r z 的函数,即 z = G 1 ( s ) = G 1 [ T ( r ) ]

(其实上面的式子应为针对连续值的积分形式(;′⌒`)
这里写图片描述


只是初学者,理解上肯定有各种错误,如果有指出,万分感谢。


参考:
谈谈图像的Style Transfer 系列博文
A Neural Algorithm of Artistic Style
Perceptual Losses for Real-Time Style Transfer and Super-Resolution
Texture Networks: Feed-forward Synthesis of Textures and Stylized Images
Deep Photo Style Transfer
Stable and Controllable Neural Texture Synthesis and Style Transfer Using Histogram Losses

猜你喜欢

转载自blog.csdn.net/XGL1569348/article/details/80295794