大家应该前段时间都被StyleGan生成动漫(老婆)头像的新闻刷屏了,但是基本上玩的起来的都是比较核心的程序猿,本文的主旨意思是希望每一个热爱动漫,喜欢研究人工智能的朋友都可以享受调教stylegan,生成自己头像的快乐,所以算是一个简单的使用stylegan教程,请专业大佬轻喷,如有问题请留言回复!我将进行修正和补充。

想要生成属于自己的头像,首先要在自己的电脑上部署CUDA和tensorflow-gpu加速环境,详细的安装和stylegan运行教程请看我上一篇文章http://www.gongyesheji.org/?p=951

另外附上关于stylegan的一些项目链接和训练集链接:

NVIDIA StyleGan :https://github.com/NVlabs/stylegan

NVIDIA StyleGan论文地址:https://arxiv.org/pdf/1812.04948.pdf

Animefaces算法下载地址:https://mega.nz/#!vawjXISI!F7s13yRicxDA3QYqYDL2kjnc2K7Zk3DwCIYETREmBP4?tdsourcetag=s_pcqq_aiomsg

上述算法使用的Danbooru2018:大型众包和标记动漫插图数据集项目:https://www.gwern.net/Danbooru2018

当然还是要感谢星轨大佬的支持和讲解0 0

Tips:生成式对抗网络(GenerativeAdversarial Networks,GAN)是Ian Goodfellow 等人在2014 年所提出的一种对抗生成模型的深度学习框架,近几年非常流行,也取得了非常可观的成果。其中大家耳熟能详的StyleGAN就是去年12月左右NVIDIA的研究人员发布的一种基于对抗神经网络的算法,简单理解对抗神经网络就是同时训练两个网络,一个生成器一个判断器,当判别器足够强,生成器生成的足够以假乱真的时候,两者之间实现纳什均衡,算法就成了。(个人理解,或许有些出入,敬请指正。)

StyleGAN的训练原理:

运行前期准备工作:

1.一块尽量高于3.5计算能力(compute capability)的nvidia显卡,需参考:https://developer.nvidia.com/cuda-gpus
2.电脑安装有CUDA9.0或10.0 、tensorflow-gpu 、cudnn、 pillow模块 、requests模块,建议安装Anaconda。

3.本库个人运行于win10系统,其他的系统没有尝试过,win8,7应该也能够支持……如果需要linux的得你们自己改……不太懂。

如何运行:

1.下载已经修改好的stylegan-acg头像版……我已经打包上传到我的百度网盘中,大家可以离线下载一下,这样就不用连接到国外下载了

链接https://pan.baidu.com/s/1zKToGNLc1qCj_OcXv-NOxQ
提取码:jv77

2.假设你已经安装好adaconda,请打开Anaconda prompt 先启用tensorflow-gpu环境:
输入:activate tensorflow-gpu

3.使用cd命令打开刚刚下载的stylegan-acg文件夹   cd x:/xxx/xxx/xx/ (也就是本文路径,比如截图里面的路径就是:cd C:\Users\Administrator\stylegan-acg )

4.运行程序   输入:python random_simple_generator.py  (意思是通过python运行random_simple_generator.py这个程序)
5.查看结果:生成的结果会出现在stylegan-acg的result文件夹下!

嗯,就这么简单!

快去生成属于自己的老婆头像吧!

ps:random_simple_generator.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.tflib as tflib
import config
import glob
import random
MODEL = ‘./cache/2019-03-08-stylegan-animefaces-network-02051-021980.pkl’  【#这个就是指定的生成器的地址,原版为谷歌网盘上面的一个存储链接,目前已经替换成已经缓存的动漫的生成器#】
PREFIX = ‘Demo’
SEED = random.randint(0,10000)  【#这个就是大佬修改的每次打开以后的0-10000随机扰动因子,对应下面的SEED#】
def load_Gs(filepath):
# Load pre-trained network.
model_file = glob.glob(filepath)
iflen(model_file) ==1:
model_file = open(model_file[0], “rb”)
else:
raiseException(‘Failed to find the model’)
_G, _D, Gs = pickle.load(model_file)
# Print network details.
Gs.print_layers()
return Gs
def main():
# Initialize TensorFlow.
tflib.init_tf()
# Genetate 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)
Gs = load_Gs(MODEL)
rnd = np.random.RandomState(SEED)
latents = rnd.randn(1, Gs.input_shape[1])
fmt = dict(func=tflib.convert_images_to_uint8, nchw_to_nhwc=True)
print(‘* Generating…’)
images = Gs.run(latents, None, truncation_psi=0.7, randomize_noise=True, output_transform=fmt)
print(‘* Done’)
# Save image.
PIL.Image.fromarray(images[0], ‘RGB’).save(save_path)
print(‘* Image [‘+ save_name +’] has beed saved to ./result’)
if __name__ == “__main__”:
main()
下一步研究:如何自定义修改生成参数和python的基本语法入门……
打赏
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