Controlling Perceptual Factors in Neural Style Transfer阅读笔记

摘要

主要提出了三个可控制的感知因素:spatial location、 colour information and spatial scale。
在这里插入图片描述
通过将风格分解为这些感知因素,可以将多个不同的风格信息组合起来,从现有风格中生成新的吸引人的风格。此外,作者还提到了这种方法可以被直接应用于很多现有的风格迁移技术之上。我上一篇文章介绍的AdaIN的方法在扩展实验部分也使用了本文的思想。

介绍

作者先说了三点通过观察发现的现象:
First, one might separately describe different styles in different regions, such as in the sky as compared to the ground.
不同区域的不同风格是可以被分离开表示的。
Second, one might describe the colour palette, and how it relates to the underlying scene, separately from factors like image composition or brush stroke texture.
颜色信息与基础的场景是有联系的,而与图像的组成和笔刷的风格是独立的。
Third, one might describe fine-scale spatial structures, such as brush stroke shape and texture,separately from coarse-scale structures like the arrangements of strokes and the swirly structure in the sky of the painting.
精细的结构(例如画笔的形状和纹路)与粗糙的结构(笔画的排列和绘画天空中的旋涡结构)是独立的。
这三点现象使作者提出了自己的假设:
图像风格可以在不同空间区域、颜色和亮度信息,以及跨空间尺度上被感知地分解为不同层次的风格,这些感知因素也成为了在风格迁移任务中更有意义的控制维度。

相关工作

介绍了之前的一些方法,主要提到了neural style,因为本文的主要工作是在其基础上改进的,而且都是Gatys写的,neural style的原理我之前的有简单介绍过。

Spatial Control

主要目的是控制风格图片的一块区域只作用于内容图片的某一块区域,如下图所示,可以把一个风格作用于内容图片的天空,另一个风格作用于内容图片的地面部分。图(d)是不使用空间控制的结果;图(e)是添加空间控制,从I的地面和天空分别获取风格;图(f)是分别使用I的地面风格和II的天空风格的结果。
在这里插入图片描述
在这里插入图片描述
基本的思路是对于内容和风格图片都设计了具有R个空间引导通道的 Tr (图(a)、(b)、©中右上角的小图,类似于mask),作用就是可以指明哪一种风格应该被用在哪一块区域上,第r个content guidance channel等于1的区域应该从同样第r个style guidance channel等于1的区域获得风格。其实就是把内容图片划分为了R个区域,因此应该有对应的R个mask。这个Tr也会跟随CNN进行传播,每一层也会得到与feature map相应的尺寸参与计算,具体怎么利用这个Tr,作者提出了两种方法。

Guided Gram Matrices

在neural style中主要使用了内容误差和风格误差,内容误差的不会受到影响,计算生成图片与内容图片通过VGG后feature map的差值就行了,但是风格误差需要新的方法计算,因此提出了guided Gram Matrix,公式如下:在这里插入图片描述
相比于neural style只增加了公式(5)的操作,其实可以理解为根据Tr为feature map增加了一个权重信息,类似于深度学习中常用到的Attention机制。作者提到这个权重可以是二值(只取0,1),也可以是实数,一般都会归一化,即权重之和为1。权重的作用使得feature map中包含我们想要style区域的激活值增大,在计算Gram矩阵的时候也会更加关注这些区域内特征的相关性。假设有天空和地面两块区域,那么当feature map与Tr1相乘时,天空区域的风格特征就会放大,网络在优化风格损失时也会主要更新控制该区域风格的参数,同理与Tr2相乘时会放大地面区域的风格特征。通过这样的设计,把风格损失的计算和优化过程分到了不同的区域内,从而实现了空间的控制。
风格的损失是在多个卷积层间进行的,所以在网络前向传播时Tr也需要变换成对应feature map的大小,如果只是简单的下采样,会降低对区域控制的效果(地面的风格也会影响到天空),主要是因为在区域边缘的神经元会受到多个相邻区域的叠加作用。因此作者稍微改动了一下,Tr只作用于完全属于某一个区域内的神经元上,并在整个图像上添加另一个恒定的全局引导通道。虽然这样做的原因很容易理解,但是怎么判定哪些神经元是完全属于某一区域的,论文里并没有说明。

Guided Sums

上面的方法针对R个区域中的每一个分别计算其Gram矩阵,作者又提出了一种方法,直接把R个引导通道堆叠在一起,这样只需要计算一次Gram矩阵,公式如下:
在这里插入图片描述
可以看到相比于上一种方式,去掉了对r的求和过程,因为对R个通道的Gram矩阵,只需要计算一次。从结果来看,这样的做法加快了速度,但也降低了生成的纹理质量。

Colour Control

颜色是一张图片风格的重要感知因素,同时它又很大程度地独立于别的风格信息,比如笔画风格和几何形状等。因此在风格迁移中独立控制颜色是我们想要的。作者提出了两种方法保留颜色信息,颜色直方图的匹配和仅亮度转移。

Luminance-only transfer

仅在亮度通道上进行风格迁移,因为作者发现相比于颜色,视觉感知对亮度的改变更敏感。
做法也非常简单,原来的风格迁移输入的是RGB三通道的图片,这里先把图片转化为亮度通道,然后在亮度通道上进行neural style的操作,最后再把内容图片的颜色信息与生成的亮度通道结合即可得到最终结果,在另一篇博客上看到一张图,提到了YIQ,原文中没有明确说明,但思想是一样的:

在这里插入图片描述
YIQ通道的图片中,Y包含了亮度信息,因此迁移在Y通道上进行,而I和Q通道保留了颜色信息,因此把内容图片的IQ与生成的Y相结合,即可得到风格迁移并保留了原颜色的图片。
如果内容图片和风格图片的亮度直方图相差很大,可以通过下面这个公式简单的处理,将风格图片亮度的均值和方差match到内容图片上:
在这里插入图片描述

