python 手势检测和追踪_用kinect和python进行手势识别:嗯学习

我想用kinect在python中做手势识别.

在阅读了一些理论之后,我认为最好的方法之一是使用隐马尔可夫模型(HMM)(baum welch或某些EM方法)和一些已知的手势数据进行无监督学习,以实现一组训练有素的HMM(每个手势一个)我想知道).

然后,我将使用训练集中的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具有最大loglik:

# recognition

observed = load_data('new_data.mat')

logliks = [m.viterbi(observed) for m in gestures]

print 'observed data is ', gestures[logliks.index(max(logliks))]

我的问题是:

>这件事真的很蠢吗?

>真实案例的培训数量是多少?

>每个HMM有多少个州?

>是否可以实时进行?

解决方法:

首先:这是一个非常特殊的问题,你需要一个机器学习专家.不幸的是,堆栈交换站点中没有ML等价物……也许有一天会有一个.

标签:python,machine-learning,hidden-markov-models

来源: https://codeday.me/bug/20190630/1335999.html

你可能感兴趣的:(python,手势检测和追踪)