Skip to content

1) Openpose

NthnMgns edited this page Jul 1, 2020 · 2 revisions

Qu'est ce que c'est ?

OpenPose est un système de détection des points clés du corps humain basé sur un algorithme de deep learning. Vous trouverez le lien vers le Github de l'application ici.

Détails techniques :

OpenPose est capable de détecter les keypoints du visage, des mains et du corps. Par défaut seul le corps est détecté, il faut entrer certains paramètres pour que ce dernier détecte les autres régions qui nous intéressent. Pour optimiser le model, il existe de nombreux paramètres qui sont documentés ici.

OpenPose retourne un squelette humain formé de keypoints. Le graph formé est défini par l'indexation des keypoints. En effet chaque keypoint possède un index qui correspond à une zone du corps humain spécifique. Les mains sont formées de 21 keypoints numérotés de 0 à 20, le corps de 25 keypoints et le visage de 70 points. On peut voir si dessous comment chaque point est associé à sa zone géographique.

Chaque keypoint est caractérisé par son indexation, sa position x, y en pixel sur l'image et un score entre 0 et 1 attribué par OpenPose traduisant la qualité de la détection.

OpenPose dispose d'une API Python afin de pouvoir développer des applications en Python. On peut trouver des exemples de code ici. Ces exemples permettent de bien comprendre comment effectuer une détection, de récupérer les résultats et de paramétrer le model.

Conditions d'utilisations :

OpenPose a été testé sur plusieurs datasets comme on peut le voir sur paperwithcode. Néanmoins dans l'optique de définir des conditions d'utilisations, des tests dans diverses conditions ont été réalisé (orientation de la lumière, distance de la caméra, luminosité, etc...). Les résultats sont disponibles ici. Il y est conseillé d'être dans un endroit bien éclairé, de ne pas être en contre-jour, avec une caméra de bonne qualité (1920x1080 donne de bons résultats) et d'être situé entre 1 et 6 mètres de la caméra.

Démo

Une démo est disponible ici. L'utilisateur a juste à renseigner le chemin d'accès à l'image qu'il souhaite traiter.

JSON

Pour transformer un ensemble d'images en fichiers JSON de keypoints vous pouvez utiliser la fonction opImages_2_JSON.

Clone this wiki locally