Guide de segmentation d'image

La tâche "Segmenteur d'images MediaPipe" vous permet de diviser les images en régions en fonction d'éléments prédéfinis catégories. Vous pouvez utiliser cette fonctionnalité pour identifier des objets ou des textures, puis appliquez des effets visuels, comme le floutage de l'arrière-plan. Cette tâche comprend plusieurs modèles spécialement entraînés pour segmenter les personnes et leurs dans les données d'image, y compris:

  • Personne et arrière-plan
  • Cheveux uniquement
  • Cheveux, visage, peau, vêtements et accessoires d'une personne

Cette tâche traite des données d'image à l'aide d'un modèle de machine learning (ML) avec une seule 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 dans une image, en fonction du modèle que vous choisir.

<ph type="x-smartling-placeholder"></ph> Essayez !

Premiers pas

Commencez à effectuer cette tâche en suivant l'un de ces guides d'implémentation pour votre la plate-forme cible. Ces guides spécifiques à chaque plate-forme vous guident à travers un la mise en œuvre de cette tâche, y compris un modèle recommandé et un exemple de code avec les options de configuration recommandées:

Détails de la tâche

Cette section décrit les fonctionnalités, les entrées, les sorties et la configuration de cette tâche.

Fonctionnalités

  • Traitement de l'image d'entrée : le traitement inclut la rotation, le redimensionnement, la normalisation et la conversion de l'espace colorimétrique.
Entrées des tâches Sorties des tâches
L'entrée peut correspondre à l'un des types de données suivants:
<ph type="x-smartling-placeholder">
    </ph>
  • Images fixes
  • Images vidéo décodées
  • Flux vidéo en direct
Le segmenteur d'images génère des données d'image segmentées, qui peuvent inclure un ou les deux options suivantes, en fonction des options de configuration que vous définissez:
<ph type="x-smartling-placeholder">
    </ph>
  • CATEGORY_MASK: liste contenant un masque segmenté. en tant qu'image au format uint8. Chaque valeur de pixel indique si elle fait partie d'une catégorie de segment spécifique acceptée par le modèle.
  • CONFIDENCE_MASK: une liste de chaînes contenant un masque segmenté avec des valeurs de pixels au format float32. Chaque valeur de pixel indique le niveau de confiance quant à son appartenance à une catégorie spécifique. prises en charge par le modèle.

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 y en a trois modes:

IMAGE: mode utilisé pour la saisie d'une seule image.

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

LIVE_STREAM: mode d'une diffusion en direct des entrées provenant d'un appareil photo, par exemple. 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, le résultat inclut un masque de segmentation. en tant qu'image uint8, où chaque valeur de pixel indique la catégorie gagnante . {True, False} False
output_confidence_masks Si la valeur est True, le résultat inclut un masque de segmentation. en tant qu'image d'une valeur flottante, où chaque valeur flottante représente le niveau de confiance tableau des scores 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 les métadonnées du modèle de la tâche, le cas échéant. La valeur par défaut est en pour anglais. Vous pouvez ajouter des libellés 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 des résultats pour qu'il reçoive les résultats de la segmentation. de manière asynchrone lorsque le segmenteur d'images est en mode LIVE_STREAM. Ne peut être utilisé que lorsque le mode 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 éléments suivants Les modèles de segmentation sont créés et entraînés pour effectuer une segmentation avec des images personnes. Cependant, le modèle DeepLab-v3 est conçu de manière générale outil de segmentation d'images. Sélectionnez le modèle qui convient le mieux à votre application.

<ph type="x-smartling-placeholder">

Modèle de segmentation des selfies

Ce modèle peut segmenter le portrait d'une personne et peut être utilisé pour remplacer ou modifier l'arrière-plan d'une image. Le modèle génère deux catégories : son parcours à l'index 0 et une personne à l'index 1. Ce modèle possède des versions avec différentes formes d'entrée, y compris une version carrée et une version en mode paysage, peut s'avérer plus efficace pour les applications où l'entrée est toujours cette forme, comme les appels vidéo.

Nom du modèle Forme d'entrée Type de quantification Fiche de modèle Versions
<ph type="x-smartling-placeholder"></ph> SelfieSegmenter (carré) 256 x 256 float 16 <ph type="x-smartling-placeholder"></ph> infos <ph type="x-smartling-placeholder"></ph> Nouveautés
<ph type="x-smartling-placeholder"></ph> SelfieSegmenter (paysage) 144 x 256 float 16 <ph type="x-smartling-placeholder"></ph> infos <ph type="x-smartling-placeholder"></ph> Nouveautés

Modèle de segmentation des cheveux

Ce modèle prend une photo d'une personne, localise les cheveux sur sa tête, génère une carte de segmentation d'image pour ses cheveux. Vous pouvez utiliser ce modèle décoloration des cheveux ou application d'autres effets capillaires. Le modèle renvoie ce qui suit : catégories de segmentation:

0 - background
1 - hair
Nom du modèle Forme d'entrée Type de quantification Fiche de modèle Versions
<ph type="x-smartling-placeholder"></ph> HairSegmenter 512 x 512 Aucune (float32) <ph type="x-smartling-placeholder"></ph> infos <ph type="x-smartling-placeholder"></ph> Nouveautés

Modèle de segmentation de selfie à plusieurs classes

Ce modèle prend une photo d'une personne et localise des zones pour différentes zones, cheveux, peau et vêtements, puis génère une carte de segmentation d'image pour ces articles. Vous pouvez utiliser ce modèle pour appliquer divers effets aux personnes figurant sur des images ou vidéo. 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 d'entrée Type de quantification Fiche de modèle Versions
<ph type="x-smartling-placeholder"></ph> SelfieMulticlass (256 x 256) 256 x 256 Aucune (float32) <ph type="x-smartling-placeholder"></ph> infos <ph type="x-smartling-placeholder"></ph> Nouveautés

Modèle DeepLab v3

Ce modèle identifie les segments pour un certain nombre de catégories, y compris l'arrière-plan, une personne, un chat, un chien et une plante en pot. Le modèle utilise la pyramide spatiale atrouve le pooling pour capturer des informations de plus longue portée. Pour en savoir plus, consultez DeepLab v3.

Nom du modèle Forme d'entrée Type de quantification Versions
<ph type="x-smartling-placeholder"></ph> DeepLab V3 257 x 257 Aucune (float32) <ph type="x-smartling-placeholder"></ph> Nouveautés

Analyses comparatives des tâches

Voici les benchmarks de tâches pour l'ensemble du pipeline, en fonction des tâches pré-entraînées ci-dessus des modèles de ML. Le résultat de la latence correspond à la latence moyenne sur le Pixel 6 en utilisant le processeur / 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