对VR来说,追踪是很关键的技术。当前市面上的VR头显主要支持手柄和头部追踪,一些公司如CTRL-labs曾提出通过电脉冲追踪手势的方案、Clay AIR在研发无硬件手势追踪技术,而Leap Motion、Magic Leap已经有效果优秀的这方面技术了。
Holosuit
Valve曾研发针对手部的骨骼追踪技术,不过这并不能满足全身追踪的需求。当前存在一些还在开发中的全身追踪方案,比如OptiTrack通过六个身体部位捕捉动作的追踪方案、Teslasuit动作捕捉全身服、Holosuit等。
上个月底,Intel实感技术CTO办公室的软件工程师Philip Krejov向大家展示了一种通过摄像头追踪全身的方案。据悉,这是一种基于深度学习的VR/AR人体动作识别技术,使用的硬件包括摄像机和HTC Vive追踪器,在性价比方面比全身服更有优势。
据青亭网了解,在此之前已经出现相似的技术,比如2017年,美国卡内基美隆大学认知计算研究室曾提出用于实时多人动作识别的通用机器学习架构OpenPose,它能够识别单个图像中135个关键点,缺点是仅支持6-12fps的帧率。
OpenPose
Stacked Hourglass Networks(堆叠沙漏网络结构)也是一款通用的动作识别架构,它和OpenPose一样都是非常精准,缺点是受GPU限制。每一块堆叠的沙漏本身是一个复杂的卷曲神经网络,它们通过外在图像和热量图来估计人体动作。
DensePose
Facebook在2018年曾提出DensePose数据集和网络架构,它能够识别人体表面,适用于追踪人体轮廓以及身体活动原理,缺点是会受到光线限制以及训练过程繁琐(每年需要在5万张人像上人工标记500万个点)。
这么大个的头显有没有很眼熟
Krejov表示,他团队研发的方案结合了深度网络与通用算法,但是对计算的要求很高,因此主要只能用于PC VR,如果应用在一体机中,那它的体积估计恐怕一般人无法承受。
基于深度的手势和动作识别
这类型的识别技术分为机器学习法和模型拟合两大类,前者通过数据训练随机决策森林来识别身体部位(可估计每帧的关节位置),优点是能够达到很高的帧率,缺点是训练需要数百万张图片;后者利用符号距离转化功能将预先构建的人体或手部模型向点云数据靠近,它的优点是模拟了运动学,缺点是需要多次模拟。
机器学习结合模型拟合的办法
Krejov曾将机器学习和模型拟合相结合,编写了一款能够在40fps的CPU上运行的手势识别算法。他利用随机决策森林来收集手部数据,然后将数据与模型拟合。同样适用这种方式的DoubleFusion技术,能够估测人体的动作和轮廓/表面,不过局限依然是对计算要求高。
AI+点云拟合
随后他由结合机器学习与点云拟合技术,研发了骨骼识别方案。为了提高追踪效率,他还结合了头显与手柄的位置信息。
下图解释了该方案的动作识别流程,前两步是基于多视图系统的校准和图像捕捉,接着是数据标记、数据矫正、实时动作估测(包括关节拟合+机器学习)。
在实时动作估测部分,机器将捕捉到的人像数据以及头显、手柄的位置数据输入体积很小的卷曲神经网络,生成由人体关节的热感图以及头显、手柄的浮点值。
采集真实训练数据
深度摄像数据包含红黄蓝和深度信息
点云对应不同的红黄蓝和xyz值
合成数据缺少噪点
Krejov提出的动作识别方案需要收集RGB和深度图像数据(每颗像素有各自对应的深度值),生成点云,这样每一个样本各代表了人体表面的一点。与真实数据相比,合成的训练数据缺少了噪点等特性,这些噪点是很难模仿合成的。但是真实数据需要人工标记,因此在时间、成本和准确性上都有局限。
为了采集动作数据,美国卡内基梅隆大学曾研发全景式三角测量法,即先估计手上关节的平面位置图,接着制作成手的3D模型,然后再重新投射到2D平面上,反复优化。OpenPose就是基于这种方案,Krejov的科研团队曾使用OpenPose来标记平面图像。
在全景式三角测量法基础上,Krejov提出了多视角捕捉的概念,这就需要使用更多摄像机,不过好处是能够采集到更准确的数据。
摄像头同步和校准
据悉,他的方案使用了6个RealSense深感相机,多个相机就需要考虑时间同步的问题,还需要将它们校准到同一坐标空间。使用三角测量法时,可以采用软件同步的方式,但是对于容积重建这种更复杂的任务来说,为减少伪影的出现,就不得不考虑同步摄像头触发装置的方法。
Krejov的多视角捕捉法,需要将六台摄像机等距摆放在追踪目标周围。他表示,你也可以使用更多相机,甚至为每台相机设定需要捕捉的专属节点。
装有HTC Vive追踪器的校准图表
校准过程
他还表示,这些相机需要通过校准,与统一的坐标系对齐,于是他们将HTC Vive追踪器装在校准图表上,通过移动来校准相机摄像头和HTC Vive头显。
这项多视角捕捉技术可实现更准确的自动标记,耸肩、抬腿等细微的动作都捕捉得不错。
数据矫正过程
在捕捉到人体姿势数据后,Krejov的方案还可以让你从任何视角进行渲染和校准,方法是在目标周围画一个立方体,然后提取出从六个视角捕捉到的图像。
排查异常值
Krejov发现,秉承自然规律,人的骨骼在短期内不会改变长度,因此如果想要识别错误的自动标注,可通过排查数据异常值。
动作数据不平均,主要集中在深紫色部分
另外,由于采集到的数据中动作比较单一,重新采集数据也不可避免,目的是为了确保不同动作的数据量平均。
Krejov称,使用这种方法,就不再需要手动标记,只需要监督拍摄过程,而且在30分钟内,就能够采集到5万张完成标记的训练样本。
单一相机方案
为了满足终端消费者需求,Krejov称他们也研发了只需要一台摄像头的方案。
利用之前采集到的多视角训练数据,他们研发了一款小型机器学习网络(采用关节推理原理),分成六部分,其中大部分是卷曲神经网络。首先他们将图像中的动作数据进行缩小和精简,加上头显和手柄的位置信息,然后再次放大,生成估计的热量图以及关节位置信息和最初估计的头显和手柄位置信息。
通过参考头显和手柄位置,目标超出相机视野的身体部位也可以追踪,另外参考目标与地面的位置,还能够分析他是否跳离地面。小型网络可在i7 CPU上运行,刷新率达200 fps。
模型优化
橘色为点云
为了确保准确性,该方案还需要对模型进行优化,方式是将点云数据与模型对齐,找到差别最小的节点,然后分析这些节点与模型之间的相互影响,以此来生成优化的骨骼追踪数据。
未优化的模型通常不够准确,人的动作局限在小范围中,因此他们使用机器学习来优化模型。优化后,追踪更加稳定,
Krejov及团队在研究方案时,采用了HTC Vive头显,优势是它内置头部追踪功能,更能优化单一相机的追踪方案。
躯干追踪部分,该方案采用了模型拟合和机器学习技术,可追踪腰部,让你在VR中玩呼啦圈,还能够追踪腿和脚,让你在VR中踢球、跨栏、跑步、跳舞等,这样就省去了VR跑步机等VR控制器。
为了验证这项技术,Krejov和团队编写了一款Unity插件,让他们将估计模型放进游戏里。接着他们使用Final IK的现成反向运动方案,将游戏中的人物与估计模型叠加。
他发现,使用这种追踪方法,他在VR中可以用脚与彩球直接互动,手肘也可以追踪到,只是使用手柄拿起球还比较困难。
动作追踪的一些应用场景
如果Krejov的这骨骼追踪方案得以应用,将为VR社交和远程办公提供更好的交互,目前Magic Leap的Avatar Chat只支持上半身追踪,而Spatial的远程协作平台也并未支持对全身的追踪。
原文地址:https://www.cnblogs.com/chuangye95/p/10204527.html