代码之家  ›  专栏  ›  技术社区  ›  Nickon

根据数据构建HMM

  •  1
  • Nickon  · 技术社区  · 11 年前

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

    现在我想我需要创建一个 HMM 并使用一些 Forward-Backward 用于学习的算法。然后是一些 Bayes 分类方法和饰面。

    我的问题:

    1. 我的步伐错了吗?
    2. 如何创建HMM?有人能用程序描述一下它应该是什么样子吗?
    3. 如何进行测试的实时手势匹配?
    1 回复  |  直到 11 年前
        1
  •  2
  •   Cesar    11 年前

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

    1. 你的步伐看起来不错。例如,它们与 Lee and Kim (减去阈值模型部分)。

    2. 也许你可以跟随 this guide on HMMs in C# 。这是我写的,有一些关于如何进行手势识别的例子。然而,该指南创建了连续密度HMM,而不是离散HMM。你的矢量量化会使你的特征离散,所以我想你会对使用离散密度HMM更感兴趣。要使其适用于离散模型,唯一需要做的更改就是删除模型创建/学习中的通用参数。

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

    我用同样的技术做过一个类似的项目,我可以说HMM可以胜任这项任务。