[SIGGRAPH-24] CharacterGen

[pdf | code | proj]

  • LRM能否用于3D数字人重建?问题在于:1)缺少3D数字人数据;2)重建任意姿态的3D数字人不利于后续绑定和驱动。
  • 构建3D数字人数据集:在VRoidHub上采集数据,得到13746个风格化角色,分别渲染固定视角和固定标准姿态下的图片和随机角度和姿态下的图片,用以训练以图片为条件的多角度扩散模型。
  • 映射到标准姿态:输入一张任意姿态的人像图片,首先生成标准姿态下的四角度图片,其次重建3D角色(微调LRM,Large Reconstruction Model),最后通过Auto-Rigging等操作实现3D角色的驱动。

方法

Anime3D Dataset

  • 从VRoidHub上收集了14500动漫角色,去除非人数据,剩下13746个角色模型。
  • 使用threevrm渲染角色。包含:标准姿态(A-pose)和随机姿态。其中,随机姿态包含从Mixamo中获取的10个人体骨架,例如:坐、唱、走等,同时会随机更改嘴巴、眼睛以产生新表情。
  • 训练阶段,使用4个标准姿态图片{0, 90, 180, 270}和1个随机姿态图片{-90, 90}作为训练对。

Multi-view Image Generation and Pose Canonicalization

  • 目标是输入任意姿态下的正面图片,输出标准姿态下的四个正交角度图片。
  • 本文认为IP-Adaptor使用CLIP图片特征,无法细粒度描述人物纹理细节。因此,本文提出IDUNet,将参考图片patch-level的纹理特征嵌入到去噪过程中。
  • 具体来说,Multi-view UNet与MVDream类似,在Multiview SelfAttn中,四个视角特征交互。在CrossAttn中,ID和CLIP-encoded image features合并作为K和V,四个视角作为Q:
  • 同时,本文使用OpenPose,通过Pose Encoder得到的编码直接加到latent noise上。
  • 3D Character Generation

  • 微调LRM。LRM使用NeRF,从NeRF中提取的几何表面噪声多。类似Magic3D,本文使用两阶段微调策略:1)训练triplane-NeRF,生成角色的粗几何和外观。2)更改重建网络的解码器为预测singed distance functions (SDFs)。
  • 除了MSE loss,本文还使用mask loss(BCE损失监督Alpha通道,产生干净背景)和LPIPS loss:
  • Extract Mesh & UV unwrap:使用DMTet从tri-plane中提取mesh和粗UV map。在提取mesh上使用Laplacian Smooth,减少表面噪声。
    • DMTet:使用四面体表征3D。四面体上顶点具有可学习特征,预测偏移量和是否在物体内部。如果四面体所有顶点都不在物体内部则会被去除,如果存在部分顶点在物体内部,则根据规则分裂四面体,以逐步精细化。在构建好DMTet后,则可根据顶点是否在物体内部提取Mesh表面。
    • UV map:对于Mesh,每个顶点都会保存UV map坐标,用于获取颜色。UV unwrap用于将3D模型颜色投影到uv map上。
    • Normal map:对于Mesh,每个顶点会保存三维的法向量值,表征光线的反射,用于在平面上模拟细节纹理。
  • Texture Aggregation:直接提取的UV map效果不佳,本文进一步使用生成的四角度图片改善纹理。本文使用NvDiffRast作为渲染器。将四张图片反投影回纹理空间,使用泊松混合将反投影纹理图和粗纹理图混合得到最终的纹理图。在反投影过程中,使用normal map和相机视角做内积,去除内积大于-0.2的点,即将不合理的反投影点去除掉。

实验

  • 训练时间:多视角扩散模型在8卡A800上训练5天;LRM在8卡A800上微调1天。
  • 数据集划分:训练集测试集50:1。

2D Multi-view Generation

3D Character Generation

Comparision with IP-Adapter

Generation Speed

User Study

Ablation Study

IDUNet是否需要训练?需要

是否需要Pose Embedding Network?需要

是否需要A-pose?需要

应用

  • 使用AccuRig绑定,使用Warudo渲染

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图片编辑软件,这4款免费又好用!

在这个视觉为王的时代,一张精心编辑的图片往往能瞬间吸引眼球,无论是社交媒体分享、博客配图还是商业宣传,都离不开强大的图片编辑工具。但高昂的软件费用常常让人望而却步。别担心,今天我们就来揭秘4款不仅免费还超级好用的图片编…

OpenAI 刚刚推出 o1 大模型!!突破LLM极限

北京时间 9 月 13 日午夜,OpenAI 正式发布了一系列全新的 AI 大模型,专门用于应对复杂问题。 这一新模型的出现代表了一个重要突破,其具备的复杂推理能力远远超过了以往用于科学、代码和数学等领域的通用模型,能够解决比之前更难的…

在线IP代理检测:保护您的网络安全

在互联网飞速发展的今天,越来越多的人开始意识到网络安全和隐私保护的重要性。在线IP代理检测工具作为一种有效的网络安全手段,能够帮助用户识别和检测IP代理的使用情况,从而更好地保护个人隐私和数据安全。本文将详细介绍在线IP代理检测的相…

​‌Macbook如何玩《黑神话:悟空》‌2024最新详细方法

‌Mac用户可以通过几种方法玩《黑神话:悟空》‌。 ‌使用虚拟机‌:通过Parallels Desktop等虚拟机软件,在Mac上运行Windows系统,并在其中安装和运行《黑神话悟空》。这种方法需要Mac电脑满足游戏的基础配置要求。 不过如果电脑有虚…

AI逻辑推理入门

