[23] HeadSculpt: Crafting 3D Head Avatars with Text

news2024/11/25 7:22:26

paper | project

  • 本文主要想解决:1)生成图像的不连续问题;2)3D修改中的保ID问题。
  • 针对第一个问题,本文引入了Landmark-based ControlNet特征图和<back-view>的text embedding;
  • 针对第二个问题,本文引入了原描述词的Instruct-Pix2Pix特征图。

目录

摘要

近期工作

Text-to-3D generation

3D head modeling and creation

方法

Preliminaries

3D-Prior-driven score distillation

Landmark-based ControlNet

Enhanced view-dependent prompt via textual inversion

Identity-aware editing score distillation

Experiments

Qualitative evalutions

Ablation Study


摘要

  • text-guided 3D generative methods发展迅速,但是现有方法无法创造高保真的3D head avatars,具体来说包含两个问题:1)缺少3D头像先验;2)无法细粒度修改;
  • 为解决上述问题,本文提出HeadSculpt,通过文本提示词craft(生成和修改)3D head avatars:1)通过landmark-based ControlNet和textual inversion,找到表示头后的texural embedding,做到3D-consistent head avatar generations;2)提出identity-aware editing score distillation策略,在保ID的情况下,根据提示词修改人像。

近期工作

Text-to-3D generation

  • DreamFusion、Magic3D、Latent-NeRF、FramAvatar、Fantasia3D、3DFuse

3D head modeling and creation

  • statistical mesh-based models(3DMM、FLAME)、T2P、Rodin、DreamFace。上述方法需要大量数据监督训练,并且很难生成non-human-like avatars;

方法

  • 包含粗回归和细回归两步,粗回归是基于FLAME-based NeRF学习,细回归则是基于DMTET学习。

Preliminaries

Score distillation sampling:DreamFusion提出的一种借助预训练text-to-2D diffusion model,训练NeRF的损失。该损失对NeRF的渲染图加噪,并通过预训练文生图大模型预测噪声,训练损失为(预测噪声 - 添加噪声)对NeRF求导。该损失的优点在于,不需要3D数据集。

3D scene optimization:NeRF和DMTET

3D prior-based NeRF:DreamAvatar中提出一中density-residual setup,用于增强生成3D NeRF的鲁棒性。对于给定点x,其密度和颜色可以根据prior-based density field求的:

        

其中,gama是hash-grid frequency encoder,sigma和c是密度和RGB颜色。sigma_hat是从3D形状先验(FLAME模型)中求得:

最后通过volume rendering,从隐式表达中渲染出图片:

3D-Prior-driven score distillation

现有模型主要存在两个问题:1)不同视角的生成图片不连续;2)缺少3D级别的控制幸好,导致模型很难确定前脸、头后等。为解决这些问题,本文在diffusion model中引入了3D head priors。

Landmark-based ControlNet

引入2D Landmark maps作为ControlNet的控制信号。具体来说,本文引入ControlNet C。对任意相机位姿,从FLAME中提取出人脸关键点,并得到landmark map。landmark map会送入ControlNet,其输出特征会被加到diffusion U-Net的中间特征中:

Enhanced view-dependent prompt via textual inversion

Landmark map可以一定程度缓解不同视角渲染图片的一致性问题。但是3D关键点在脸前和头后视角存在歧义性。

为解决头后的生成问题,现有方法提出了view-dependent text("front view", "side view" 或"back view")。

本文提出学习文本编码:<back-view>,用于替代"back view"。为实现这一步,本文见了一个包含34张头后图片的小数据集,类似textual inversion,通过固定模型参数,寻找合适的编码v:

Identity-aware editing score distillation

为修改3D场景,现有方法会根据提示词fine-tune 3D场景。但这类方法直接应用在3D人像上,会导致ID丢失和外观变化。

