最近很火的一款软件,prisma,可以实现将自己的照片和世界名画进行融合,生成名画风格的照片,闹腾的是,火火火火火,可以说,一半人在玩小精灵,另一半人则是玩prisma。
这款软件就是根据Image StyleTransfer Using Convolutional Neural Networks,这篇2016年的cvpr开发的。
同样的,这篇文章的作者还在2015年的cvpr上发过A Neural Algorithm of Artistic Style,雅虎的一哥们对其进行了实现,效果还是很赞的。
论文思想:
输入一张风格style照片,一张待处理照片,即内容(content)照片,然后经过VGG19的一系列的卷基层,分别提取出style和content,然后不断的迭代,使得由style和content两者组成的损失达到最小,其中,aerfa,beita为两个损失所占的权值。p为生成的图像,a为style图像,x为content图像。
具体到每个损失的计算,求导,这里就不在赘述,可以阅读论文进行研究。
安装步骤:
安装完caffe后执行如下的步骤,
cd caffe-root/examples/
git clone https://github.com/fzliu/style-transfer.git
cd style-transfer
touch run_style.sh
vim run_style.sh
输入如下信息,
python style.py -s images/style/cy.jpg\
-c images/content/11.jpg\
-m vgg19 \
-g 0
然后,
./scripts/download_models.sh
完毕后,执行,
./run_style.sh
然后就可以静静地等待了。
sh脚本中的输入格式如下,
python style.py -s <style_image> -c<content_image> -m <model_name> -g 0
<model_name>
为vgg16
, vgg19
, googlenet
, caffenet
错误解决:
sudo pip install progressbar
运行效果:
运行效果真的很神奇的可以将各种名画风格都融合进去,就是处理速度有点慢,可能和迭代次数的设置有关系吧。
左图为日常生活照,中间为挪威画家爱德华·蒙克的呐喊,右面为处理后的结果。
程序链接:
https://github.com/fzliu/style-transfer