A Content Transformation Block for Image Style Transfer (CVPR2019, 风格迁移)

Kotovenko, Dmytro, et al. “A Content Transformation Block for Image Style Transfer.” CVPR 2019.

风格迁移问题: X → Y X \rightarrow Y XY 。源域为 X X X,目标域为 Y Y Y

本文中 E E E为Encoder,主要负责提取图像内容信息,换句话说也就是去风格化。
D D D为Decoder,主要负责将 E ( ) E() E()提取的内容信息还原为原图,比如将尺寸较小的Tensor还原为尺度较大的Tensor。
τ \tau τ负责转换风格。

所以测试阶段通过 D ( τ ( E ( x ) ) ) D(\tau({E(x)})) D(τ(E(x))) 风格迁移。

另外文章还设置两个判别器:一个是 D s D_s Ds,用于鉴别生成图像和真实图像间的风格真伪;另外一个是 D c D_c Dc在给定内容信息的情况下,鉴定 τ ( E ( x ) ) \tau(E(x)) τ(E(x)) E ( y ) E(y) E(y)的真伪。(ps: 由于 y y y本身就是目标域的Ground truth图像,所以不需要经过 τ ( ) \tau() τ()进行风格转换。)

用到的四种损失函数:

文章一共涉及四种损失函数:第一个是像素级别的损失函数,图像 x x x经过Encoder E E E提取内容信息,再通过Decoder D D D重构成原尺寸大小,要求重构误差尽可能小。
在这里插入图片描述

还有两个对抗损失函数:见(8)和(9),其中的判别器均提供了辅助信息。其中 c c c为物体类别信息, s s s为场景信息。还有一个fixpoint loss,见式子(10)。
A Content Transformation Block for Image Style Transfer (CVPR2019, 风格迁移)_第1张图片

训练流程:

每个iteration分为两步:
第一步,训练Encoder E E E,Decoder D D D D s D_s Ds,固定其它网络;
第二步,训练转换块 τ \tau τ D c D_c Dc,固定其它网络;
每一步使用到的损失函数见(11), (12)。
A Content Transformation Block for Image Style Transfer (CVPR2019, 风格迁移)_第2张图片

训练流程图:

A Content Transformation Block for Image Style Transfer (CVPR2019, 风格迁移)_第3张图片

τ − \tau- τ Content Transformation Block:

感觉Content Transformation Block的命名有些奇怪, τ \tau τ实际的功能是:保留图像的content即内容信息,对图像风格进行转换。

τ \tau τ由六个连续、结构相似的block重复而成。在每个block中,包含改论文新提出的LFN-layer
(Local Feature Normalization Layer)。

Local Feature Normalization Layer

简而言之,LFN-layer 的功能就是将channel c c c上的第 ( h , w ) (h,w) (h,w)个位置上的元素 更新为 附近 G G G个channel上以 ( h , w ) (h,w) (h,w)为中心、 W S WS WS为长宽的窗口中覆盖元素归一化后了,再利用 α \alpha α β \beta β进行缩放和平移后的值。

A Content Transformation Block for Image Style Transfer (CVPR2019, 风格迁移)_第4张图片

对于instance normalization: 是对每个channel上 H × W H\times W H×W的feature map值进行调整。
对于batch normalization: 是对每个channel上 b a t c h _ s i z e × H × W batch\_size \times H \times W batch_size×H×W的feature map值进行调整。

你可能感兴趣的:(图像转换)