L'attività Interactive Image Segmenter di MediaPipe prende una posizione in un'immagine, stima i confini di un oggetto in quella posizione e restituisce la segmentazione per l'oggetto come immagine e i dati di Google Cloud. Queste istruzioni mostrano come utilizzare il segmento interattivo di immagini con il linguaggio Python lingua. Per ulteriori informazioni su funzionalità, modelli e configurazione opzioni di questa attività, consulta la Panoramica.
Esempio di codice
Il codice d'esempio del Segmentazione delle immagini interattive fornisce un'implementazione completa un'attività in Python come riferimento. Questo codice ti consente di testare l'attività e ottenere hai iniziato a creare la tua applicazione interattiva di segmentazione delle immagini. Puoi visualizza, esegui e modifica la segmentazione interattiva delle immagini esempio di codice usando solo il browser web.
Configurazione
Questa sezione descrive i passaggi chiave per configurare l'ambiente di sviluppo e per i progetti di codice che utilizzano specificatamente la segmentazione delle immagini interattive. Per informazioni generali su configurare l'ambiente di sviluppo per l'utilizzo delle attività di MediaPipe, tra cui: i requisiti di versione della piattaforma, consulta Guida alla configurazione per Python. Puoi rivedere il codice sorgente per questo esempio su GitHub
Pacchetti
L'attività Interactive Image Segmenter di MediaPipe richiede il pacchetto mediapipe
. Puoi installare
delle dipendenze obbligatorie con il comando seguente:
$ python -m pip install mediapipe
Importazioni
Importa le classi seguenti per accedere alle funzioni dell'attività Segmentazione delle immagini interattive:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision
Modello
L'attività Interactive Image Segmenter di MediaPipe richiede un modello addestrato compatibile con questo dell'attività. Per ulteriori informazioni sui modelli addestrati disponibili per la segmentazione interattiva delle immagini, consulta nella sezione Modelli della panoramica dell'attività.
Seleziona e scarica il modello, quindi archivialo nella directory del progetto:
model_path = '/absolute/path/to/model.tflite'
Specifica il percorso del modello all'interno del parametro model_asset_path
, come mostrato
sotto:
base_options = BaseOptions(model_asset_path=model_path)
Crea l'attività
L'attività di segmentazione interattiva delle immagini di MediaPipe utilizza la funzione create_from_options
per
configurare l'attività. La funzione create_from_options
accetta valori
per gestire le opzioni di configurazione. Per ulteriori informazioni sulla configurazione
vedi Opzioni di configurazione.
Il codice seguente illustra come creare e configurare questa attività.
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
Opzioni di configurazione
Questa attività include le seguenti opzioni di configurazione per le applicazioni Python:
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
output_category_mask |
Se impostato su True , l'output include una maschera di segmentazione
come un'immagine uint8, dove ogni valore di pixel indica se il pixel fa parte di
all'oggetto situato nell'area di interesse. |
{True, False } |
False |
output_confidence_masks |
Se impostato su True , l'output include una maschera di segmentazione
come immagine con valore in virgola mobile, in cui ogni valore in virgola mobile rappresenta la confidenza
che il pixel sia parte dell'oggetto che si trova nell'area di interesse. |
{True, False } |
True |
display_names_locale |
Imposta la lingua delle etichette da utilizzare per i nomi visualizzati forniti nel
metadati del modello dell'attività, se disponibili. Il valore predefinito è en per
Inglese. Puoi aggiungere etichette localizzate ai metadati di un modello personalizzato
Utilizzando l'API TensorFlow Metadata Writer
| Codice impostazioni internazionali | it |
Preparazione dei dati
Prepara l'input come file immagine o array numpy,
e poi convertilo in un oggetto 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)
Per un esempio più completo dell'esecuzione delle inferenze della segmentazione delle immagini interattive, consulta la esempio di codice.
Gestire e visualizzare i risultati
I risultati dello strumento di segmentazione delle immagini interattive sono un elenco di dati Image
e potrebbero
includi una maschera di categoria, una maschera di confidenza o entrambe, a seconda di ciò che imposti
quando hai configurato l'attività. Se imposti
Da output_category_mask
a True
, l'output è un elenco contenente singole
come maschera segmentata come immagine uint8. Il valore dei pixel indica se fa parte del
oggetto nell'area di interesse. indice di categoria riconosciuto dell'immagine di input. Se
imposti output_confidence_masks
su True
, l'output è un elenco di canali
contenente valori di pixel nell'intervallo [0,1]
che rappresentano la confidenza
del pixel appartenente all'oggetto nell'area di interesse.
Le sezioni seguenti spiegano ulteriormente i dati di output di questa attività:
Maschera categoria
Le seguenti immagini mostrano una visualizzazione dell'output dell'attività per una categoria
maschera di valore con un'area del punto di interesse indicata. Ogni pixel è un uint8
che indica se il pixel fa parte dell'oggetto che si trova nell'area
interesse. Il cerchio in bianco e nero sulla seconda immagine indica la selezione
l'area di interesse.
Output della maschera di categoria e dell'immagine originale. Immagine di origine dalla VOC Pascal 2012 del set di dati.
Maschera di confidenza
L'output per una maschera di confidenza contiene valori in virgola mobile compresi tra [0, 1]
per
ogni canale di input delle immagini. Valori più alti indicano una maggiore confidenza
il pixel immagine è la parte dell'oggetto che si trova nell'area di interesse.