CVPR2021:单目实时全身动作捕捉(清华大学)

Monocular Real-time Full Body Capture with Inter-part Correlations

摘要:

本文提出了第一种实时全身捕捉的方法,该方法通过单一颜色图像的动态3D人脸模型来估计身体和手的形状和运动。研究人员使用了一种新的神经网络框架,考虑了身体和手部之间的相关性,并能够以高效率进行内部运算。与以往的研究不同的是,该研究方法是在多个数据集上联合训练,分别关注手部、身体或面部,不需要同时标注所有的数据。这种通过多数据集进行训练的方法,使得该框架具有优越的泛化能力。与早期的单目全身方法相比,本文中的方法通过估算统计人脸模型的形状、表情、反照率和光照参数等捕捉更具有表现力的3D人脸的几何形状和颜色。该方法在公共数据集基准上测试获得较高的精度,同时能够提供更完整的面部重建。 

研究贡献:

(1)   第一种实时方法,可以从单一颜色图像中共同捕获人的3D身体,手部和脸部。

(2)   一种新颖的网络结构,并利用人体内部的相关性进行手部关键点检测,从而提高了计算效率和准确性。

(3)   利用解耦模块,注意机制和二级主体关键点检测结构等,提高了该框架的通用性。 

研究方法:

如上图所示,研究人员将单目彩色图像作为输入,并输出2D和3D关键点位置,关节角度以及身体和手部的形状参数,以及面部表情,形状,反照率和光照参数。然后,研究人员对新的参数模型进行动画处理,以恢复致密的人体表面。整个网络框架主要被划分为四个独立的模块:DetNet,是根据人体图像估算人体和手部关键点的位置,其中嵌有新的交互特征,注意力机制和二级人体关键点检测结构。BodyIKNet和HandIKNet,是根据人体和手部的关键点坐标估计形状参数和关节角度;FaceNet,是用于从人脸图像裁剪中回归获取人脸的参数。

(1) DetNet

关键点检测网络DetNet的目标是根据输入图像估算3D身体和手部关键点坐标。因为身体和手部在图像中的比例不同,因此单个网络无法同时处理两项任务。简单常用的解决方案是使用两个单独的网络,但是这意味着将需要更长的运行时间,从而难以满足实时性。该项研究中,研究人员观察发现:利用身体关键点估计提取的手部区域的全局特征可以与手部构建分支共享。通过将它们与从手部区域中单独提取的高频局部特征相结合,可以避免对手部高级特征的计算,并且可以提供用于手部关键点检测的身体信息,更有利于获得更高的精度。

(2) IKNet

稀疏的3D关键点位置不足以驱动CG角色模型,如果想要对人体网格模型进行动画处理,并且获得密集的人体表面,需要从稀疏的关键点中估计人体的关节角度。这种计算任务称为逆运动学(IK)。通常,IK任务是通过迭代优化方法解决的,这种方法运算时间较长。但是,在这项研究中,研究人员使用称为IKNet的完全连接的神经网络模块从关键点坐标回归关节角度,借助附加的MoCap数据进行训练,IKNet会从数据中隐式地先获取一个姿势,从而进一步减少了关键点位置误差。由于采用了端到端的体系结构,IKNet获得了卓越的运行性能,有利于提高实时性。

IKNet是一个完全连接的网络,它输入关键点坐标,输出身体和手的关节旋转。与其他方法相比,研究人员使用相对6D旋转作为输出公式,并且在神经网络中另外估算了形状参数和比例因子。由于几乎没有同时包含身体和手部关节旋转的MoCap数据,因此研究人员训练BodyIKNet和HandIKNet分别估计身体和手部的关节旋转,而不是训练一个将所有关节角度都回归的网络。损失定义为:

(3) FaceNet

