数字人基础 | 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 M odel with A rticulated and N on-rigid def O rmations) [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 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: 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 : 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, 双手交互等等问题。

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

参考

  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的发展史 - 知乎

相关推荐
江畔柳前堤6 小时前
CV01_相机成像原理与坐标系之间的转换
人工智能·深度学习·数码相机·机器学习·计算机视觉·lstm
qq_526099136 小时前
为什么要在成像应用中使用图像采集卡?
人工智能·数码相机·计算机视觉
mirrornan7 小时前
什么是Web3D交互展示?有什么优势?
3d·webgl·3d模型·web3d·3d展示
VRARvrnew3d7 小时前
采煤机作业3D虚拟仿真教学线上展示增强应急培训效果
安全·3d·vr·虚拟现实·虚拟仿真·3d展示·采煤机作业
LhcyyVSO9 小时前
Maya崩溃闪退常见原因及解决方案
3d·3d建模·云渲染·动画渲染·maya·3d渲染·渲染农场
HHRL-yx9 小时前
C++视觉开发 五.答题卡识别
开发语言·c++·图像处理·人工智能·计算机视觉
q567315239 小时前
Python 3.x 下的 3D 游戏引擎
开发语言·后端·python·3d·django·游戏引擎
深蓝海拓9 小时前
OpenCV从图像中截取矩形区域
人工智能·opencv·计算机视觉
樊家小丹丹10 小时前
基于人脸识别的考勤系统(Qt+opencv+Arm)测试报告
开发语言·人工智能·qt·opencv·计算机视觉·dlib
啥都亿点点的研究生14 小时前
OnnxRuntime c#找不到模块HRESULT: 0x8007007E
pytorch·深度学习·opencv·计算机视觉·cnn