基于VGG19的图像风格迁移

01

引言

世界绘画历史悠久,在人类发展的过程许多伟大的画家留下了传世名画。譬如梵高的《星夜》、《十五朵向日葵》,毕加索的《格尔尼卡》等,为人类留下了宝贵的艺术遗产。我们在欣赏名画时可以了解历史,提高艺术修养,陶冶情操。

《日出·印象》(法国印象派画家莫奈创作油画)

 

《星月夜》(荷兰画家梵高创作油画)

在智能化的浪潮下,科技不断创新,人工智能(AI)成为未来发展的趋势,对各行各业已经渐渐产生影响,人脸识别、智能搜索、推荐算法、机器翻译,自动或辅助驾驶等等,AI在我们日常生活中。

 

风格迁移是卷积神经网络较为有趣的应用之一,是AI与传统艺术的一次交叉碰撞。所谓图像风格迁移,其实是给定一张普通图片和一种艺术风格图片,生成一张呈现艺术风格和普通图片内容的迁移图片,带着大师级画家的气息。

 

 

 

 

 

 

02

VGG网络

风格迁移常用实现方法是VGG,下面做下详细介绍

 

VGG是很经典的模型,网络结构比较简单,因证明了增加网络的深度能够在一定程度上影响网络的最终性能而出名。其包含卷积层、池化层、全连接层、最后接一个softmax。网络结构如下图所示:

 

 

 

 D是VGG-16,E是VGG-19.可以看到,两者之间其实区别不大,只是VGG19相比于VGG-16,在第3、4和5段卷积中,都多了一层的卷积层,加深了网络层数结构,目的是使得特征的提取更加充分。

 

参数:

train-input:224x224大小的RGB图像

Filter:3x3大小的卷积核

stride:步长为1

padding:1个像素,padding='SAME',保留了边界处的卷积结果

maxpool:窗口是2x2,步长为2。降低维度,提取图像主要特征。

FC层:前两个是FC-4096,有4096个通道;第三个是FC-1000,有1000个通道。

activate function:用ReLu作为激活函数

 

 

 

 

03

基于VGG19的风格迁移

 

基本思想:

 

 

input tensor:把风格、内容和迁移图像一起输入到VGG19模型。风格、内容图像是我们自己定义的,迁移图像初始化为一个图片的占位符,后面不断进行优化

 

 

total loss: style loss + content loss

 

 

生成目标的损失函数是内容损失函数和风格损失函数的加权和,符号C表示输入图像,S表示风格图像,G表示生成的图像,J表示总loss;符号α、β内容loss和风格loss的权重,不同权重得到的效果不同。

损失函数为:

J(G)=αJcontent(C,G)+βJstyle(S,G)

 

内容loss:

 

风格loss:

 

标准的VGG19网络模型:

 

改进后的VGG19模型用于风格迁移:

 

因为这里不是用于分类,所以把三个全连接层去掉了,参数大大减小,标准VGG模型有400多m,去掉三个全连接层的模型只有不到100m,FC层占用的参数实在太大了,FC1层,7*7*512*4096=102760448字节 ,还有偏置参数,加起来这一层参数就100m了,过于冗余。可见相比于全连接神经网络,卷积神经网络的权值共享在参数上的优势。

 

 

 

04

例子

 

 

 

 

 

 

 

 

05

 

结语

风格迁移是人工智能的一个小应用,虽然人工智能是无法代替毕加索等史诗级别的画家大师,但通过学习大师的一些艺术绘画风格迁移到我们自己喜欢的照片,AI还是比较擅长的。这次推文讲到这里,谢谢大家!

 

部分图片来源于网络

 

 

2021/1/27

好久没上博客。好多人找我要代码,等我找个时间把代码整理好再放上来了。

  • 7
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值