++库 照片风格转换风格_如何用神经网络实现照片的风格转换
前言
在今天的文章中,我们将实现风格转换效果。为了做到这一点,我们必须更深入地理解卷积神经网络及其各层是如何工作的。在本文的最后,您将能够创建并运行一个风格转换程序。
什么是风格转换
在我们开始我们的风格转换应用程序之前,让我们介绍一下我们正在努力实现的目标。
给定一个输入图像和一个样式图像,我们可以用原始内容和一个新的样式来计算一个输出图像。就像下面这个例子:
波士顿的天际线与梵高的《星夜》交相辉映
如何实现风格转换
- 我们获取输入图像和风格图像,并将它们调整为相同的形状。
- 我们加载一个预先训练好的卷积神经网络(VGG16)。
- 知道我们可以区分负责样式的层(基本形状、颜色等)和负责内容的层(特定于图像的特性),我们就可以分离这些层来独立处理内容和样式。
- 然后我们把我们的任务设置为一个优化问题,我们要最小化:
- 内容loss(输入和输出图像之间的距离-我们努力保持内容)
- 风格loss(样式与输出图像之间的距离—我们努力应用新样式)
- total variation loss(正则化-对输出图像进行去噪的空间平滑度)
5. 最后,我们使用L-BFGS算法设置梯度并进行优化。
代码讲解
你可以在GitHub上找到风格转换项目的完整代码库:
https://github.com/gsurma/style_transfer
输入:
# San Franciscosan_francisco_image_path = "https://www.economist.com/sites/default/files/images/print-edition/20180602_USP001_0.jpg"#Input visualization input_image = Image.open(BytesIO(requests.get(san_francisco_image_path).content))input_image = input_image.resize((IMAGE_WIDTH, IMAGE_HEIGHT))input_image.save(input_image_path)input_image
下图就是输入图片:
风格:
# Warsaw by Tytus Brzozowski, http://t-b.pltytus_image_path = "http://meetingbenches.com/wp-content/flagallery/tytus-brzozowski-polish-architect-and-watercolorist-a-fairy-tale-in-warsaw/tytus_brzozowski_13.jpg"# Style visualization style_image = Image.open(BytesIO(requests.get(tytus_image_path).content))style_image = style_image.resize((IMAGE_WIDTH, IMAGE_HEIGHT))style_image.save(style_image_path)style_image
风格图片:
数据预处理:
# Data normalization and reshaping from RGB to BGRinput_image_array = np.asarray(input_image, dtype="float32")input_image_array = np.expand_dims(input_image_array, axis=0)input_image_array[:, :, :, 0] -= IMAGENET_MEAN_RGB_VALUES[2]input_image_array[:, :, :, 1] -= IMAGENET_MEAN_RGB_VALUES[1]input_image_array[:, :, :, 2] -= IMAGENET_MEAN_RGB_VALUES[0]input_image_array = input_image_array[:, :, :, ::-1]style_image_array = np.asarray(style_image, dtype="float32")style_image_array = np.expand_dims(style_image_array, axis=0)style_image_array[:, :, :, 0] -= IMAGENET_MEAN_RGB_VALUES[2]style_image_array[:, :, :, 1] -= IMAGENET_MEAN_RGB_VALUES[1]style_image_array[:, :, :, 2] -= IMAGENET_MEAN_RGB_VALUES[0]style_image_array = style_image_array[:, :, :, ::-1]
网络模型:
# Modelinput_image = backend.variable(input_image_array)style_image = backend.variable(style_image_array)combination_image = backend.placeholder((1, IMAGE_HEIGHT, IMAGE_SIZE, 3))input_tensor = backend.concatenate([input_image,style_image,combination_image], axis=0)model = VGG16(input_tensor=input_tensor, include_top=False)
结果
经过运行程序,我们获得了如下结果:
参考:
https://towardsdatascience.com/style-transfer-styling-images-with-convolutional-neural-networks-7d215b58f461
++库 照片风格转换风格_如何用神经网络实现照片的风格转换相关推荐
- 目前流行的装修风格_目前装修流行的主要八大风格
1.中国传统风格 中国传统风格也叫中式风格,这种风格崇尚庄重.优雅,在装修时吸取中国传统的木构架构屏风.隔扇等装饰.而且大多采用对称的空间构图方式,色彩庄重,体现出一种宁静雅致的氛围. 此图片由圣都装 ...
- python神经网络风格_[Deep-Learning-with-Python]使用LSTM生成尼采风格文章
github地址repos LSTM生成文本 使用循环神经网络生成序列文本数据.循环神经网络可以用来生成音乐.图像作品.语音.对话系统对话等等. 如何生成序列数据? 深度学习中最常见的方法是训练一个网 ...
- java utf8 简繁转换 类库_在Java中进行中文繁体简体转换,基于OpenCC(Open Chinese Convert)方案...
一.OpenCC介绍 OpenCC (Open Chinese Convert,开放中文转换) 是一个用于中文简繁转换的开源项目,支持词汇级别的转换.异体字转换和地区习惯用词转换(中国大陆.台湾.香港 ...
- python数字大小写转换代码_用python实现把数字人民币金额转换成大写的脚本程序...
# -*- coding: utf-8 -*- def Num2MoneyFormat( change_number ): """ .转换数字为大写货币格式( forma ...
- 目前流行的装修风格_目前最流行的八大装修风格对比,总有一款适合你
目前最流行的风格有8种:分别是1.现代简约风格:2.混搭风格:3.欧式简约风格:4.美式风格:5.乡村风格:6.欧式古典风格:7.地中海风格:8.新古典风格.除此之外,田园风格.和式风格.韩式风格.东 ...
- 如何用photoshop做24色环_如何用Photoshop给照片添加印章水印,内附印章模板素材...
欢迎关注抱你一下 一个和你一样好看的公众号 教程视频及其模板福利往下看哦 前几天录剪了我的第一个视频,是一个关于怎样在PS中制作个人艺术印章的教程. 同时我还在视频最后给大家准备了几十份印章模板, ...
- python视频处理为卡通风格_使用python代码将照片变成卡通图片
今次介绍用代码来实现这项任务,可以就此探查各种滤镜的内部机制. 制作环境:Windows10,Python2.7,Anaconda 任务描述:将D盘某文件夹中的所有图片使用代码进行卡通化,然后保存到另 ...
- 坐标系转换工具_借助工具实现不同坐标系之间的转换
在设计院日常工作中避免不了不同坐标系之间矢量数据.栅格数据等的转换,由于涉及到不同的参考椭球可能在某些情况要转换需要额外的参数,实现转换.但是有时候却受限于一些原因需要我们自己进行转换,下面就工作中的 ...
- 目前流行的装修风格_现在最流行的八大装修风格
流行的装修风格主要分为八大风格,分别为:现代前卫风格.现代简约风格.雅致主义风格.现代中式风格.新古典风格 .欧式古典风格.美式*主义以及地中海风格.不同的设计风格分别对应了不同的生活方式:现代前卫对 ...
最新文章
- php 输出读取结果集,php获取数据库结果集实例详解
- 3千字带你搞懂XXL-JOB任务调度平台
- mysql NOW,CURRENT_TIMESTAMP,SYSDATE 之间的区别
- Linux系统编程 -- 为什么需要进程间通信??
- python: 正则表达式2--元字符与re模块
- 图数据库Neo4j下载、安装
- 尚硅谷-智慧校园项目总结(项目代码在最后)
- 微信小程序布局 底部位置固定例子
- 开发微信小程序中遇见的难点,以及解决方法
- wifi一到晚上服务器无响应,一到晚上九点,网络就开始卡了?主要原因是这三点!...
- KK集团旗下公司又遭处罚:招股书已“失效”一个月,快客电商曾被罚30万元
- 2022年云计算的八大发展趋势,多样化云计算形态成为主流
- linux常中的cat命令,linux下cat命令详解
- 无纸化考试系统(CS)
- 侍魂微信新服务器,侍魂手游2019年3月23日微信问答试炼答案
- 几款常用压测工具介绍与使用
- python对于字典d d.get(x、y)_字典的使用与操作
- 搜索框实现模糊查询方法 - js
- Android 上传代码到gitee并发布到Jitpack生成远程库
- 镜头能看多远,人眼能看多远