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.
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:
- 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 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:
|
Le détecteur de visage renvoie les résultats suivants:
|
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 |