研究人员采用了FaceNet卷积模块,从一个面部中心为中心的图像估计3DMM统计人脸模型的形状,表情,反照率和光照参数。通过根据DetNet估计的面部裁剪图像来获得面部图像。与之前仅仅估计面部表情的全身捕捉的研究相比,利用这种方法,研究人员对形状,反照率和光照参数的回归可提供更为个性化和逼真的效果。由于原始的FaceNet中的原始模型对图像中人脸的大小和位置很敏感,因此研究人员使用DetNet产生的人脸对其进行微调,能够实现更好的泛化。 

实验:

研究人员利用AMASS,HUMBI和SPIN数据集训练BodyIKNet,并按照已有方法使用MoCap数据训练HandIKNet。对HandIKNet和BodyIKNet的训练数据进行增强。FaceNet在VoxCeleb2数据集上进行预训练,并使用来自MTC的面部图像进行微调。研究人员使用与MTC,HM36M和MPII3D中相同的评价标准评估MTC,HM36M,MPII3D和HUMBI在人体运动预测的结果。在HUMBI数据集上,研究人员选择15个评估的关键点,从而与其他数据集保持一致,同时忽略图像外部的关键点。对于手部评估,研究人员使用MTC数据集和FreiHand数据集。由于并非所有MTC中的测试图像都带有双手的标注,因此研究人员仅对带有双手标记的样本进行评估,称为MTC-Hand。研究人员使用以毫米为单位的平均关节位置误差作为身体和手部姿势估计的度量。

研究人员在上图中给出定性结果,并与Choutas等人的最新方法进行了比较。尽管实验结果显示该种方法的速度更快,但是可以提供具有质量的预测结果。在第一行中,显示了该模型捕获的详细的手势,而Choutas等人给出了过度平滑的估计。这是因为研究人员利用了从高分辨率手形图像中提取的高频局部特征。在第二行中,证明了该研究中手部姿势与手腕和手臂的姿势一致,而Choutas等人的结果在人体解剖学上是不正确的。这是由于该研究利用身体信息进行手势估计。研究人员在第三行中证明,随着面部形状和颜色的变化,研究人员的方法可提供高度个性化的捕获结果,而Choutas等人则缺少身份信息。

在上图中,研究人员比较了两种不同的面部裁剪捕捉结果。由于研究人员的方法不估计相机姿态,为了叠加可视化,研究人员采用PnP-RANSAC和PA来对齐研究人员的3D和2D预测。

研究人员在上表中报告了实验中手部姿态估计的结果。IK后的结果是基于handknet估计的形状参数。在MTCHand测试集上,研究人员的平均误差只有9.3毫米。研究人员认为IK后误差增加1.1mm是因为SMPLH和MTC手部模型在关键点上存在定义的差异,因为骨长度的差异平均为25%。在FreiHand,研究结果的差异增加了,这是因为FreiHand是一个只有手部姿态的数据集,而在本文的研究方法中,人体姿态依赖于身体信息。由于研究方法中没有特定应用于手部的网络,为了对手部运动进行评估,研究人员必须将手的图像填充到完整的尺寸,并将其输入到模型中,如下图所示,就像呈现身体一样。即使这种方法存在很多的不足,但是通过这种方法后,实验结果与Choutas等人的研究结果依旧旗鼓相当。

总结:

研究人员提出了第一种实时方法,可以从单个RGB图像中捕获身体,手部和脸。基于观察到的身体和手部运动是内部相关的这一特性,研究人员利用这种关键部位之间的相关性设计网络,从而获得较高的运算效率和运算准确性。

通过将网络训练为独立的模块,引入注意机制和二阶段人体关键点检测,研究人员利用了多个不同的数据集并取得了较好的实验结果。此外,该种方法不仅可以捕捉表情,还可以捕捉与身份相关的形状和反照率等参数,从而获得更具个性化的面部表情。接下来,研究的方向可能涉及身体纹理部分,以获得彩色的人体跟踪或人体表面的变形。

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

下载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人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

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

▲长按加微信群或投稿

