数字人基础 | 3D手部参数化模型2017-2023

楔子: 2017年年底的泰国曼谷, SIGGRAPH Asia会议上, 来自马普所的 Javier Romero, Dimitrios Tzionas(两人都是 Michael J. Black的学生)发布了事实性的手部参数化模型标准: MANO [1]MANO的诞生意味着 Michael J. Black团队在继人体参数化模型 SMPL后, 事实性的将能够表达人类动作和意图所涉及的主要部分(肢体, 脸部和手部)都用参数化模型来表达。有趣的是, 马普所的第一个主流的人脸模型 FLAME也在本次会议被提出,考虑到 SMPL的首秀出现在2015年的SIGGRAPH Asia(日本神户)上, 不得不说, 马普所的人体模型系列和亚洲有着不解之缘。

首先, 让我们回答一个问题, 为什么我们需要用到MANO参数化模型?

其答案也很简单: 结合深度学习和MANO参数化模型, 我们可以仅凭单张手部图像, 回归出其手部对应的2D/3D Pose, 从而可以在诸如UE5, Unity等引擎里进行手势的驱动。

注意: MANO本身是不可学习的, 即Optimization-Free的一个部分, 通常可以将其简化理解为网络中的一个Layer

如图所示, 任意给定一张手势图片, 可以通过神经网络(Phase I)来估计参数化模型MANO的系数(Pose, Shape, Camera, 这里的Camera指的是相机内参)来重建出手势图片对应的理想化的3D网格(Mesh)以及渲染出对应的效果(OverLay)。

在基于MANO参数化模型的手部姿态估计(hand pose estimation)中: 是给定一张手部特写图片,估计其姿态(2D/3D keypoint)的位置(通常是21个)。既然知道了关键点的数量,那么其定义的标准也是非常重要的:

如图所示, 从手腕处的0号节点开始算, 一共有21个手部的关键点/landmark来表征手部的姿态。

主流的手部姿态估计的技术方案是使用马普所于2017年提出的MANO参数化模型, 在此基础上回归3D坐标, 这是因为MANO有很合理的结构以及定义好的前向动力学树。并且由于马普所在人体人脸人手上的权威性,很多研究都是基于MANO来做的, 所以这进一步导致学术界和工业界对MANO依赖的加深。

简单的初步介绍完毕后,让我们进入正题!Tips:01部分内容主要来自我在2021年写的博客文章[2]


近年来, CVPR, ECCV, ICCV的手部姿态估计论文,基本或多或少的都是model-based, 即基于参数化模型的方案。而其中,最主流的参数化模型就是Javier Romero,Dimitrios Tzionas, Michael J. Black于2017年发表于Siggraph Asia的《Embodied Hands: Modeling and Capturing Hands and Bodies Together》[1].

这篇文章也是在马普所和工业光魔联合提出的《SMPL: A Skinned Multi-Person Linear Model》[3](下文统一简称为SMPL) 的基础上,提出了针对手部的参数化模型,其主要目的是:

To cope with low-resolution, occlusion, and noise, we develop a new model called MANO (hand Model with Articulated and Non-rigid def Ormations) [1].

其目的主要是针对从图像中恢复3D手部姿态的困难情况(低分辨率、遮挡和噪声), 从而提出的一个新的手部参数化模型。

左: InterHand2.6M中的双手交互导致的遮挡(occlusion)和相机阵列带来的噪声(noise), 中: FreiHand中手物交互产生的遮挡(occlusion), 右: RHD合成数据集中手部分辨率低(low-resolution)

[4]

从我个人的理解,MANO这个模型的作用,相当于在图片(2D) -> 3D Hand pose中间加了一个过渡表示(或者说加上了强的先验prior),从而能够使得神经网络可以直接预测遮挡, 低分辨率和噪声影响下的图像的手部姿态

用不带先验信息的方法,即model-free的方法,对于这些情况的姿态估计效果通常就会失败。而自从有了参数化模型MANO,由于MANO是由

“1000 high-resolution 3D scans of hands of 31 subjects in a wide variety of hand poses.”

得到,其中包括抓握,不良光照等场景。

MANO所用的数据采集系统

MANO采集手势的示例

所以,根据18年以来的众多手部姿态分析工作表明:使用MANO参数化模型,对于估计出一个合理且准确的手部姿态,有至关重要的作用。

需要注意的是,由于手部是分段刚性的(articulated objects), 因此手部的建模还是有一定难度的,马普所用了来自美国亚特兰大的3dMD公司[5]的扫描设备,花费不菲… 采集设备的视频如下所示:

那么,MANO作为一个 3D参数化模型,其参数都有哪些呢?

  • 778个vertices 1538个faces,并根据 16个 关键点 +从vertices中获取 5个手指指尖的点, 构成完整的手部链条,或者叫做前向动力学树(forward kinematic tree)。
  • 只包含手掌和5根手指,区分左右手,但是不包含手腕部分

示意图来自DART(NeurIPS 2022), 原始的MANO模型只有粉色部分, 即MANO模型不包含手腕部分。


