一、风格迁移简介
风格迁移可以说是计算机视觉领域一大热点,简单来说就是有两副图片,一张内容图片 ,一张风格图片,该技术可以实现以风格图片的风格+内容图片的内容重新生成一张目标图片,例如:
内容图片 | 风格图片 | 目标图片 |
![]() |
![]() |
![]() |
说到风格迁移,不得不提到该领域的经典论文:
【CVPR-2016】Image Style Transfer Using Convolutional Neural Networks
有很多小伙伴已经对论文进行过解析,本文就简单介绍一下该论文,主要聚焦在论文的代码复现上。
二、论文简介
1.定睛之处
该论文之所以能够成功登上顶会,并且受到广大计算机视觉爱好者的推崇,最关键的一点就是——它证实了卷积神经网络可以将图像的内容和风格分离出来!!
如果说内容我们还可以勉强理解的话,那对于风格这个词就有点天方夜谭了。在现实中,我们可以说这个作家是抽象派,那个作家是抽象派,可以通过对画家作品的印象、直观感受进行区分。然而对于计算机而言,将画家的风格剥离出来貌似令人难以置信,该论文作者提出我们可以独立的操纵内容和风格来产生新的图像。
2.内容表示
该网络使用VGG19对图像进行特征提取,网络中的每一层都定义了一个非线性滤波器组(卷积),其复杂性随着该层在网络中的位置而增加,给定输入图像,每一层都会对其进行编码。
例如,在某l层有Nl个滤波器,则会产生Nl个大小为Ml的特征图,Ml为特征图的高×宽,所以在l层的响应可以存储在矩阵
当网络的处理层次逐渐加深时,网络中的较高层根据输入图像的排列来捕捉高级内容,但并不太注重精确像素值。相比之下,较低层的重建只是简单地再现原始图像的精确像素值,对于内容并不敏感。因此,我们将网络较高层中的特征响应称为内容表示。
低层的内容输出和高层的内容输出如下:
content_relu1_2 | content_relu2_2 | content_relu3_2 | content_rel4_2 | content_relu5_2 |
![]() |
![]() |