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.
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:
- 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.
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:
|
Le détecteur de visages génère 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'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 |