Je veux faire de la reconnaissance gestuelle en python avec kinect. Après avoir lu une théorie, je pense que l'une des meilleures méthodes est l'apprentissage non supervisé avec HMM (Baum Welch Model) ou quelques méthodes EM pour obtenir un ensemble de HMM (un pour chaque geste que je veux reconnaître).reconnaissance de geste avec kinect avec python: hmm apprentissage
Je ferais alors la reconnaissance correspondant au log de vraisemblance maximum (avec viterbi?) Des données observées avec le HMM dans l'ensemble formé. Par exemple, j'ai des données (coordonnées x, y, z de la main droite) enregistrées avec l'appareil kinect de quelques gestes (dire bonjour, donner un coup de poing, faire un cercle avec la main) et je fais de la formation :
# 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)
puis-je effectuer la reconnaissance des valeurs observées de nouvelles données effectuant le maximum loglik et choisissez le geste sauvé avant qui a le maximum loglik pour chaque HMM formé:
# recognition
observed = load_data('new_data.mat')
logliks = [m.viterbi(observed) for m in gestures]
print 'observed data is ', gestures[logliks.index(max(logliks))]
Mes questions sont les suivantes:
- Est-ce quelque chose de totalement stupide?
- Combien d'ensembles de formation pour un cas réel?
- Combien d'états pour chaque HMM?
- Est-il possible de le faire en temps réel?
merci mais je n'ai pas accès aux papiers IEEE (springerlink ou similaires). – nkint