Apprenez à identifier et à suivre des mains avec OpenCV et Python

Le suivi des mains est la procédure qui consiste à utiliser la vision du système informatique pour trouver et aussi se conformer aux mouvements de la main d’un individu en temps réel. L’une des applications les plus en vue du suivi des mains se trouve dans les casques de réalité en ligne. Ces casques vous permettent d’utiliser vos mains comme entrée au lieu des contrôleurs tactiles. Cela rend par la suite l’expérience plus immersive.

Découvrez comment suivre les mains d’une personne en utilisant Python, OpenCV pour la vision du système informatique, ainsi que MediaPipe.

Comment le cadre MediaPipe fait-il le suivi des mains ?

Google a créé le framework MediaPipe, qui dispose de nombreuses solutions d’apprentissage automatique. L’un des services est l’option de suivi des mains et des doigts appelée. MediaPipe Hands. Pour suivre les mains, MediaPipe Hands effectue deux processus : la découverte des mains et aussi la détection des sites.

Détection de la paume de la main

MediaPipe commence par déterminer où se trouvent les mains dans l’image d’entrée. Parce que l’approximation des boîtes de délimitation pour les éléments rigides est plus simple que l’identification des mains avec des doigts articulés.

Détection des points de repère des mains

Après la détection des paumes, MediaPipe effectue la découverte des points de repère des mains. Le modèle de repère de main peut anticiper 21 collaborateurs précis de l’endroit de chaque site de main.

Les chiffres représentent un identifiant unique pour chaque point de repère.

Configuration de votre environnement

Pour suivre en plus de ce travail, vous devez reconnaître avec les principes fondamentaux de Python. Montez les bibliothèques adhérentes dans votre environnement :

  • OpenCV : Vous utiliserez cette collection pour la vision par ordinateur et pour exécuter des stratégies de traitement d’image sur l’image d’entrée.
  • MediaPipe : Vous utiliserez certainement cette collection pour effectuer la détection des mains ainsi que le suivi sur l’image d’entrée.
  • imutils : Vous utiliserez certainement cette collection pour redimensionner l’image du clip vidéo de l’entrée.
Voir aussi :  Comment modifier une feuille de calcul Excel avec Python et Openpyxl

Exécutez la commande suivante sur votre terminal pour configurer les bibliothèques OpenCV, MediaPipe et imutils. Montez pip– le gestionnaire de paquets Python– si vous le souhaitez. Garantissez-vous que vous passez les collections sous forme de liste délimitée par des espaces.

Lorsque la mise à niveau est terminée, l’atmosphère vous attend pour commencer à coder.

Le code complet des ressources pour ce travail est disponible dans son dépôt GitHub.

Importation des bibliothèques requises

Vous aurez besoin d’importer les bibliothèques que vous avez mises en place pour pouvoir les utiliser. Ouvrez n’importe quel IDE Python, créez une donnée Python, et ajoutez également les imports conformes :

Assurez-vous que vous importez OpenCV en tant que cv2 ainsi que MediaPipe en minuscules. Ne pas le faire va certainement lancer une erreur.

Création des objets MediaPipe que vous utiliserez pendant le suivi.

Vous utiliserez certainement mpHands pour appeler la solution MediaPipe hands, et l’objet hands pour identifier et suivre l’entrée des mains. Vous utiliserez l’objet mpDraw pour dessiner les liens entre les sites des mains déterminées.

Vous pouvez affiner la conception des mains de MediaPipe en passant de nombreuses spécifications au producteur Hands(). Les valeurs par défaut sont bien suffisantes pour cette tâche, mais vous pouvez les explorer pour voir comment elles influencent la version :

Vous devez laisser l’option static _ image_mode comme False pour s’assurer que la conception découvre les mains dès avant de commencer à les suivre. Il ne duplique le processus de suivi que si la confiance en soi de la détection chute en dessous du critère indiqué, ce qui rend le traitement total des entrées plus rapide.

Exécution du suivi des mains

