Drivable 3D Gaussian Avatars 论文笔记

2024-01-22 06:44

本文主要是介绍Drivable 3D Gaussian Avatars 论文笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Drivable 3D Gaussian Avatars 论文笔记

    • 主要的算法架构和贡献是什么?
      • 如何使用这个deformation 呢?

主要的算法架构和贡献是什么?

这篇文章主要使用了两个当前流行的概念,一是3D高斯溅射,二是cage-based deformation。 这篇文章主要是通过多视角视频来实现逼真的人体三维建模 (3D Human Avatar modeling)。 首先大致记录一下对cage-based deformation 的理解。首先这种方法是将一个object 看成是很多 cages, 然后每一个cages 只负责在它里面的点。比如说,把一个3D人体模型看成是一个密集点云, 我们将人体模型拆分成 脸,手,身体,和腿,每一个部位用不同的cages来表示,比如之前表示脸的点,现在都在表示脸的cage里面,当cage发生形变到时候,里面所有的点也会跟着发生形变。 所以cage 可以被看成是一个proxy。

那么在这篇文章里是如何来使用这个概念的呢? 这个方法是如何工作的? 为了提取出关键的语义信息,比如哪里是人的手,哪里是人的身子。 首先会将输入帧进行语义分割,分割的目的是提取出图片当中人的脸,四肢,身子,和衣服,为之后的cage-based deformation 做准备。 文中使用的网络结构是 EfficientNet backbone with PointRend refinement。在得到了语义信息之后,将sementic map 投射到一个 human mesh M 上 去获得 per vertices labels。换句话来说就是通过以上的操作,Human mesh 也间接的被做了segmentation。那么既然是整个Mesh的segmentation, 可见这里肯定是需要用到多张照片的semantic map的同时投射,如果只使用一张照片的话,很难判断其他视角的语义信息是什么样的。(我感觉这里可能成为拓展成单张照片的一个点)。这个3D human mesh 实则是一个低分辨率的LBS Model, 现将这个LBS 模型 fit 到 3D scan里面,然后再把这个LBS模型 fit 到segmentation map里面。 所以现在的这个human mesh 是一个低分辨率的, 有posed的 triangle surface。

为了使用 cage-based deformation, 文中首先将这个低分辨率的人体模型从姿态空间(pose space )转移到 canonical space 里面。 我的理解就是通过一变换将human mesh 变成 T pose。 接下来就是cage-based deformation 很重要的一个步骤,就是把vertices mesh 变成 tetrahedral meshes。 我个人的理解是这里需要一个volume的概念, 因为cage-based deformation的核心其实是将cage看成是coarse proxy,所以在cage里面的点就显得很重要,而一般triangle surface 它很难提供volume的概念,因为一个triangle在空间中只是平面的一个小部分, 而四面体 tetrahedra 本身就可以提供volume的概念。很多需要volume信息的人体三维重建的论文,都会有将triangle surface 变成 tetrahedral surface 的步骤,比如 Pamir, 在求取volume之前,也有将SMPL Mesh 变成 tetrahedral 的步骤。 这篇文章使用的是TetGen 来将unposed 的Mesh变成 tetrahedral meshes。转换出来的Mesh 就包括了三个板块,cages for garments, cages for body, and cages for face。每一个cage的形变是根据之前triangle surface的 LBS weights来的,这也就意味这每一个cage里的点也都是按照LBS weights 来做的形变。 文中将在tetrahedron 中的点定义为如下:
在这里插入图片描述
b j b_j bj指的就是这个点的重心坐标 (barycentric coordinates) 以上公式,在 tetrahedral surface 根据LBS weights 从canonical space 转到 pose space的时候,依然成立。这就给形变转移(deformation transfer)提供了可能性
在这里插入图片描述
以上公式中的 E i E_i Ei , E ^ i \hat{E}_{i} E^i 分别表示 形变前后的 tetrahedra, J i J_i Ji表示的是形变梯度(deformation gradient)。这个也是之后引导3D 高斯形变的核心。

如何使用这个deformation 呢?

文中把形变的表示方式和3D高斯溅射联系到了一起。 文中首先对3D高斯进行了初始化,说白了就是将3D 高斯和一些特定的特征输入联系到了一起。 比如文中将 3D 高斯的Mean 表示成了从低分辨率的Mesh 采样的点的位置。 Rotation的前两个axes 和triangle surface联系了起来,最后一个axe和和相对应的法向量(normal)联系了起来. Scale 就是根据 inter-point distance 的距离做的初始化(现在有一些论文是将3D高斯的covariance 拆分成了rotation和scale)。 文中将3D高斯的covariance和之前提到的deformation gradient 通过一下方程联系到了一起:
在这里插入图片描述
这么做就等于是将之前的形变表示,转移到的高斯上。

最后就是将上述提到的方法在整合到神经网络中。 文中提到了三个主要的结构,都是MLP。第一个 Cage node correction network 它只要控制的是形变,它的输入是pose 还有vertices的positional encoding, 输出的是cage nodes的offset。 听上去很想 deformation field 的感觉。第二是Gaussian correction network 它只要掌管是高斯参数的预估,它的输入是canonical space里面的高斯参数,输出的是对这些参数的矫正(correction)。 最后一个就是 Shading network 主要是预测3D 高斯里的成color 和 opacity, 它的输入是原始的颜色以及view direction。

这篇关于Drivable 3D Gaussian Avatars 论文笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/632154

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit