【实战】轻轻松松使用StyleGAN(一):创建令人惊讶的黄种人脸和专属于自己的老婆动漫头像

NVIDIA(英伟达)开源了StyleGAN,用它可以生成令人惊讶的逼真人脸;也可以像某些人所说的,生成专属于自己的老婆动漫头像。这些生成的人脸或者动漫头像都是此前这个世界上从来没有过的,完全是被“伟大的你”所创造出来的。

StyleGAN的源码可以到这里下载:

https://github.com/NVlabs/stylegan

有好事者把StyleGAN的论文翻译成中文,虽然阅读起来也并不是很容易懂,但还是比看英文论文要容易多了:

https://blog.csdn.net/a312863063/article/details/88761977

那么问题来了,怎样试一试StyleGAN的神奇魔力呢?

步骤如下:

(1)拥有或安装NVIDIA(英伟达)的显卡,比如:我的HP笔记本的操作系统是Windows 10,带有NVIDIA GeForce GTX 1060显卡,虽然配置并不高,也一样可以把StyleGAN跑起来;

(2)安装cuda 、cudnn、tensorflow-gpu 、 pillow等模块,建议使用Anaconda来安装,具体过程可以参考:

https://blog.csdn.net/weixin_41943311/article/details/91866987

https://blog.csdn.net/weixin_41943311/article/details/93747924

(3)下载StyleGAN源码:

下载完成后,把ZIP包解压缩,放到自己的工作目录下。

(4)下载模型文件:

有好事者已经把文件放到了百度网盘上,这样下载起来比较方便,

(4.1)已训练好的人脸模型(各个人种都有,但黄种人脸偏少,1024x1024):karras2019stylegan-ffhq-1024x1024.pkl

百度网盘:https://pan.baidu.com/s/1ujItgpnHSw14Fw8I3Ai7Jw

提取码:ossw 

(4.2)已训练好的动漫头像模型(日本动漫少女为主,512x512):2019-03-08-stylegan-animefaces-network-02051-021980.pkl

百度网盘:https://pan.baidu.com/s/1KmauV9eEho9v6nINAdRmKA

提取码:dnbd

(4.3)一位中国研究生,从FFHQ人脸数据集中筛选了一些黄种人脸进行训练,生成了黄种人的人脸模型(1024x1204):generator_yellow.pkl

百度网盘:https://pan.baidu.com/s/18cpaM6wJg4ozmwlFNY21kw

提取码:fx23

(5)修改生成人脸或少女动漫头像的文件

(5.1)进入stylegan-master目录(如:F:\AI\stylegan-master),创建cache目录,把人脸模型和动漫头像模型复制到cache目录下;

(5.2)修改pretrained_example.py文件,或者按下面的内容创建自己的pretrained_example001.py文件:

# Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
#
# This work is licensed under the Creative Commons Attribution-NonCommercial
# 4.0 International License. To view a copy of this license, visit
# http://creativecommons.org/licenses/by-nc/4.0/ or send a letter to
# Creative Commons, PO Box 1866, Mountain View, CA 94042, USA."""Minimal script for generating an image using pre-trained StyleGAN generator."""import os
import pickle
import numpy as np
import PIL.Image
import dnnlib
import dnnlib.tflib as tflib
import config
import glob
import randomPREFIX = 'Person'
#PREFIX = 'Animation'SEED = random.randint(0,18000)def main():# Initialize TensorFlow.tflib.init_tf()# Load pre-trained network.Model = './cache/karras2019stylegan-ffhq-1024x1024.pkl'#Model = './cache/generator_yellow.pkl'#Model = './cache/2019-03-08-stylegan-animefaces-network-02051-021980.pkl'model_file = glob.glob(Model)if len(model_file) == 1:model_file = open(model_file[0], "rb")else:raise Exception('Failed to find the model')_G, _D, Gs = pickle.load(model_file)# _G = Instantaneous snapshot of the generator. Mainly useful for resuming a previous training run.# _D = Instantaneous snapshot of the discriminator. Mainly useful for resuming a previous training run.# Gs = Long-term average of the generator. Yields higher-quality results than the instantaneous snapshot.# Print network details.Gs.print_layers()# Pick latent vector.rnd = np.random.RandomState(SEED)latents = rnd.randn(1, Gs.input_shape[1])# Generate image.fmt = dict(func=tflib.convert_images_to_uint8, nchw_to_nhwc=True)images = Gs.run(latents, None, truncation_psi=0.7, randomize_noise=True, output_transform=fmt)# Save image.os.makedirs(config.result_dir, exist_ok=True)save_name = PREFIX + '_' + str(random.getrandbits(64)) + '.png'save_path = os.path.join(config.result_dir, save_name)PIL.Image.fromarray(images[0], 'RGB').save(save_path)if __name__ == "__main__":main()

