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宽度,和输入原始图像一致的宽长比。

    我自己的实验结果

    原始图像:

    输出的效果:

  • 相关阅读:
    SPLAY,LCT学习笔记(五)
    SPLAY,LCT学习笔记(四)
    SPLAY,LCT学习笔记(三)
    NOI 2012 随机数生成器
    SPLAY,LCT学习笔记(二)
    SPLAY,LCT学习笔记(一)
    bzoj 1503 郁闷的出纳员
    bzoj 1112 poi 2008 砖块
    bzoj 1064 noi2008 假面舞会题解
    数论知识点总结(noip范围)
  • 原文地址:https://www.cnblogs.com/love6tao/p/5894389.html
Copyright © 2011-2022 走看看