Colour histogram matching

这个方法更直接,对于内容图片x和风格图片y,先使用颜色转换算法使y具有x的颜色,得到一张新的图片y’,然后把y’和x作为neural style的输入即可,其它地方都不需要改动。而只改变颜色的算法有很多种,作者使用了一种很简单但是有效的线性方法,把原风格图片的像素ps映射到ps’上:
在这里插入图片描述

Comparison

这两种方法的结果在感知上都取得了不错的效果,但有不同的优点和缺点。
colour-matching的方法自然受到颜色从内容图像到风格图像迁移效果的限制,即y变成y’的好坏。而颜色分布往往不能完美匹配,导致输出图像的颜色与内容图像的颜色不匹配。
相反,luminance-only transfer的方法完美地保留了内容图像的颜色。 但是,亮度和颜色通道之间的依赖关系在输出图像中丢失。 虽然虽然这通常很难发现,但对于突出笔触的风格来说,这可能会造成问题,因为单笔笔画可能会以不自然的方式改变颜色。

Scale Control

Scale control for style mixing

一种在不同尺度空间上独立控制风格化的方法。例如,我们希望将一幅作品的精细笔触与另一幅图像的粗尺度角形几何形状相结合。
作者先解释了风格中尺度的概念:We define the style of an image at a certain scale as the distribution of image structures in image neighbourhoods of a certain size f.也就是说一个像素和周围某个尺寸的像素之间存在的分布关系。之前的颜色分离也可以看作是一种尺度的分离,颜色是一个基于one-pixel neighbourhoods的结构。比较容易想到的方法是通过不同层获取到的Gram矩阵表示尺度信息,但是给定层的Gram矩阵其实也包含了更小尺度下的一些信息,导致在较小尺度就会有来自各个高尺度Gram矩阵包含信息的叠加。
作者给出的方法是创造了一个新的风格图片,这个风格图片结合了一个图片的fine-scale信息和另一张图片的coarse-scale信息,具体做法是:使用coarse-scale图片初始化生成图片,然后使用neural style的方法把fine-scale的风格迁移到coarse-scale上,但优化中丢弃了内容损失的计算,并且只选用 “conv1_1”、“conv2_1”两层来计算Gram矩阵的风格损失, 这么做会使得coarse-style的图片中的fine-scale texture全部被覆盖,因为据观察当结构相比风格特征具有更大的尺度信息时,优化会使图像结构保持完整。虽然这是不能保证的,因为它取决于优化器,但我们凭经验发现它对于典型用于neural style中的L-BFGS方法是有效的。
在这里插入图片描述
其中(a)是内容图像,(b)是风格图像,©将现有样式的粗细结合起来获得新样式。Style IV结合了Style I的精细尺度和Style II的粗尺度。Style V结合了Style II的精细尺度和Style III的粗尺度。(d)使用原始样式II的产出 (e)使用新的样式IV的输出。(f)使用新样式V输出。

Scale control for efficient high resolution

现有的neural style方法对高分辨率图片的风格迁移效果不是很理想,主要是感受野大小的限制。因为CNN的结构一旦确定,感受野的大小也就确定了,对于提取特征使用的VGG19,作者发现输入图片在500500像素附近有一个最佳点,风格化效果好地同时保留了内容信息。但对于高分辨率地图片,感受野大小的限制使得网络不能感受到更大尺寸的风格特征,所以只有一些小尺寸的结构被风格化了。
论文中使用的方法也很简单,先把高清内容图片x和高清风格图片y都下采样到最佳点500
500像素,然后使用neural style进行风格迁移,得到了500*500像素的输入,然后把这个结果上采样到原始高清分辨率,并把这个结果作为新的风格迁移过程的初始化值,原始的高清x和y作为内容图片和风格图片,这次风格迁移后即可得到最终结果。较大的变化是通过低清图的风格迁移去做的,而较小的变化和修正是通过高清图的风格迁移去做的。这样做有个优势是比直接进行高分辨率的传播更新需要更少的迭代次数。并且理论可以通过多次迭代去产生一个超高分辨率风格迁移的图片,仅会受输入图片的size和内存所影响。

Controlling Fast Neural Style Transfer

主要是把本文提到的方法用在fast neural style上。

Colour control

最简单的方法就是使用现有的fast neural style模型,把风格迁移后图片的亮度通道和内容图片的颜色通道结合起来,如下图(a)。另一种方法是只使用亮度通道去训练一个fast neural style模型,得到的图片也只有亮度通道,然后与内容图片的颜色通道结合,如下图(b)。这两种方法都要对亮度进行前面提到的归一化处理。luminance network从结果上看更好地结合了风格化和结构的关系。
在这里插入图片描述

Spatial control

就是简单的加了一个引导通道(mask),而且作者在训练时的时候发现引导通道的值不用改变,而且对于任意的mask网络都能很好地学会空间的控制。损失函数见前面对guided Gram Matrix的介绍,效果如下:
在这里插入图片描述

总的来说这篇文章就是作者通过观察,提出了假设:图像风格可以在不同空间区域、颜色和亮度信息,以及跨空间尺度上被感知地分解为不同层次的风格,因此我们可以控制这些感知因素从而控制风格迁移的效果。论文的主要贡献就是这几种思想并不局限于neural style或者fast neural style,而是可以被用到各种风格迁移的模型中。
论文里有些地方说的不是很具体,都说详细请看补充文档,暂时还没有看,所以有些地方可能理解的不太准确。

主要参考了这两篇博客:https://www.jianshu.com/p/1e5be578bbfd
https://blog.csdn.net/summer2day/article/details/79374580

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值