从2017年以来, 手部参数化模型的事实性标准就是MANO。其Mesh层面的属性, 如Vertex, Edge和Face等, 基本没什么太大的变化,而后续的手部参数化模型,如HTML,NIMBIE以及DART,主要是从纹理和肌肉等角度对MANO进行了扩充:因为原始的MANO不像人脸参数化模型BFM一样, 缺乏显式的包含纹理基(Texture Basis),因此无法表征复杂的,高质感的纹理

MANO(SIGGRAPH Asia 2017), HTML(ECCV 2020), NIMBLE (SIGGRAPH 2022), DART (NeurIPS 2022)

HTML: A Parametric Hand Texture Model for 3D Hand Reconstruction and Personalization

HTML是第一个带贴图的手部参数化模型,是由当时在马普所实习的Neng Qian(Christian Theobalt组)做的,他现在在米哈游做一些和游戏相关的研究和开发。

HTML的本质上就是在MANO的基础上加了一个表示纹理的appearance basis,此basis的获得是由PCA获得,值得注意的是,此模型和MANO兼容。

HTML纹理基的示意图

虽然从创新性上来说,HTML是非常不错的,但是其恢复出来的纹理质量还是和真实的数据不够贴近:包括没有真实感的掌纹,指甲,汗毛等等。

基于HTML重建出来的带贴图的Mesh的OverLay效果图,可以看出颜色并不是和给定原图完全一致。

NIMBLE: A Non-rigid Hand Model with Bones and Muscles

NIMBLE是开创性的结合了肌肉和骨骼的参数化模型,其纹理和渲染的质量也非常的出色(借助了Blender引擎的Cycles渲染器)。其作者yuwei Li是上海科技大学Jingyi Yu的博士生, 是个很优秀的小姐姐。

NIMBLE示意图:包含肌肉,骨骼和高质量的纹理

此论文开创性的使用MRI数据来构建骨骼和肌肉,其纹理也是由Appearance model来控制, 渲染质量非常高。

NIMBLE的构建流程

美中不足的是,NIMBLE的模板mesh的Vertex, Faces数量远超标准版MANO, 使得其在实际应用中的开销变的很大(将近

倍的顶点数量差距),很难直接用于工业级的手部姿态估计任务

MANONIMBLE
77814,970

NIMBLE模板Mesh的统计信息,其顶点数量约为MANO的20倍。

DART: Articulated Hand Model with Diverse Accessories and Rich Textures

不同于HTML和NIMBLE的隐式构建Appearance Model来控制纹理,DART一力降十会,直接采用大量高质量的人工4K纹理贴图的办法,构建了300+高质量纹理贴图,并通过随机的offset的方式,模拟各种各样的肤色,伤痕,纹身,指甲颜色,并首次考虑了手腕和手指上常见的饰品,以期模拟合成数据对真实数据的逼近。

DART的300+高质量纹理贴图

通过对贴图的随机offset,可以模拟各种各样的肤色

由于饰品的存在,DART基于MANO做了一个手腕部分的扩展,从而能够模拟手表手链戴在手上的效果:

MANO template mesh v.s. DART template mesh

此外,DART还做了一个基于Unity的图形界面,可以允许用户自定义的生产自己的合成数据(任意视角、背景和光照),从而使得DART可以用于合成带有3D 精准Ground Truth的合成数据集(Synthetic data),可以用于提升神经网络在极端视角,光照等情况下的手部姿态估计能力。

DART还有一个合成数据集DARTset,里面的一些示意图如下所示,可以看出和真实场景拍摄的数据很相似。

DARTset的示意图

有趣的是,这三篇工作的第一作者都是90后的国人,这说明我们在手部参数化模型的研究中取得了很大的进展!

从左到右: Neng Qian (HTML), Yuwei Li (NIMBLE), Daiheng Gao (DART)


本节简单分为两个部分进行阐述, 一方面是手部参数化模型的主要应用场景:3D手部姿态估计和虚拟人驱动。另一方面则是一些3D手部模型最新的研究成果,基于Neural Radiance Field (简称NeRF)对手部进行隐式建模。

3.1 单目3D手部姿态估计

左: 3D重建Mesh贴合手部的结果; 右: 3D手部姿态估计驱动数字人做相同的手势

如图所示,3D手部姿态估计能够用于3D数字人的驱动,相比使用动作捕捉手套来说,基于参数化模型的手部姿态估计具有成本低,效率高的优势(只需要1个百元级的摄像头即可)。

这里,简单的根据3D手部姿态估计的方法类别进行了整理了表格,每个类别会找1~2个代表性的算法。

算法中稿年份特点
3D Hand Shape and Pose from Images in the WildCVPR2019, 牛津大学深度学习+MANO参数化的最直接回归3D手部姿态的经典方法
ObManCVPR2019, 马普所单目手物交互方法,并提出了一个数据集
I2L-MeshNetECCV2020, 首尔大学提出了image-to-lixel(line&pixel)的方法,不同于直接回归MANO参数,I2L-MeshNet是预测Mesh的每个vertex的1D heatmap
Mesh graphormerICCV2021, 微软结合图卷积和Transformer进行激进的per-vertex的姿态估计
MobReconCVPR2022, 快手结合图卷积(Graph CNN)和MANO进行手部参数化估计

