科学怪物!3D人体全身运动捕捉系统,港中文联合Facebook出品

老子叫甜甜 提交于 2020-10-01 09:10:14

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者 | VVingerfly

编辑 | 陈大鑫

3D人体姿态和形状估计在最近几年是一个重要的研究热点,但大部分工作仅仅关注人体部分,忽略了手部动作,港中文联合Facebook AI研究院提出了一种从单张图片同时估计人体姿态和手部动作的新方法,展示效果好似科学怪物。

如下图左下和右下所示,易看出本文提出的方法姿态估计效果更好。

1

介绍

本文作者提出了一个3D人体全身运动捕捉系统 FrankMocap,能够从单目视频同时估计出3D人体和手部运动,在一块GeForce RTX 2080 GPU上能够达到 9.5 FPS。作者提到 “FrankMocap” 是对现代普罗米修斯 (The Modern Prometheus)中科学怪人 (Frankenstein) 的怪物的致敬。

人们每天会拍大量的日常活动视频上传到网络,如果有一种基于普通摄像头的运动捕捉系统,能够捕捉视频中人体的运动,将在人机交互、人工智能、机器人等众多方向有所应用。

同时捕捉人体和人手的运动对这些应用同样重要,但人手只占身体的很小一部分,要想直接捕捉两者的运动是一个很难的问题。当前的大部分相关工作都只顾及图片中人体的3D姿态,忽略图片中人手的动作。有部分工作关注从单张图片同时估计人体的全身运动,但这些工作都是基于优化的方法,将参数化的人体模型拟合到图像信息,速度较慢不适合实时应用。

这篇文章提出了一个快速准确的方法来从RGB图片或视频估计人体和人手的姿态。作者采用 SMPL-X 人体模型,首先通过两个回归模块来从输入图片分别估计人体和人手的3D姿态,然后再通过一个整合模块将预测的结果组合在一起,得到最终的3D全身人体。文章代码将会开源。     

项目主页:https://penincillin.github.io/frank_mocap

项目论文:https://arxiv.org/pdf/2008.08324.pdf

2

方法

作者使用 SMPL-X 人体模型,给定一张彩色图片,通过两个网络模块分别预测手部姿态和人体姿态,然后再通过整合模块将手和身体组合在一起,得到最终的3D全身模型,整个流程如下图所示。

SMPL-X 模型

SMPL-X 人体模型是一个参数化的3D人体模型,是 SMPL 模型的扩展,能够通过低维的人体形状和姿态参数的组合来表达不同形状和姿态的3D人体,其与 SMPL 模型的最大差异在于 SMPL-X 模型通过引入额外参数,能够同时表达人体的手指运动和面部表情。

SMPL-X 人体模型可以用如下数学公式来表达:

 

这里是人体的整体旋转,是人体姿态相关的变形参数,  是人体和人手形状相关的参数。作者将姿态参数拆分为人体相关的参数和左右手相关的参数,所以。所有的姿态参数由轴角表达,是某关节点相对于其父节点的相对旋转。最终得到的 SMPL-X 人体模型包含 10,745 个顶点。人体关节点的3D位置可以通过在顶点上作用关节点回归矩阵 得到:

       

这里。人手模型来自 SMPL-X 的手部,定义为  

       

其中是手的姿态参数,是手的形状参数,是手的整体旋转。最终手部的网格包含 788 个顶点,即,其中    的一个子集。同样手部关节点的位置可以通过关节点回归矩阵计算得到

        

这里包含一个手腕关节点、15个手指关节点和5个指尖点。手部网格和骨架层级关系如下图所示:

3D手部估计模块

手部预测模块基于一个端到端的神经网络,直接回归手部姿态参数,其定义如下:

       

是从输入图像中截取的手部区域图片块,是弱透视投影的相机参数,能够将手部模型投影到输入图像。

网络架构

手部模块的架构如下图所示,其由一个编码器和解码器组成,编码器使用 ResNet-50,将手部图像块作为输入输出编码的图像特征,解码器由全连接层构成,从图像特征回归手部模型参数。

损失函数

手部姿态和形状估计的网络训练时使用的损失函数主要由4个部分组成:

       

其中是在有3D人体参数时的关节点轴角损失:

     

 是3D关节点标注数据时添加的关节点损失:

       

 是2D关节点损失,其对预测相机参数非常重要:

       

 是手部形状参数的正则项,用于惩罚不自然的手部形状。

