Guide des tâches interactives de segmentation d'image

La tâche MediaPipe Interactive Image Segmenter vous permet de diviser une image en deux régions: un objet sélectionné et tout le reste. La tâche prend un emplacement dans une image, estime les limites d'un objet à cet emplacement et renvoie des données d'image définissant la zone de l'objet. Vous pouvez utiliser cette tâche pour sélectionner de manière interactive un objet dans une image et utiliser la sortie pour appliquer des effets à l'image, tels que des superpositions de couleurs mettant en évidence l'objet ou floutant l'arrière-plan qui l'entoure. Cette tâche s'applique aux données d'image avec un modèle de machine learning (ML), et vous pouvez l'utiliser sur des images uniques, des fichiers vidéo ou un flux vidéo en continu.

Essayer

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:

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.
Entrées des tâches Sorties de tâches
  • Coordonnées d'un point d'intérêt pour un objet dans une image
  • Fichier image à traiter
Interactive Image Segmenter génère des données d'image segmentées, qui peuvent inclure l'un des éléments suivants ou les deux, selon les options de configuration que vous avez définies :
  • CATEGORY_MASK: liste contenant un masque segmenté sous forme d'image au format uint8. Chaque valeur de pixel indique si elle fait partie de l'objet situé dans la zone d'intérêt.
  • CONFIDENCE_MASK: liste de canaux contenant un masque segmenté avec des valeurs de pixels au format float32. Chaque valeur de pixel indique le niveau de confiance selon lequel il fait partie de l'objet situé dans la zone d'intérêt.

Options de configuration

Cette tâche comporte les options de configuration suivantes:

Nom de l'option Description Plage de valeurs Valeur par défaut
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 si le pixel fait partie de l'objet situé dans la zone d'intérêt. {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 la confiance selon laquelle le pixel fait partie de l'objet situé dans la zone d'intérêt. {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

Modèles

Le segmentateur d'images interactif peut être utilisé avec plusieurs modèles de ML. Commencez avec le modèle par défaut recommandé pour votre plate-forme cible lorsque vous commencez à développer avec cette tâche. Les autres modèles disponibles font généralement des compromis entre les exigences en termes de performances, de précision, de résolution et de ressources, et incluent, dans certains cas, des fonctionnalités supplémentaires.

Ce modèle identifie des segments à partir des coordonnées d'une image pour une zone d'intérêt. Le modèle utilise un réseau de neurones convolutif, semblable à une architecture MobileNetV3, avec un décodeur personnalisé.

Nom du modèle Forme de saisie Type de quantification Fiche modèle Versions
MagicTouch 512 x 512 x 4 Aucune (float32) info 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 processeur / GPU.

Nom du modèle Latence du processeur Latence du GPU
MagicTouch 130,11 ms 67,25 ms