Guide de détection de visages

Trois personnes dont le visage est mis en évidence par des cadres de délimitation

La tâche de détection des visages MediaPipe vous permet de détecter des visages dans une image ou une vidéo. Vous pouvez utiliser cette tâche pour localiser des visages et des caractéristiques faciales dans un cadre. Cette tâche utilise un modèle de machine learning (ML) qui fonctionne avec des images uniques ou un flux d'images continu. La tâche renvoie les emplacements des visages, ainsi que les points clés faciaux suivants: œil gauche, œil droit, pointe du nez, bouche, tragus de l'œil gauche et tragus de l'œil droit.

Essayez !

Premiers pas

Pour commencer à utiliser cette tâche, suivez l'un de ces guides d'implémentation pour votre plate-forme cible. Ces guides spécifiques à la plate-forme vous expliquent comment implémenter de manière basique cette tâche, y compris un modèle recommandé et un exemple de code avec les options de configuration recommandées:

Détails de la tâche

Cette section décrit les fonctionnalités, les entrées, les sorties et les options de configuration de cette tâche.

Fonctionnalités

  • Traitement des images d'entrée : le traitement comprend la rotation, le redimensionnement, la normalisation et la conversion d'espaces colorimétriques des images.
  • Seuil de score : filtrez les résultats en fonction des scores de prédiction.
Entrées de tâche Sorties de tâche
Le détecteur de visage accepte l'un des types de données suivants:
  • Images fixes
  • Images vidéo décodées
  • Flux vidéo en direct
Le détecteur de visage renvoie les résultats suivants:
  • Cadres de délimitation des visages détectés dans un cadre d'image.
  • Coordonnées de six points de repère du visage pour chaque visage détecté.

Options de configuration

Cette tâche propose les options de configuration suivantes:

Nom de l'option Description Plage de valeurs Valeur par défaut
running_mode Définit le mode d'exécution de la tâche. Il existe trois modes:

IMAGE: mode pour les entrées d'une seule image.

VIDEO: mode des images décodées d'une vidéo.

LIVE_STREAM: mode de diffusion en direct des données d'entrée, par exemple à partir d'une caméra. Dans ce mode, resultListener doit être appelé pour configurer un écouteur afin de recevoir les résultats de manière asynchrone.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
min_detection_confidence Score de confiance minimal pour que la détection de visage soit considérée comme réussie. Float [0,1] 0.5
min_suppression_threshold Seuil minimal de suppression non maximale pour que la détection de visage soit considérée comme chevauchée. Float [0,1] 0.3
result_callback Définit l'écouteur de résultats pour qu'il reçoive les résultats de détection de manière asynchrone lorsque le détecteur de visage est en mode flux en direct. Ne peut être utilisé que lorsque le mode d'exécution est défini sur LIVE_STREAM. N/A Not set

Modèles

Les modèles de détection des visages peuvent varier en fonction des cas d'utilisation prévus, tels que la détection à courte et longue portée. Les modèles font également généralement des compromis entre les performances, la précision, la résolution et les exigences en termes de ressources, et incluent parfois des fonctionnalités supplémentaires.

Les modèles listés dans cette section sont des variantes de BlazeFace, un détecteur de visage léger et précis optimisé pour l'inférence GPU mobile. Les modèles BlazeFace sont adaptés à des applications telles que l'estimation des points clés du visage en 3D, la classification des expressions et la segmentation des régions du visage. BlazeFace utilise un réseau d'extraction de caractéristiques léger semblable à MobileNetV1/V2.

BlazeFace (plage courte)

Modèle léger permettant de détecter un ou plusieurs visages dans des images de type selfie à partir d'une caméra de smartphone ou d'une webcam. Le modèle est optimisé pour les images de la caméra avant du téléphone à courte portée. L'architecture du modèle utilise une technique de réseau convolutif Single Shot Detector (SSD) avec un encodeur personnalisé. Pour en savoir plus, consultez l'article de recherche sur le détecteur multicaisse à une seule image.

Nom du modèle Forme d'entrée Type de quantification Fiche de modèle Versions
BlazeFace (à courte portée) 128 x 128 float 16 info Nouveautés

BlazeFace (plage complète)

Modèle relativement léger permettant de détecter un ou plusieurs visages dans les images d'une caméra de smartphone ou d'une webcam. Le modèle est optimisé pour les images à plage complète, comme celles prises avec un appareil photo de téléphone orienté vers l'arrière. L'architecture du modèle utilise une technique semblable à un réseau de convolution CenterNet avec un encodeur personnalisé.

Nom du modèle Forme d'entrée Type de quantification Fiche de modèle Versions
BlazeFace (plage complète) 128 x 128 float 16 infos Bientôt disponible

BlazeFace Sparse (plage complète)

Version allégée du modèle BlazeFace complet standard, d'environ 60% plus petite. Le modèle est optimisé pour les images à plage complète, comme celles prises avec un appareil photo de téléphone à l'arrière. L'architecture du modèle utilise une technique semblable à celle d'un réseau de convolution CenterNet avec un encodeur personnalisé.

Nom du modèle Forme d'entrée Type de quantification Fiche de modèle Versions
BlazeFace Sparse (plage complète) 128 x 128 float 16 infos Bientôt disponible

Benchmarks des tâches

Voici les benchmarks de tâche pour l'ensemble du pipeline basés sur les modèles pré-entraînés ci-dessus. Le résultat de la latence correspond à la latence moyenne sur le Pixel 6 à l'aide du processeur / GPU.

Nom du modèle Latence du processeur Latence du GPU
BlazeFace (plage courte) 2,94 ms 7,41 ms