【从零开始使用系列】StyleGAN2:开源图像生成网络——环境搭建与基础使用篇(附大量测试图)

        StyleGAN2 是英伟达团队 NVIDIA 提出的生成对抗网络(GAN)的一种改进版本

        它通过创新的网络架构,能够生成细节丰富、逼真的图像,特别在高频细节(如皮肤纹理、光照等)的表现上表现卓越。与传统 GAN 相比,StyleGAN2 显著减少了生成图像中的伪影,提升了图像质量,并支持在不同图像层次上精细控制风格,提供了更加自然和多样化的生成效果。

        StyleGAN2 在生成高分辨率图像、训练稳定性和数据稀缺情况下的表现也非常出色。

        GitHub源码地址:https://github.com/NVlabs/stylegan2-ada-pytorch


        本部分专注于对该开源项目的环境搭建和官方教程的基本使用实验测试。

一、基础环境搭建

        下图是官方环境要求。

        官方要求 python3.7 + Pytorch1.7.1

        创建虚拟环境

# 创建python3.7虚拟环境
conda create -n stylegan2 python=3.7 -yconda activate stylegan2

        安装Pytorch1.7.1

# pip官方指令安装pytorch1.7.1-cu11.0
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

        还有一些其他依赖库安装

# 官方指定其他依赖库
pip install click requests tqdm pyspng ninja imageio-ffmpeg==0.4.3

二、源码与官方训练模型参数下载

        GitHub源码地址:https://github.com/NVlabs/stylegan2-ada-pytorch

        下载源码保存到本地项目。

         为了使用styleGAN2,还需要下载官方训练好的模型参数,可以在 READ_ME 中的数据中心地址中的pretrained处下载。

        可以访问以下地址:https://nvlabs-fi-cdn.nvidia.com/stylegan2-ada-pytorch/pretrained/

        将下载好的pkl模型参数在项目下新建 weights 文件夹保存(这里下载了四个模型,更多测试可自行下载)

三、官方模型基础使用

        官方直接提供了便捷的指令使用方式,只需配置输出目录、模型参数地址和一些参数即可。

        下面来解释参数如何配置,并实验相关指令生成图片的效果。

        首先可以使用 --help 来查看相关指令中的参数如何配置。

# 查看参数含义及如何配置
python generate.py --help

        1.必要参数指令使用

        在上图配置参数中结尾带有 【required】是必须输入的参数,即模型地址和输出地址。还有一个必须要输入的是--seeds,这个代表图片生成的随机种子,输入几个数就生成几张图片。下面先实验只输入必须的参数,其余默认的结果。

outpath = '~/'  # 自定义输出的路径
modelpath = '~/weights/xxx.pkl' # 输入下载的模型保存路径# 默认参数使用,生成1张图
python generate.py --outdir=outpath --network=modelpath --seeds=42# 默认参数使用,生成3张图
python generate.py --outdir=outpath --network=modelpath --seeds=42,54,68# 默认参数使用,生成连续区间数量张图
python generate.py --outdir=outpath --network=modelpath --seeds=42-44 

        在 windows 系统中运行时,可能会出现以下报错,但没有影响到最后结果生成,因此暂不处理该问题,可忽视。

        下面看看具体实验结果。如果想生成不同对象的图像,如猫、狗、人像等,只需修改模型参数到对应的模型即可。下面生成的图片随机数都选择42-44区间。

        猫生成图。 

        狗生成图。

        艺术品人像生成图。

        人脸生成图。

        2.可选参数指令使用

        官方指令使用还提供了一些可选参数的输入使用,现在来测试这些参数的意义。

        首先是一个非常重要的可选参数 --trunc,其用于平衡图片生成的质量和多样性,其默认值为1,数值越低,图像质量水平越高;数值越高,图像随机性越大

        现在来测试不同值的 trunc 参数输入后的输出效果。

        下面的实验结果以默认值 --trunc=1.0 为基准对照组可视化结果。此处结果都是基于猫生成模型。 且随机种子保持42不变。

