java教程 知乎_【转】知乎 —— AdaIN 笔记

这个博客写的不要太好,强烈推荐并转载。【https://zhuanlan.zhihu.com/p/158657861】

AdaIN 笔记

95918c6f467b048de50a71eae15028ec.png

Liewschild

计算机视觉练习生,中国科学院大学硕士在读

论文Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization的阅读笔记

ICCV 2017的一篇论文,有点老,不过是一篇很棒的论文,做了非常多的实验,靠谱、实在,对我的研究也有非常大的帮助。

风格迁移主要3个指标,迁移速度,风格类别数、迁移结果的质量(这个凭肉眼观测的属性感觉还是比较主观),作者说,作为成年人,我全都要。之前的研究要么就是比较慢,要么就是可供前的风格数量有限,这篇论文的主要目标是实现实时的、任意风格的风格迁移(style transfer),主要方法就是自适应实例标准化(Adaptive Instance Normalization,AdaIN),将内容图像(content image)特征的均值和方差对齐到风格图像(style image)的均值和方差。此外,这个方法还给用户非常多的控制权,包括内容和风格的折中(trade off),风格插值(混合风格迁移),是否保留颜色,对图像的哪个区域进行风格迁移[1]。

话不多说,先上图感受一下效果,第一行为content image,提供内容,第一列为style image,提供风格,其余为风格迁移得到的结果,效果还是很不错的。

f3bcd386506dc5747164fb65a6f703b0.png

Fig.1 迁移结果,From reference [1]

一、背景知识

论文中的方法主要跟标准化(normalization)有关,这里对各种标准化操作进行一个介绍。

1、Batch Normalization

Ioffe 和 Szegedy[2]引入Batch Normalization(BN),大大简化了前向神经网络的训练。Radford等[3]发现BN在图像生成模型中也非常有效。Batch Normalization就是对一个batch中的数据进行标准化,就是每一个值减去batch的均值,除以batch的标准差,计算公式如下:

60070fc0b50df29bc7c0a77b92324a6b.png

From reference [1]

2abfb151253988f63b37e325542556a1.png

From reference [1]

794fba297dc7f61d36d6df6b033bdc69.png

From reference [1]

其中,

dbd56b4729a8aff676d75461cc409c33.png分别表示计算均值和标准差,

2118f56d08e0f66b57efb45393173104.png是仿射变换的两个参数。

2、Instance Normalization

Ulyanov等[4]发现,将BN替换为Instance Normalization(IN),可以提升风格迁移的性能。IN的操作跟BN类似,就是范围从一个batch变成了一个instance,计算公式如下:

3172b95674b1986f357209c80bbe27cc.png

From reference [1]

c7acce875884b4d7bdfccf0389686fea.png

From reference [1]

01115f92ae8908d87a8a8abcd8da5498.png

From reference [1]

3、Conditional Instance Normalization

Dumoulin等[5]提出了Conditional Instance Normalization(CIN),计算公式如下:

04ec679f75cef387d246199fd18f15a2.png

From reference [1]

乍一看好像没啥变化,其实不然,它在训练中会学习不同的

6882cdaf667689b27b23497f53979f48.png 对(pair)。令人惊喜的是,对于同一张content image,同一个迁移网络,使用相同的卷积层参数,使用不同的

0f0662c6832cd311e1e8171f63270f7c.png 对,可以得到不同风格的迁移结果。为什么!先卖个关子,咱后头慢慢讲。

二、为什么Instance Normalization可以这么厉害!!!

(Conditional)Instance Normalization取得了巨大的成功,这到底是为什么呢?是道德的沦丧,还是人性的扭曲......偏了偏了,让我们一起走进实验,探索其中的奥秘。

Ulyanov等[4]将其归因于IN对content image的对比度的不变性。作者觉得,不,它不是这样的。二话不说,撸起袖子就是干,让实验结果说话

c9ba51fb2b1aaf6150ec35ba34364e60.png

Fig.2, 实验结果,From reference [1]

作者分别用原图和对比度标准化后的图像对网络进行训练,结果(Loss收敛的速度,值)如图2中的(a)和(b)所示,可以发现并没有什么不同,IN对contrast normalized的图像依旧比BN更有效,所以对比度它不是答案的关键。

众所周知(我之前就不知道,孤陋寡闻如我),DNN提取的特征的统计特性可以代表图像的风格[6-8]。Gatys等[9]使用二阶统计特性作为优化目标;Li等[10]发现,对其他统计特性,如channel-wise的均值和方差,进行匹配,对风格迁移也是很有效的。基于上述观察,作者提出,instance normalization通过对特征的统计特性(均值和方差)进行标准化,实现了某种形式的风格标准化(style normalization)。特征的均值和方差就代表着图像的风格!为了验证自己的想法,作者又做了一个实验,先将图像迁移到同一个风格(不是目标风格),然后再进行一次风格迁移(到目标风格),结果如图2中的(c)所示,IN和BN的性能差异减小了很多。迁移到同一个风格后,BN的均值和方差和IN的均值和方差就差不多了(差多少取决于迁移的性能),所以BN和IN的性能就差不多了。没错了,是它,是它,就是它!实锤了,特征的均值和方差就代表着图像的风格!这也就解释了为什么CIN使用不同的

717a0aa485901317f446da08a30d5041.png 对,可以得到不同风格的迁移结果。

三、重点来了:Adaptive Instance Normalization

在BN,IN,CIN中,网络会学习仿射变换参数

475c2aef8c9daa6eb43e052734ed7af8.png,作者提出的AdaIN则无需学习这两个参数,直接用style image的特征的均值和标准差代替这两个参数,公式如下:

