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.
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 :
- Android – Exemple de code – Guide
- Python – Exemple de code – Guide
- Web – Exemple de code – Guide
- iOS – Exemple de code – Guide
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 :
|
Le détecteur de visages renvoie les résultats suivants :
|
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 |