Apprentissage de l’estimation de la pose en utilisant de nouvelles techniques de vision par ordinateur.
Learning pose estimation using new computer vision techniques.
Introduction
La détection et le suivi des positions des articulations ou des points clés importants dans une image ou une séquence vidéo sont les tâches de la détection de posture, communément appelée estimation de pose ou détection de point clé. Elle cherche à comprendre et à représenter la position et l’arrangement spatial des personnes ou d’autres choses dans une scène. La détection de pose joue un rôle crucial et trouve des applications dans divers secteurs, notamment la robotique et l’automatisation, les jeux, la sécurité et la surveillance, ainsi que la surveillance des sports et de la condition physique. Elle permet une large gamme d’applications impliquant l’interaction homme-machine, l’analyse, l’animation, les soins de santé, la sécurité et la robotique en offrant des informations précieuses sur le mouvement humain et les relations spatiales. Dans cet article, nous allons étudier quelques algorithmes de détection de pose passionnants en utilisant de nouvelles techniques de vision par ordinateur. Comprendre comment, en tant que débutant, nous pouvons les utiliser dans un environnement réel. Ces algorithmes sont :
- OpenPose
- PoseNet
- MoveNet
Nous examinerons également deux nouveaux algorithmes récemment contribués par Google qui utilisent l’architecture MobileNet V2. Ces deux algorithmes sont : MoveNet Lightning et MoveNet Thunder.
Objectifs d’apprentissage
- Compréhension des bases : Apprenez tout ce qu’il y a à savoir sur l’idée de l’estimation de posture et pourquoi elle est si cruciale pour la vision par ordinateur.
- Compréhension de la détection des points clés : Familiarisez-vous avec les méthodes de détection de points clés, qui consistent à localiser des parties du corps particulières ou des points clés dans une image ou une vidéo.
- Association et suivi des points clés : Apprenez à suivre les points clés dans le temps et à les associer d’une image à l’autre pour estimer la pose continue d’une personne en utilisant l’association et le suivi des points clés. Apprenez les difficultés et les méthodes utilisées dans ce processus.
- Prétraitement des données : Développez vos compétences de modélisation en formant des modèles d’estimation de pose à l’aide d’ensembles de données annotés. Identifiez les étapes impliquées dans la collecte et l’étiquetage des données d’entraînement, le choix de fonctions de perte appropriées et l’amélioration des performances du modèle.
- Applications et intégration : Apprenez les différentes façons dont l’estimation de pose en vision par ordinateur est utilisée dans des domaines tels que la réalité augmentée, la reconnaissance de gestes, l’interaction homme-machine et la reconnaissance des actions humaines.
Cet article a été publié dans le cadre du Data Science Blogathon.
Architectures du modèle
1. OpenPose
Le modèle de détection de pose OpenPose a une architecture complexe avec plusieurs étapes et parties. Pour trouver et estimer les points clés de plusieurs personnes dans une image ou une vidéo, un pipeline multi-étapes est utilisé. Le modèle examine d’abord l’image d’entrée et tente de comprendre ses caractéristiques. Le modèle cartographie ces caractéristiques pour représenter différents aspects de l’image, notamment les formes, les couleurs et les textures. Dans l’étape suivante, le modèle se concentre ensuite sur la compréhension des connexions entre différentes parties du corps.
- Rencontrez AdANNS un nouveau cadre qui utilise des représentations adaptatives pour différentes phases des pipelines ANNS pour améliorer l’équilibre précision-calcul.
- Gérer facilement les modèles d’apprentissage en profondeur avec des configurations TOML
- Eh GPU, qu’est-ce qui se passe avec ma matrice ?
Il produit un autre ensemble de cartes qui illustrent les liens potentiels entre différentes parties du corps, tels que le lien entre le poignet et le coude ou l’épaule et la hanche. Pour déterminer la véritable pose de chaque personne, le modèle utilise un algorithme pour décoder les cartes de liaison. Il analyse les cartes pour établir les relations entre les composants du corps et construit un modèle squelettique complet de chaque pose.
Ces étapes permettent au modèle OpenPose de détecter et de suivre les poses de plusieurs personnes en temps réel avec précision et efficacité.
2. PoseNet
Le réseau de neurones convolutifs (CNN) sert de base à la conception du modèle de détection de pose PoseNet. Pour extraire des informations utiles, il prend une image d’entrée et la fait passer à travers plusieurs couches de traitement convolutif. Ces couches convolutives aident à capturer les différents motifs et structures de l’image. La méthode d’estimation de pose d’une seule personne utilisée par PoseNet se concentre sur l’estimation des points clés de pose d’une seule personne. Les coordonnées 2D des points clés du corps peuvent être directement régularisées en utilisant l’architecture CNN. Cela signifie que le modèle développe la capacité de prévoir les coordonnées X et Y des articulations corporelles telles que les poignets, les coudes, les genoux et les chevilles tout au long de l’entraînement.
L’estimation de pose est rapide et facile grâce à la simplicité de l’architecture PoseNet, ce qui en fait un outil idéal pour les applications ayant des ressources de traitement limitées, telles que les navigateurs Web ou les smartphones. Il offre une approche rapide et simple pour déterminer la posture d’une personne dans une image ou une vidéo.
3. MoveNet
L’architecture du modèle de détection de pose MoveNet est également construite à l’aide d’un réseau de neurones convolutifs profonds (CNN). Il utilise une conception adaptée aux mobiles qui est optimisée pour fonctionner sur des systèmes embarqués et d’autres appareils ayant des ressources limitées. MoveNet utilise une approche d’estimation de pose à une personne dans le but d’estimer les points clés de la pose d’une personne. Il commence par un réseau de base simple, puis passe aux étapes d’association de points clés et de détection de points clés. Le réseau de base traite l’image d’entrée en isolant les caractéristiques significatives. L’étape d’association des points clés affine davantage les points clés en tenant compte de leurs dépendances et de leurs relations géographiques. L’étape de détection des points clés prédit les notes de confiance et les positions exactes des points clés du corps.
La conception de MoveNet équilibre l’efficacité et la précision, la rendant appropriée pour l’estimation de pose en temps réel sur des appareils ayant une puissance de calcul limitée. Dans de nombreuses applications, telles que le suivi de la condition physique, la réalité augmentée et l’interaction basée sur les gestes, elle offre une méthode pratique pour identifier et suivre les positions humaines.
Lightning et Thunder dans la détection de pose
En tant que versions spécialisées de la famille de modèles MoveNet, Google a créé les modèles de détection de pose Lightning et Thunder. En 2021, l’équipe Lightning a dévoilé une version améliorée de Lightning spécialement conçue pour une estimation de pose ultra-rapide. Elle est parfaite pour les applications présentant des limitations de latence strictes car elle utilise des techniques de compression de modèle et des mises à niveau architecturales pour réduire les besoins de calcul et atteindre des temps d’inférence ultra-rapides. La sortie de Thunder en 2022, quant à elle, se concentre sur l’estimation de pose multi-personnes. Elle augmente la capacité de MoveNet à identifier et suivre précisément les positions de plusieurs personnes simultanément dans des situations en direct.
Les modèles Lightning et Thunder se distinguent des méthodes concurrentes en fournissant une estimation précise de la posture qui est efficace et adaptée à certains cas d’utilisation : Lightning pour une inférence ultra-rapide et une prise en charge universelle des appareils, et Thunder pour une précision et des performances améliorées. Ces modèles démontrent l’engagement de Google à développer une technologie de détection de pose répondant à une gamme de besoins d’application.
Mise en œuvre de la détection de pose
Nous devons suivre quelques procédures pour utiliser le modèle MoveNet Lightning pour la détection de pose sur une image. Tout d’abord, assurez-vous d’avoir installé les bibliothèques logicielles et les dépendances nécessaires. Deux frameworks d’apprentissage en profondeur largement utilisés, TensorFlow et PyTorch, sont des exemples de telles bibliothèques. Ensuite, chargez les poids du modèle MoveNet Lightning, généralement disponibles sous forme pré-entraînée. Une fois le modèle chargé, pré-traitez l’image d’entrée en la mettant à l’échelle à la taille d’entrée appropriée et en appliquant toute normalisation nécessaire. Alimentez le modèle avec l’image prétraitée, puis utilisez une inférence directe pour obtenir les résultats. Les points clés prédits pour différentes zones corporelles, généralement représentés sous forme de coordonnées (x, y), constitueront la sortie.
Enfin, effectuez tout post-traitement nécessaire sur les points clés, comme la liaison des points clés pour créer des représentations de squelette ou l’application de critères de confiance. Cette phase de post-traitement améliore les résultats de l’estimation de pose. En utilisant le modèle MoveNet Lightning pour la détection de posture sur une image, vous pouvez estimer et analyser les poses des personnes à l’intérieur de l’image en suivant ces étapes.
Explication pour la détection
Une explication détaillée de la détection d’une pose sur une image d’entrée est donnée ici.
Commençons par construire un modèle MoveNet Lightning pour implémenter une détection de pose en temps réel sur des données vidéo.
Tout d’abord, importons les bibliothèques nécessaires.
import tensorflow as tf
import numpy as np
from matplotlib import pyplot as plt
import cv2
Ensuite, l’étape la plus importante, le chargement de notre modèle MoveNet Lightning de pose unique. La pose unique décrit ici que le modèle va détecter la pose d’un seul individu, tandis que sa autre version appelée multi-pose détecte les poses de plusieurs personnes dans une image.
interpreter = tf.lite.Interpreter(model_path='lite-model_movenet_singlepose_lightning_3.tflite')
interpreter.allocate_tensors()
Points clés pour le modèle
Vous pouvez télécharger ce modèle à partir de TensorFlow hub. Maintenant, nous allons définir les points clés pour le modèle. Les points clés sont des zones ou des repères uniques sur le corps humain qui sont identifiés et surveillés dans le contexte des modèles de détection de pose comme MoveNet. Ces points clés représentent des articulations et des parties du corps importantes, permettant une compréhension approfondie de la posture corporelle. Les poignets, les coudes, les épaules, les hanches, les genoux et les chevilles sont des points clés couramment utilisés, ainsi que la tête, les yeux, le nez et les oreilles.
EDGES = {
(0, 1): 'm',
(0, 2): 'c',
(1, 3): 'm',
(2, 4): 'c',
(0, 5): 'm',
(0, 6): 'c',
(5, 7): 'm',
(7, 9): 'm',
(6, 8): 'c',
(8, 10): 'c',
(5, 6): 'y',
(5, 11): 'm',
(6, 12): 'c',
(11, 12): 'y',
(11, 13): 'm',
(13, 15): 'm',
(12, 14): 'c',
(14, 16): 'c'
}
#Fonction pour dessiner des points clés
def draw_keypoints(frame, keypoints, confidence_threshold):
y, x, c = frame.shape
shaped = np.squeeze(np.multiply(keypoints, [y,x,1]))
for kp in shaped:
ky, kx, kp_conf = kp
if kp_conf > confidence_threshold:
cv2.circle(frame, (int(kx), int(ky)), 4, (0,255,0), -1)
Le dictionnaire des points clés pour les points clés définis ci-dessus est le suivant :
nez:0, œil gauche:1, œil droit:2, oreille gauche:3, oreille droite:4, épaule gauche:5, épaule droite:6, coude gauche:7, coude droit:8, poignet gauche:9, poignet droit:10, hanche gauche:11, hanche droite:12, genou gauche:13, genou droit:14, cheville gauche:15, cheville droite:16
Maintenant, après avoir dessiné les connexions, voyons comment capturer la vidéo à travers la bibliothèque OpenCV.
cap = cv2.VideoCapture(0)
while cap.isOpened():
ret, frame = cap.read()
cv2.imshow(frame)
cv2.VideoCapture est une fonction importante d’OpenCV pour la lecture de vidéos d’entrée. Dans ce cas, 0 indique que vous capturez la vidéo à partir de la caméra principale de l’ordinateur portable, tandis que 1 est utilisé pour les personnes utilisant des webcams externes. Pour utiliser une vidéo d’entrée personnalisée, il suffit d’encadrer le chemin de l’image entre guillemets.
Lorsqu’on estime la pose par vision par ordinateur, le padding et le traitement et le redimensionnement des images sont très importants. Cela offre des fonctionnalités telles que :
- Les images ou les cadres vidéo d’entrée sont uniformisés pour répondre à la taille anticipée du modèle en redimensionnant le cadre.
- Utilisez le padding pour résoudre la situation où les dimensions d’image d’origine sont plus petites que la taille d’entrée requise du modèle. L’ajout de padding agrandit le cadre pour accueillir la taille d’entrée requise, assurant un traitement uniforme indépendamment de la taille d’entrée.
Référez-vous au code détaillé ici .
Conclusion
Alors, que nous avons appris de cet article ? Étudions quelques points clés importants de cet article.
- Perspective de recherche : L’estimation de la pose est un sujet qui est très recherché, avec de nouveaux développements et des difficultés qui surgissent tous les jours. Vous pouvez avancer dans le domaine en explorant de nouveaux algorithmes de vision par ordinateur, en améliorant les techniques actuelles ou en abordant des problèmes spécifiques liés à l’estimation de la pose.
- Importance : L’estimation de la pose contribue de manière significative à des interactions plus naturelles et intuitives entre les personnes et les ordinateurs dans l’interaction homme-machine. Avec l’aide de cet article, vous pouvez utiliser votre expertise pour construire et créer des systèmes interactifs qui réagissent aux gestes physiques, aux postures ou aux mouvements corporels.
- Projets académiques : L’estimation de la pose est un excellent sujet pour les projets académiques, qu’ils soient réalisés de manière indépendante ou collaborative. Les défis, les ensembles de données ou les applications liés à l’estimation de la pose peuvent tous être explorés, et vous pouvez créer un projet qui témoigne de votre compréhension et de vos capacités d’application pratique.
- Large éventail d’applications : L’estimation de la pose a de nombreuses utilisations dans différents domaines, tels que le sport, la médecine, la surveillance et les industries de l’animation et du divertissement.
Une méthode puissante pour prédire avec précision les poses humaines dans les applications en temps réel est le modèle de détection de pose MoveNet, en particulier sa forme améliorée, MoveNet Lightning. Ces modèles peuvent détecter et suivre des points clés qui représentent avec précision différents parties du corps en utilisant des réseaux de neurones convolutionnels profonds. Ils sont idéaux pour le déploiement sur des appareils avec des ressources limitées, tels que les téléphones mobiles et les systèmes embarqués, en raison de leur simplicité et de leur efficacité. Les modèles MoveNet fournissent une solution flexible pour une variété d’applications, notamment le suivi de la condition physique, la réalité augmentée, l’interaction basée sur les gestes et l’analyse de foule. Ils peuvent gérer à la fois l’estimation de pose pour une seule personne et pour plusieurs personnes. Ils ont apporté des contributions significatives au domaine de l’identification de la posture qui démontrent le développement de la technologie de vision par ordinateur et sa promesse d’améliorer l’interaction homme-machine et la compréhension des mouvements.
Questions Fréquemment Posées
Les médias présentés dans cet article n’appartiennent pas à Analytics Vidhya et sont utilisés à la discrétion de l’auteur.
We will continue to update IPGirl; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Si l’art est la façon dont nous exprimons notre humanité, où se situe l’IA ?
- Analyse de performance et optimisation de modèle PyTorch
- Maîtriser la gestion de configuration en apprentissage automatique avec Hydra.
- AI Telephone – Une Bataille de Modèles Multimodaux
- Des pipelines CI/CD transparents avec GitHub Actions sur GCP vos outils pour un MLOps efficace.
- Détection de la croissance du cancer à l’aide de l’IA et de la vision par ordinateur
- Problème du Gradient Disparu Causes, Conséquences et Solutions