Przewodnik po interaktywnej segmentacji obrazu

Zadanie MediaPipe Interactive Image Segmenter pozwala podzielić obraz na 2 regiony: wybrany obiekt i wszystkie pozostałe. Zadanie określa lokalizację na obrazie, szacuje granice obiektu w tej lokalizacji i zwraca dane obrazu określające obszar obiektu. Możesz użyć tego zadania do interaktywnego wyboru obiektu na obrazie i zastosowania na nim efektów takich jak kolorowe nakładki wyróżniające obiekt lub rozmycie wokół niego tła. To zadanie operuje na danych obrazów z użyciem modelu systemów uczących się (ML). Możesz go używać w przypadku pojedynczych obrazów, plików wideo lub ciągłego strumienia wideo.

Wypróbuj!

Rozpocznij

Zacznij od wykonania tego zadania, postępując zgodnie z instrukcjami podanymi w jednym z przewodników po implementacji dla platformy docelowej. Przewodniki dotyczące poszczególnych platform przeprowadzą Cię przez podstawowe wdrożenie tego zadania, w tym zalecany model i przykładowy kod z zalecanymi opcjami konfiguracji:

Szczegóły działania

W tej sekcji opisujemy możliwości, dane wejściowe, dane wyjściowe i opcje konfiguracji tego zadania.

Funkcje

  • Przetwarzanie obrazu wejściowego – przetwarzanie obejmuje obrót obrazu, zmianę jego rozmiaru, normalizację i konwersję przestrzeni kolorów.
Dane wejściowe zadań Wyniki działania
  • Współrzędne ciekawego miejsca dla obiektu na zdjęciu
  • Plik obrazu do przetworzenia
Interaktywny podział obrazów na segmenty generuje dane o posegmentowanych obrazach, które w zależności od ustawionych opcji konfiguracji mogą zawierać jeden lub oba z tych elementów:
  • CATEGORY_MASK: lista zawierająca maskę podzieloną na segmenty jako obraz w formacie uint8. Każda wartość w pikselu wskazuje, czy jest on częścią obiektu znajdującego się w danym obszarze.
  • CONFIDENCE_MASK: lista kanałów zawierających maskę podzieloną na segmenty z wartościami pikseli w formacie float32. Każda wartość w pikselu oznacza poziom pewności, że stanowi on część obiektu znajdującego się w danym obszarze.

Opcje konfiguracji

To zadanie ma te opcje konfiguracji:

Nazwa opcji Opis Zakres wartości Wartość domyślna
output_category_mask Jeśli ustawisz wartość True, dane wyjściowe będą zawierały maskę segmentacji w postaci obrazu uint8, w którym każda wartość piksela wskazuje, czy piksel jest częścią obiektu znajdującego się w ciekawym obszarze. {True, False} False
output_confidence_masks Jeśli ma wartość True, dane wyjściowe zawierają maskę podziału w postaci obrazu z wartościami zmiennoprzecinkowymi, w których każda wartość zmiennoprzecinkowa reprezentuje stopień pewności, że piksel jest częścią obiektu znajdującego się w ciekawym obszarze. {True, False} True
display_names_locale Ustawia język etykiet, które mają być używane w przypadku nazw wyświetlanych w metadanych modelu zadania (jeśli są dostępne). Wartość domyślna w języku angielskim to en. Za pomocą TensorFlow Lite MetadataWriter API możesz dodawać zlokalizowane etykiety do metadanych modelu niestandardowego. Kod języka en

Modele

Interaktywnego segmentacji obrazów można używać z więcej niż jednym modelem ML. Gdy zaczniesz tworzyć aplikacje z tym zadaniem, zacznij od domyślnego, zalecanego modelu dla platformy docelowej. Inne dostępne modele zwykle kompensują wymagania dotyczące wydajności, dokładności, rozdzielczości i zasobów, a w niektórych przypadkach zawierają dodatkowe funkcje.

Ten model identyfikuje segmenty o współrzędnych obrazach danego obszaru. Model korzysta z konwolucyjnej sieci neuronowej podobnej do architektury MobileNetV3 z dostosowanym dekoderem.

Nazwa modelu Wprowadź kształt Typ kwantyzacji Karta modelu Wersje
MagicTouch 512 x 512 x 4 Brak (float32) informacje Najnowsze

Testy porównawcze działań

Oto porównania zadań dla całego potoku na podstawie powyższych wytrenowanych modeli. Wynik opóźnienia to średnie opóźnienie na Pixelu 6 korzystającym z procesora / GPU.

Nazwa modelu Czas oczekiwania procesora Opóźnienie GPU
MagicTouch 130,11 ms 67,25 ms