zoukankan      html  css  js  c++  java
  • 基于caffe的艺术迁移学习 style-transfer-windows+caffe

    这个是在去年微博里面非常流行的,在git_hub上的代码是https://github.com/fzliu/style-transfer

    比如这是梵高的画

    这是你自己的照片

    然后你想生成这样

    怎么实现呢在基于windows的caffe上,很简单。

    1 首先在 https://github.com/fzliu/style-transfer 把代码下载下来,另外主要这个代码基于pycaffe的,需要将pycaffe编译好。

    最好是在电脑上装一个python progressbar包 ,在windows cmd下输入 pip install progressbar

    2 解压style-transfer-master文件夹,运行scripts 下的download_models.sh 就会下载模型,

    在model文件夹下会出现caffenet、vgg16、vgg19、googlenet等文件夹,但是有时候model文件夹里面还是没有.model文件,一般来说.model文件有几十到几百M不等。

    我们可以打开download_models.sh,按照里面的链接直接下载。

    3 运行代码

    下面是运行代码的格式:  python style.py -s <style_image> -c <content_image> -m <model_name> -g 0

    在windows下 切换到style.py 所在的目录,输入代码如下

    python style.py -s images/style/starry_night.jpg -c images/content/nanjing.jpg -m vgg19 -g 0

    可见上面例子中,style-image对应starry_night.jpg 即风格图像, content_image对应自己的照片nanjing.jpg, 模型选择vgg19, g 0对应选择默认的GPU,如果是g -1则为CPU

    然后回车就能运行,得到上述结果了。

    下面是运行的示意图:

    可以看到,选择GPU、然后加载图像和模型成功后就开始跑了,左侧是显示运行进度,已经是6%,还需要54分钟左右,由于图像比较大,时间比较长。

    4 更改style.py 中

    parser.add_argument("-l", "--length", default=1024, type=float, required=False, help="maximum image length")

    def transfer_style(self, img_style, img_content, length=1024, ratio=1e5,
    n_iter=512, init="-1", verbose=False, callback=None): 可以设置图像输出的尺寸大小,例如你自己的照片图像大小是1024*500 ,更改输出length=1024,可以获得与原始图像一致的尺寸。

    不更改的话,程序中默认输出是512宽度,和输入原始图像一致的宽长比。

    我自己的实验结果

    原始图像:

    输出的效果:

  • 相关阅读:
    Anagram
    HDU 1205 吃糖果(鸽巢原理)
    Codeforces 1243D 0-1 MST(补图的连通图数量)
    Codeforces 1243C Tile Painting(素数)
    Codeforces 1243B2 Character Swap (Hard Version)
    Codeforces 1243B1 Character Swap (Easy Version)
    Codeforces 1243A Maximum Square
    Codeforces 1272E Nearest Opposite Parity(BFS)
    Codeforces 1272D Remove One Element
    Codeforces 1272C Yet Another Broken Keyboard
  • 原文地址:https://www.cnblogs.com/love6tao/p/5894389.html
Copyright © 2011-2022 走看看