▲长按关注公众号

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

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

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

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

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,这是一个可以使用 Python 实现视频动作捕捉的简单示例代码: 首先,我们需要安装一些必要的库,包括 OpenCV 和 imutils。你可以使用 pip 命令安装它们: ``` pip install opencv-python pip install imutils ``` 然后,我们可以使用以下代码打开视频文件并捕捉视频帧: ```python import cv2 # 打开视频文件 video = cv2.VideoCapture("video.mp4") # 捕捉视频帧 while True: # 读取帧 ret, frame = video.read() # 如果视频结束,退出循环 if not ret: break # 在这里处理帧 # ... # 显示帧 cv2.imshow("Frame", frame) key = cv2.waitKey(1) & 0xFF # 如果按下 q 键,退出循环 if key == ord("q"): break # 释放视频文件 video.release() ``` 然后,你可以在循环中使用任何你喜欢的 OpenCV 函数来处理帧,例如转换颜色空间、边缘检测、面部检测等等。 例如,你可以使用以下代码在每帧中检测人脸: ```python import cv2 # 加载人脸检测器 face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml") # 打开视频文件 video = cv2.VideoCapture("video.mp4") # 捕捉视频帧 while True: # 读取帧 ret, frame = video.read() # 如果 ### 回答2: 视频动作捕捉程序通常是指通过运算机视觉和图像处理技术,从视频流中提取运动目标,并对其进行分析和识别。在Python中,可以使用OpenCV库来帮助实现这样的视频动作捕捉程序。 首先,我们需要安装OpenCV库,并确保安装了相关的依赖库,如NumPy和Matplotlib。然后,我们可以使用OpenCV来打开视频流,并读取视频的帧。 接下来,我们需要对每一帧进行处理,以提取出感兴趣的运动目标。可以使用OpenCV中的运动目标检测算法,如帧差法或基于光流的方法来实现目标检测。 在获取运动目标之后,我们可以使用机器学习算法来对目标进行动作识别。可以使用分类器,如支持向量机(SVM)或卷积神经网络(CNN)来训练和识别不同的动作。 最后,根据动作的识别结果,我们可以进行相应的后续处理,如输出动作的类别或执行特定的操作。 需要注意的是,视频动作捕捉程序的实现涉及到许多复杂的计算机视觉和图像处理算法,以及相关的机器学习技术。因此,在编写程序之前,需要充分了解相关的理论和算法,并具备一定的编程基础。 总结起来,使用Python编写视频动作捕捉程序主要分为以下几个步骤:安装OpenCV库和相关依赖库、打开视频流和读取帧、运动目标检测、动作识别和后续处理。这只是一个简单的概述,实际实现中还需要考虑很多细节和技术难点。 ### 回答3: 使用Python编写视频动作捕捉程序可以实现实时动作识别和分析。首先,需要使用OpenCV库读取视频,获取视频的每一帧。然后,使用推断模型对每一帧进行动作分类。 1. 导入所需库:导入OpenCV、Numpy和推断模型库。 2. 加载推断模型:使用OpenCV加载预训练的神经网络模型,如ResNet、MobileNet等。这些模型经过训练,可以实现对多种动作的识别。 3. 打开视频文件:使用OpenCV打开待处理的视频文件。 4. 循环处理每一帧:通过循环和读取视频的方法,逐帧处理视频。 5. 图像预处理:对读取的每一帧进行预处理,如调整大小、裁剪、归一化等。 6. 动作识别:将预处理后的图像输入到推断模型中,得到输出结果。 7. 结果显示:根据输出结果,可以标注视频中的动作,比如独立动作、连续动作等。 8. 结果保存:将结果保存到文件或数据库,以供进一步分析与应用。 9. 释放资源:关闭视频文件,释放内存。 10. 结束程序:程序运行完毕后退出。 总结,通过使用Python编写视频动作捕捉程序,我们可以实时分析视频中的动作,并进行动作识别、标注和保存。这种程序可以广泛应用于体育训练、运动健身等领域,为用户提供动作指导和数据分析。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值