# 默认值trunc=1.0
python generate.py --outdir=~\test1.0 --network=~\weights\afhqcat.pkl --seeds=42 --trunc=1.0# 减小值trunc=0.5
python generate.py --outdir=~\test0.5 --network=~\weights\afhqcat.pkl --seeds=42 --trunc=0.5# 减小值trunc=0.1
python generate.py --outdir=~\test0.1 --network=~\weights\afhqcat.pkl --seeds=42 --trunc=0.1# 增大值trunc=1.5
python generate.py --outdir=~\test1.5 --network=~\weights\afhqcat.pkl --seeds=42 --trunc=1.5# 增大值trunc=2.0
python generate.py --outdir=~\test2.0 --network=~\weights\afhqcat.pkl --seeds=42 --trunc=2.0

 

        上面多图结果可以看到,trunc参数的值越低,图片质量效果越好,越于现实近似。但是如果trunc值太低了,会导致图片生成多样性显著下降。下图可见。下图使用trunc=0.1下的多种随机种子(42,43,44)生成图。

 

        --noise-mode中参数选择可以是const(稳定模式)或random(随机模式),实验效果图两者差异不大,可能是图片色泽亮度的细微变化,这里不展示了,使用默认const即可。

        而另一个使用的方法 python style_mixing.py 实际就是多图按行按列的组合效果图,这里也不赘述,可以自行测试,使用起来较为简单。


        在下一章节,将介绍 StyleGAN 的自建数据集训练微调。

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

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

相关文章

【三维数域】三维数据调度-负载均衡和资源优化

在处理大规模三维数据时,负载均衡和资源优化是确保系统高效运行、提供流畅用户体验的关键。这两者不仅影响到系统的性能和稳定性,还直接决定了用户交互的质量。以下是关于如何在三维数据调度中实现有效的负载均衡和资源优化的详细探讨。 一、负载均衡 负…

成功案例分享 — 芯科科技助力涂鸦智能打造Matter over Thread模块,简化Matter设备开发

芯科科技(Silicon Labs)的愿景之一是让开发者每天都能够更轻松地开发无线物联网(IoT)。特别是在拥有相同愿景的合作伙伴的帮助下,我们每天都在取得进步。但是要想弥合知识水平和物联网开发之间的差距仍会面临一定的挑战…

如何将 sqlserver 数据迁移到 mysql

文章目录 前言一、导出SQL Server 数据二、转换数据格式为MySQL兼容格式三、导入数据到MySQL数据库五、使用ETL工具六、通过 navicat 工具七、总结 前言 将 SQL Server 数据迁移到 MySQL 是一个常见的数据库迁移任务,通常涉及以下几个关键步骤:导出 SQL…

10Hive性能优化

10Hive性能优化 1Hive性能问题排查的方式1.1Hive底层原理:explain执行计划详解1.1.1 explain理论1.1.2 实践 2Hive性能调优的方式2.1. SQL语句优化1. union all2. distinct 2.2. 数据格式优化2.3. 小文件过多优化2.3.1解决hive小文件过多问题小文件产生的原因小文件…

安全规约、脱敏规范、敏感逻辑的保护方案、防止 SQL 注入

文章目录 I 强制性安全规约平台资源的防重放机制URL 外部重定向传入的目标地址必须执行白名单过滤。表单、AJAX 提交必须执行 CSRF 安全验证。禁止向 HTML 页面输出未经安全过滤或未正确转义的用户数据。用户请求参数必须做有效性验证防止 SQL 注入用户敏感数据用户权限控制校验…

【数学】概率论与数理统计(五)

文章目录 [toc] 二维随机向量及其分布随机向量离散型随机向量的概率分布律性质示例问题解答 连续型随机向量的概率密度函数随机向量的分布函数性质连续型随机向量均匀分布 边缘分布边缘概率分布律边缘概率密度函数二维正态分布示例问题解答 边缘分布函数 二维随机向量及其分布 …

3.Qt Quick-QML地图引擎之v4.3版本(新增动态轨迹线/海图/天地图街道/天地图卫星)

在上个版本Qt Quick-QML地图引擎之v4版本(新增多模型切换/3D模型欧拉角模拟)_qt加载3d地图-CSDN博客更新了3D模拟功能,在4.3版本增加动态轨迹线、三个地图(海图/天地图街道/天地图卫星)。 4.3版本已经支持qt6 cmake版本,而4.3版本以下支持qt5版本&#x…

数据结构:DisjointSet

Disjoint Sets意思是一系列没有重复元素的集合。一种常见的实现叫做,Disjoint-set Forest可以以接近常数的时间复杂度查询元素所属集合,用来确定两个元素是否同属一个集合等,是效率最高的常见数据结构之一。 Wiki链接:https://en…

