Créez une application Web qui reconnaît les poses de yoga à l'aide d'un modèle de Model Asset eXchange hébergé sur Machine Learning eXchange

Nœud source: 1573049

Résumé

Ce modèle de code IBM Developer explique comment détecter les poses humaines dans une image donnée à l'aide du modèle Human Pose Estimator du Model Asset eXchange hébergé sur le Échange d'apprentissage automatique. À l'aide de coordonnées, les lignes de pose créées par le modèle sont assemblées en poses complètes du corps pour chacun des humains détectés dans l'image.

Description

La Estimateur de pose humaine modèle détecte les humains et leurs poses dans une image donnée. Le modèle détecte d'abord l'humain dans l'image d'entrée, puis identifie les parties du corps, y compris le nez, le cou, les yeux, les épaules, les coudes, les poignets, les hanches, les genoux et les chevilles. Ensuite, chaque paire de parties du corps associées est connectée par une «ligne de pose», comme illustré dans l'image suivante. Une ligne pourrait relier l'œil gauche au nez, tandis qu'une autre pourrait relier le nez au cou.

Exemple de ligne de pose

Chaque ligne de pose est représentée par une liste [x1, y1, x2, y2], où la première paire de coordonnées (x1, y1) est le début
point de la ligne pour une partie du corps, tandis que la deuxième paire de coordonnées (x2, y2) est le point de fin de la ligne pour le
autre partie du corps associée. Les lignes de pose sont assemblées en poses corporelles complètes pour chacun des humains détectés dans le
l'image.

Le modèle est basé sur la mise en œuvre TF du Modèle OpenPose. Le code de ce référentiel déploie le modèle en tant que service Web dans un conteneur Docker.

Yogait, un assistant de yoga qui utilise le modèle MAX de Human Pose Estimator pour deviner quelle pose de yoga est effectuée par un utilisateur, utilise un SVM pré-formé pour classer les poses. Au lieu d'utiliser les lignes cartésiennes renvoyées par le modèle MAX, Yogait utilise une représentation polaire pour effectuer la classification. Cela a été fait pour faciliter la classification des poses. Au lieu de former le SVM sur un système de coordonnées xy, ce qui nécessiterait une translation et une rotation lors de l'augmentation des données, la représentation polaire ne dépend que de l'emplacement des articulations par rapport au centre du modèle estimé.

Les coordonnées [x, y] sont converties en [phi, rho] pour chaque joint.

Conversion de poses

Le SVM effectue une classification sur une version aplatie des vecteurs polaires. Comparée à une représentation cartésienne, cette représentation polaire utilise peu de données et peut effectuer une classification sur un humain dans n'importe quelle partie d'une image capturée. Si la représentation cartésienne devait être utilisée, vous devrez alors effectuer toutes les poses au centre du cadre de la caméra.

Une fois le modèle de code terminé, vous comprendrez comment:

  • Construire une image Docker du modèle MAX d'estimateur de pose humaine
  • Déployer un modèle d'apprentissage en profondeur avec un point de terminaison REST
  • Générer une estimation de pose pour une personne dans une image vidéo à l'aide de l'API REST du modèle MAX
  • Exécutez une application Web qui utilise l'API REST du modèle

Flow

Architecture de flux Yogait

  1. Le serveur envoie la vidéo capturée image par image de la webcam à l'API du modèle.
  2. L'interface utilisateur Web demande au serveur les lignes de pose estimées pour la trame.
  3. Le serveur reçoit des données de l'API du modèle et met à jour le résultat dans l'interface utilisateur Web.

Instructions

Trouvez les étapes détaillées de ce modèle dans le README. Ces étapes vous montrent comment:

  1. Configurez le modèle MAX.
  2. Démarrez l'application Web.
  3. Exécutez localement avec un script Python.
  4. Utilisez un bloc-notes Jupyter.

Source : https://developer.ibm.com/patterns/build-a-web-application-that-recognizes-yoga-poses-using-a-model-from-the-model-asset-exchange/

Horodatage:

Plus de Développeur IBM