上面的Python文件是用来生成人脸的,如果需要生成动漫头像,只需要把

Model = './cache/karras2019stylegan-ffhq-1024x1024.pkl'

或:Model = './cache/generator_yellow.pkl'

修改为:

Model = './cache/2019-03-08-stylegan-animefaces-network-02051-021980.pkl'

即可。

(5.3)在stylegan-master目录下运行程序:python  pretrained_example001.py

(5.4)到stylegan-master/results目录下查看生成的图像,That's all.

(5.5)也可以批量生成人脸或动漫头像,按下面的内容创建自己的pretrained_example002.py文件:

# Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
#
# This work is licensed under the Creative Commons Attribution-NonCommercial
# 4.0 International License. To view a copy of this license, visit
# http://creativecommons.org/licenses/by-nc/4.0/ or send a letter to
# Creative Commons, PO Box 1866, Mountain View, CA 94042, USA."""Minimal script for generating an image using pre-trained StyleGAN generator."""import os
import pickle
import numpy as np
import PIL.Image
import dnnlib
import dnnlib.tflib as tflib
import config
import glob
import randomPREFIX = 'Person'
#PREFIX = 'Animation'TIMES_LOOP = 100def main():# Initialize TensorFlow.tflib.init_tf()# Load pre-trained network.Model = './cache/generator_yellow.pkl'#Model = './cache/karras2019stylegan-ffhq-1024x1024.pkl'#Model = './cache/2019-03-08-stylegan-animefaces-network-02051-021980.pkl'model_file = glob.glob(Model)if len(model_file) == 1:model_file = open(model_file[0], "rb")else:raise Exception('Failed to find the model')_G, _D, Gs = pickle.load(model_file)# _G = Instantaneous snapshot of the generator. Mainly useful for resuming a previous training run.# _D = Instantaneous snapshot of the discriminator. Mainly useful for resuming a previous training run.# Gs = Long-term average of the generator. Yields higher-quality results than the instantaneous snapshot.# Print network details.Gs.print_layers()for i in range(TIMES_LOOP):# Pick latent vector.SEED = random.randint(0, 18000)rnd = np.random.RandomState(SEED)latents = rnd.randn(1, Gs.input_shape[1])# Generate image.fmt = dict(func=tflib.convert_images_to_uint8, nchw_to_nhwc=True)images = Gs.run(latents, None, truncation_psi=0.7, randomize_noise=True, output_transform=fmt)# Generate and Save image.os.makedirs(config.result_dir, exist_ok=True)save_name = PREFIX + '_' + str(random.getrandbits(64)) + '.png'save_path = os.path.join(config.result_dir, save_name)PIL.Image.fromarray(images[0], 'RGB').save(save_path)if __name__ == "__main__":main()

然后,在stylegan-master目录下运行程序:python  pretrained_example002.py

 

生成的黄种人头像:

 生成的动漫少女头像:

对StyleGAN生成的人脸和动漫头像,你有什么评价?

 

参考:

https://www.gongyesheji.org/?p=963

http://www.seeprettyface.com/

