原本要写的是组会要讲的,但是还挺复杂的,所以还是组会讲吧
去搜了搜ECCV2022,只有这一篇与Style Transfer相关
Introduction
这篇论文的目标是设计一种通用的风格转移方法,可以实现艺术、逼真的风格迁移,以及实现视频的风格迁移,同时在训练过程中并没有视频的参与
本文提出了一个Contrastive Coherence Preserving Loss(CCPL)鼓励生成的图像之间更加连续,并设计了一个Simple Covariance Transformation(SCT)更加有效的对齐内容和风格图像的二阶统计
Contrastive Coherence Preserving Loss
在没有视频指导的情况下提高生成图像的连续性,该论文做出了一个假设,相同位置相邻两帧之间提取出的特征的差异应该是相同的,并且一帧中相邻两个位置可以近似看作相邻两帧的同一个位置。文中虽然以patch举例,但是最终操作时却使用的像素
为计算CCPL,首先将生成的图片与内容图片输入到固定的Encoder 中,提取出某个特定层的特征和,然后从中随机取个位置的向量,其中,即上图中的红点,接着取周围八个位置的向量,其中,即上图中的蓝点,并且按照同样的方法,在上取相同位置的和。最后计算每个中心位置与周围位置的差异
考虑到如果使等于的话,网络会倾向于让与相等,因为这样会很容易使Loss降低。于是选用了对比学习的方法,最大化相同位置差异的互信息,并在计算InfoNCE Loss之前,与其他工作一样设置了一个两层的MLP网络将向量映射到一个单位的球体上,公式如下
其中是超参数并设置为0.07,该Loss让生成的图片与内容图片之间,相同位置的特征差异一致,不同位置的特征差异之间的差异更大
Simple Covariance Transformation
该论文设计了一个简单高效的模块来混合风格和内容特征,首先提取内容和风格图片的特征和,看代码应该是Encoder最后一层的特征,并根据通道的均值和方差进行归一化处理获得和,为简化计算将他们分别输入到和中,将通道从512降到32,获得和,和的结构如上图右上角,由三个层以及两个层组成。然后将展平并计算它的协方差矩阵,并通过计算与的矩阵乘法获得,再使用一个卷积层将通道数变回512,并在输入到decoder前加上原始风格特征的均值
Loss Function
Loss就是内容Loss、风格Loss加上前面说过的CCPL,公式如下
内容Loss使用F范数,风格Loss使用均值和标准差的F范数
其中代表encoder的第层特征
Results
实验结果表明这个Loss确实是有用的,在艺术风格迁移中,添加CCPL的指标会对比原先有所上升
在照片真实风格迁移中也是如此
两者的定性比较如下
视频的迁移结果引用代码中的例子
确实有不错的一致性
思考
选择这一篇论文一是因为ECCV2022只有这一篇Style Transfer,二是想看一下视频的风格迁移该怎么做,如果图片的风格迁移实在不好做,可以考虑一下扩展到视频
这篇论文的方法核心思想就是相同帧的相邻patch和相邻帧的同位置patch可以近似一致,所以即使只有一张图片也可以训练,并且能提升视频迁移时的效果。这种方法不需要视频,并且可以很方便的添加进其他方法中
这个方法好像可以放到CLIPstyler中,但不知道效果如何,而且CLIPstyler中应该是没法添加SCT这个模块,所以效果如何确实不好说
最终问题好像还是回归到CLIP中encoder的结构,接下来还是跑一跑这篇的代码,并且继续研究一下CLIP