【发布时间】:2012-02-14 13:10:25
【问题描述】:
我们正在记录身体各个部位的位置。我们的硬件 (Microsoft Kinect) 提供多达 20 个人体关节的位置。它以大约 30 fps 的速度提供数据。位置还包括该特定关节的 X、Y 和 Z 坐标。一个特定的手势大约需要 3-4 秒,所以没有。帧数从 80 到 120 不等。我们的问题是存储和检索这些数据并对其进行处理。我们的术语如下:
Frame:考虑中的所有关节的快照 示例:特定手势的所有帧的集合
问题是我们正在试验,我们不知道项目中要使用多少关节的数据。所以它不是固定的。
现在考虑一个特殊的问题,比如存储数据。 SQL 查询是使用以下方法生成的。 http://pastebin.com/ga114cQm
如您所见,问题在于有很多代码重复。在另一个我们必须预处理数据的问题中,同样的事情也会发生。即使只预处理了 6 个关节,该方法的长度也太大了。 看看这里:http://pastebin.com/JVKWNDmZ
虽然它有效,但我不喜欢它。另外,如果我们使用像填充对象这样的封装而不是直接使用数组,会对性能造成多大影响?因为这是一个实时手势识别系统,我们不能承受太多的延迟。
如果问题不是很清楚,请告诉我你不明白的部分。由于我不想问一个很大的问题,所以我试图总结整个问题。
【问题讨论】:
-
您应该使用到达的数据,而不是存储它,没有时间这样做。如果您必须识别手势,只需丢弃不属于手势本身的所有内容。
-
@vulkanino 是的,为了获得认可,我们正在这样做。但我们需要存储该日期以用于培训目的。
标签: oop design-patterns kinect software-design