c26950ecfd694f61cd85581423d8a77d.png

From reference [1]

其中,

4d82319a5e11393235346725cf78b8fc.png分别表示content image的特征的均值和标准差,

9061ecca268ec2ed07c530ab89c6e473.png 分别表示style image的特征的均值和标准差。这个公式可以理解为,先去风格化(减去自身均值再除以自身标准差),再风格化到style image的风格(乘style image的标准差再加均值 )。

网络结构如图3所示

2932fa2f04864d14d04ece001ef14f94.png

Fig.3 网络框架,From reference [1]

训练时,先用VGG提取content image和style image的特征,然后在AdaIN模块进行式(8)的操作,然后用于VGG对称的Decoder网络将特征还原为图像,然后将还原的图像再输入到VGG提取特征,计算content loss和style loss,计算公式如式(11-13)所示,style loss会对多个层的特征进行计算。VGG的参数在训练过程中是不更新的,训练的目的是为了得到一个好的Decoder。

5bdbb2252990361c0336019be9f0bcb3.png

From reference [1]

1ad237ff5e71a6dc6e766855800a4c3d.png

From reference [1]

19c886c5578e3dade76cb9763d6d6dc8.png

From reference [1]

四、实验结果

1、跟其他方法的比较

图4是迁移的结果,个人觉得效果最好的是Chen and Schmidt那个,但是它速度慢了些,比这篇论文慢50倍左右(见图5)。Loss我觉得这篇论文倒是降得挺低的,训练200多次迭代后就比其他都低了,但效果我感觉其实没别人的好(这件事比较主观),这说明,loss不能充分反映最后的效果会这样

d654ee3858ba156c6c69b6326d9d1804.png

Fig.4 迁移结果,From reference [1]

3ada402a7a28a063d864ec78355a1f3f.png

Fig.5 迁移速度、风格数量,From reference [1]

5b33c884d091ee3347c88f8b44b4fc20.png

Fig.6 两个Loss,From reference [1]

2、看看其他方法效果怎么样

Enc-AdaIN-Dec: 论文中的方法

Enc-Concat-Dec: 将AdaIN替换为串联操作,即把content image会和style image的特征简单串联起来

Enc-AdaIN-BNDec: 在DEcoder中加入BN

Enc_AdaIN-INDec: 在DEcoder中加入IN

图7(d)中可以看到(a)中鸭子的轮廓,说明网络没能把style image的style和content解耦好,与图8中content loss很大相对应;(e)和(d)效果很差,style loss也很大,(e)效果尤其差。这也在此验证了作者的想法,Normalization会将风格进行标准化(或者说,去风格化),这与我们想生成不同风格图像的目标相左,所以效果自然不好。

ba03fbfdd1a8e44b2b454c9af140d641.png

Fig.7 不同方法的迁移结果,From reference [1]

dcb7ecb82faddfea0d53d44f789dd3cc.png

Fig.8 不同方法的Loss,From reference [1]

3、content和style的折中

用户可以通过参数

3c8e5ca986ea73943b0cc2f44695c42a.png来控制content和style的折中, 

5971a20ee9530faf27f997c2e241946b.png 越大,风格迁移得越好,但内容的保存得越少,如图9所示

2a42249a4a3828aef0fa7181a5a35da2.png

Fig.9 content与style的折中,From reference [1]

4、多风格的混合

如图10所示,四个顶点是4张style image,中间是迁移结果,混合了4张图像的style,离style image越近,风格也越靠近该图

3c4b9dde1588810f2388b8d6e8511b04.png

Fig.10 多风格混合迁移,From reference [1]

5、色彩控制

如图11所示,左半边大图为content image,右上角小图为style image,如果直接迁移,得到的图的颜色跟style image会很像,通过色彩控制选项,可以保存原图的色彩,效果如图11右半边所示

b09626dd7fc306bbe075da997baaec1c.png

Fig.11 色彩控制,From reference [1]

6、空间控制

将一张图像的不同区域迁移到不同风格,效果如图12所示

ab23b65378fec924e9850f3f0e845f46.png

Fig.12 空间控制,From reference [1]

Reference

[1] Huang, Xun, and Serge Belongie. "Arbitrary style transfer in real-time with adaptive instance normalization." InProceedings of the IEEE International Conference on Computer Vision, pp. 1501-1510. 2017.

[2] S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In JMLR, 2015

[3] A. Radford, L. Metz, and S. Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. In ICLR, 2016.

[4] D. Ulyanov, A. Vedaldi, and V. Lempitsky. Improved texture networks: Maximizing quality and diversity in feed-forward stylization and texture synthesis. In CVPR, 2017.

[5] V. Dumoulin, J. Shlens, and M. Kudlur. A learned representation for artistic style. In ICLR, 2017.

[6] L. A. Gatys, A. S. Ecker, andM. Bethge. Image style transfer using convolutional neural networks. In CVPR, 2016.

[7] C. Li and M. Wand. Combining markov random fields and convolutional neural networks for image synthesis. In CVPR, 2016.

[8] Y. Li, N. Wang, J. Liu, and X. Hou. Demystifying neural style transfer. arXiv preprint arXiv:1701.01036, 2017.

[9] L. A. Gatys, A. S. Ecker, andM. Bethge. Image style transfer using convolutional neural networks. In CVPR, 2016.

[10]Y. Li, N. Wang, J. Liu, and X. Hou. Demystifying neural style transfer. arXiv preprint arXiv:1701.01036, 2017.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值