A Neural Algorithm of Artistic Style

论文地址:https://arxiv.org/abs/1508.06576

翻译地址:https://www.jianshu.com/p/9f03b61fdeac

 

上面两个图就简单解释一下图像生成过程,其中\alpha \beta分别是风格和内容的权重,当我们更想生成的图片像内容就把\beta变大,反之把\alpha变大。

本文关键的发现是对于内容和风格的表征在CNN中是可以分开的。我们可以独立地操作两个表征来产生新的,可感知意义的图像

Gram矩阵:Gram矩阵详解


作者的目的是想把艺术大师的名画的画风迁移到普通的图片上,使机器也可以画名画。这就涉及到两方面的图片——画风图片(一般是名画)、内容图片(我们想画的内容)。

具体实现的方式用框图表示出来是这样的

实际操作是通过不带全连接层的vgg网络分别抽取内容图、画风图以及生成图(就是最后你画的“名画”)的特征图,然后分别用内容特征和生成特征图计算内容损失,用画风图和生成图计算风格损失,将两个损失合起来,作为总体损失,用总体损失来计算生成图的梯度然后更新生成图。生成图最初初始化为白噪声图。vgg用imagenet预训练模型。

内容重构。我们可以通过从一个已知特定层的网络的响应重构输入图片来可视化CNN中不同处理层的信息。我们重构了输入图像从VGG的‘conv1 1’ (a), ‘conv2 1’ (b), ‘conv3 1’ (c), ‘conv4 1’ (d) and ‘conv5 1’ (e)。发现从较低层重构的几乎可以称完美 (a,b,c)。在网络的较高层,具体的像素值信息在更高层次的内容被保存的时候丢失了(d,e)。

风格重构。在原始的CNN的最高层我们建立了一个新的特征空间来捕获输入图片的风格。风格表现计算了CNN不同层中不同特征的联系。我们重构了输入图像的风格,建立在以下CNN层的子集( ‘conv1 1’ (a), ‘conv1 1’ and ‘conv2 1’ (b), ‘conv1 1’, ‘conv2 1’ and ‘conv3 1’ (c), ‘conv1 1’, ‘conv2 1’, ‘conv3 1’ and ‘conv4 1’ (d), ‘conv1 1’, ‘conv2 1’, ‘conv3 1’, ‘conv4 1’ and ‘conv5 1’ (e))。这创作的图像在增长的规模上符合了给定图像的风格,同时丢弃了全局的场景应用的信息。

上图展示使用不同风格层和内容层生成的效果图

 

作者的意图是想通过CNN分别抽取内容图的特征图、名画的特征图。然后用内容特征图做出目标内容;用画风特征图做出目标画风。根据生成图的内容与目标内容的差异来“画”(优化)内容;用生成图与目标画风的差异来“画”(优化)风格。(下面这句为个人理解)这样一来,上面框图中最上面的网络和最下面的网络实际只跑一次,但中间网络要跑N次,但这N次跑前向和后向,后向不会优化网络参数,只会优化生成图。

特征图可以选择vgg 5个卷积模块中任何一个模块的仁义卷积层的输出,实际画风提取了多个卷积层的输出。内容直接用特征图表示;画风采用每个特征图自己与自己的Gram矩阵表示,通常将多个卷积层提取的多个特征图作Gram矩阵后叠加。

Gram矩阵是计算相关关系的,个人以为计算特征图自己的格拉姆矩阵是提取像素与像素之间的关联,以这种关联性来表示风格。

论文中实际方法是这样的:


内容的损失和基于生成图的梯度


其中Fij和Pij分别表示生成图像和原始内容图像中的像素值。

画风损失和基于生成图的梯度

画风损失——名画的格拉姆矩阵和要生成图的格拉姆矩阵之间的距离总和

画风基于生成图的梯度

总损失

以总损失作为目标优化生成图。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值