这个是在去年微博里面非常流行的,在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宽度,和输入原始图像一致的宽长比。

我自己的实验结果

原始图像:

输出的效果:

基于caffe的艺术迁移学习 style-transfer-windows+caffe的更多相关文章

  1. 迁移学习( Transfer Learning )

    在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型:然后利用这个学习到的模型来对测试文档进行分类与预测.然而,我们看到机器学习算法在当前的Web挖掘研究中存在着一个关 ...

  2. 迁移学习(Transfer Learning)(转载)

    原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...

  3. 迁移学习(Transfer Learning)

    原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...

  4. Domain adaptation:连接机器学习(Machine Learning)与迁移学习(Transfer Learning)

    domain adaptation(域适配)是一个连接机器学习(machine learning)与迁移学习(transfer learning)的新领域.这一问题的提出在于从原始问题(对应一个 so ...

  5. 【47】迁移学习(Transfer Learning)

    迁移学习(Transfer Learning) 如果你要做一个计算机视觉的应用,相比于从头训练权重,或者说从随机初始化权重开始,如果你下载别人已经训练好网络结构的权重,你通常能够进展的相当快,用这个作 ...

  6. 基于双向LSTM和迁移学习的seq2seq核心实体识别

    http://spaces.ac.cn/archives/3942/ 暑假期间做了一下百度和西安交大联合举办的核心实体识别竞赛,最终的结果还不错,遂记录一下.模型的效果不是最好的,但是胜在“端到端”, ...

  7. 迁移学习︱艺术风格转化:Artistic style-transfer+ubuntu14.0+caffe(only CPU)

    说起来这门技术大多是秀的成分高于实际,但是呢,其也可以作为图像增强的工具,看到一些比赛拿他作训练集扩充,还是一个比较好的思路.如何在caffe上面实现简单的风格转化呢? 好像网上的博文都没有说清楚,而 ...

  8. fast neural style transfer图像风格迁移基于tensorflow实现

    引自:深度学习实践:使用Tensorflow实现快速风格迁移 一.风格迁移简介 风格迁移(Style Transfer)是深度学习众多应用中非常有趣的一种,如图,我们可以使用这种方法把一张图片的风格“ ...

  9. 《A Survey on Transfer Learning》迁移学习研究综述 翻译

    迁移学习研究综述 Sinno Jialin Pan and Qiang Yang,Fellow, IEEE 摘要:   在许多机器学习和数据挖掘算法中,一个重要的假设就是目前的训练数据和将来的训练数据 ...

随机推荐

  1. Bullet物理引擎在OpenGL中的应用

    Bullet物理引擎在OpenGL中的应用 在开发OpenGL的应用之时, 难免要遇到使用物理来模拟OpenGL中的场景内容. 由于OpenGL仅仅是一个关于图形的开发接口, 因此需要通过第三方库来实 ...

  2. 黑马程序员+ADO.Net基础(下)

    ---------------<a href="http://edu.csdn.net"target="blank">ASP.Net+Android ...

  3. SQL Saturday活动再起

    SQL Saturday活动再起 时间:2015年05月09日(星期六) 地点:上海徐汇区港汇2座10楼(10.073) 我们相约港汇2座10楼(10.073),SQL PASS上海分会的SQLSat ...

  4. TFS 改服务器IP 域名 端口方法

    长春电信伴随着开始的严打,所有未备案的80,8080等常用web端口都被封,使得原用8080作为服务端口的tfs代码服务器无法使用,现提供方法如下: 1.关掉VS 2.去掉要改的解决方案的sln文件的 ...

  5. 【Win10】UAP/UWP/通用 开发之 x:DeferLoadStrategy

    [Some information relates to pre-released product which may be substantially modified before it's co ...

  6. H5 缓存机制浅析 移动端 Web 加载性能优化

    腾讯Bugly特约作者:贺辉超 1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性.离线存储(也可称为缓存机制)是其中一个非常重要的特性.H5 引入的离线存储, ...

  7. 【读书笔记】WebApi 和 SPA(单页应用)--knockout的使用

    Web API从MVC4开始出现,可以服务于Asp.Net下的任何web应用,本文将介绍Web api在单页应用中的使用.什么是单页应用?Single-Page Application最常用的定义:一 ...

  8. ECMAScript 6 简介

    ECMAScript 6 是JavaScript的下一个标准,正处在快速开发之中,大部分已经完成了,预计将在2014年正式发布.Mozilla将在这个标准的基础上,推出JavaScript 2.0. ...

  9. 开源项目asmjit——调用自定义方法demo以及windbg调试

    asmjit是一个开源项目,使用它可以将代码即时的编译成机器码,也就是所谓的jit技术. 初次接触这个项目,编写了一个demo,学习它的使用方法. 现将编写的demo以及调试jit生成的机器码的过程总 ...

  10. alwaysOn为什么不支持分布式事务

    Alwayson是微软从SQL2012开始引入的一种高可用和高性能架构,它既可以实现故障转移,同时又能实现查询分离,是当前SQL server的所有架构中最优秀的一种. 因此,一般我们都会推荐使用Al ...