参考数据鲸 (linklearner.com) 1. 跑通baseline 报名 申领大模型API 模型服务灵积-API-KEY管理 (aliyun.com) 跑通代码 在anaconda新建名为“LLM”的环境,并安装好相应包后,在jupyter notebook上运行baseline01.ipynb 2. 赛题解读 一般情况下,拿到一个赛题之后,我们需…

LeetCode-137. 只出现一次的数字 II【位运算 数组】

LeetCode-137. 只出现一次的数字 II【位运算 数组】 题目描述:解题思路一:解题思路二:符号位一起判断。背诵版解题思路三:0 题目描述: 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每…

Fiddler抓包工具实战

文章目录 🟢 Fiddler入门到精通👉主要功能👉使用场景 🟢 一、Fiddler抓包和F12抓包对比🟢 二、Fiddler的核心功能🟢 三、Fiddler的工作原理🟢 四、Fiddler功能配置使用👉规则设置&am…

git报错,error: bad signature 0x00000000fatal: index file corrupt

报错 git -c diff.mnemonicprefixfalse -c core.quotepathfalse --no-optional-locks checkout daily --progress error: bad signature 0x00000000 fatal: index file corrupt 原因 git 仓库中索引文损坏 处理 1.该备份的先备份 2.删除索引并重置 rm -f .git/index git r…

走进低代码表单开发(三):高效业务功能构建

前面我们已经介绍了勤研低代码开发平台的页面设计相关的内容,当页面设计完成后,我们将继续进行表单的功能开发,接下来,我们一起走进勤研低代码开发平台高效便捷的表单功能设计,来看看勤研低代码平台如何为用户带来全新…

《深度学习》【项目】 OpenCV 身份证号识别

目录 一、项目实施 1、自定义函数 2、定位模版图像中的数字 1)模版图二值化处理 运行结果: 2)展示所有数字 运行结果: 3、识别身份证号 1)灰度图、二值化图展示 运行结果 2)定位身份证号每一个数…

实习项目|苍穹外卖|day11

Apache ECharts 前端技术。 营业额统计 还是比较简单的。 用户统计 订单统计 以上所有需求。难点在于对时间类的处理&#xff1a; // 接收格式 GetMapping("/turnoverStatistics")ApiOperation("营业额统计")public Result<TurnoverReportVO>…

【每日刷题】Day125

【每日刷题】Day125 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 17. 电话号码的字母组合 - 力扣&#xff08;LeetCode&#xff09; 2. LCR 080. 组合 - 力扣&#…

Linux s3c2440 开发板上的操作系统实现 ubuntu

使用s3c2440开发板 使用ubuntu 1.ubuntu中的tftp&#xff0c;和nfs Trivial File Transfer Protocol,简单文件 传输协议。 通过网络在客户端与服务器之间进行简单文件 传输。提供不复杂、开销不大的文件传输服务。 Network File System&#xff0c;网络文件系统。通过 网络…

JavaSE - 面向对象编程01

01 什么是面向对象编程(oop) 答&#xff1a;就是只关心对象之间的交互&#xff0c;而并不关心任务是怎样具体完成的。例如把一个大象放进冰箱需要几步&#xff1f;如果是面向对象编程只会思考冰箱和大象之间的交互&#xff0c;那么给出的答案就是&#xff1a;把冰箱门打开&…

Radware 报告 Web DDoS 攻击活动

新一代 HTTPS 洪水攻击的频率和强度急剧增加&#xff0c;攻击者引入的复杂程度也在迅速提高。2024 年上半年&#xff0c;Web 分布式拒绝服务 (DDoS) 攻击的频率和强度显著增加。其中很大一部分活动可以归因于受政治紧张局势驱使的黑客活动分子。 众所周知&#xff0c;当今的黑…

Ubuntu22.04系统安装opencv步骤简述及问题解决方法

前言 opencv是一个功能强大、开源且跨平台的计算机视觉库&#xff0c;适用于多种编程语言和操作系统&#xff0c;能够帮助开发者构建各种视觉项目。其模块众多&#xff0c;提供了诸多功能&#xff0c;能够进行图像处理、视频处理等等。比如&#xff1a;Highgui模块提供图像用户…

java开发中间件学习记录(持续更新中~)

1 Redis 2JVM 3 java基础底层 4Mysql 5 spring 6 微服务 7.......(持续更新) One:Redis篇 1:Redis 1.穿透 1.1缓存穿透 1.1.1布隆过滤器 1.2缓存击穿 2&#xff1a;击穿 1.3&#xff1a;缓存雪崩 1.4:双写一致 1.5.持久化&#xff08;RDB,AOF&#xff09; 1.6…

Mastering openFrameworks_第十一章_网络

网络 网络为多个设备之间的数据交换提供了一种方式。它是一个主要组成部分&#xff0c;允许远程控制移动和平板设备应用程序中的一些参数&#xff0c;也用于使交互式项目在多台计算机上同步工作。在本章中&#xff0c;您将学习如何在openFrameworks项目中实现和使用OSC和TCP协…

Go 1.19.4 路径和目录-Day 15

1. 路径介绍 存储设备保存着数据&#xff0c;但是得有一种方便的模式让用户可以定位资源位置&#xff0c;操作系统采用一种路径字符 串的表达方式&#xff0c;这是一棵倒置的层级目录树&#xff0c;从根开始。 相对路径&#xff1a;不是以根目录开始的路径&#xff0c;例如 a/b…

【Qt笔记】QScrollArea控件详解

目录 引言 一、QScrollArea 的基本概念 二、QScrollArea 的主要属性 2.1 设置内容大小是否随滚动区域变化 2.2 设置水平与垂直滚动条 2.3 设置视口外边距 三、QScrollArea 的常用方法 3.1 设置显示小部件 3.2 返回当前设置的小部件 3.3 设置内部小部件是否可以填充…