Guida interattiva alle attività di segmentazione delle immagini
L'attività MediaPipe Interactive Image Segmenter ti consente di suddividere un'immagine in due regioni: un oggetto selezionato e tutto il resto. L'attività prende una posizione in un'immagine, stima i confini di un oggetto in quella posizione e restituisce i dati immagine che definiscono l'area dell'oggetto. Puoi utilizzare questa operazione per selezionare in modo interattivo un oggetto in un'immagine e utilizzare l'output per applicare effetti all'immagine, ad esempio sovrapposizioni di colore che mettono in evidenza l'oggetto o sfocano lo sfondo circostante. Questa attività opera sui dati delle immagini con un modello di machine learning (ML) e puoi utilizzarla su singole immagini, file video o uno stream video continuo.
Per iniziare a utilizzare questa attività, segui una di queste guide all'implementazione per la tua piattaforma di destinazione. Queste guide specifiche per la piattaforma illustrano un'implementazione di base di questa attività, incluso un modello consigliato e un esempio di codice con le opzioni di configurazione consigliate:
Questa sezione descrive le funzionalità, gli input, gli output e le opzioni di configurazione di questa attività.
Funzionalità
Elaborazione delle immagini di input: l'elaborazione include la rotazione, il ridimensionamento, la normalizzazione e la conversione dello spazio colore delle immagini.
Input delle attività
Output delle attività
Coordinate del punto di interesse per un oggetto in un'immagine
File immagine da elaborare
Lo strumento di segmentazione delle immagini interattive genera dati sulle immagini segmentate, che possono includere uno o entrambi i seguenti elementi, a seconda delle opzioni di configurazione impostate:
CATEGORY_MASK: un elenco contenente una maschera segmentata
come immagine in formato uint8. Ogni valore del pixel indica se fa parte dell'
oggetto situato nell'area di interesse.
CONFIDENCE_MASK: un elenco di canali contenenti una maschera segmentata con valori dei pixel in formato float32. Ogni valore del pixel
indica il livello di certezza che fa parte dell'oggetto situato
nell'area di interesse.
Opzioni di configurazione
Questa attività ha le seguenti opzioni di configurazione:
Nome opzione
Descrizione
Intervallo di valori
Valore predefinito
output_category_mask
Se impostato su True, l'output include una maschera di segmentazione
come immagine uint8, in cui ogni valore del pixel indica se il pixel fa parte
dell'oggetto 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 float, in cui ogni valore float rappresenta la confidenza
che il pixel fa parte dell'oggetto nell'area di interesse.
{True, False}
True
display_names_locale
Imposta la lingua delle etichette da utilizzare per i nomi visualizzati forniti nei metadati del modello dell'attività, se disponibile. Il valore predefinito è en per
l'inglese. Puoi aggiungere etichette localizzate ai metadati di un modello personalizzato
utilizzando l'API TensorFlow Lite Metadata Writer
Codice delle impostazioni internazionali
it
Modelli
Lo strumento di segmentazione delle immagini interattivo può essere utilizzato con più di un modello di ML. Quando inizi a sviluppare con questa attività, inizia con il
modello predefinito consigliato per la tua piattaforma di destinazione. Gli altri modelli disponibili di solito prevedono compromessi tra prestazioni, precisione, risoluzione e requisiti di risorse e, in alcuni casi, includono funzionalità aggiuntive.
Modello MagicTouch (consigliato)
Questo modello identifica i segmenti in base alle coordinate dell'immagine per un'area di interesse.
Il modello utilizza una rete neurale convoluzionale, simile a un'architettura
MobileNetV3, con un decodificatore personalizzato.
Ecco i benchmark delle attività per l'intera pipeline in base ai modelli preaddestrati sopra riportati. Il risultato della latenza è la latenza media su Pixel 6 che utilizza la CPU / GPU.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-01-13 UTC."],[],[],null,["# Interactive image segmentation task guide\n\nThe MediaPipe Interactive Image Segmenter task lets you divide an image into two regions: a selected\nobject and everything else. The task takes a location in an image, estimates the\nboundaries of an object at that location, and returns image data defining the\narea of the object. You can use this task to interactively select an object in\nan image and use the output to apply effects to the image, such as color\noverlays highlighting the object or blurring the background around it. This task\noperates on image data with a machine learning (ML) model and you can use it on\nsingle images, video files, or a continuous video stream.\n\n[Try it!arrow_forward](https://mediapipe-studio.webapps.google.com/demo/interactive_segmenter)\n\nGet Started\n-----------\n\nStart using this task by following one of these implementation guides for your\ntarget platform. These platform-specific guides walk you through a basic\nimplementation of this task, including a recommended model, and code example\nwith recommended configuration options:\n\n- **Android** - [Code example](https://github.com/googlesamples/mediapipe/blob/main/examples/interactive_segmentation/android) - [Guide](./android)\n- **Python** - [Code example](https://colab.sandbox.google.com/github/googlesamples/mediapipe/blob/main/examples/interactive_segmentation/python/interactive_segmenter.ipynb) - [Guide](./python)\n- **Web** - [Code example](https://codepen.io/mediapipe-preview/pen/ZEqzpRg) - [Guide](./web_js)\n\nTask details\n------------\n\nThis section describes the capabilities, inputs, outputs, and configuration\noptions of this task.\n\n### Features\n\n- **Input image processing** - Processing includes image rotation, resizing, normalization, and color space conversion.\n\n| Task inputs | Task outputs |\n|----------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| - Point of interest coordinates for an object in an image - Image file to be processed | Interactive Image Segmenter outputs segmented image data, which can include one or both of the following, depending on the configuration options you set: - `CATEGORY_MASK`: a list containing a segmented mask as a uint8 format image. Each pixel value indicates if it is part of the object located at the area of interest. \u003c!-- --\u003e - `CONFIDENCE_MASK`: a list of channels containing a segmented mask with pixel values in float32 format. Each pixel value indicates the level of confidence that it is part of the object located at the area of interest. |\n\n### Configurations options\n\nThis task has the following configuration options:\n\n| Option Name | Description | Value Range | Default Value |\n|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|---------------|\n| `output_category_mask` | If set to `True`, the output includes a segmentation mask as a uint8 image, where each pixel value indicates if the pixel is part of the object located at the area of interest. | {`True, False`} | `False` |\n| `output_confidence_masks` | If set to `True`, the output includes a segmentation mask as a float value image, where each float value represents the confidence that the pixel is part of the object located at the area of interest. | {`True, False`} | `True` |\n| `display_names_locale` | Sets the language of labels to use for display names provided in the metadata of the task's model, if available. Default is `en` for English. You can add localized labels to the metadata of a custom model using the [TensorFlow Lite Metadata Writer API](https://ai.google.dev/edge/lite/models/metadata_writer_tutorial) | Locale code | en |\n\nModels\n------\n\nThe Interactive Image Segmenter can be used with more than one ML model. Start with the\ndefault, recommended model for your target platform when you start developing\nwith this task. The other available models typically make trade-offs between\nperformance, accuracy, resolution, and resource requirements, and in some cases,\ninclude additional features.\n| **Attention:** This MediaPipe Solutions Preview is an early release. [Learn more](/edge/mediapipe/solutions/about#notice).\n\n### MagicTouch model (recommended)\n\nThis model identifies segments given image coordinates for an area of interest.\nThe model uses a Convolutional Neural Network, similar to a\n[MobileNetV3](https://www.kaggle.com/models?query=mobilenet-v3)\narchitecture, with a customized decoder.\n\n| Model name | Input shape | Quantization type | Model Card | Versions |\n|-----------------------------------------------------------------------------------------------------------------------------------|---------------|-------------------|---------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|\n| [MagicTouch](https://storage.googleapis.com/mediapipe-models/interactive_segmenter/magic_touch/float32/latest/magic_touch.tflite) | 512 x 512 x 4 | None (float32) | [info](https://storage.googleapis.com/mediapipe-assets/Model%20Card%20MagicTouch.pdf) | [Latest](https://storage.googleapis.com/mediapipe-models/interactive_segmenter/magic_touch/float32/latest/magic_touch.tflite) |\n\nTask benchmarks\n---------------\n\nHere's the task benchmarks for the whole pipeline based on the above\npre-trained models. The latency result is the average latency on Pixel 6 using\nCPU / GPU.\n\n| Model Name | CPU Latency | GPU Latency |\n|------------|-------------|-------------|\n| MagicTouch | 130.11ms | 67.25ms |"]]