cvpr2022:StyTR-2
-
论文链接:https://arxiv.org/abs/2105.14576
-
代码地址:https://github.com/diyiiyiii/StyTR-2
解说:CVPR 2022|快手联合中科院自动化所提出基于Transformer的图像风格化方法
此外,本文针对传统位置编码提出两个重要问题。第一,对于图像生成任务,在计算 PE(位置编码)时,是否应该考虑图像语义? 传统的 PE 是根据按照逻辑排序的句子来设计的,而图像序列是根据图像内容语义来组织的。假设两个图像补丁之间的距离为 d(.,.) 。如图 3(a) 右边部分所示,d((0 , 3 ), (1 , 3 )) (红色和绿色块) 之间的差异与 d(( 0 , 3 ), (3 , 3 )) (红色和青色 块) 之间的差异应该是相似的,因为风格化任务要求相似的内容补丁有相似的风格化结果。第二,当输入图像尺寸呈指数级增大时,传统的正弦位置编码是否仍然适用于视觉任务? 如 3(a) 所示,当图像大小发生变化时,相同语义位置的补丁 (用蓝色小矩形表示) 之间的相对距离会发生显著变化,这不适合视觉任务中的多尺度输入要求。
图 3 CAPE 计算示意图
为此,本文提出了内容感知的位置编码 (Content-Aware Positional Encoding,CAPE),它具有尺度不变且与内容语义相关的特点,更适合于风格化任务。
为了将风格图的风格和内容图的内容进行融合,所生成的图片,在内容上应当尽可能接近内容图,在风格上应当尽可能接近风格图
因此需要定义内容损失函数和风格损失函数,经过加权后作为总的损失函数
实现步骤如下
- 随机产生一张图片
- 在每轮迭代中,根据总的损失函数,调整图片的像素值
- 经过多轮迭代,得到优化后的图片
Gram矩阵的计算、风格损失及反传求导公式
以下内容转自: (笔记杂谈一)图像风格迁移中的Gram矩阵风格监督 - 知乎
定义n 维特征空间中有k 个特征向量 ,则它们的Gram矩阵就是由这些特征计算得来的偏心协方差矩阵(因为没有减均值),对角线元素的值则表征这些特征的强度(也就是幅值),其他元素则是特征之间的相关系数,图像的纹理特征可以看作不同底层特征之间的组合关系,所以用Gram 矩阵来衡量作为损失函数,便可以监督图像风格的迁移。下面三个论文便是用Gram矩阵来监督的。
[1]. Ghiasi G, Lee H, Kudlur M, et al. Exploring the structure of a real-time, arbitrary neural artistic stylization network[J]. arXiv preprint arXiv:1705.06830, 2017.
[2]. Yang S, Wang Z, Wang Z, et al. Controllable artistic text style transfer via shape-matching gan[C]//Proceedings of the IEEE International Conference on Computer Vision. 2019: 4442-4451.
[3].ADJUSTABLE REAL-TIME STYLE TRANSFER,ICLR2020
风格迁移中的Gram矩阵衡量的是不同特征之间的相关关系,计算流程如下:
定义风格图片在网络第n层的Gram矩阵为Sn,内容图片(即待迁移图片)的Gram矩阵为Cn,则风格损失可以定义为:
对于需要手写反传算法情况(比如我当初用的matconvnet~~,没有自动求导也没有矩阵乘法的反传),则面临着对一个矩阵乘法求反传公式的问题,我自己简单推导了一下,大致可以表述如下:
图中的L loss即上面的风格损失,是一个MSE形式的loss,GroudTruth为风格图片的Gram矩阵