3.2 隐式(Implicit)手部建模

随着NeRF[9]技术的发展,再加上人们对MANO的不满足: 顶点数少,不能够模拟精准的3D手势等原因,以Meta和小冰为代表的团队进行了3D手部隐式建模(或者称为multi-view hand reconstruction)的研究:

LISA: Learning Implicit Shape and Appearance of Hands

LISA是基于InterHand2.6M[4]搭建的,是Enric Corona在Meta实习期间的工作。因为InterHand2.6M有手部图片各个视角的相机参数等信息,这满足了重建NeRF的基本条件。虽然LISA能够隐式的通过NeRF,表达hand shape and appearance,但是其对于Pose的控制是不行的。

LISA概览图

  • HandAvatar (CVPR2023)[11]
HandAvatar: Free-Pose Hand Animation and Rendering from Monocular Video

HandAvatar是Xingyu Chen在小冰的第一篇工作,主要是解决LISA无法解决Pose的问题提出的,此外,由于LISA没有开源,HandAvatar的开源有效的弥补了隐式3D手部建模领域的空白。不过同LISA一样,其隐式场所用的数据也是来自于InterHand2.6M数据集。

HandAvatar示意图

HandAvatar的概览图图下,由于手部的可变形性太强,所以对手这种360度deformable object直接学习NeRF效果不太理想,HandAvatar提出了结合MANO和NeRF的方案,极大的解决deformable object在NeRF场的occupancy变化问题。

HandAvatar概览图

熟悉的作者合影环节,左边是来自西班牙 IRI-UPC的Enric Corona, 右边是在小冰当研究员的Xingyu Chen。

左: Enric Corona, 右: Xingyu Chen


手部参数化模型的出现至今短短6-7年,无论是在应用还是深入探索上,都取得了非常大的进展。希望在未来,能有更多的研究者加入进来,对一些目前重点但还未解决的问题进行研究:比如Re-lighting, 双手交互等等问题。

感谢阅读,如有错误烦请指正,本文完^.^

参考

  1. ^abcEmbodied Hands MANO
  2. ^基于参数化模型(MANO)的手势姿态估计---全面剖析 基于参数化模型(MANO)的手势姿态估计---全面剖析_mano模型-CSDN博客
  3. ^SMPL: A Skinned Multi-Person Linear Model SMPL
  4. ^aInterHand2.6M (ECCV2020) https://github.com/facebookresearch/InterHand2.6M
  5. ^3dMD 3dMD… Welcome to the 4D Revolution.
  6. ^HTML (ECCV2020) Parametric Hand Texture Model for 3D Hand Reconstruction and Personalization
  7. ^NIMBLE (SIGGRAPH 2022) https://github.com/reyuwei/NIMBLE_model
  8. ^DART (NeurIPS 2022) DART
  9. ^NeRF: Neural Radiance Fields NeRF: Neural Radiance Fields
  10. ^LISA  https://arxiv.org/pdf/2204.01695.pdf
  11. ^HandAvatar: HandAvatar

详见 : 数字人基础 | 3D手部参数化模型2017-2023 - 知乎

数字人基础 | 人脸3DMM的前世今生 - 知乎 

数字人基础 | 人体参数化模型SMPL的发展史 - 知乎

  • 31
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mano obj文件是一种用于描述手部三维模型的标准文件格式。想要可视化Mano obj文件,首先需要使用支持该文件格式的三维建模软件,例如Blender、Maya、3ds Max等软件。 1. 使用Blender软件可视化Mano obj文件 (1)打开Blender软件,点击"File",选择"Import",在弹出的菜单中找到"Wavefront(.obj)"选项。 (2)在弹出的对话框中,选择要导入的Mano obj文件,点击"Import"按钮。 (3)此时手部三维模型已经导入到Blender场景中,可以使用鼠标右键旋转、平移或缩放模型,并通过材质、灯光等方式优化场景效果。 2. 使用Maya软件可视化Mano obj文件 (1)打开Maya软件,点击"File",选择"Import",在弹出的菜单中找到"Wavefront(.obj)"选项。 (2)在弹出的对话框中,选择要导入的Mano obj文件,点击"Import"按钮。 (3)此时手部三维模型已经导入到Maya场景中,可以使用鼠标右键旋转、平移或缩放模型,并通过材质、灯光等方式优化场景效果。 3. 使用3ds Max软件可视化Mano obj文件 (1)打开3ds Max软件,点击"File",选择"Import",在弹出的菜单中找到"Wavefront(.obj)"选项。 (2)在弹出的对话框中,选择要导入的Mano obj文件,点击"Import"按钮。 (3)此时手部三维模型已经导入到3ds Max场景中,可以使用鼠标右键旋转、平移或缩放模型,并通过材质、灯光等方式优化场景效果。 总之,无论使用哪种建模软件,导入Mano obj文件后都需要进行适当的材质和灯光等效果调整,以达到更好的可视化效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值