La tâche MediaPipe Image Segmenter vous permet de diviser des images en régions en fonction de catégories prédéfinies. Vous pouvez utiliser cette fonctionnalité pour identifier des objets ou des textures spécifiques, puis appliquer des effets visuels tels que le floutage de l'arrière-plan. Cette tâche inclut plusieurs modèles spécialement entraînés pour segmenter les personnes et leurs caractéristiques dans les données d'image, y compris:
- Personne et arrière-plan
- Cheveux de la personne uniquement
- Cheveux, visage, peau, vêtements et accessoires d'une personne
Cette tâche traite des données d'image avec un modèle de machine learning (ML) avec des images uniques ou un flux vidéo en continu. Elle génère une liste de régions segmentées, représentant des objets ou des zones d'une image, en fonction du model que vous choisissez.
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
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.
Entrées des tâches | Sorties de tâches |
---|---|
L'un des types de données suivants peut être saisi:
|
Image Segmenter génère des données d'image segmentées qui peuvent inclure l'un ou l'autre des éléments suivants, ou les deux, selon les options de configuration que vous avez définies :
|
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 |
output_category_mask |
Si la valeur est True , la sortie inclut un masque de segmentation sous la forme d'une image uint8, où chaque valeur de pixel indique la valeur de la catégorie gagnante. |
{True, False } |
False |
output_confidence_masks |
Si la valeur est True , la sortie inclut un masque de segmentation sous la forme d'une image à valeur flottante, où chaque valeur flottante représente le tableau du score de confiance de la catégorie. |
{True, False } |
True |
display_names_locale |
Définit la langue des libellés à utiliser pour les noms à afficher fournis dans les métadonnées du modèle de la tâche, le cas échéant. La valeur par défaut est en pour l'anglais. Vous pouvez ajouter des thèmes localisés aux métadonnées d'un modèle personnalisé à l'aide de l'API TensorFlow Lite Metadata Writer.
| Code des paramètres régionaux | en |
result_callback |
Définit l'écouteur de résultats pour recevoir les résultats de segmentation de manière asynchrone lorsque le segmentation d'images est en mode flux en direct.
Ne peut être utilisé que lorsque le mode En cours d'exécution est défini sur LIVE_STREAM |
N/A | N/A |
Modèles
Le segmenteur d'images peut être utilisé avec plusieurs modèles de ML. La plupart des modèles de segmentation suivants sont créés et entraînés pour effectuer la segmentation avec des images de personnes. Cependant, le modèle DeepLab-v3 est conçu comme un segmentation d'images à usage général. Sélectionnez le modèle qui convient le mieux à votre application.
Modèle de segmentation des selfies
Ce modèle est capable de segmenter le portrait d'une personne et peut être utilisé pour remplacer ou modifier l'arrière-plan d'une image. Le modèle renvoie deux catégories : l'arrière-plan à l'index 0 et la personne à l'index 1. Ce modèle comporte des versions avec différentes formes d'entrée, y compris une version carrée et une version en mode paysage, qui peuvent être plus efficaces pour les applications où l'entrée a toujours cette forme, comme les appels vidéo.
Nom du modèle | Forme de saisie | Type de quantification | Fiche modèle | Versions |
---|---|---|---|---|
SelfieSegmenter (carré) | 256 x 256 | nombre décimal 16 | info | Les plus récents |
SelfieSegmenter (paysage) | 144 x 256 | nombre décimal 16 | info | Les plus récents |
Modèle de segmentation des cheveux
Ce modèle prend une image d'une personne, localise les cheveux sur sa tête et génère une carte de segmentation d'image pour ses cheveux. Vous pouvez utiliser ce modèle pour recolorer les cheveux ou appliquer d'autres effets capillaires. Le modèle génère les catégories de segmentation suivantes:
0 - background
1 - hair
Nom du modèle | Forme de saisie | Type de quantification | Fiche modèle | Versions |
---|---|---|---|---|
HairSegmenter | 512 x 512 | Aucune (float32) | info | Les plus récents |
Modèle de segmentation de selfies à classes multiples
Ce modèle prend une image d'une personne, localise des zones pour différentes zones telles que les cheveux, la peau et les vêtements, puis génère une carte de segmentation d'image pour ces éléments. Vous pouvez l'utiliser pour appliquer différents effets aux personnes dans des images ou des vidéos. Le modèle génère les catégories de segmentation suivantes:
0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
Nom du modèle | Forme de saisie | Type de quantification | Fiche modèle | Versions |
---|---|---|---|---|
SelfieMulticlass (256 x 256) | 256 x 256 | Aucune (float32) | info | Les plus récents |
Modèle DeepLab-v3
Ce modèle identifie des segments pour un certain nombre de catégories : arrière-plan, personne, chat, chien, plante en pot. Le modèle utilise un pooling de pyramides spatiales atroueuses pour capturer des informations de portée plus longue. Pour en savoir plus, consultez DeepLab-v3.
Nom du modèle | Forme de saisie | Type de quantification | Versions |
---|---|---|---|
DeepLab-V3 | 257 x 257 | Aucune (float32) | Les plus récents |
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 CPU / GPU.
Nom du modèle | Latence du processeur | Latence du GPU |
---|---|---|
SelfieSegmenter (carré) | 33,46 ms | 35,15 ms |
SelfieSegmenter (paysage) | 34,19 ms | 33,55 ms |
HairSegmenter | 57,90 ms | 52,14 ms |
SelfieMulticlass (256 x 256) | 217,76 ms | 71,24 ms |
DeepLab-V3 | 123,93 ms | 103,30 ms |