Amélioration de l'estimation de pose 3D à partir d'images simples
Cette étude présente une nouvelle méthode pour estimer les poses 3D du corps à partir d'images 2D.
― 8 min lire
Table des matières
Ce travail se concentre sur comment comprendre les positions du corps humain en 3D juste à partir d'une image. On propose une nouvelle façon de faire ça en combinant deux méthodes : la cinématique inverse (FK) et les réseaux de neurones. Cette combinaison nous permet de prédire rapidement et précisément où se trouvent les parties du corps d'une personne en trois dimensions.
Dans notre méthode, le corps humain est représenté comme un réseau de joints, un peu comme un arbre généalogique, où chaque joint a des limites de mouvement. Quand on trouve des Points Clés du corps à partir d'une image 2D, on utilise des réseaux de neurones pour soulever ces infos en 3D, en prédisant comment les joints tournent et quelle est la longueur des os. Ensuite, on mélange ces prédictions avec un ensemble de règles sur comment le corps peut bouger. La méthode qu’on a développée fonctionne bien et peut estimer les positions du corps en 3D rapidement.
On a testé notre méthode et on a trouvé qu'elle est beaucoup plus précise qu'une méthode appelée MediaPipe. On a vérifié ses performances en regardant les erreurs de positions des joints et à quel point les poses avaient l'air naturelles. On a aussi montré que notre méthode fonctionne bien avec différents ensembles de données et types de langue des signes. Notre modèle tourne en 100-200 millisecondes pour chaque image sur CPU uniquement.
L'Estimation de pose 3D est un domaine de recherche important. Récemment, beaucoup de nouvelles méthodes utilisant l'apprentissage profond ont été mises en place pour identifier des points 2D des corps humains dans les images. Cependant, comme les gens bougent de plein de façons différentes et peuvent avoir des apparences très variées, ça rend ce travail assez compliqué. Passer des images 2D aux poses 3D comporte des incertitudes qui ne peuvent être résolues qu'en remarquant de petits détails visuels. Ça nécessite souvent un raisonnement intelligent ou des méthodes statistiques compliquées.
Dans notre travail, on montre qu'en entraînant notre modèle spécifiquement pour l'estimation de pose, on peut obtenir de meilleurs résultats par rapport aux méthodes générales. Notre focus est sur la langue des signes, mais même dans des cas plus larges, notre méthode straightforward peut surpasser des techniques plus complexes.
Comprendre les poses humaines est une première étape clé pour reconnaître la langue des signes, car utiliser un squelette nous permet de moins nous soucier de qui est la personne, de quels vêtements elle porte et de ce que le fond ressemble. Toutefois, la langue des signes a ses propres défis qui peuvent compliquer les méthodes d'estimation de pose classiques. Par exemple, pendant la signature, les mains bougent très vite, ce qui peut créer un flou de mouvement et conduire à des erreurs dans la détection des parties du corps.
En plus, la langue des signes implique beaucoup d'interactions entre les mains et le visage, ce qui peut embrouiller les méthodes d'estimation de pose. On a des exemples montrant comment d'autres systèmes comme OpenPose et Monocular Total Capture ont du mal avec ces interactions, menant à des poses floues ou incorrectes.
On a mis en place un système qui utilise une image pour créer une pose 3D. La première étape est de détecter des points en 2D en utilisant un outil comme HRNet ou MediaPipe. Ensuite, des réseaux séparés prédisent les angles et les longueurs des os pour le corps et les mains. Enfin, on regroupe ces informations en utilisant FK pour créer une pose 3D complète.
Il y a deux façons principales d'aborder le problème d'estimer les poses 3D à partir d'une seule image. La première méthode devine directement les points 3D basés sur les positions 2D ou les caractéristiques d'un modèle d'image. La deuxième méthode combine FK avec les informations 2D levées.
Un choix qu'on doit faire est de prédire l'orientation des joints au lieu de leur position. Certaines méthodes ont essayé d'utiliser différentes représentations pour les rotations 3D. Par exemple, utiliser des quaternions permet d'avoir de meilleurs résultats dans certaines configurations.
Différentes études précédentes ont montré des méthodes allant de l'utilisation de réseaux de neurones pour prédire les poses et les affiner en utilisant des techniques qui garantissent que les angles et les longueurs s'ajustent bien.
On a conçu notre système en utilisant un CNN pour trouver des points clés 2D, suivi de plusieurs couches qui créent des rotations de joints et des longueurs d'os. Enfin, on applique FK pour obtenir la pose 3D complète. Le réseau angulaire nous aide spécifiquement à définir les mouvements des joints.
Utiliser des angles d'Euler pour représenter les rotations a des avantages. Étant donné que le corps humain a de nombreux joints, dont certains ne peuvent se mouvoir que d'une ou deux manières, il est crucial de les représenter de manière simple. De plus, utiliser des angles d'Euler nous permet d'ajouter des limites à la façon dont les joints peuvent bouger, assurant que les prédictions soient plus réalistes.
Le réseau angulaire utilise plusieurs couches et traite les points 2D pour prédire des angles valides. Les angles de sortie sont normalisés pour tenir dans des limites spécifiques. Cela évite des rotations étranges et conserve le réalisme des poses.
Le réseau de longueur d'os est plus simple mais reste nécessaire pour assurer l'exactitude. Il prédit les longueurs d'os, en les gardant positives.
En combinant les sorties du réseau angulaire et du réseau de longueur d'os, la couche FK crée une pose 3D complète. La position et la rotation de chaque joint sont calculées en fonction du joint racine, qui est souvent au niveau des hanches, contrôlant la pose générale.
Pour entraîner le modèle, on utilise différents objectifs pour le MLP angulaire. Cela inclut la différence absolue avec les angles réels, les distances comparant notre pose 3D générée à la réelles, et les projections sur le plan de l'image.
Il y a des avantages et des inconvénients à chaque type de fonction de perte. Une méthode aide à accélérer l'entraînement mais n'enseigne pas beaucoup au modèle sur où les points devraient être en 3D. Une autre méthode se concentre sur l'exactitude dans l'espace 3D, mais ça prend plus de temps à entraîner car elle doit aussi apprendre à projeter sur l'image.
Dans nos expériences, on a utilisé deux modèles, un pour le corps et un pour les mains. Ça aide à éviter les problèmes puisque les erreurs sur le corps peuvent être beaucoup plus grandes que celles sur les mains. Les entraîner séparément permet une meilleure performance.
On a entraîné nos modèles en utilisant le dataset de langue des signes Smile, qui a été soigneusement créé à cet effet. Faire tourner notre système sur ce dataset nous a permis de voir à quel point il performe par rapport à MediaPipe et d'autres systèmes sur différentes langues des signes.
Quand on a comparé nos résultats à ceux de MediaPipe sur plusieurs jeux de données d'images, on a constaté que notre méthode produit des poses plus nettes et plus précises. MediaPipe a souvent eu du mal, surtout avec les mains, menant à des sorties plus bruyantes.
En résumé, notre recherche montre une méthode pour transformer des points 2D d'une seule image en une pose corporelle 3D valide. La combinaison de réseaux pour prédire les mouvements des joints avec un modèle cinématique nous permet d'obtenir des résultats précis. En se concentrant sur la langue des signes, on a montré que notre méthode surpassait des modèles couramment utilisés tant en évaluation visuelle qu'en précision, atteignant des résultats à la pointe de la technologie dans l'estimation de pose 3D générale aussi.
Titre: Improving 3D Pose Estimation for Sign Language
Résumé: This work addresses 3D human pose reconstruction in single images. We present a method that combines Forward Kinematics (FK) with neural networks to ensure a fast and valid prediction of 3D pose. Pose is represented as a hierarchical tree/graph with nodes corresponding to human joints that model their physical limits. Given a 2D detection of keypoints in the image, we lift the skeleton to 3D using neural networks to predict both the joint rotations and bone lengths. These predictions are then combined with skeletal constraints using an FK layer implemented as a network layer in PyTorch. The result is a fast and accurate approach to the estimation of 3D skeletal pose. Through quantitative and qualitative evaluation, we demonstrate the method is significantly more accurate than MediaPipe in terms of both per joint positional error and visual appearance. Furthermore, we demonstrate generalization over different datasets. The implementation in PyTorch runs at between 100-200 milliseconds per image (including CNN detection) using CPU only.
Auteurs: Maksym Ivashechkin, Oscar Mendez, Richard Bowden
Dernière mise à jour: 2023-08-18 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2308.09525
Source PDF: https://arxiv.org/pdf/2308.09525
Licence: https://creativecommons.org/licenses/by-nc-sa/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.