©作者 | 林靖
三维全身人体网格重建(3D Whole-Body Mesh Recovery)是三维人体重建领域的一个基础任务,是人类行为建模的一个重要环节,用于从单目图像中捕获出准确的全身人体姿态和形状,在人体重建、人机交互等许多下游任务中有着广泛的应用。
来自粤港澳大湾区研究院(IDEA)与清华大学深研院的研究者们提出了
首个用于全身人体网格重建的一阶段算法 OSX
,通过模块感知的 Transformer 网络,高效、准确地重建出全身人体网格,并提出了一个大规模、关注真是应用场景的上半身人体重建数据集 UBody。
本文提出的算法从投稿至今(2022.11~2023.04),是 AGORA 榜单 SMPL-X 赛道的第一名。该工作已经被计算机视觉顶会 CVPR 2023 接收,算法代码和预训练模型已经全部开源。
论文链接:
https://arxiv.org/abs/2303.16160
https://github.com/IDEA-Research/OSX
https://osx-ubody.github.io/
简介
三维全身人体网格重建(3D Whole-Body Mesh Recovery)是人类行为建模的一个重要环节,用于从单目图像中估计出人体姿态(Body Pose),手势(Hand Gesture)和脸部表情(Facial Expressions),该任务在许多下游现实场景中有着广泛的应用,例如动作捕捉、人机交互等。得益于 SMPLX 等参数化模型的发展,全身人体网格重建精度得到了提升,该任务也得到越来越多的关注。
相比于身体姿态估计(Body-Only Mesh Recovery),全身人体网格重建需要额外估计手和脸部的参数,而手和脸部的分辨率往往较小,导致难以通过一个一阶段的网络,将全身参数估计出来。
之前的方法大多采用多阶段的复制-粘贴(Copy-Paste)框架,提前检测出手和脸的包围框(Bounding Box),将其裁剪出来并放大,输入三个独立的网络,分别估计出身体(Body),手(Hand),和脸(Face)的参数,再进行融合。
这种多阶段的做法可以解决手和脸分辨率过小的问题,然而,由于三部分的参数估计相对独立,容易导致最后的结果以及三部分之间的连接不够自然和真实,同时也会增加模型的复杂度。
为了解决以上问题,我们提出了首个一阶段的算法 OSX,我们使用一个模块感知的 Transformer 模型,同时估计出人体姿态, 手势和脸部表情。该算法在较小计算量和运行时间的情况下,在 3 个公开数据集(AGORA, EHF, 3DPW)上,超过了现有的全身人体网格重建算法。
我们注意到,目前的全身人体网格重建数据集,大部分是在实验室环境或者仿真环境下采集的,而这些数据集与现实场景有着较大的分布差异。这就容易导致训练出来的模型在应用于现实场景时,重建效果不佳。此外,现实中的许多场景,如直播、手语等,人往往只有上半身出现在画面中,而目前的数据集全部都是全身人体,手和脸的分辨率往往较低。
为了弥补这方面数据集的缺陷,我们提出了一个大规模的上半身数据集 UBody,该数据集涵盖了 15 个真实场景,包括 100 万帧图片和对应的全身关键点(2D Whole-Body Keypoint),人体包围框(Person BBox)、人手包围框(Hand BBox)以及 SMPLX 标签。下图是 UBody 的部分数据可视化。
一阶段重建算法介绍
2.1 OSX整体框架
如下图所示,我们提出了一个模块感知(Component-Aware)的 Transoformer 模型,来同时估计全身人体参数,再将其输入 SMPLX 模型,得到全身人体网格。我们注意到,身体姿态(Body Pose)估计需要利用到全局的人体依赖信息,而手势(Hand Gesture)和脸部表情(Facial Expression)则更多的聚焦于局部的区域特征。
因而,我们设计了一个全局编码器和一个局部解码器,编码器借助于全局自注意力机制(Global Self-attention),捕获人体的全身依赖关系,估计出身体姿态和形状(Body Pose and Shape),解码器则对特征图进行上采样,使用关键点引导的交叉注意力机制(Cross-Attention),用以估计手和脸部的参数。
2.2 全局编码器
在全局编码器中,人体图片首先被切为多个互不重叠的块,这些块通过一个卷积层,加上位置编码,转换为特征令牌(Feature Token)
,接着,我们再将其与若干个由可学习参数构成的人体令牌(Body Token)
进行连接,输入全局编码器。
全局编码器由多个 Transformer 块组成,每个块包含一个多头自注意力、一个前馈网络和两个层归一化模块(Layer Normization)。经过这些块之后,人体各个部分之间的信息得到了交互,body token
捕捉了人体的全身依赖关系,输入全连接层,回归出人体姿态和形状。Feature token 则进行重组(Reshape),转换为特征图,供解码器使用。
2.3 高分辨率局部解码器
在解码器中,我们首先对特征图进行上采样,以解决手和脸分辨率过低的问题。具体的,我们使用一个可微分的感兴趣区域对齐(Region of Interest Alignment)操作,将手和脸部的特征图进行上采样,因而获得多尺度的手、脸高分辨率特征
。
接着,我们定义多个模块令牌(Component Token)
,每一个 token 代表一个关键点,将这些 token 输入解码器,通过关键点引导的交叉注意力机制,从高分辨率特征中捕获有用的信息,更新 Component Token:
最终,这些模块 token 通过全连接层,转换为手势和脸部表情,并于身体姿态和形状一起,输入 SMPLX 模型,转换为人体网格。
3.1 数据集亮点
为了缩小全身人体网格重建这一基础任务与下游任务的差异,我们从 15 个现实场景,包括音乐演奏、脱口秀、手语、魔术表演等,收集了超过 100 万的图片,对其进行标注。这些场景与现有的数据集 AGORA 相比,由于只包含上半身,因而手和脸的分辨率更大,具有更加丰富的手部动作和人脸表情。
同时,这些场景含有非常多样的遮挡、交互、切镜、背景和光照变化,因而更加具有挑战性,更加符合现实场景。此外,UBody 是视频的形式,每个视频都包含了音频(Audio),因而未来也可以应用于多模态等任务。
3.2 IDEA自研高精度全身动捕标注框架
为了标注这些大规模的数据,我们提出了一个自动化标注方案,如下图所示,我们首先训练一个基于 ViT 的关键点估计网络,估计出高精度的全身人体关键点。接着,我们使用一个多阶段渐进拟合技术(Progreesive Fitting),将 OSX 输出的人体网格转换为三维关键点(3D Keypoints),并投影到图像平面,与估计的二维关键点(2D Keypoints)计算损失,用以优化 OSX 网络参数,直至估计出来的网格与 2D 关键点能够高度贴合。
以下是 UBody 数据集的 15 个场景及其标注结果的展示的展示:
实验结果
4.1 定量实验对比
OSX 从投稿至今(2022.11~2023.04),是 AGORA 榜单上 SMPLX 赛道的榜首,在 AGORA-test 上的定量对比结果如下表所示:
在 AGORA-val 上的定量对比结果如下表所示:
可以看出,OSX 由于使用了模块感知的 Transformer 网络,能够同时保证全局依赖关系的建模和局部特征的捕获,在现有数据集,特别是 AGORA 这一较为困难的数据集上,显著超过了之前的方法。
4.2 定性实验对比
可以看出,我们的算法 OSX 能够估计出更加准确的身体姿势,手部动作和脸部表情,重建出来的人体网格更加准确,与原图贴合的更好,更加鲁棒。
总结
OSX 是首个一阶段全身人体网格重建的算法,通过一个模块感知的 Transformer 模型,同时估计了 body pose, hand pose 和 facial experssion,在三个公开榜单上取得了目前最好 whole-body mesh recovery 最好的结果。此外,我们提出了一个大规模的上半身场景数据集 UBody,用以促进人体网格重建任务在下游场景中的应用。我们的代码已经进行了开源,希望能够推动该领域的发展。
联系我们
我们团队正在招聘有才华、有自驱力、有创造力的研究型实习生,主要研究以人为中心的视觉理解和生成任务。有兴趣的同学可以发送简历至 zengailing@idea.edu.cn。
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」