楔子 : 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 M odel with A rticulated and N on-rigid def O rmations) [1].
其目的主要是针对从图像中恢复3D手部姿态的困难情况(低分辨率、遮挡和噪声), 从而提出的一个新的手部参数化模型。
左: InterHand2.6M中的双手交互导致的遮挡(occlusion)和相机阵列带来的噪声(noise), 中: FreiHand中手物交互产生的遮挡(occlusion), 右: RHD合成数据集中手部分辨率低(low-resolution)
从我个人的理解,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[6]
HTML: A Parametric H and T exture 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 [7]
NIMBLE: A N on-rigid H and M odel with B ones and Muscles
NIMBLE是开创性的结合了肌肉和骨骼的参数化模型,其纹理和渲染的质量也非常的出色(借助了Blender引擎的Cycles渲染器)。其作者yuwei Li是上海科技大学Jingyi Yu的博士生, 是个很优秀的小姐姐。
NIMBLE示意图:包含肌肉,骨骼和高质量的纹理
此论文开创性的使用MRI数据来构建骨骼和肌肉,其纹理也是由Appearance model来控制, 渲染质量非常高。
NIMBLE的构建流程
美中不足的是,NIMBLE的模板mesh的Vertex, Faces数量远超标准版MANO, 使得其在实际应用中的开销变的很大(将近
倍的顶点数量差距),很难直接用于工业级的手部姿态估计任务。
MANO | NIMBLE |
---|---|
778 | 14,970 |
NIMBLE模板Mesh的统计信息,其顶点数量约为MANO的20倍。
- DART[8]
DART : Articulated Hand Model with D iverse A ccessories and R ich 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 Wild | CVPR2019, 牛津大学 | 深度学习+MANO参数化的最直接回归3D手部姿态的经典方法 |
ObMan | CVPR2019, 马普所 | 单目手物交互方法,并提出了一个数据集 |
I2L-MeshNet | ECCV2020, 首尔大学 | 提出了image-to-lixel(line&pixel)的方法,不同于直接回归MANO参数,I2L-MeshNet是预测Mesh的每个vertex的1D heatmap |
Mesh graphormer | ICCV2021, 微软 | 结合图卷积和Transformer进行激进的per-vertex的姿态估计 |
MobRecon | CVPR2022, 快手 | 结合图卷积(Graph CNN)和MANO进行手部参数化估计 |
3.2 隐式(Implicit)手部建模
随着NeRF[9]技术的发展,再加上人们对MANO的不满足: 顶点数少,不能够模拟精准的3D手势等原因,以Meta和小冰为代表的团队进行了3D手部隐式建模 (或者称为multi-view hand reconstruction)的研究:
- LISA (CVPR2022)[10]
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, 双手交互等等问题。
感谢阅读,如有错误烦请指正,本文完^.^
参考
- ^abcEmbodied Hands MANO
- ^基于参数化模型(MANO)的手势姿态估计---全面剖析 基于参数化模型(MANO)的手势姿态估计---全面剖析_mano模型-CSDN博客
- ^SMPL: A Skinned Multi-Person Linear Model SMPL
- ^aInterHand2.6M (ECCV2020) https://github.com/facebookresearch/InterHand2.6M
- ^3dMD 3dMD... Welcome to the 4D Revolution.
- ^HTML (ECCV2020) Parametric Hand Texture Model for 3D Hand Reconstruction and Personalization
- ^NIMBLE (SIGGRAPH 2022) https://github.com/reyuwei/NIMBLE_model
- ^DART (NeurIPS 2022) DART
- ^NeRF: Neural Radiance Fields NeRF: Neural Radiance Fields
- ^LISA https://arxiv.org/pdf/2204.01695.pdf
- ^HandAvatar: HandAvatar