背景
我正在使用 XNA C# + Kinect 制作一个物理教学平台。用户可以使用对象设置场景,包括:
- 领域
- 堵塞
- 飞机
显而易见的有趣事情是使用不同的手势来表示一个对象。飞机似乎是最简单的,所以我打算从那里开始。
输入对象的流程是这样的:
- 选择对象(通过手势识别)
- 缩放对象
- 旋转对象
- 放置对象
我的想法
这是我的想法。我们跟踪上半身的 6 个关节:
- 左+右手腕
- 左 + 右肘
- 左+右肩
如果这组点是共线的,即双臂保持水平,我们会说这是一个平面的输入手势。
如果要使用我的想法,则需要确定这些点的共线程度,例如,某种算法将一组点的“共线性”作为区间 [0, 1] 中的浮点数返回。然后我可以说,例如,任何大于 0.9 的东西都将被接受为平面,从而允许一些错误空间。
或者
或者,“基于模板的姿势检测”的想法听起来很棒,如下链接所示:
但据我了解,这似乎是任何手势的通用学习算法。我倾向于自己写一些东西来尝试 Kinect。
问题
那么......有没有人知道任何现有的算法来确定一组点的“共线性”程度?