Guide interactif de segmentation d'images pour Python

La tâche "Segmenter des images interactives MediaPipe" prend un emplacement dans une image, estime les limites de un objet à cet emplacement, puis renvoie la segmentation de l'objet sous forme d'image données. Ces instructions vous expliquent comment utiliser le Segmenter d'images interactif avec l'API langue. Pour en savoir plus sur les fonctionnalités, les modèles et la configuration options de cette tâche, consultez la section Présentation.

Exemple de code

L'exemple de code pour le segmenteur d'images interactif fournit une implémentation complète de ce dans Python à titre de référence. Ce code vous aide à tester cette tâche et à obtenir vous avez commencé à créer votre propre application interactive de segmentation d'images. Vous pouvez Afficher, exécuter et modifier le segmenteur d'images interactif exemple de code en utilisant uniquement votre navigateur Web.

Configuration

Cette section décrit les étapes clés à suivre pour configurer votre environnement de développement spécifiques pour utiliser le Segmenter d'images interactif. Pour obtenir des informations générales sur configurer votre environnement de développement pour utiliser les tâches MediaPipe, y compris versions de la plate-forme requises, consultez la Guide de configuration pour Python Vous pouvez consulter le code source de cet exemple sur GitHub

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

Colis

La tâche MediaPipe Interactive Image Segmenter nécessite le package mediapipe. Vous pouvez installer les dépendances requises à l'aide de la commande suivante:

$ python -m pip install mediapipe

Importations

Importez les classes suivantes pour accéder aux fonctions de la tâche "Interactive Image Segmenter" :

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision

Modèle

La tâche MediaPipe Interactive Image Segmenter nécessite un modèle entraîné compatible avec tâche. Pour en savoir plus sur les modèles entraînés disponibles pour le Segmenter d'images interactif, consultez la section Modèles de la présentation des tâches.

Sélectionnez et téléchargez le modèle, puis stockez-le dans le répertoire de votre projet:

model_path = '/absolute/path/to/model.tflite'

Spécifiez le chemin d'accès du modèle dans le paramètre model_asset_path, comme indiqué. ci-dessous:

base_options = BaseOptions(model_asset_path=model_path)

Créer la tâche

La tâche "Segmenteur d'images interactives MediaPipe" utilise la fonction create_from_options pour : configurer la tâche. La fonction create_from_options accepte les valeurs pour les options de configuration à gérer. Pour en savoir plus sur la configuration consultez la section Options de configuration. Le code suivant montre comment compiler et configurer cette tâche.

BaseOptions = mp.tasks.BaseOptions
InteractiveSegmenter = mp.tasks.vision.InteractiveSegmenter
InteractiveSegmenterOptions = mp.tasks.vision.InteractiveSegmenterOptions
VisionRunningMode = mp.tasks.vision.RunningMode

# Create a image segmenter instance with the image mode:
options = InteractiveSegmenterOptions(
    base_options=BaseOptions(model_asset_path='/path/to/model.task'),
    running_mode=VisionRunningMode.IMAGE,
    output_type=InteractiveSegmenterOptions.OutputType.CATEGORY_MASK)
with InteractiveSegmenter.create_from_options(options) as segmenter:
# segmenter is initialized and ready to use

Options de configuration

Cette tâche comporte les options de configuration suivantes pour les applications Python:

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

Préparer les données

Préparez votre entrée sous forme de fichier image ou de tableau Numpy. puis le convertir en objet mediapipe.Image.

# Load the input image from an image file.
mp_image = mp.Image.create_from_file('/path/to/image')

# Load the input image from a numpy array.
mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_image)
RegionOfInterest = vision.InteractiveSegmenterRegionOfInterest
# Perform image segmentation on the provided single image.
# The image segmenter must be created with the image mode.
roi = RegionOfInterest(format=RegionOfInterest.Format.KEYPOINT,
                          keypoint=NormalizedKeypoint(x, y))
segmented_masks = segmenter.segment(mp_image, roi)

Pour obtenir un exemple plus complet d'exécution d'inférences Interactive Image Segmenter, consultez exemple de code.

Gérer et afficher les résultats

Le résultat de la fonction de segmentation d'images interactive est une liste de données Image et peut inclure un masque de catégorie, des masques de confiance ou les deux, en fonction de ce que vous définissez lors de la configuration de la tâche. Si vous définissez output_category_mask à True, la sortie est une liste contenant des segmenté sous forme d'image uint8. La valeur en pixels indique si elle fait partie du dans la zone d'intérêt. index de catégorie reconnue de l'image d'entrée. Si si vous définissez output_confidence_masks sur True, la sortie est une liste de canaux contenant des valeurs de pixels comprises dans la plage [0,1], qui représente le niveau de confiance score du pixel appartenant à l'objet dans la zone d'intérêt.

Les sections suivantes expliquent plus en détail les données de sortie de cette tâche:

Masque de catégorie

Les images suivantes illustrent le résultat des tâches pour une catégorie de valeur avec une zone de point d'intérêt indiquée. Chaque pixel est une uint8 valeur indiquant si le pixel fait partie de l'objet situé dans la zone de d’intérêt. Le cercle noir et blanc sur la deuxième image indique d'une zone d'intérêt.

Sortie du masque d'image d'origine et de catégorie. Image source de la Pascal VOC 2012 ensemble de données.

Masque de confiance

La sortie d'un masque de confiance contient des valeurs flottantes comprises entre [0, 1] pour chaque canal d'entrée d'image. Des valeurs plus élevées indiquent un niveau de confiance élevé le pixel d'image fait partie de l'objet situé dans la zone d'intérêt.