Guide de détection de visages

La tâche MediaPipe de détection de visages vous permet de détecter les visages dans une image ou une vidéo. Vous pouvez utiliser cette tâche pour localiser des visages et des traits de visage dans un cadre. Cette tâche utilise un modèle de machine learning (ML) fonctionnant avec des images uniques ou un flux continu d'images. La tâche génère la position des visages, ainsi que les points clés du visage suivants: œil gauche, œil droit, embout du nez, bouche, tragion œil gauche et tragion œil droit.

Essayer

Commencer

Commencez à utiliser cette tâche en suivant l'un de ces guides d'implémentation pour votre plate-forme cible. Ces guides spécifiques à la plate-forme vous guident tout au long d'une implémentation de base de cette tâche, y compris un modèle et un exemple de code recommandés, ainsi que 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.

Caractéristiques

  • Traitement de l'image d'entrée : le traitement comprend la rotation, le redimensionnement, la normalisation et la conversion de l'espace colorimétrique de l'image.
  • Seuil de score : filtre les résultats en fonction des scores de prédiction.
Entrées des tâches Sorties de tâches
Le détecteur de visages 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 visages génère les résultats suivants:
  • Cadres de délimitation pour les visages détectés dans un cadre d'image.
  • Coordonnées de six points de repère de 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'une seule image.

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

LIVE_STREAM: mode de diffusion en direct de données d'entrée, issues par exemple 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 visages soit considérée comme réussie. Float [0,1] 0.5
min_suppression_threshold Seuil minimal de non-suppression maximal pour que la détection des visages soit considérée comme un chevauchement. Float [0,1] 0.3
result_callback Définit l'écouteur de résultats pour qu'il reçoive 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 de visages peuvent varier en fonction des cas d'utilisation prévus, par exemple la détection de courte et de longue portée. Les modèles font également généralement des compromis entre les exigences en termes de performances, de précision, de résolution et de ressources. Dans certains cas, ils incluent des fonctionnalités supplémentaires.

Les modèles répertoriés dans cette section sont des variantes de BlazeFace, un détecteur de visages léger et précis optimisé pour l'inférence GPU pour mobile. Les modèles BlazeFace sont adaptés à des applications telles que l'estimation des points de clé faciales en 3D, la classification d'expressions et la segmentation de la région d'un 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 ressemblant à des selfies provenant de l'appareil photo ou d'une webcam d'un smartphone. Ce modèle est optimisé pour les images de caméra frontale de téléphone à courte portée. L'architecture du modèle utilise une technique de réseau convolutif SSD (Single-Shot Detector) avec un encodeur personnalisé. Pour en savoir plus, consultez l'étude sur le détecteur multichamp Single Shot.

Nom du modèle Forme de saisie Type de quantification Fiche modèle Versions
BlazeFace (courte portée) 128 x 128 nombre décimal 16 info Les plus récents

BlazeFace (gamme complète)

Ce modèle relativement léger permet de détecter un ou plusieurs visages dans des images provenant d'un appareil photo ou d'une webcam de smartphone. Ce modèle est optimisé pour les images en pleine gamme, comme celles prises avec l'appareil photo arrière d'un téléphone. L'architecture du modèle utilise une technique semblable à celle d'un réseau convolutif CenterNet avec un encodeur personnalisé.

Nom du modèle Forme de saisie Type de quantification Fiche modèle Versions
BlazeFace (gamme complète) 128 x 128 nombre décimal 16 infos Bientôt disponible

BlazeFace Sparse (plage complète)

Une version plus légère du modèle complet BlazeFace standard, environ 60% plus petit. Ce modèle est optimisé pour les images larges, comme celles prises avec l'appareil photo arrière d'un téléphone. L'architecture du modèle utilise une technique semblable à celle d'un réseau convolutif CenterNet avec un encodeur personnalisé.

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

Benchmarks de tâches

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

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