视频加载失败

【Tensorflow】卷积神经网络图片风格转化

512 字
3 分钟
【Tensorflow】卷积神经网络图片风格转化
【Tensorflow】卷积神经网络图片风格转化

0x00#

之前有一款火爆网络的图像风格转化软件 Prisma,它能将一张普通的图片转成各种艺术风格的图像。现在简单来了解一下背后的算法原理及使用Tensorflow实现一下。

0x01 原理简述#

2016 CVPR 一篇文章:” Image Style Transfer Using Convolutional Neural Networks”(文章翻译) 提出了这种算法。

算法流程图:

1.png
1.png

简单地说就是使用一个训练好的卷积神经网络 VGG-19(19层VGG网络包含16个卷积层和5个池化层),而这个网络在ImageNet上已经有训练好了的。

假如现在有一张风格图像和一张普通图像,风格图像经过VGG-19 的时候在每个卷积层会得到很多 feature maps, 这些feature maps 组成一个集合 A,同样的,普通图像 通过 VGG-19 的时候也会得到很多 feature maps,这些feature maps 组成一个集合 B ,然后生成一张随机噪声图像 ,同样 随机噪声图像 通过VGG-19 的时候也会生成很多feature maps,这些 feature maps 构成集合 C ,最终的优化函数是希望调整 C 让 随机噪声图像 最后既保持普通图像 的内容, 又有一定的风格图像的风格。

2.png
2.png

想要了解更多请阅读原文 ” Image Style Transfer Using Convolutional Neural Networks”(文章翻译)

0x02 实现#

较好的实现项目:

  1. neural-style *需要性能较好的计算机。512 x 512分辨率的图片使用不同硬件进行1000次迭代性能对比:
    1. GTX 1080 ~60s
    2. Maxwell Titan X ~90s
    3. Intel Core i7-5930K ~1h
  2. fast-neural-style-tensorflow *可以使用预训练模型或自己训练模型,使用预训练的模型在性能较低的计算机上也能较好地实现。

这里使用预训练模型。

Tensorflow安装

克隆项目:

Terminal window
git clone https://github.com/Rehtt/fast-neural-style-tensorflow.git

运行:

Terminal window
#图像
python eval.py --model_file <wave.ckpt-done模型的路径> --image_file img/test.jpg
#视频
python video.py --model_file <wave.ckpt-done模型的路径> --video_file video/test.mp4 --out_video_file video/video.mp4

详情及训练模型请阅读说明

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
【Tensorflow】卷积神经网络图片风格转化
https://rehtt.com/posts/130/
作者
Rehtt
发布于
2018-12-03
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Rehtt
Hello, I'm Rehtt.
公告
欢迎来到我的博客!
分类
标签
最新动态
站点统计
文章
150
分类
17
标签
73
总字数
67,772
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录