比较3D化身的运动序列

时间:2016-08-04 08:29:05

标签: algorithm unity3d compare

我正在Unity中开展一个项目,我必须比较3D化身制作的练习(动作序列)(使用Kinect传感器捕捉真实用户的数据)。

我将练习存储在一个文件中,作为一系列框架,每个框架具有以下格式:

<frame_number>
<body_root_position>
<joint_1_quaternion>
...
<joint_J_quaternion>

,其中

<body_root_position>: (x, y, z)
<joint_i_quaternion>: (x, y, z, w)
J: number of joints

现在,假设我有两个文件:用户执行的引用和练习,两者都具有上面指定的格式。假设ref文件有N帧,用户的文件有M帧,N不一定是equak(用户可能开始慢,完成得更快,省略一些动作等)。

根据特定格式,比较这两个文件的最有效方法是什么?

在代码中,文件存储为N帧数组,其中frames[i]是一个四元数组,用于定义用户在第i帧的移动; frame[i]具有J个元素,因此frame[i][j]是四元数,用于定义第i帧处关节j的旋转。

我考虑使用动态时间扭曲算法,但我认为我的特定输入可能与算法期望/操作的内容不兼容。而且,比较方法在某种意义上必须是动态,也就是说,必须是经线时间。

一个也可能是好的想法是根据输入上应用的一些数学生成给定序列的索引,从而将此索引与参考进行比较。

0 个答案:

没有答案