Zadanie MediaPipe Interactive Image segmenter pobiera lokalizację na obrazie i określa granice obiekt w tym miejscu i zwraca jego podział na segmenty jako obraz. i skalowalnych danych. Te instrukcje pokazują, jak korzystać z interaktywnego segmentowania obrazów w Pythonie język. Więcej informacji o możliwościach, modelach i konfiguracji opcji tego zadania znajdziesz w artykule Omówienie.
Przykładowy kod
Przykładowy kod Interactive Image Segmenter zapewnia pełną implementację tego parametru w Pythonie. Ten kod pomoże Ci przetestować to zadanie i uzyskać rozpoczął tworzenie własnej aplikacji do segmentowania obrazów. Dostępne opcje wyświetlanie, uruchamianie i edytowanie interaktywnego segmentowania obrazów przykładowy kod tylko za pomocą przeglądarki.
Konfiguracja
W tej sekcji opisujemy najważniejsze czynności związane z konfigurowaniem środowiska programistycznego oraz w projektach kodu, w których wykorzystano Interactive Image segmenter. Ogólne informacje na temat: skonfigurować środowisko programistyczne do korzystania z zadań MediaPipe, w tym wymagań wersji platformy, patrz Przewodnik po konfiguracji Pythona Kod źródłowy tego przykładu znajdziesz na stronie GitHub
Pakiety
Zadanie MediaPipe Interactive Image segmenter wymaga pakietu mediapipe
. Możesz zainstalować
wymagane zależności za pomocą tego polecenia:
$ python -m pip install mediapipe
Importy
Aby uzyskać dostęp do funkcji zadania Interactive Image segmenter, zaimportuj te klasy:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision
Model
Zadanie MediaPipe Interactive Image segmenter wymaga wytrenowanego modelu zgodnego z tym zadanie. Więcej informacji o dostępnych wytrenowanych modelach na potrzeby interaktywnego segmentowania obrazów znajdziesz w artykule zapoznaj się z omówieniem zadania Modele.
Wybierz i pobierz model, a następnie zapisz go w katalogu projektu:
model_path = '/absolute/path/to/model.tflite'
Określ ścieżkę modelu w parametrze model_asset_path
, jak pokazano na obrazku
poniżej:
base_options = BaseOptions(model_asset_path=model_path)
Tworzenie zadania
Zadanie MediaPipe Interactive Image segmenter używa funkcji create_from_options
do:
skonfigurować zadanie. Funkcja create_from_options
akceptuje wartości
obsługi opcji konfiguracyjnych. Więcej informacji o konfiguracji
Więcej informacji znajdziesz w sekcji Opcje konfiguracji.
Poniższy kod pokazuje, jak skompilować i skonfigurować to zadanie.
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
Opcje konfiguracji
To zadanie zawiera te opcje konfiguracji aplikacji w Pythonie:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
output_category_mask |
Jeśli ma wartość True , dane wyjściowe będą zawierały maskę podziału na segmenty.
jako obraz uint8, gdzie każda wartość w pikselach wskazuje, czy piksel jest częścią
i znajdź obiekt na danym obszarze. |
{True, False } |
False |
output_confidence_masks |
Jeśli ma wartość True , dane wyjściowe będą zawierały maskę podziału na segmenty.
jako obraz wartości zmiennoprzecinkowej, gdzie każda wartość zmiennoprzecinkowa odzwierciedla poziom ufności
że piksel jest częścią obiektu znajdującego się na danym obszarze. |
{True, False } |
True |
display_names_locale |
Ustawia język etykiet, które mają być używane w przypadku nazw wyświetlanych w kolumnie
metadane modelu zadania, jeśli są dostępne. Wartość domyślna to en dla
Angielski. Do metadanych modelu niestandardowego możesz dodać zlokalizowane etykiety
za pomocą interfejsu TensorFlow Lite Metadata Writer API.
| Kod języka | en |
Przygotuj dane
Przygotuj dane wejściowe jako plik obrazu lub tablicę numpy,
a potem przekonwertować go na obiekt 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)
Bardziej szczegółowy przykład wnioskowania z wykorzystaniem narzędzia Interactive Image segmenter znajdziesz w artykule przykładowego kodu.
Obsługa i wyświetlanie wyników
Wynikiem działania narzędzia Interactive Image segmenter jest lista danych Image
i mogą być
możesz dodać maskę kategorii, maski ufności lub obie te wartości, w zależności od wybranych ustawień.
podczas konfigurowania zadania. Jeśli ustawisz
Od output_category_mask
do True
wyniki to lista zawierająca pojedyncze
podzieloną na segmenty maską w postaci obrazu uint8. Wartość w pikselach wskazuje, czy jest częścią
na wybranym obszarze. rozpoznany indeks kategorii obrazu wejściowego. Jeśli
ustaw wartość True
na output_confidence_masks
, wyniki to lista kanałów,
zawierające wartości pikseli w zakresie [0,1]
odzwierciedlające poziom ufności
wynik piksela należącego do obiektu na wybranym obszarze.
W sekcjach poniżej objaśniamy dane wyjściowe tego zadania:
Maska kategorii
Te obrazy przedstawiają wizualizację danych wyjściowych zadania dla kategorii
maska wartości ze wskazanym obszarem zainteresowania. Każdy piksel to uint8
wartość wskazująca, czy piksel jest częścią obiektu znajdującego się na obszarze
a interesem publicznym. Czarno-białe kółko na drugim obrazie wskazuje wybrane elementy
obszar zainteresowań.
Oryginalny obraz i maska kategorii. Obraz źródłowy z Pascal VOC 2012 w zbiorze danych.
Maska ufności
Wynikiem maski ufności zawierają wartości zmiennoprzecinkowe między [0, 1]
dla
dla każdego kanału wejściowego obrazu. Wyższe wartości oznaczają wyższy poziom ufności, że
piksel obrazu jest częścią obiektu znajdującego się na danym obszarze.