为此,本文提出identity-aware editing score distillation (IESD)。具体来说,本文引入ControlNet-based InstructPix2Pix I。对于任意提示词y和编辑指引y_hat,并分别送入两个ControlNets,得到两个预测噪声,两个噪声通过超参数w_e合并在一起:

Experiments

Implementation details:粗回归是64 x 64,细回归是512 x 512。前者需要7000 iter,后者需要5000 iter。

Baseline methods:DreamFusion、Latent-NeRF、3DFue、Fantasia3D和DreamFace

Qualitative evalutions

Ablation Study

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

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

相关文章

Python 算法基础篇:插入排序和希尔排序

Python 算法基础篇&#xff1a;插入排序和希尔排序 引言 1. 插入排序算法概述2. 插入排序算法实现实例1&#xff1a;插入排序 3. 希尔排序算法概述4. 希尔排序算法实现实例2&#xff1a;希尔排序 5. 插入排序与希尔排序的对比总结 引言 插入排序和希尔排序是两种常用的排序算法…

java后端导出前端展示

效果图 前端代码 exportExcelAll(){window.location.href getBaseUrl() Action/excelDataAll?happenDatethis.params.happenDate;},后端代码 try{Workbook workbooknew XSSFWorkbook();//创建sheetSheet sheet1workbook.createSheet("结果总数拦截记录");//写入…

第一百一十二天学习记录:数据结构与算法基础:循环链表和双向链表以及线性表应用(王卓教学视频)

循环链表 带尾指针循环链表的合并 双向链表 单链表、循环链表和双向链表的时间效率比较 顺序表和链表的比较 链式存储结构的优点 1、结点空间可以动态申请和释放&#xff1b; 2、数据元素的逻辑次序靠结点的指针来指示&#xff0c;插入和删除时不需要移动数据元素。 链式存储…

【pytho】request五种种请求处理为空和非空处理以及上传excel,上传图片处理

一、python中请求处理 request.args获取的是个字典&#xff0c;所以可以通过get方式获取请求参数和值 request.form获取的也是个字典&#xff0c;所以也可以通过get方式获取请求的form参数和值 request.data&#xff0c;使用过JavaScript&#xff0c;api调用方式进行掺入jso…

[数据结构 -- C语言] 二叉树(BinaryTree)

目录 1、树的概念及结构 1.1 树的概念 1.2 树的相关概念&#xff08;很重要&#xff09; 1.3 树的表示 2、二叉树的概念及结构 2.1 概念 2.2 特殊二叉树 2.3 二叉树的性质&#xff08;很重要&#xff09; 2.4 练习题 2.5 二叉树的存储结构 2.5.1 顺序存储 2.5.2 链…

Windows10 下 Neo4j1.5.8 安装教程

前言 Neo4j 是一个高性能的、NOSQL 图形数据库&#xff0c;它将结构化数据存储在网络上而不是表中。基于磁盘的、具备完全的事务特性的 Java 持久化引擎&#xff0c;这里就不把他和常用关系型数据库做对比了。因为篇幅有限&#xff0c;我这里也是第一次使用&#xff0c;所以以…

windows安装cmake快速教程

1、下载cmake cmake官网直直接下载速度都很慢&#xff0c;可以到点击下载地址进行下载。 点击下载地址进去之后&#xff0c;可以看到有很多的版本&#xff0c;这里根据自己的需要选一个版本即可&#xff08;建议不要选择太早的版本&#xff09;&#xff0c;我这里选择的3.22版…

【Python】串口通信-与FPGA、蓝牙模块实现串口通信(Python+FPGA)

&#x1f389;欢迎来到Python专栏~与FPGA、蓝牙模块实现串口通信 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;Python学习专栏 文章作者技术和水平有限&#xff0c;如果文中出现错误&#…

基于Java+SpringBoot+vue前后端分离校园周边美食探索分享平台设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

SpringCloud nacos 集成 feign 实例

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

【运维工程师学习七】DNS底层原理及搭建自己的DNS服务器

【运维工程师学习七】DNS底层原理及搭建自己的DNS服务器 0、前言1、域名&#xff08;Domain&#xff09;的由来2、域名&#xff08;Domain&#xff09;的级别3、域名&#xff08;Domain&#xff09;的命名规则4、域名&#xff08;Domain&#xff09;的后缀有哪些5、域名&#x…

[QT编程系列-32]:科学计算 - QT支持的科学计算库

目录 第1章 QT中如何支持科学计算&#xff1f; 1.1 QT没有专门的科学计算库 1.2 QT没有专门的数学运算库 1.3 QT没有数字信号DSP处理库 1.4 QT没有类numpy库 1.5 QT支持的数学运算 第2章 QT数学库详解 2.1 QtMath 2.2 QVector 2.3 QMatrix 第1章 QT中如何支持科学计算…

【数据结构】——LRU Cache

这里写目录标题 什么是LRU CacheLRU Cache的实现LRU Cache的OJ 什么是LRU Cache LRU是Least Recently Used的缩写&#xff0c;意思是最近最少使用&#xff0c;它是一种Cache替换算法。 什么是Cache&#xff1f;狭义的Cache指的是位于CPU和主存间的快速RAM&#xff0c; 通常它不…

【Soft NMS】《Soft-NMS – Improving Object Detection With One Line of Code》

ICCV-2017 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method5 Experiments5.1 Results5.2 Sensitivity Analysis5.3 When does Soft-NMS work better?5.4 Qualitative Results 6 Conclusion&#xff08;own&#xff09; 1 Background…

【Android】Ubuntu20.04编译Android 13并用模拟器运行

前言 一直好奇Android系统是怎么定制的&#xff0c;直到亲自走一遍Android系统编译流程才发现并没想象的复杂。 这就跟app开发一样&#xff0c;Google官方其实都提供了平台、文档、IDE及一些工具&#xff0c;咱们只要按照官方提供的指南来操作就行了。 如果Android没有提供这…

15 QMessageBox消息对话框

错误提示对话框 信息提示对话框 循环对话框 默认是Yes和No&#xff0c;可以修改属性。第5个参数关联回车键 QMessageBox::Save | QMessageBox::Cancel 可以通过捕获按键获取点击结果 警告提示 代码&#xff1a; //QMessageBox 消息对话框//错误提示QMessageBox::critical(th…

11 spring-boot的MVC配置原理

11.1 spring-boot为MVC提供的自动配置 1.ContentNegotiatingViewResolver视图解析器&#xff1b; 2.静态资源或者支持WebJars&#xff1b; 3.自动注册类型转换器&#xff1a;比如说前台提交user的字段&#xff0c;后台自动封装的意思&#xff1b; 4.HttpMessageConverters&…

计算机视觉(一)图像预处理

本章内容 图像显示与存储原理颜色空间RGB颜色空间CMY&#xff08;K&#xff09;颜色空间HSV颜色空间CIE-XYZ颜色空间 图片存储原理主流颜色空间 图像增强的目标图像处理方法点运算&#xff1a;基于直方图的对比度增强直方图 &#xff1a;对数据空间&#xff08;bin&#xff09;…

了解 3DS MAX 3D摄像机跟踪设置:第 1 部分

这是一个关于使用行业标准插件 RayFire 在 3ds Max 中破坏元素的新系列。在本教程的第一部分中&#xff0c;我将向您展示如何在 RayFire 中使用在 3ds Max 中拆除元素的最基本操作和方法。 推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 准备场景 步…

使用Gin框架搭配WebSocket完成实时聊天

文章目录 前言实时聊天聊天功能测试发送信息 前言 在写项目的时候&#xff0c;需要完成实时聊天的功能&#xff0c;于是简单的学习下WebSocket&#xff0c;想知道WebSocket是什么的小伙伴可以去网上别的地方学习一下。 要实现实时聊天&#xff0c;网上的大部分内容都是Spring…