原理:我们需要将图像x通过学习y的风格,得到图像z,则我们需要定义一个函数描述z和x内容的差异,另一个函数描述z和y风格的差异,然后优化z。具体而言
Alpha, Beta是权重系数,p是真实图片photograph,a是艺术风格artwork,x是我们的制造的图片。Total loss 是 content loss和 style loss的加权。
换句话说,art style的核心问题有两个:两个图像在内容上像不像、两个图像在风格上像不像。
下面直接介绍实现操作的过程:
1.安装好anaconda:
https://www.continuum.io/downloads#windows
需要注意的是自动配置好环境变量
2.安装程序:
https://github.com/anishathalye/neural-style
在这个网页中有写好的程序
3.下载(训练好的)神经网络mat文件:
http://www.vlfeat.org/matconvnet/models/beta16/imagenet-vgg-verydeep-19.mat
放到第二步程序文件夹
4.创建虚拟环境,在cmd命令行下输入:
conda create –name tensorflow python=3.5
之所以需要用到3.5,是因为tensorflow 不支持3.6,所以需要在代码中强调)如果使用了3.6版本,则无法运行 tensorflow
5.创建完虚拟环境后,安装一些辅助包:
科学计算工具集:conda install SciPy
图像处理库:conda install Pillow
科学计算基础库:conda install NumPy
6.最后一步:
打开至程序所在文件夹,cmd开启虚拟环境:activate tensorflow
执行:python neural_style.py –content content.jpg –styles style.jpg –output output.jpg
(其中content.jpg是目录下的原图,style.jpg是目录下的效仿风格图,output.jpg是最终多次iteration后输出的成品图)
其后就是漫长的等待,当然为了加快速度(降低画质),可以在上述命令中规定iteration的次数(iteration=100之类的)
下面给大家看一下iteration 1000次(跑了我整整两天)的效果图:
加载原图:
风格转换图:
成品图:
有关报错:
由于我电脑上python2、3双版本并存(分别用python2,python3命令启动),在安装好anaconda后将python.exe 改为 python3.exe,因此造成了执行conda命令时报错:failed to create process.这时需将Anaconda3文件目录下的python3.exe名称改回原先的python.exe,就可以正常运行了。