StyleGAN——定制人脸生成思路

news2024/11/15 19:58:04

定制人脸生成思路

  1. 控制生成码 ( Z ) 的分布范围:适合粗略控制生成图像的主要特征(如性别、人种、年龄),方法简单但精度较低。
  2. 特定维度特征的替换:适用于细致控制图像的特征(如皮肤颜色、发型),实现复杂,需要精确调整生成器内部特征。
  3. Info-StyleGAN:结合 InfoGAN 和 StyleGAN,能够同时控制图像的多种特征,提供灵活和高质量的图像生成,但实现和训练复杂。

1. 控制生成码 ( Z ) 的分布范围

1.1 方法描述

  • 源头控制生成码 ( Z ) 的分布范围,这种方法涉及对潜在空间的操作,以控制生成图像的粗略特征。

  • 通过调整潜在变量 ( Z ) 的范围和分布,可以影响生成图像的主要特征,例如性别、人种、年龄等。

1.2 具体实现

定制人脸生成需要3个神经网络,分别是Z码生成器,图片生成器,和图片分类器。它的主要思想是,针对我们想要的特定类型的图片,首先训练出一个对应的图片分类器出来,然后固定住图片生成器与图片分类器,只训练Z码生成器(C是随机向量),从而找到Z码的范围,使得通过该Z码生成的图片,能满足图片分类器的要求,即:找到z的分布使得对应y的得分值最高。

image-20240721124129939

在实际模型搭建中,Z码生成器(Dense Generator)是一个256维到512维的简单全连接网络,图片生成器取用StyleGAN里面的模型,图片分类器是一个已训练好的类型分类器(譬如男/女分类器等,用CNN就能达到比较好的效果)。损失函数方面有两个组成部分,一部分是(找到z)让y的得分值越高越好,另一部分是让z的熵越大越好(即z有多样性)。由于实际的训练只需训练三个全连接层,所以epoch数无需太高。最后,每对应一个不同的图片分类器,就会训练出一个对应的Z码生成器。

1.2.1 方法一优化 取消Z码生成器,改为微调图片生成器

​ 对于某些分类器来说,训练出的Z码生成器是不太稳定的。举一个例子,如果希望指定生成黑种人或者白种人脸,上述方法可以实现,但是如果用同样的方法训练生成黄种人脸,就很难稳定生成。造成这种现象的原因是,黄种人界于白、黑种人之间,它的特点标志不清晰,因此Z码生成器很难找到一个Z码的区域,能够稳定生成黄种人脸。为了改善这一情况,我们可以考虑取消Z码生成器,改为微调图片生成器。

  1. 使用图片分类器从原始数据集中挑选出目标图片(如黄种人脸),制作成新的训练集(New Dataset)。
  2. 若数据集数目少,用 ADA 方法做数据增强。
  3. 以 StyleGAN 的预训练模型参数初始化新数据集下的图片生成器,训练状态回复至第 10000 个 kimg 处,此时进入 1024*1024 分辨率的微调阶段,然后持续训练。
  4. 展示黄种人脸生成器训练过程中的人脸迁移情况。

优点

  • 可以在生成图像的总体类别或大范围特征上进行控制。
  • 实现简单,通常只需调整潜在变量的范围或分布即可。

缺点

  • 控制精度较低,无法细致地调整图像的细节特征。只能从大体上控制生成图片的类型,因为图片分类器的制作成本通常比较高(需要大量含标签数据),所以图片分类器的划分角度一般较为宽泛(譬如男/女,老/少,黑/白等),不宜过细。

2. 从生成过程中控制生成图片,特定维度特征的替换

​ 如图,真正决定StyleGAN生成图片类型的,在于控制生成网络的18个特征码(它们分别控制的特征类型已在图中标出)。于是,现在我们希望能更精细控制生成图片的类型,就可以考虑用已有图片的特征码,对其进行替换,从而让其具有被替换图片的特定特征。

一般建议替换5,6,7,8维,因为替换更低的维度会让生成效果不稳定,而替换更高的维度会让生成效果不明显。最终,多做几次尝试就能找到合适的模板以及合适的维度替换方案。