3D手部姿态数据集

3D手部姿态数据集通常是在受限的实验室环境下采集的,用这些数据集训练的模型经常会遇到过拟合的问题,在室外数据表现较差。

作者注意到,现有3D人体姿态估计方法表明利用不同的数据集可以大大提高模型的泛化能力,因此作者使用尽可能多的公开数据集来训练手部姿态估计网络,包括 FreiHAND、HO-3D、MTC (Monocular Total Capture) 、STB (Stereo Hand Pose Tracking Benchmark)、RHD (Rendered Hand Dataset)、MPII+NZSL 数据集。由于部分数据集的手部骨架与文字不同,作者以中指长度为参考,对这些数据集的3D手部关节点缩放到与文章手部模型近似一致的尺寸,并将关节点顺序按照文章的层次结构重新排列。

3D人体估计模块

3D人体姿态和形状估计网络参考自 SPIN 的网络结构,SPIN 是一个从单张图片估计 SMPL 人体模型参数的 SOTA 的方法,作者将其输出从 SMPL 的参数修改为 SMPL-X 模型参数,并对网络进行了微调。3D人体姿态估计模块的定义如下

         

其中是从输入图像中截取的人体部分,分别是人体全局旋转、人体姿态参数和人体形状参数。同样这里使用弱透视投影相机参数 

损失函数和数据集

3D人体估计网络使用了 Human3.6M 数据集和 EFT 数据集,其中 EFT 数据集包含 COCO 和 MPI 中的人体图片及其对应的 SMPL 模型参数。由于 SMPL 的形状参数和 SMPL-X 不兼容,作者在训练时只使用这些数据集的人体姿态参数。损失函数和 SPIN 原始论文中使用的一样,但是没用使用 SMPLify 损失部分。

全身整合模块

整合模块将3D人体和手部模块输出的结果组合在一起得到 SMPL-X 模型的参数表达,作者提供了两种方法来整合:

  1. 复制粘贴方式:直接将人体和手部组合起来,速度快;

  2. 优化拟合方式:使用2D关键点来优化人体参数以得到更加准确的结果,但速度较慢。

复制粘贴组合

由于人体和手部模块的输出与 SMPL-X 人体模型的参数是兼容的,因此可以很简单地将两者合并在一起。只需将左右手从世界坐标系变换到人体模型腕关节的局部坐标系下即可。

优化拟合方式

优化拟合方式通过优化人体模型的参数来拟合人体的2D关键点,以得到与图片更加对齐、更加准确的人体网格。优化的目标函数如下:

        

这里是3D关键点的投影与目标图像中检测的2D关键点之间的投影误差,是一个先验项,使得人体的姿态和形状参数处在一个合理的范围。作者参考 EFT[3] 文章中的方法,通过微调网络来最小化目标函数,只需迭代少数几次便能得到不错的结果。

下图展示了复制粘贴组合和优化拟合组合两种方法的结果对比,可以看到优化后人体的姿态更加准确,但速度会有所下降。

3

结果

下面表格展示了文章方法和其他方法的运行时间对比,文章的复制粘贴组合方式在 GeForce RTX 2080 GPU 上能够达到9.5FPS,优化的方法也有0.95FPS,均高于 SMPLify-X 和 MTC 方法。

下图展示了文章方法在手部姿态估计方面与当前 state-of-the-art 的方法的比较,文章方法的结果更加准确,与图片更加一致。

下图展示了文章方法和 Monocular Total Capture,SMPLify-X 结果的比较,文章方法估计的人体、人手姿态更加准确,而且速度会快很多。

更多演示结果

不如跳舞~

熟练地玩抽纸~

倒杯水喝~

参考论文

  1. FrankMocap: A Fast Monocular 3D Hand and Body Motion Capture by Regression and Integration. Yu Rong, Takaaki Shiratori, Hanbyul Joo. ArXiv, 2020.

  2. Expressive Body Capture: 3D Hands, Face, and Body from a Single Image. Georgios Pavlakos, Vasileios Choutas, Nima Ghorbani, Timo Bolkart, Ahmed A. A. Osman, Dimitrios Tzionas, and Michael J. Black. CVPR, 2019.

  3. Exemplar Fine-Tuning for 3D Human Pose Fitting Towards In-the-Wild 3D Human Pose Estimation. Hanbyul Joo, Natalia Neverova, Andrea Vedaldi. ArXiv, 2020.

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计汇总等。

下载3

「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!