Guide de détection de visages

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

La tâche MediaPipe Face Detector 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 traits faciaux dans un frame. Cette tâche utilise un modèle de machine learning (ML) qui fonctionne avec des images uniques ou un flux continu d'images. La tâche génère 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 présentent une implémentation de base de 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 capacité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 inclut la rotation, le redimensionnement, la normalisation et la conversion de l'espace colorimétrique des images.
  • Seuil de score : filtrez les résultats en fonction des scores de prédiction.
Entrées de tâche Sorties de tâches
Le détecteur de visages accepte en entrée 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 visages renvoie les résultats suivants :
  • Cadres de délimitation pour les visages détectés dans un frame d'image.
  • Coordonnées de six points de repère du visage pour chaque visage détecté.

Options de configuration

Cette tâche comporte 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'image unique.

VIDEO : mode pour les frames décodés d'une vidéo.

LIVE_STREAM : mode pour la diffusion en direct de 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 du visage soit considérée comme réussie. Float [0,1] 0.5
min_suppression_threshold Seuil minimal de suppression non maximale pour qu'une 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 recevoir les résultats de la détection de manière asynchrone lorsque le détecteur de visages 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 de leurs cas d'utilisation prévus, tels que la détection à courte et longue portée. Les modèles font généralement des compromis entre les performances, la précision, la résolution et les besoins en 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 visages léger et précis optimisé pour l'inférence de GPU mobile. Les modèles BlazeFace conviennent aux applications telles que l'estimation des points clés faciaux 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 (courte portée)

Modèle léger permettant de détecter un ou plusieurs visages dans des images de type selfie prises avec un appareil photo de smartphone ou une webcam. Le modèle est optimisé pour les images prises par la caméra avant du téléphone à courte distance. 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 le document de recherche sur le Single Shot MultiBox Detector.

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 Dernières

BlazeFace (plage complète)

Modèle relativement léger permettant de détecter un ou plusieurs visages dans des images provenant d'une caméra de smartphone ou d'une webcam. Le modèle est optimisé pour les images en couleur, comme celles prises avec la caméra arrière d'un téléphone. L'architecture du modèle utilise une technique semblable à un réseau convolutif 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 info Dernières

BlazeFace Sparse (gamme complète)

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

Nom du modèle Forme d'entrée Type de quantification Fiche de modèle Versions
BlazeFace Sparse (full-range) 128 x 128 float 16 info Dernières

Benchmarks des tâches

Voici les benchmarks de tâches 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 Pixel 6 à l'aide du processeur / GPU.

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