đŸ‘ïžâ€đŸ—šïž Coup d’oeil sur la dĂ©tection de la posture avec Mediapipe

DĂ©tecter les points d’articulations du corps Ă  partir d’une vidĂ©o

Mlachahe Said Salimo
Wanabilini
4 min readFeb 23, 2023

--

L’estimation de la pose humaine Ă  partir d’une vidĂ©o peut avoir plusieurs intĂ©rĂȘts dans divers domaines tels que la reconnaissance de mouvements , utile dans les domaines du sport, de la danse ou encore de la rĂ©Ă©ducation physique ; la sĂ©curitĂ©, utile pour dĂ©tecter des comportements anormaux ou suspects ; ou bien la rĂ©alitĂ© augmentĂ©e, utile pour permettre aux utilisateurs de manipuler des objets virtuels en utilisant des gestes naturels.

Pose humaine en 2D [2]

Comment détecter la pose humaine sur une vidéo ?

Pour faire cela, rien de plus simple ! Pour démontrer la simplicité (et pour le fun), nous allons déterminer la pose du célÚbre chanteur Oxlade pendant son clip vidéo.

La vidĂ©o tirĂ©e du clip “Oxlade — KU LO SA | A COLORS SHOW”,

Comment ? GrĂące Ă  la bibliothĂšque Mediapipe.

Mediapipe

Rendu open source en juin 2019, la bibliothĂšque MediaPipe by Google offre des plusieurs solutions ML, notamment pour la dĂ©tection d’objets, la dĂ©tection de visages, le suivi de mains, le suivi de plusieurs mains et la segmentation de cheveux.

Exemples de solutions ML proposé par Mediapipe

Mediapipe Pose

Avec MediaPipe Pose nous pouvons dĂ©tecter la pose humaine, et plus particuliĂšrement les points d‘intĂ©rĂȘt du corps humain, Ă  partir de mĂ©dias en direct et en streaming. En effet, cette solution ML multi-plateformes et personnalisables nous permet d’extraire 33 points d’articulation du corps, avec leurs coordonnĂ©es dans un repĂšre 3D, Ă  partir d’images vidĂ©o RVB [1].

Les points d’articulations prĂ©dits par Mediapipe (coordonnĂ©es 3D) [1]

Implémentation

Pour faire de l’estimation de pose vous pouvez utiliser les programmes de base qui vont suivre pour vos test.

Le code ci-dessus provient de PoseModule.py dont les fonctionnalitĂ©s disponibles (en comptant celles que j’ai rajoutĂ©es) sont :

  • findPose : dĂ©tecte les poses dans une image et les dessine si draw=True
  • findPosition : trouve puis retourne dans une liste les positions (en pixels) des repĂšres d’intĂ©rĂȘt du corps (landmarks) et les dessine si draw=True
  • findAngle : calcule puis retourne l’angle formĂ© par trois landmarks et le dessine si draw=True
  • findCenter : calcule puis retourne le centre d’un segment de deux landmarks et le dessine si draw=True
  • findDistance : calcule puis retourne la distance euclidienne entre deux landmarks et la dessine si draw=True

AprÚs avoir importer le fichier PoseModule.py, il vous suffira de le faire fonctionner sur chaque image de la vidéo que vous souhaitez et que vous lirez grùce à la bibliothÚque OpenCV :

C’est bon tout est en place ?

Ok, donc pour dĂ©terminer la pose humaine de Oxlade, il vous suffira simplement de placer la vidĂ©o de son clip en entrĂ©e du code ci-dessus aprĂšs l’avoir tĂ©lĂ©charger en mp4 : c’est-Ă -dire d’indiquer son chemin dans la fonction cv2.VideoCapture.

Libre Ă  vous d’utiliser ou non, les diffĂ©rentes fonctions du module au besoin.

Output

La pose du chanteur Oxlade estimée grùce à Mediapipe

On remarque qu’on est quasiment Ă  15 images par seconde, ce qui est relativement lent
 De fait, il y eu une diminution de la frĂ©quence d’image par seconde, et c’est quelque chose qui arrive assez systĂ©matiquement avec la bibliothĂšque Mediapipe Pose.

La lenteur, un réel problÚme ?

En effet, 15 images par seconde peuvent ĂȘtre considĂ©rĂ©es comme un taux de rafraĂźchissement relativement faible pour la plupart des applications qui impliquent de la vidĂ©o ou de l’animation. Cela est d’autant plus vrai si l’on compare ce taux de rafraĂźchissement Ă  celui des vidĂ©os ou des animations en haute dĂ©finition, qui peuvent atteindre des taux de rafraĂźchissement de 30, 60 ou mĂȘme 120 images par seconde.

Cependant, tout dĂ©pend de l’application et du contexte dans lequel les images sont utilisĂ©es. Dans certains cas, comme la surveillance de la sĂ©curitĂ© ou l’enregistrement de vidĂ©os en temps rĂ©el pour l’analyse, 15 images par seconde peuvent ĂȘtre suffisantes. Dans d’autres cas, comme la production de vidĂ©os haute dĂ©finition pour le cinĂ©ma ou la tĂ©lĂ©vision, ce taux de rafraĂźchissement serait considĂ©rĂ© comme insuffisant.

Mlachahe SAID SALIMO.

Références :

1. MediaPipe Pose, google.github.io
2. A Comprehensive Guide on Human Pose Estimation, analyticsvidhya.com

--

--

Mlachahe Said Salimo
Wanabilini
Editor for

French Student in Computer Science for Health. J'Ă©cris mes notes ici + J'Ă©cris pour apprendre, pas parce que je sais !