image-20240721124819888

  • 方法描述

    • 在图片生成器的内部,对特定维度上的特征进行替换,将目标(模板)人脸的精细风格引入生成图像中。
    • 例如,通过调整生成器的某些层或维度,赋予生成图像特定的细节特征,如白皮肤、卷发等。
  • 优点

    • 可以控制生成图像的细致风格和特征。
    • 适用于对细节有较高要求的任务。
  • 缺点

    • 实现较复杂,需要对生成器内部的特征进行精确调整。
    • 可能需要对生成器进行大量的实验和调整。

3. Info-StyleGAN(结合 InfoGAN 和 StyleGAN)

构造一个通用模型,它能够实现所有定制化的需求。借助InfoGAN的思想,将Info信息引入StyleGAN的生成器中,构造出新的具有语义限制的生成器。

image-20240721125012495

新的生成器输入info向量-c和噪音向量-z,其中c控制人脸类型,而z决定人脸样貌。生成图片X同时被传给判别器和分类器,其中判别器的作用是保证生成图片的清晰与逼真度,分类器的作用是保证生成图片的类别符合向量c的控制——因为它从生成图片中提取出一个新的向量,这个向量要与c尽可能一致,而c包含的信息仅有图像类别,所以只有生成图片也符合图像类别的情况下,提取出的向量才能与c一致,更详细的证明请参阅InfoGAN。最后分类器与判别器共用大部分参数,只保留最后几层参数不一致。

  • 方法描述

    • 通过将 InfoGAN 与 StyleGAN 结合,形成一个新的架构——Info-StyleGAN。
    • InfoGAN 通过引入信息论的概念(如信息最大化)来增强生成图像的控制能力,而 StyleGAN 提供了高质量的图像生成能力。
    • 这种方法允许使用一个模型来实现更灵活的控制,包括生成图像的类型、风格和细节。
  • 优点

    • 更通用和灵活,能够同时控制图像的多个特征。
    • 提供了细粒度的控制,并能够生成高质量的图像。
  • 缺点

    • 实现复杂,需要对两个模型的结合进行深入研究。
    • 训练和调优过程可能需要更多的计算资源和时间。

参考笔记

seeprettyface

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

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

相关文章

贪吃蛇超精讲(C语言)

前言 如果你还是个萌新小白,那么该项目的攻克过程一定会十分艰难。虽然作者已经将文章尽可能写的逻辑清晰,内容详细。但所谓“纸上得来终觉浅”,在讲到陌生结构和函数时,大家请一定自己动手去敲一遍代码,这很重要&…

Opencv学习项目3——人脸识别

之前我们获取了一张图像的人脸信息,现在我们来使用特征点分析来匹配两张lyf照片的相似度 获取两张图片的人脸信息 import cv2 import face_recognition# 加载图像文件 img1 face_recognition.load_image_file(lyf1.png) img2 face_recognition.load_image_file(l…

昇思25天学习打卡营第13天 | 模型训练

深入理解模型训练的关键步骤 在深入学习深度学习模型训练的过程中,我获得了宝贵的经验和理解,尤其是在构建数据集、定义模型、调整超参数以及实际的训练和评估过程中。以下是我对这些关键步骤的一些心得体会。 1. 构建数据集 数据集的构建是模型训练成…

(11)Python引领金融前沿:投资组合优化实战案例

1. 前言 本篇文章为 Python 对金融的投资组合优化的示例。投资组合优化是从一组可用的投资组合中选择最佳投资组合的过程,目的是最大限度地提高回报和降低风险。 投资组合优化是从一组可用的投资组合中选择最佳投资组合的过程,目的是最大限度地提高回报…

第四周:机器学习笔记

第四周学习周报 摘要Abstract机器学习任务攻略1.loss on training data1.1 training data的loss过大怎么办?1.2 training data的loss小,但是testing data loss大怎么办? 2. 如何选择一个中最好的模型?2.1 Cross Validation&#x…

前端调试技巧:动态高亮渲染区域

