关于FLAME和SMPL模型

news/2024/11/8 2:44:12/

英文参考文献:https://medium.com/offnote-labs/3d-face-and-body-reconstruction-95f59ada1040

一个训练好的FLAME模型的输入是一个参数向量,包括形状参数、姿势参数和表情参数¹。这些参数分别控制人脸的身份特征、头部的旋转和平移、面部的表情变化²。一个训练好的FLAME模型的输出是一个三维人脸网格,它是由模板网格和混合形状函数相加并经过皮肤函数变换得到的²。这个三维人脸网格可以用来表示不同的人脸形状和姿势,也可以用来拟合三维扫描数据或二维图像数据¹²。

“人脸形状、头部姿态和面部表情的参数”是指FLAME模型的输入参数,它们是一些实数向量,用来控制模型的输出网格的形状和姿势。具体来说:

- 人脸形状参数是一个300维的向量,它表示人脸的身份特征,例如性别、年龄、种族等。这个向量是从3800个人的头部扫描数据中学习得到的一个线性形状空间的系数。不同的人脸形状参数可以生成不同的人脸形状。
- 头部姿态参数是一个6维的向量,它表示头部的旋转和平移。这个向量是由欧拉角和平移向量组成的,用来描述头部相对于世界坐标系的变换。不同的头部姿态参数可以生成不同的头部姿势。
- 面部表情参数是一个100维的向量,它表示面部的表情变化,例如微笑、皱眉、张嘴等。这个向量是由全局表情参数和姿态相关表情参数组成的,用来描述面部相对于中性状态的变化。不同的面部表情参数可以生成不同的面部表情。

举个例子,如果我们想要生成一个年轻女性的微笑面孔,我们可以设置人脸形状参数为[0.5, 0, 0, ..., 0](表示性别为女性,其他特征为中性),头部姿态参数为[0, 0, 0, 0, 0, 0](表示头部没有旋转和平移),面部表情参数为[0.2, 0, 0, ..., 0](表示有微笑表情,其他表情为中性)。然后将这些参数输入FLAME模型,就可以得到一个年轻女性的微笑面孔的三维网格。

FLAME模型是一种用来表示人脸的三维模型,它基于SMPL模型,并增加了表情混合形状的功能。FLAME模型包括以下几个部分:

  • 模板网格T,表示中性姿势下的人脸。
  • 形状混合形状函数S(),处理与身份相关的形状变化,例如性别、年龄、种族等。
  • 姿势混合形状函数P(),修正头部的姿势变形,例如转头、点头等。
  • 表情混合形状函数E(),捕捉面部的表情变化,例如微笑、皱眉、张嘴等。

这些函数都是从SMPL模型中派生出来的,它们都是用参数向量作为输入,并输出与模板网格的偏差。将这些函数与模板网格线性地相加,就可以得到一个描述人脸形状和姿势的网格。然后,将这个网格作为输入传递给皮肤函数W(),它会生成最终的三维人脸。皮肤函数也会根据关节J和混合权重W来旋转人脸的顶点,并保证输出的三维人脸是平滑无缝的。这样就完成了带有表情的三维人脸重建。

表情混合形状函数E()是用来表示面部表情变化的函数,它可以分为全局表情变形和姿态相关表情变形两部分。全局表情变形表示不依赖于头部姿态的表情变化,例如微笑、皱眉等;姿态相关表情变形表示由于头部姿态的变化而产生的表情修正,例如转头时眼睛的微调等。

 

对FLAME模型的表情混合形状函数E()的训练过程:

“正交表情基”E表示表情空间E的列向量构成的基,满足:1) 列向量之间互相垂直,即〈Ei, Ej〉 = 0, i ≠ j。这意味着不同的表情混合形状对应的形状偏移是相互独立的。2) 每个列向量的长度为1,即〈Ei, Ei〉 = 1。这产生单位长度的表情混合形状。

正交表情基E可以通过主成分分析(PCA)从表情扫描数据中学习得到。具体步骤是:1) 收集多个人物在不同表情下的面部扫描数据。每个扫描包含一个模板形状T以及表情导致的形状偏移ΔT。2) 对所有这些形状偏移ΔT进行PCA分析,提取其主成分。这些主成分对应的特征向量组成初始的E。3) 对E的每个列向量单位化,使之满足上述条件2)。这得到正交表情基E。4) E的列向量按对应特征值的大小排序,取前多少个(如10个)列向量构成表情空间E。特征值较大的列向量表示表情变化更加显著的方向。所以总之,正交表情基是一个从表情扫描数据中学习到的、用于参数化和表示表情形状变化的基。通过在这个基上投影,我们可以用较低维度的表情参数ψ⃗来表示丰富的表情变化。


http://www.ppmy.cn/news/74396.html

相关文章

Python可视化工具分享

今天和大家分享几个实用的纯python构建可视化界面服务,比如日常写了脚本但是不希望给别人代码,可以利用这些包快速构建好看的界面作为服务提供他人使用。有关于库的最新更新时间和当前star数量。 1、 streamlit (23.3k Updated 2 hours ago) Streamlit…

数据全生命周期管理

数据存储 时代"海纳百川,有容乃大"意味结构化、半结构和非结构化多样化的海量的 ,也意味着批数据和流数据多种数据形式的存储和计算。面对不同数据结构、数据形式、时效性与性能要求和存储与计算成本等因素考虑,应该使用适合的存储…

metaRTC+ZLMediaKit实现webrtc的推拉流

概述 ZLMediaKit是一个基于C11的高性能运营级流媒体服务框架,是一个支持webrtc SFU的优秀的流媒体服务器系统。 metaRTC新版本支持whip/whep协议,支持whip/whep协议的ZLMediaKit推拉流。 信令通信 ZLMediaKit新版本支持whip和whep协议,支…

【网络工程师人手必备的常用网络命令合集,整理收藏!】

在计算机网络中经常要对网络进行管理,测试,这时就要用到网络命令。今天就为大家整理了一些网络工程师必备的一些常用网络命令合集,建议收藏后观看哦! ping命令 ping是个使用频率极高的实用程序,主要用于确定网络的连…

一图看懂!RK3568与RK3399怎么选?

▎简介 RK3568和RK3399都是Rockchip公司的处理器,具有不同的特点和适用场景。以下是它们的主要区别和应用场景。 ▎RK3568 RK3568是新一代的高性能处理器,采用了22nm工艺,具有更高的性能和更低的功耗。它支持4K视频解码和编码,支持…

计算机分类——软考小知识

目录 一、按照计算机体积和工作能力划分 二、按照指令系统划分 一、按照计算机体积和工作能力划分 个人移动设备:带有多媒体用户界面的无线设备,如智能手机、平板电脑等 桌面计算机: 基于超大规模集成电路技术的CPU,包括低端的上网本、笔记本、台式机…

DMZ和LAN的概念是什么?区别和联系是什么?

DMZ和LAN的概念是什么?区别和联系是什么? 1.DMZ的概念 DMZ就是用来放置服务器的 DMZ代表"Demilitarized Zone"(非军事区),是位于内部网络和外部网络之间的中间地带。在计算机网络安全中,DMZ是一个…

数据结构课程设计——集合的交、并和差运算

集合的交、并和差运算 数据结构课程设计任务书 学生姓名: 专业班级: 软件工程 指导教师: 工作单位: 题 目: 集合的并、交和差运算 基础要求: 掌握数据结构与…