《Learning to Warp for Style Transfer》

paper: Learning To Warp for Style Transfer (thecvf.com)

code: https://github.com/xch-liu/learning-warp-st

任务

NST(neural style transfer)

出发点

大多数风格迁移只考虑了迁移纹理信息,而为关注在艺术层面的几何扭曲。

本文考虑使用深度神经网络进行图像样式化的问题,特别关注艺术扭曲

创新点

在CycleGAN上加入了感知损失(perceptual loss),能更好的关注面部的语义信息(眼睛、鼻子);

使生成模型和识别模型相互优化,生成模型迭代生成更好的图像,Triplet Loss训识别模型;

与其他扭曲迁移模型的区别:

不同于The face of art: Landmark detection and geometric style in portraits和WarpGAN,其不限于单个语义类别

不同于Deformable style transfer依赖前向和后向优化,其专门设计了前馈网络,以输出给定内容和几何图像的扭曲字段

比Deformable style transfer快;

与Geometric style transfer仅限于参数化扭曲字段不同,其生成的是非参数化扭曲

与Geometric style transfer以外的其他NST算法不同,其支持使用两幅图像来指定样式,这为图像创建增加了其他NST算法所没有的多功能性。

相关工作

Texture NST

纹理NST一直是NST的主要形式(默认NST都是纹理NST)

在线优化的形式

通过迭代优化图像来传递样式。

离线优化的形式

离线优化生成模型,并在测试阶段通过一次向前传递生成样式化图像。

训好的模型一般只能迁移特定样式,有些模型将多种风格融合到一个模型中,或者使用一个模型来传递任意的艺术风格。

其他变式

肖像画风格转移、视觉属性转移、语义风格转移、视频风格转移、3D风格转移和照片级真实感风格转移

Geometric NST

几何形变的艺术风格的迁移越来越重要。

一些方法仅限于特定的内容域,如面部《The face of art: Landmark detection and geometric style in portraits》和文本。这些方法产生了极好的结果。

《Deformable style transfer》和《Geometric Style Transfer》描述了在多个类上操作的更通用的方法,增加的灵活性在质量方面似乎成本不高。

DST速度慢 支持任意形变

GST速度快 不支持任意形变

本文方法快且支持任意形变

做法

输入要求:

1)一张要被迁移的content图像Ic

2)一张指导几何迁移的图像Ig

3)一张指导纹理迁移的图像It

Ig和It可以是同一张

total pipeline如下(一个warper 一个styler)

image-20220609205913858

Geometric Style(Warper)

image-20220609210756668

其关键思想是训练一个能够推断二维扭曲场w的神经网络,并创建一个衡量特征相似性的四维标量函数M

有三个主要组成部分:

1)特征提取:分别获取 Fg 和 Fc

2)特征融合:来衡量特征相似度 M(Fc,Fg)

3)训练warp网络输出函数 f 使得 w = f(M),一旦训完,网络 f 可以在新输入上使用,无需修改,(即得到了一个通用的Warp Field Estimation用来估计warp degree)本文所有输出都是单个warper生成的。

定义warp field的w是非参数化的,不对分布做假设,就是一些统计量,不用网络进行分布的约束。

Feature Extraction

使用VGG,提取pool4出来的特征,接一个L2 normalization。输出的 F 是 W * H 的特征图,本文中是16 * 16,文中说是平衡了计算效率和扭曲质量得出的结果。

Feature Correlation

此模块计算feature map在每个pixel上的特征关联分数,结果存储在四维标量函数 M 中,M∈R W×H×W×H,其中的每个元素的计算规则如下:

Fc 是content图像提取的feature;

Fg是geometric图像提取的feature;

i,j 对应Fc中的pix坐标

k,l 对应Fg中pix的坐标

image-20220610101853238

分母为遍历Fg上的每个pix与Fc( i , j ) 做内积求平方开根;

分子为Fc(i,j)与Fg(k,l)做内积。

个人理解:这个统计量表示了每个两个feature间的关联性特征量。

Warp Network: Training and Using

本文在技术上的贡献为其训练了一个 f 来输出非参数化的warp field(w)。

输入feature correlation(M),该步骤可以表示为 w = f (M),形式化定义这层mapping:

image-20220610191607879

W1 , H1是图像尺寸,最终warp module输出根据Ig的几何形变warp后的Ic。

原则上不需要进行训练,因为如下的优化问题对于任何的图像对的数据都足够解决:

image-20220610192737703

h是一个度量函数。

此基于优化的方式来自于DST,但与直接从经过训练的网络计算扭曲场相比,单实例优化速度较慢。(本文没采用基于优化的方式,而是单独训练了一个网络)

本文网络使用一组语义相关或具有几何相似部分的图像对进行训练。图像对涵盖了广泛的语义内容:人脸、动物等。为了提高模型在艺术领域的泛化能力,我们使用艺术增强来创建每个训练图像的纹理增强副本。经过训练后,变形网络可以应用于任何图像,无论其语义内容如何

其基本思想是局部移动内容图像中的像素,并重新计算新扭曲图像中的特征,直到loss收敛

定义Fm来表示受像素m影响的

image-20220610200411017

image-20220610200701085

这个最终的softmax归一化输出代表每个content图像的pixel在每个扭曲图像中的search window中的关联程度

image-20220610213521698

个人最终理解:

输入扭曲图像和内容图像(待扭曲图像),使用VGG提取feature map,warp field矩阵扭曲Fc矩阵,与Fg矩阵进行feature matching计算一个关联度四维统计量,输入warp field estimator(神经网络),最小化每个pixel和其扭曲图像相应search window的关联度统计量来使得内容图像尽可能扭曲成目标扭曲样式;神经网络更新参数,输出更好的warp field,循环优化网络,直至达到良好的扭曲效果。

前半部分机器学习,后半部分深度学习,这样warp field可以直接通过网络inference出来,速度提升。

Texture Style(Styler)

最小化content loss 和 texture loss,二者依赖于用于目标检测而训练的模型,本文唯一不同在于采取多尺度策略,优先将纹理随着细节的增加转移到输出图像的不同区域。几十年来,这种策略一直用于规定性纹理合成,最近用于仅纹理的NST,有助于改善风格转换结果。在本文工作中,利用它来解决由于几何扭曲而产生的模糊和其他瑕疵

此部分不做详解

实现细节

warper在PF-PASCAL和MS COCO数据集上训练,可训练网络结构不大,单卡训了2小时

image-20220611151019063