Vous avez besoin de trois fonctions pour exécuter le suivi des mains : une pour traiter l’entrée, une pour dessiner les liens de repérage des mains, et une fonction principale pour gérer le flux du programme.

Voir aussi :  Un guide de base pour manipuler le système de fichiers dans Node.js

Fonction de traitement des entrées

Cette fonction prend l’entrée, la transforme en niveaux de gris et la transmet également au modèle de mains MediaPipe pour trouver et également suivre les mains dans l’entrée.

La fonction renvoie les résultats pour savoir s’il y avait des mains identifiées sur l’entrée.

La fonction de dessin de connexions de repères de mains.

Cette fonction vérifie si la fonction de traitement de l’entrée a repéré des mains. S’il y a un type de mains trouvées, elle passe par-dessus chaque tache et dessine également un cercle, en suivant les taches en utilisant la fonction d’énumération de Python. Il dessine ensuite les liens entre les points de repère sur l’entrée initiale du clip vidéo.

La fonction commence par tourner autour de chaque point de repère :

Elle dessine ensuite les liaisons entre les mains :

Elle renvoie enfin sa sortie à la fonction appelante.

La fonction principale

Créez une fonction principale qui régulera le flux de votre programme. Elle prendra l’entrée ainsi que le redimensionnement de la structure du clip vidéo pour assurer l’uniformité du résultat. Passez l’entrée à la fonction de traitement qui va certainement ensuite repérer ainsi que suivre les mains. Transmettez les résultats retournés à la fonction de dessin des liens des points de repère des mains, qui va certainement dessiner le lien sur l’entrée initiale du clip vidéo. Elle affichera enfin le résultat à l’utilisateur.

La dernière action consiste à exécuter votre programme. Le code ci-dessous garantit que lorsque vous exécutez le programme, la fonction primaire s’exécute en premier.

Lorsque le programme s’exécute, il produit une sortie similaire à celle-ci :

Le programme suit les mains en direct.

Suivi des mains pour la réalité virtuelle immersive.

Le suivi des mains dans la vérité virtuelle rend la technologie moderne beaucoup plus séduisante. Les casques de réalité virtuelle ont commencé à présenter le suivi des mains, apportant un sentiment de réalité accrue au monde numérique. Ces casques permettent à l’utilisateur de saisir des commandes à l’aide d’une main virtuelle.

Voir aussi :  Comment créer une horloge numérique à l'aide de HTML, CSS et JavaScript

Le suivi de la main dans les casques numériques n’est qu’une application de cette innovation. Vous pouvez intégrer le suivi des mains dans n’importe quel type d’emplacement approprié de votre choix.

Abonnez-vous à notre e-newsletter

Comment détecter la main en utilisant OpenCV Python ?

hand pour détecter les mains, par défaut, si vous regardez à l’intérieur de la classe « Hands() », le nombre de mains à détecter est fixé à 2, la confiance minimale de détection est fixée à 0,5 et la confiance minimale de suivi est fixée à 0,5. Et nous allons utiliser mpDraw pour dessiner les points clés. Maintenant, écrivons une boucle while pour exécuter notre code.

Comment faire une détection de main en python ?

Nous allons utiliser les bibliothèques mediapipe et OpenCV en python pour détecter la main droite et la main gauche. Nous utiliserons le modèle Hands de mediapipe solutions pour détecter les mains, c’est un modèle de détection de paume qui opère sur l’image complète et renvoie une bounding box de main orientée.

Quelle est la différence entre OpenCV et Mediapipe ?

Mediapipe est une bibliothèque multiplateforme développée par Google qui fournit d’étonnantes solutions ML prêtes à l’emploi pour les tâches de vision par ordinateur. La bibliothèque OpenCV en python est une bibliothèque de vision par ordinateur qui est largement utilisée pour l’analyse d’image, le traitement d’image, la détection, la reconnaissance, etc.

Comment fonctionne le suivi de la main Mediapipe ?

MediaPipe Hands est une solution de suivi des mains et des doigts haute-fidélité. Elle utilise l’apprentissage automatique (ML) pour déduire 21 points de repère 3D d’une main à partir d’une seule image.

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *