光学动捕中的软件技术分析

Xsens动作捕捉 2023-05-05 3278

一、概述

当我们说起动作捕捉技术的时候,目前市面上常见是下面这两类:一个是相机捕捉演员套装标记的光学捕捉系统;另一个是在演员套装里利用磁铁、加速度计和陀螺仪的惯性捕捉系统,后者比较专业的说法是“基于微型惯性传感器、生物力学以及传感器融合算法的动作捕捉系统”,经我们公司测试发现,光学动捕在精度和稳定性上要远好于惯性动捕。当然惯性动捕因为其不需要相机矩阵,所以应用场景要广一些。

二、光学设备动捕原理

一般是通过红外光,原理是通过多个镜头对标记点的位置跟踪来获取标记点的空间位置信息。LED灯会发出特定波长的红外光,归到被捕捉物,就是反光标记点,标记点上的反光材料将红外光反射回镜头,反射回的红外光经过信号处理,FPGA进行图像抓取算法处理,得到在相机镜头中的二维坐标,多个动捕镜头对同一个反光点进行跟踪,再结合镜头的三维空间信息,可重建出反光点的三维坐标。

光学动捕中的软件技术分析  第1张

三、光学动捕详细技术分析

动捕的流程如下图所示:

光学动捕中的软件技术分析  第2张

理论上,2个相机即可完成3D重建,但由于实际捕捉中遮挡的影响,个别视角无法捕获某些marker点,为精度考虑,常常以8-16个相机,形成捕捉阵列。

如何从相机的数据变成一个人的骨骼数据,这里面经过了几步:

1、相机标定

主要目标是确定相机参数,计算相机位置和角度,建立三维空间坐标;常用4点标定法,如Vicon的T型标定,NOKOV的L型标定。

光学动捕中的软件技术分析  第3张

2、对点云和光学Mark点事先进行分类和标签

一开始演员进行T-Pose的过程,这个过程,相机会跟踪识别到演员身上每个光学标记点并对其进行命名。同时也会得到基于演员身高体型的一个骨架结构。

光学动捕中的软件技术分析  第4张

3、2D点跟踪

即流程中2D Marker Identifiction的过程。对于动捕,连续动作的捕捉是关键,那么关键光学点的跟踪问题就是它的重点核心。

光学动捕中的软件技术分析  第5张

由于遮挡、缺失、标记点靠近干扰等因素使得2D点的跟踪变得复杂;当前一些论文中,多采用4帧跟踪原理,即对于当前帧点轨迹,需要根据前1帧和后2帧来综合判断。原理如下图所示:

光学动捕中的软件技术分析  第6张

也有一些新技术,包括Ubisoft做了通过深度学习的方式去纠正点的方法,前提是他们有大量的错误的数据和手工纠正后的骨骼数据作为训练数据。我们可能还需要用传统的算法来纠正,纠正后的可作为AI学习的训练数据。当然手工修复并作为训练数据也是可以的。

4、运动过程中从多相机2D点得到3D点信息

即流程图中3D Marker Reconstruction部分。这部分的核心是:每个相机中输出的数据是识别到的2D光学点信息,已知每个相机在3D空间中的位置和旋转信息,根据3D几何学的运算,则可求得对应2D点在3D空间中的位置信息,当然这个里面还是有很多优化的算法,也就是校正数据的部分。

5、基于3D点的人体姿态解算Skeletal Motion

从四肢节点开始计算骨骼的旋转信息,这里面会用到一些人体骨骼的约束条件。比如最大的是因为人体是不会伸缩变化的,骨骼只有旋转信息,一般用欧拉角来表示。从四肢的骨点进行IK计算,得到整个骨架每根骨骼的旋转信息,以及骨架根节点移动信息。除了IK,还有一个重要的约束是每个关节的运动自由度是不一样的,比如手肘只有一个方向的旋转自由度,而手臂有三个方向的旋转自由度,但又不会穿插到人体内部去这样一些约束。

光学动捕中的软件技术分析  第7张

Ubisoft La Forge工作室的这篇论文《Robust solving of optical motion capture data by denoising》使用了deep denoising feed-forward neural network深度降噪前馈神经网络。首先会做数据清理Cleanup Data,找到丢失的点,误识别的点。再进入到第二个阶段Solving,上面也说传统做法就是用IK去生成每个Joint的旋转信息,但La Forge工作室使用了CMU的动捕数据库,通过光学标识点去预测了多种可能的标点的位置,生成一些错误的点,将这些故意生成错误的点作为输入,用神经网络模型来训练一个稳定输出的关节节点的动画。就是通过光学Mark点模型生成骨骼动画数据。

同时如果在生成数据的软件中检测到连续的抖动,也需要进行去抖处理,而本身数据是实时处理和发送的,所以要根据一些预测和约束进行纠正。《Robust Marker Trajectory Repair for MOCAP using Kinematic》中就是对一个robust solver和ik solver生成的pose进行比较,得到纠正后smooth的pose。


参考资料:

多相机标定:http://cmp.felk.cvut.cz/~svoboda/SelfCal/

2D点跟踪预测:参考论文:《Using Skeleton-Based Tracking toIncrease the Reliability of OpticalMotion Capture》

https://www.gameanim.com/2018/06/04/robust-solving-of-optical-motion-capture-data-by-denoising/

https://www.youtube.com/watch?v=6pPJJLgfpu0&t=6s

The End