7
votes

Détection de squelette du haut du corps

Pour un projet éducatif, nous travaillons actuellement sur un système de détection de mouvement de base et de geste. Notre objectif principal est de détecter un corps humain sur un flux de caméra. En utilisant ces informations, nous voulons détecter un squelette de base du corps pour une détection supplémentaire des gestes que la personne fait.

Nous utilisons Emgucv / OpenCV pour traiter notre flux. J'ai trouvé cette vidéo sur youtube: http://www.youtube.com/watch?v=fyztmkfwh5g . Il est capable de détecter le haut du corps et de placer un squelette de base, mais comment? Il ne mentionne pas d'algorithmes utilisés.

Nous avons déjà essayé de détecter le contour du corps à l'aide d'une soustraction de fond (arrière-placéeborformog2), mais les conditions de bruit et de foudre de la caméra nous ont fait échouer.

Quelqu'un a-t-il une idée de détecter le corps exactement comme indiqué dans la vidéo?


2 commentaires

Si votre projet est intérieur et que les gens se tiennent dans une courte portée de la caméra, essayez d'utiliser Kinect. Son SDK a un code d'exemple identique que ce que vous voulez.


Il suffit de commencer avec la détection de la tête puis une détection d'épaule serait facile, car ce sera la ligne supérieure du torse approximatif de la pourvotte. Je pense que les détections de bras et de bras supérieur sont toujours une approximation rectangulaire. Mais afin de distinguer les deux détections, ils ont également utilisé la détection des couleurs. Je pense que c'est pourquoi il a montré sa peau dans les bras inférieurs.


4 Réponses :


1
votes

Je pense que vous devriez implémenter les étapes suivantes:

  1. détecter la face.
  2. détecte les mains.
  3. Estimation échelle d'image corporelle.
  4. Placez le modèle cinématique supérieur du corps (squelette), en utilisant la position de la tête informations et définir sa taille de la taille de la tête de l'usure.
  5. Match Models Head et Mains avec détectés avant les positions de l'homme tête et mains.
  6. Mettre à jour la cinématique inverse du modèle pour obtenir une estimation de la pose humaine.
  7. Je suppose que cela devrait être très bon d'utiliser certains statistiques Filtre, comme filtre de particules ou filtre Kalman.
  8. aller à l'étape 1.

    Pour le modèle cinématique, vous pouvez utiliser une certaine endine de physique 2D ( box2d par exemple).


0 commentaires

0
votes

Ce sera bon comme point de départ, mise en œuvre de l'algorithme de détection de cyberbody en C ++. ( http://www.robots.ox.ac.uk/~vgg / Software / Uppery Drodody / )


0 commentaires

0
votes

J'aime ce maigre " Solution JS-OPENDECT ", référée dans le fil JS-ObjectDetect avec LBP Cascades

Si vous voulez un essai avec Matlab-Model et VS, voici un échantillon historique http://groups.inf.ed.ac.uk/calvin/artititiculé_human_pose_estimation_code/ < / a>


0 commentaires

0
votes

Modèles plus complexes, avec NuralNetworks comme Caffe .. Vous pourriez être trouvé via Websope -> "Estimation de la pose humaine", par exemple https://github.com/zhec/realtime_multi-person_pose_estimation On dirait que Nouveaux OS n'est pas facile à installer (compilateur plus ancien ...?) Et une ressource peu affamée (sur mon ancien 1 gb-hw, cela ne fonctionnera pas maintenant).

Et enfin, il pourrait être intéressant, comment le Deeplearnjs va augmenter ou être intergré ( Jusqu'à présent, il a besoin de chrome et les échantillons affichent la reconnaissance de l'objet, mais semblent prometteurs).


0 commentaires