vmware-ubuntu22.04配置虚拟机win10,重新上网成功

打开问题显示 Hardware配置 Options配置 最后的Advanced,第一次用了BIOS,然后启动中有更新,然后关闭,再用UEFI启动

【2024年华为OD机试】(B卷,100分)- 数组去重和排序(Java JS PythonC/C++)

一、问题描述 题目描述 给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序。 输入描述 一个数组 输出描述 去重排序后的数组…

《零基础Go语言算法实战》【题目 2-10】接口的实现

《零基础Go语言算法实战》 【题目 2-10】接口的实现 请指出下面代码中存在的问题。 type Programmer struct { Name string } func (p *Programmer) String() string { return fmt.Sprintf("print: %v", p) } func main() { p : &Programmer{} p.String()…

C++ vtordisp的应用场景

文章目录 问题代码1. 基本概念回顾2. 应用场景虚继承与虚函数并存的类层次结构 3. 编译器相关考虑 问题代码 #include <iostream> using namespace std;class base { public:base() {}virtual void show() { cout << "base:: show"<<endl; } priv…

Git:merge合并、冲突解决、强行回退的终极解决方案

首先还是得避免冲突的发生&#xff0c;无法避免时再去解决冲突&#xff0c;避免冲突方法&#xff1a; 时常做pull、fatch操作&#xff0c;不要让自己本地仓库落后太多版本&#xff1b;在分支操作&#xff0c;如切换分支、合并分支、拉取分支前&#xff0c;及时清理Change&#…

2025网络架构

一、园区网络概述。 园区网络典型层次和区域&#xff1a; 核心层&#xff1a;是园区网骨干&#xff0c;是园区数据交换的核心&#xff0c;联接园区网的各个组成部分&#xff0c;如数据中心、管理中心、园区出口等。汇聚层&#xff1a;处于园区网的中间层次&#xff0c;完成数据…

Vue.config.productionTip = false 不起作用的问题及解决

文章目录 一、问题描述二、解决方法 一、问题描述 当我们在代码页面上引入Vue.js(开发版本)时&#xff0c;运行代码会出现以下提示&#xff0c;这句话的意思是&#xff1a;您正在开发模式下运行Vue&#xff0c;在进行生产部署时&#xff0c;请确保打开生产模式 You are runni…

【经管数据】ZF数字采购采购明细数据(2015.3-2024.3)

一、数据来源&#xff1a; 原始数据来源为ZF采购网。数据涵盖了自2015年3月至2024年3月的ZF数字采购合同明细&#xff0c;反映了数字化转型在政府采购中的应用情况。 二、参考文献&#xff1a; [1] 申志轩, 祝树金, 文茜, 等. ZF数字采购与企业数字化转型[J]. 数量经济技术经济…

啥!GitHub Copilot也免费使用了

文章目录 前言免费版直接修复代码多文件上下文Agent模式总结 前言 最近&#xff0c;GitHub 给开发者们带来了一个好消息&#xff1a;他们的 AI 编程助手 GitHub Copilot 现在可以免费使用了&#xff01;以前&#xff0c;每个月要花 10 美元才能享受的服务&#xff0c;现在对所…

013:深度学习之神经网络

本文为合集收录&#xff0c;欢迎查看合集/专栏链接进行全部合集的系统学习。 合集完整版请参考这里。 深度学习是机器学习中重要的一个学科分支&#xff0c;它的特点就在于需要构建多层且“深度”的神经网络。 人们在探索人工智能初期&#xff0c;就曾设想构建一个用数学方式…

【NLP】语言模型的发展历程 (1)

语言模型的发展历程系列博客主要包含以下文章&#xff1a; 【NLP】语言模型的发展历程 (1)【NLP】大语言模型的发展历程 (2) 本篇博客是该系列的第一篇&#xff0c;主要讲讲 语言模型&#xff08;LM&#xff0c;Language Model&#xff09; 的发展历程。 文章目录 一、统计语…

JNI使用类签名及字段签名获取字段值

1.获取逻辑: 2.获取逻辑实现代码: extern "C" JNIEXPORT void JNICALL Java_com_example_jnibasetypedemo_MainActivity_getAnimalsNameFromJNI(JNIEnv *env, jobject thiz,jobjectArray animals) {jobject animalObj;int len env->GetArrayLength(animals);//获…