(完)

 

后续文章:

轻轻松松使用StyleGAN(二):源代码初探+中文注释,generate_figure.py

轻轻松松使用StyleGAN(三):基于ResNet50构造StyleGAN的逆向网络,从目标图像提取特征码

轻轻松松使用StyleGAN(四):对StyleGAN的逆向网络的训练过程进行优化

轻轻松松使用StyleGAN(五):提取真实人脸特征码的一些探索

轻轻松松使用StyleGAN(六):StyleGAN Encoder找到真实人脸对应的特征码,核心源代码+中文注释

轻轻松松使用StyleGAN(七):用StyleGAN Encoder为女朋友制作美丽头像

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/25856.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

话说软件详细设计工具

在软件设计是需要写软件详细说明书,设计此文档的时候,肯定少不了工具.现在我们就来了解一下软件详细设计的 工具. 1)程序流程图 程序流程图又称为程序框图,它是最古老,应用最广泛且最有争议描述详细设计的工具.它易学,表达算法直观,缺点是 不够规范,特别是使用箭头会使质量受到…

手把手教系列之梳状滤波器设计实现

[导读]:前面一篇文章关于IIR/移动平均滤波器设计的文章。本文来聊一聊陷波滤波器,该滤波器在混入谐波干扰时非常有用,算法简单,实现代价低。本文来一探其在机理、应用场景。 注:尽量在每篇文章写写摘要,方便阅读。信息时代,大家时间都很宝贵,如此亦可节约粉丝们的宝贵…

11款程序员实用工具,老少皆宜,你一定用得上

优秀程序员之所以优秀的原因并不一定是他写代码的速度比所有人都快,但他解决事情的效率一定是比很多人都要高的,提升工作效率的方法并不需要我们十八般武艺样样精通,有时候使用好的工具就能帮助我们大大提升办事效率。 今天给大家分享11个程…

2022FW柯罗芭KLOVA 用极简主义演绎服装美学

万物伊始,一切都是最简单的,后疫情时代,时尚似乎也开始化繁为简,回归本真。LESS IS MORE 诉说着真实的高贵,从不喧哗,服装里讲究的极简风,正是当下时尚和生活方式的最佳体现。 款式极简 极简又高…

Fences4 桌面整理好帮手 让你的桌面整洁美观

前言 Fences 4将电脑桌面分为不同功能的小区域,如办公区、程序区、文件夹、TXT文本区等,让你一眼就可以找到自己想要的区域文件夹或程序。除了这些之外,新软件还具备拥有记忆功能和自定义功能,帮助用户可以快速恢复电脑整洁的状态…

理发店管理系统

哈喽,大家好,今天给大家带来一个开源系统-理发店管理系统 Git地址-https://gitee.com/zzhiwei/barber-shop-management-system?_from=gitee_search 该系统的功能非常简单,只有一个会员管理模块,默认密码:admin123 也可以戳这里下载 系统登录 会员列表查询 支持手…

潮牌搭配APP的设计与实现

摘 要:本文开发过程以android为中心,通过数据库进行的数据访问操作。软件以面向对象的思维进行开发和设计,针对于广大群众进行下载使用,对用户提供了时尚的搭配,带领用户形成自己的一套搭配系统,做自己搭配…

基于php理发店管理系统

本系统采用phpstudy开发平台,采用PHP和MySQL数据库进行开发,开发工具为HBuilder。 phpStudy是一个PHP调试环境的程序集成最新的ApachePHPMySQLphpMyAdminZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境…

ChatGPT Plus用户抢先体验强大的GPT-4

GPT-4 它来了 3月15号凌晨,OpenAI官网发布了最新的GPT-4,目前仅对ChatGPT Plus用户抢先开放体验,限制4小时最多100条消息(当然也够用了)。ChatGPT Plus用户这次终于实现了人上人,免费用户以及ChatGPT API用户,目前是用…

开车总结-2021.7

