【发布时间】:2013-05-11 19:31:58
【问题描述】:
问题
我正在尝试通过解析 BVH 文件来获取功能。 BVH 文件通过NUICapture 导出,该软件通过 Kinect 捕捉身体运动。
我知道的所有 BVH 示例文件都以 ZXY 表示法指定欧拉角,而不是 ZYX,但 NUICapture 使用 ZYX 表示法导出 BVH 文件,所以我无法解析它。
背景
在 BVH 格式中,由于为每个身体部位指定的欧拉角,轴的顺序可能会有所不同。身体部位的旋转由指定轴的矩阵乘法指定,整个身体的运动被视为层次结构中所有连续身体部位的旋转的乘积。由于矩阵乘法不可交换,ZXY 与ZYX 不同。
解决方案的尝试
我遇到的所有现有解析器都将ZXY 表示为事实上的标准,所有论文也是如此。我发现没有一个解析器能够解析 NUICapture 生成的 BVH 文件,BVHhacker 除外。但是 BVHhacker 没有可用的源代码,因此即使它似乎能够重放 NUICapture 捕获的动作,也无法访问 BVHhacker 解析器创建的内部表示。
我尝试使用开源 Python BVH 解析器(例如 BVHPlay)并尝试导入 NUICapture 的 BVH 文件,但出现文件输入错误,其他带有“正确”@ 的示例 BVH 文件不会出现这种情况987654331@ 格式。为了解决这个问题,我需要以某种方式纠正轴序列,但我不确定如何在不影响原始身体运动完整性的情况下做到这一点。对我来说,仅仅手动切换顺序以允许解析 BVH 可能是非常幼稚的。
【问题讨论】:
-
请注意,BVHacker 现在是开源的,可在 GitHub 上使用。
标签: parsing kinect motion-detection