我对Hidden Markov Models
有疑问。我在C#
Kinect
上编写了一个用于手势识别的应用程序(简单的手势,如滑动,波浪,圆圈等)。我写了一个用于手势录制的系统,之后我创建了一个特征提取器来计算点之间的速度,我也计算方向(点对之间的角度) - 我认为这是一个简单的矢量量化方法,因为我用码字创建了一个码本1-18。码字是每20度的角度间隔(例如,角度12dg是码字-1,45dg =码字-3等)。
现在我想我需要创建一个HMM
并使用一些Forward-Backward
算法进行学习。然后是一些Bayes
分类方法并完成。
我的问题:
答案 0 :(得分:2)
免责声明:我是我要列出的一些教程/软件的作者。
你的步骤似乎很好。例如,它们与Lee and Kim使用的方法非常相似(减去阈值模型部分)。
也许您可以关注this guide on HMMs in C#。它是由我编写的,并且有一些关于如何执行手势识别的示例。但是,该指南创建了连续密度HMM而不是离散HMM。你的矢量量化使你的特征离散,所以我猜你会对使用离散密度HMM更感兴趣。要使其与离散模型一起使用,您必须做的唯一更改是删除模型创建/学习中的泛型参数。
要执行实时手势,您可以使用某种特定标记来指示手势的开始和结束,也可以使用类似于Lee和Kim的阈值模型的技术。上述指南中描述的框架支持这些框架。
我使用相同的技术开展了类似的项目,我可以说HMM的工作正常。