这是学习笔记的第 2362篇文章 开车快半年了,距离上一次开车总结已经过去了2个月了,其实我基本上都会在开车之后做下总结,这个习惯的好处是能让我把一些心灵碎片整合起来,时间一长其实就能够发现自己在哪些地方开始进步了。 #开得…

session对象不创建会有吗_五婶给我介绍对象,聋哑人不识字会打牌,没上过一天学...

网友1: 本人本硕连读,大二时候堂嫂跟我妈说要给我介绍一个男的,关键是她也不熟悉,只是一个朋友的亲戚,高中毕业,家里开了个小店,男的当时给家里看店,说可有钱了(没见过有钱是什么样吗…

华为胡厚崑:不让任何一个人在数字世界中掉队

“数字包容,就是要让数字技术促进更包容的发展,不落下任何一个人、一个家庭、一个组织”。HUAWEI CONNECT 2019期间,在以“数字技术创新,推进社会经济全面可持续发展”为主题的数字包容峰会上,华为公司副董事长胡厚崑阐…

36岁,被单位解聘,我干起了深夜外卖

出品|腾讯大成网成都力量栏目 建荣推荐:最开始是被题目所吸引,先给看看这个36岁的尴尬年龄被解聘的过程,结果发现是一段很真实的创业,在生活边缘摸爬滚打,滋味真实不好受。 “卤迅” 陈爽没想过,创业如此简…

计算机学院五名学生开发手语app,大学生团队研发成功“聋人自然手语翻译器”APP...

把语音转换成文字,再将文字翻译成手语,在第25个“全国助残日”到来之际,江苏科技大学的一群平均年龄不到22岁的年轻创业者们,研发出了一款“聋人自然手语翻译器”,为普通人与聋哑群体搭建沟通的桥梁。 拿起手机&#x…

逃离无声的世界,跟AI一起听叶落的声音

9月27日,是第63个国际聋人日。在国际聋人日结束两天后,YouTube却取消了可以帮助听障人士的字幕选项,让人唏嘘。数字时代如同一个未曾停歇的洪流。而在这洪流之中,听障人士因为被按下了「静音键」而被数字世界渐渐遗忘和抛弃。毕业…

一文看尽 2020 年谷歌 AI 重大突破

2021-01-28 10:12:14 在二十年前刚刚加入谷歌时,我们关注的问题只有一个——如何面向这么多不同种类的联网计算机提供一整套质量出色且涵盖范围全面的网络信息搜索服务。到如今,尽管我们面临着各种各样的技术挑战,但谷歌已经基本达成了组织全…

厚积薄发的90后:读博前三年零文章,后期发力产出11篇一作,现任985高校博导...

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 本文来源:重庆发布、重庆大学电气工程学院、清华研读间 本科毕业于山东大学,随后保研直博到清华大学,毕业后任职某知名企业做研究,再到如今成为重庆大学的博士生…

谷歌AI拜大年:为聋哑人带来科技福利,首页涂鸦有惊喜

晓查 发自 家中量子位 出品 | 公众号 QbitAI 大年初一,谷歌用人工智能为大家带来了双份的喜悦。 首先是谷歌AI博客更新了一项新的技术,为聋哑人带来了科技福利,只要有一部Android手机就能享受到实时语音转文字的技术。 逢年过节,谷…

用Netty实现WebSocket网络聊天室

最近学习Netty,学习到WebSocket一章节,将Netty中WebSocket的样例代码做了一些简单的改造,实现了一个简易的WebSocket网络聊天室,源码并非完全自己实现,只是将一些别人的代码做了下整合改造,今分享至此&…

聋哑六年级计算机课教学进度计划,小学六年级下册信息技术教学计划三篇

【导语】六年级的学生,通过三年的信息技术课的学习,已经对信息技术这门课很熟悉了,他们已经懂得了一些关于信息技术课的基础知识,掌握了计算机的基本操作,能利用画图软件绘出简单的图画,学习了Word文字处理…