从数据构建HMM

时间:2013-04-08 09:05:05

标签: algorithm uigesturerecognizer kinect gesture hidden-markov-models

我对Hidden Markov Models有疑问。我在C# Kinect上编写了一个用于手势识别的应用程序(简单的手势,如滑动,波浪,圆圈等)。我写了一个用于手势录制的系统,之后我创建了一个特征提取器来计算点之间的速度,我也计算方向(点对之间的角度) - 我认为这是一个简单的矢量量化方法,因为我用码字创建了一个码本1-18。码字是每20度的角度间隔(例如,角度12dg是码字-1,45dg =码字-3等)。

现在我想我需要创建一个HMM并使用一些Forward-Backward算法进行学习。然后是一些Bayes分类方法并完成。

我的问题:

  1. 我的步骤错了吗?
  2. 如何创建HMM?任何人都可以描述它应该以编程方式呈现吗?
  3. 如何为测试执行LIVE手势匹配?

1 个答案:

答案 0 :(得分:2)

免责声明:我是我要列出的一些教程/软件的作者。

  1. 你的步骤似乎很好。例如,它们与Lee and Kim使用的方法非常相似(减去阈值模型部分)。

  2. 也许您可以关注this guide on HMMs in C#。它是由我编写的,并且有一些关于如何执行手势识别的示例。但是,该指南创建了连续密度HMM而不是离散HMM。你的矢量量化使你的特征离散,所以我猜你会对使用离散密度HMM更感兴趣。要使其与离散模型一起使用,您必须做的唯一更改是删除模型创建/学习中的泛型参数。

  3. 要执行实时手势,您可以使用某种特定标记来指示手势的开始和结束,也可以使用类似于Lee和Kim的阈值模型的技术。上述指南中描述的框架支持这些框架。

  4. 我使用相同的技术开展了类似的项目,我可以说HMM的工作正常。