python图片风格迁移毕设_Python简单实现图像风格迁移
下载W3Cschool手机App,0基础随时随地学编程导语
T_T之前似乎发过类似的文章,那时候是用Keras实现的,现在用的PyTorch,而且那时候发的内容感觉有些水,于是我决定。。。
好吧我确实只是为了写点PyTorch练手然后顺便过来水一篇美文~~~
利用Python实现图像风格的迁移!!!
不喜欢过程同学的依旧可以直接下拉到最后看结果~
Let's Go!
参考资料
链接:
http://pytorch.org/tutorials/advanced/neural_style_tutorial.html#
是的,这又是来自于PyTorch官网的一个教程。
在相关文件中我依旧提供了我翻译好的版本~~~
以及涉及到的论文~~~
相关文件
密码: tv5i
开发工具
Python版本:3.6.4
相关模块:
torch模块;
PIL模块;
matplotlib模块;
torchvision模块;
以及一些Python自带的模块。
torch版本:
0.3.0
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
补充说明:
PyTorch暂时不支持直接pip安装。
有两个选择:
(1)安装anaconda3后在anaconda3的环境下安装(直接pip安装即可);
(2)使用编译好的whl文件安装,下载链接为:
https://pan.baidu.com/s/1dF6ayLr#list/path=%2Fpytorch
额外说明
T_T相关文件中提供了所需的预训练模型,若嫌弃官网的下载速度,可以下载我的。
下载之后放到类似下图路径的文件夹中:
原理简介
作为一个纯正的非艺术生,抱歉我真的没法解释什么叫图像的艺术风格。反正齐白石和梵高的画肯定不是一个style的就是了。
那么我来尝试解释一下风格迁移吧:
风格迁移的实质是保留原画内容的基础上,用另外一种style来呈现原画。
那么如何量化呢?
简单而言大概是这样的:
利用CNN逐层提取图像的特征(层越靠后提取出的特征越高级和稳定,即更能表现图片的高级语义信息),并且将某一层或某几层输出的Gram矩阵作为损失函数,来衡量两幅图像之间的内容/风格差异(T_T就是两幅图像分别经过相同的卷积神经网络,比较某一层或者某几层输出的Gram矩阵的差异)。
Gram矩阵是啥???
具体而言,其计算方式为:
我们都知道,一张图片在某个卷积层的输出特征为一个形如(batch_size, channels, width, height)的四阶张量,显然batch_size为1。
我们将类似下图的特征:
转换为(batch_size*channels, width*height)大小的矩阵,这个矩阵和它的转置相乘就可以得到一个大小为(batch_size*channels, batch_size*channels)的矩阵,这个矩阵即为Gram矩阵。
其实这就算是定义了图像风格和图像内容这两个概念了,接下来我们就可以实现风格迁移了。
其流程大概是这样的:
具体的实现细节详见源代码吧~~~
相关文件中也有官网教程的个人翻译版以及相关的论文供感兴趣者参考。
使用方式
修改下图所示处的图片路径为自己的图片路径:
在cmd窗口运行Neural_Transfer.py文件即可。
由于资源和时间有限,下面展示的结果我都只跑了几百轮左右,图像大小为256*256。
梵高笔下的皮卡丘
原图像:
生成的图像:
梵高笔下的老北京
原图像:
生成的图像:
毕加索笔下的爱因斯坦
原图像:
生成的图像:
齐白石笔下的西湖
原图像:
生成的图像:
更多
利用其他库实现的图像风格迁移:
1.基于python深度学习库DeepPy的实现:
https://github.com/andersbll/neural_artistic_style
2.基于python深度学习库Caffe的实现:
https://github.com/fzliu/style-transfer
3.基于python深度学习库TensorFlow的实现:
https://github.com/log0/neural-style-painting
感兴趣的朋友自己去实现一下吧~~~
python图片风格迁移毕设_Python简单实现图像风格迁移相关推荐
- python图片相似度计算_python Opencv计算图像相似度过程解析
这篇文章主要介绍了python Opencv计算图像相似度过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.相关概念 一般我们人区分谁是谁 ...
- python图片对比并确定_python如何对比图像的区别
python对比图像的区别方法:首先使用[pylab.imread]读取图片:然后使用[matplotlib.pylab - plt.imshow]显示图片:接着灰度图与RGB图相互转换:最后保存图片 ...
- 图像迁移风格保存模型_一种图像风格迁移方法与流程
本发明涉及图像处理技术领域,更为具体地,涉及一种图像风格迁移方法. 背景技术: 近年来,由深度学习所引领的人工智能技术浪潮,开始越来越广泛地应用到社会各个领域,尤其是在在计算机视觉领域,图像风格迁移作 ...
- python图片批量重命名_python实现大量图片重命名
本文实例为大家分享了python实现大量图片重命名的具体代码,供大家参考,具体内容如下 说明 在进行深度学习的过程中,需要对图片进行批量的命名处理,因此利用简单的python代码实现图片的命名格式处理 ...
- python图片修复软件下载_python 实现图片修复(可用于去水印)
在现实的生活中,我们可能会遇到一些美好的或是珍贵的图片被噪声干扰,比如旧照片的折痕,比如镜头上的灰尘或污渍,更或者是某些我们想为我所用但有讨厌水印,那么有没有一种办法可以消除这些噪声呢? 答案是肯定的 ...
- python怎么变成动图_python简单的图片切换形成动画效果程序
简单事情复杂化了,这个程序实现这个效果还能再度精简很多代码,把类去掉吧,你能自行完成吗? import turtle class Window: def __init__(self,width,hei ...
- python图片修复软件下载_python实现的jpg格式图片修复代码
最近为客户修复损坏的jpg写的,效果还可以,但不保证适用任何情况. 如果你有损坏照片,不妨试一试,如果可以使用给我留个言哦. 复制代码 代码如下: # -*- coding: utf8 -*- # ! ...
- python图片显示英文字符_Python中利用Tesseract软件来识别图片中的英文与中文
OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...
- python新建word文档_Python简单创建、操作Word文档
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. python-docx 随着近几年Python语言的崛起,它在办公自动化方 ...
最新文章
- 分布式任务调度平台 XXL-JOB
- CodeForces - 475B Strongly Connected City(最短路+判断强联通图/思维)
- win7 绑定arp
- 教务管理系统数据字典mysql_学校教务管理系统--数据库课程设计
- 【第9篇】Python爬虫实战-银行卡归属地查询
- java导出帆软pdf,java后台把fineRepo图表导出pdf格式时发生错误!
- 2012年主流U盘启动盘制作工具合集下载
- Linux的命令回收站在哪,Trash-Cli:Linux 上的命令行回收站工具
- android多个switch可,能刷安卓,任天堂 Switch 再跑个 Win10 如何?
- 常用逻辑用语@命题@猜想@量词@否命题和命题的否定
- 2022年「博客之星」 无知的人_的程序人生
- 冲钱会员 php,php会员充值问题
- π=4*atan(1.0);
- 秋招经验分享 | 银行笔面试该怎么准备
- C++堆空间和栈空间的区别
- 王子的烦恼(c++)
- matlab时间是不是毫秒,matlab – 将毫秒转换为小时和绘图
- html5 离线资源缓存,html5的离线缓存使用方法
- ibm urbancode example
- linux C语言 任务优先级,C语言中设置进程优先顺序的方法
热门文章
- 在线进销存软件免费版,哪个可以用?
- mac启动idea后显示“idea”意外退出
- 时间序列分析应用实例(使用Eviews软件实现)
- 软件质量保证与测试技术实验报告(一)白盒测试用例设计
- 软考中级软件设计师--1.计算机系统知识
- 【SSL】1597石子合并问题(环形)
- 读后感之Euraka和Nacos区别
- 【超图+CESIUM】【基础API使用示例】38、超图|CESIUM - 特效-云层设置
- matlab建模sar adc,SAR ADC的系统级建模与仿真
- 【观察】解读神州鲲泰:二十年磨一剑,积硅步至千里