原文发自: February 17, 2017
引入
最近人工智能图片滤镜软件Prisma 非常的火,这款图片处理的App 综合了人工 神经网络 技术(neural networks)和人工智能技术,可以获取著名绘画大师和主要流派的艺术风格,然后对照片进行智能风格化处理,将图片转化为艺术化的效果。
安装及环境
- OS:Win10
- Python:3.5.2
- Anaconda:Anaconda 3 – 4.2.0
- Tensorflow:tensorflow-cpu-0.12,tensorflow-gpu-0.12(支持windows版本)
- GPU:NVIDIA GeForce GT 735M(特别注意:该显卡不支持CUDA加速运算,所以只能使用CPU运行改程序)
下载项目
下载VGG19网络模型
VGG19网络模型是由牛津视觉几何组(Visual Geometry Group)开发的卷积神经网络结构,它在视觉方面有着不错的表现,项目中也需要用到VGG19网络模型。
- 下载地址: http://www.vlfeat.org/matconvnet/models/beta16/imagenet-vgg-verydeep-19.mat
将其下载到项目目录中即可,项目结构如下:
开始转换(运行程序)
准备工作基本已经就绪。我们将原始图片以及需要学习风格的图片分别放到项目目录中的Content以及Style文件夹中,但在Linux和Windows环境上有些不同。Linux环境:
python neural_style.py --content 原始图片文件名 --styles 风格图片文件名 --out 生成图片文件名
例:python neural_style.py --content ContentFile.jpg --styles StyleFile.jpg --out OutFile.jpg
经过一段时间的处理我们可以在out文件夹中找到转换的文件OutFile.jpg
原始图片示例:
转换后的风格图片:
Win10环境下:
在Anaconda3集成环境中Jupyter QtConsole的命令窗口中,输入如下命令。(注意:首先需要导入python os package,然后使用os.chdir更改当前工作目录到指定的路径,改路径下就是下载的项目所在文件夹,最后使用%run 命令代替python命令运行程序)
进阶修改
当然项目中还有很多其他参数可以摸索,可能会将图片优化的更漂亮。比如:
--iterations 修改迭代次数(默认为1000)
--content_weight 照片权重
--style_weight 风格图片权重
--learning_rate 学习步长
更多的参数可以通过输入如下代码进行查看:
python neural_style.py --help
使用GPU进行转换
在进行完成上述步骤之后,就可以在自己的计算机上使用CPU进行转换自己的图片了。但是由于计算速度的原因,使用CPU处理图片过程比较缓慢(我的CPU:Intel(R) Core(TM) i5-3337 CPU @ 1.8GHz,在进行默认的1000次迭代输出时,频率能够带到2.47GHZ,并且CPU利用率100%的情况下,需要花费8个小时才能转换一张图片),所以尝试开启GPU进行图片处理。
链接见: