我想用kinect在python中进行手势识别。在
在阅读了一些理论之后,我认为最好的方法之一是用隐马尔可夫模型(HMM)(baum-welch或其他EM方法)对一些已知的手势数据进行无监督学习,得到一组经过训练的HMM(我想识别的每个手势对应一个)。在
然后我会进行匹配最大对数似然的识别(用viterbi?)在训练集中使用HMM的观测数据。在
例如,我用kinect设备记录了一些手势的数据(右手坐标x、y、z)(打招呼、踢拳、用手打圈),我还做了一些训练:# training
known_datas = [
tuple( load_data('punch.mat'), 'PUNCH' ),
tuple( load_data('say_hello.mat'), 'HELLO' ),
tuple( load_data('do_circle_with_hands.mat'), 'CIRCLE' )
]
gestures = set()
for x, name in known_datas:
m = HMM()
m.baumWelch(x)
gestures.add(m)
然后,我执行max loglik对观察到的新数据进行识别,并选择之前保存的手势,其中包含每个训练的HMM的max loglik:
^{pr2}$
我的问题是:这完全是愚蠢的吗?在
一个真正的案例需要多少套培训?在
每个HMM有多少个状态?在
有可能实时进行吗?在
本文探讨了使用Kinect和Python进行手势识别的方法。作者计划利用隐马尔可夫模型(HMM)通过无监督学习的方式训练手势数据,并采用Viterbi算法进行识别。文章还讨论了该方法是否可行、所需训练集数量、每个HMM的状态数以及是否可以实时运行等问题。

2558

被折叠的 条评论
为什么被折叠?



