Ceci est une ancienne révision du document !
Table des matières
Détection d'un squelette dans une image
Ce sujet est très actuel, un concours a eu lieu en 2019. Nous allons essayer de trouver, construire un projet qui détecterait un squelette, envoie les datas en OSC, les visualisent dans Blender.
Des collections de données, des concours
Principes
Des datas
- List of datasets for machine-learning research @ wikipedia.org
Projets
COCO
- Common Object in Context. COCO is a large-scale object detection, segmentation, and captioning dataset.
- COCO 2019 Keypoint Detection Task Le concours de détection de squelette
MPII Human Pose
Human Pose Evaluator Dataset
Les normes COCO et MPI
COCO Output Format Nose – 0, Neck – 1, Right Shoulder – 2, Right Elbow – 3, Right Wrist – 4, Left Shoulder – 5, Left Elbow – 6, Left Wrist – 7, Right Hip – 8, Right Knee – 9, Right Ankle – 10, Left Hip – 11, Left Knee – 12, LAnkle – 13, Right Eye – 14, Left Eye – 15, Right Ear – 16, Left Ear – 17, Background – 18
MPII Output Format Head – 0, Neck – 1, Right Shoulder – 2, Right Elbow – 3, Right Wrist – 4, Left Shoulder – 5, Left Elbow – 6, Left Wrist – 7, Right Hip – 8, Right Knee – 9, Right Ankle – 10, Left Hip – 11, Left Knee – 12, Left Ankle – 13, Chest – 14, Background – 15
- Image_Pose.py @ github.com/kunjshah2511
Les points sont les articulations. Les os sont définis par des couples de points. Facile
if MODE is "COCO": nPoints = 18 POSE_PAIRS = [[1, 0], [1, 2], [1, 5], [2, 3], [3, 4], [5, 6], [6, 7], [1, 8], [8, 9], [9, 10], [1, 11], [11, 12], [12, 13], [0, 14], [0, 15], [14, 16], [15, 17]] elif MODE is "MPI": nPoints = 15 POSE_PAIRS = [[0, 1], [1, 2], [2, 3], [3, 4], [1, 5], [5, 6], [6, 7], [1, 14], [14, 8], [8, 9], [9, 10], [14, 11], [11, 12], [12, 13]]
Cubemos utilise le MODE COCO.
OpenCV
- Deep Learning based Human Pose Estimation using OpenCV @ learnopencv.com et le OpenPose @ github.com/spmallick L'article et le code python pour tester.
Il faut télécharger les Model Weights.
GoogLeNet trained network from Caffe model zoo à caffe.berkeleyvision.org
Les models sont trouvable à: https://www.kaggle.com/datasets
puis installer venv et opencv-python, tester avec le script OpenPoseImage.py: ça marche très bien mais le calcul demande 1,2 seconde sur mon PC sans GPU ! Le résultat est l'image en début d'article.
- Deep learning: How OpenCV’s blobFromImage works Explications détaillées de la théorie et de l'utilisation de OpenCV blobFromImage.
OpenPose
Voir à quoi cà sert
- openpose de CMU Perceptual Computing Lab @GitHub: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation with only one camera. Whole-body (Body, Foot, Face, and Hands) 2D Pose Estimation and Whole-body 3D Pose Reconstruction and Estimation.
- 3D Skeleton Tracking & Pose Recognition with OPT @ openptrack.org A voir pour Pose Recognition
Capture avec RealSense D455, Caffe Model et OpenCV
mettre sur github
Marche bien mais le FPS = 0.7 sur mon portable avec les 4 CPU à fond: normal les fichiers de poids font 200 Mo
Logiciels propriétaires payants
Nuitrack 60 €
- Nuitrack™ is a 3D tracking middleware developed by 3DiVi Inc. This is a solution for skeleton tracking and gesture recognition that enables capabilities of Natural User Interface (NUI) on Android, Windows, and Linux.