效果: 前端界面的渲染过程、次数,会通过高亮变化来显示,通过这种效果排除一些BUG 高亮 打开方式 F12进入后点击ESC,进入rendering,选择前三个即可(如果没有rendering,点击橘色部分勾选上&…

docker compose 容器 编排分组

遇到问题:执行docker compose up -d 后docker compose 创建的容器们 在desktop-docker 中都在docker下一堆 搜索想着能不能把这个docker名字改一下,但是都没有找到这样的一个方案; 最后发现,我执行docker compose up -d 命令所在…

昇思25天学习打卡营第26天 | GAN图像生成

学习心得:GAN 图像生成 在最近完成的项目中,我利用生成对抗网络(GAN)进行了图像生成的实践学习。通过这一过程,我不仅加深了对GAN的理解,而且对于深度学习在图像处理领域的应用有了更实际的把握。以下是我…

Android屏幕适配度量单位px、ppi、dpi、dp、sp等

目录 0 前言1 屏幕尺寸2 像素 px3 分辨率4 每英寸像素数ppi5 屏幕密度 dpi6 密度无关像素 dp7 缩放无关像素sp 0 前言 我以iphone13举例,说来挺有意思,我们这做Android开发的只有一位平常用的是Android手机。 可以看到下面有6.1英寸、分辨率、ppi等。接…

MQTT micro-ROS:构建高效的机器人应用

什么是 micro-ROS? 在之前的 MQTT & FreeRTOS:打造你的远程控制实时应用 中,我们介绍了如何在 FreeRTOS 中构建你的 MQTT 应用。 FreeRTOS 主要应用在对实时性要求较高的场景中,但这类 RTOS 专注于提供实时任务调度和同步机…

使用Vuepress搭建个人网站

网站地址:bloggo.chat

GraphRAG参数与使用步骤 | 基于GPT-4o-mini实现更便宜的知识图谱RAG

首先给兄弟朋友们展示一下结论,一个文本18万多字,txt文本大小185K,采用GraphRAG,GPT-4o-mini模型,索引耗时差不多5分钟,消耗API价格0.15美元 GraphRAG介绍 GraphRAG是微软最近开源的一款基于知识图谱技术的框架&#…

新版SpringSecurity5.x使用与配置

目录 一、了解SpringSecurity 1.1 什么是Spring Security? 1.2 Spring Security功能 1.3 Spring Security原理 1.4 RABC (Role-Based Access Control) 二、SpringSecurity简单案例 2.1 引入SpringSecurity依赖 2.2 创建一个简单的Controller 三、SpringSecu…

【数据结构】初识集合框架

🎇🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 人生格言: 当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友…

自己编写一个谷歌浏览器插件, 模拟某音直播间自动发消息

闲来没事, 做个插件玩一玩,于是一顿学习。 按照浏览器插件规范,一顿代码编写, 搞了一个简单的插件。仅做学习。 可以实现在直播间自动发消息。 定时轮发。 实现原理: 利用谷歌popub.js 发送消息。 在content-script.…

【无人机】低空经济中5G RedCap芯片的技术分析报告

1. 引言 图一. 新基建:低空经济 低空经济作为一种新兴的经济形态,涵盖了无人机、电动垂直起降飞行器(eVTOL)、低空物流、空中交通管理等多个领域。随着5G网络的普及和演进,5G RedCap(Reduced Capability&a…

【功能】DOTween动画插件使用

一、下载安装DOTween插件,下载地址:DOTween - Asset Store (unity.com) 使用 Free免费版本即可,导入成功后,Project视图中会出现 DOTween 文件夹 二、使用案例 需求1:控制材质球中的某个属性值,实现美术需…

MS17-010漏洞复现+利用

1、 漏洞简述 漏洞名称:“永恒之蓝”漏洞 漏洞编号:MS17-010,CVE-2017-0143/0144/0145/0146/0147/0148 漏洞类型:缓冲区溢出漏洞 漏洞影响:信息泄露 CVSS评分:9.3(High) 利用难…

ABAP使用SQL直接更新数据库与使用IN UPDATE TASK的区别

1. 背景 刚接触ABAP的小伙伴常常会有这样的疑问,为什么不直接使用Open SQL直接更新数据库,而要把对DB的操作封装到IN UPDATE TASK中呢? 对于这个问题,比较常见的解释是,IN UPDATE TASK的方式会保证数据更新的一致性。…

HTML零基础自学笔记(上)-7.18

HTML零基础自学笔记(上) 参考:pink老师一、HTML, Javascript, CSS的关系是什么?二、什么是HTML?1、网页,网站的概念2、THML的基本概念3、THML的骨架标签/基本结构标签 三、HTML标签1、THML标签介绍2、常用标签图像标签&#xff…