Przewodnik po interaktywnej segmentacji obrazu

obrazy obok siebie, na których jedno z nich przedstawia zdjęcie krzesła, a drugie to samo zdjęcie z wyróżnionym krzesłem, aby pokazać, że model je wykrył;

Zadanie MediaPipe Interactive Image Segmenter umożliwia podzielenie obrazu na 2 regiony: wybrany obiekt i wszystko inne. Zadanie to wybiera lokalizację na obrazie, szacuje granice obiektu w tej lokalizacji i zwraca dane obrazu określające obszar obiektu. Za pomocą tego zadania możesz interaktywnie wybrać obiekt na obrazie i zastosować do niego efekty, takie jak nakładki kolorów, które wyróżniają obiekt lub rozmycie tła wokół niego. To zadanie działa na danych obrazów za pomocą modelu systemów uczących się (ML) i możesz go używać do przetwarzania pojedynczych obrazów, plików wideo lub ciągłego strumienia wideo.

Wypróbuj to!

Rozpocznij

Aby zacząć korzystać z tego zadania, postępuj zgodnie z jednym z tych przewodników dotyczących wdrażania na platformie docelowej. Te przewodniki dotyczące poszczególnych platform zawierają podstawowe informacje o wdrażaniu tego zadania, w tym zalecany model i przykład kodu z zalecanymi opcjami konfiguracji:

Szczegóły działania

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

Funkcje

  • Przetwarzanie wejściowego obrazu – przetwarzanie obejmuje obrót, zmianę rozmiaru, normalizację i konwersję przestrzeni barw.
Dane wejściowe zadania Dane wyjściowe
  • współrzędne punktu zainteresowania obiektu na obrazie.
  • Plik obrazu do przetworzenia
Interaktywny segmentator obrazów generuje dane segmentowanych obrazów, które mogą zawierać jedną lub obie z tych opcji w zależności od ustawień konfiguracji:
  • CATEGORY_MASK: lista zawierająca maskę segmentowaną jako obraz w formacie uint8. Każda wartość piksela wskazuje, czy jest on częścią obiektu znajdującego się w obszarze zainteresowania.
  • CONFIDENCE_MASK: lista kanałów zawierająca maskę z segmentami z wartościami pikseli w formacie float32. Każda wartość piksela wskazuje poziom pewności, że jest on częścią obiektu znajdującego się w obszarze zainteresowania.

Opcje konfiguracji

To zadanie ma te opcje konfiguracji:

Nazwa opcji Opis Zakres wartości Wartość domyślna
output_category_mask Jeśli ustawisz tę opcję na True, dane wyjściowe będą zawierać maskę segmentacji w postaci obrazu uint8, gdzie każda wartość piksela wskazuje, czy dany piksel należy do obiektu znajdującego się w obszarze zainteresowania. {True, False} False
output_confidence_masks Jeśli ustawisz tę opcję na True, dane wyjściowe będą zawierać maskę segmentacji w postaci obrazu z wartością zmiennoprzecinkową, gdzie każda wartość zmiennoprzecinkowa reprezentuje poziom pewności, że piksel jest częścią obiektu znajdującego się w obszarze zainteresowania. {True, False} True
display_names_locale Określa język etykiet, których należy używać do wyświetlanych nazw podanych w metadanych modelu zadania (jeśli są dostępne). Wartość domyślna to en w przypadku języka angielskiego. Możesz dodawać zlokalizowane etykiety do metadanych modelu niestandardowego, korzystając z interfejsu TensorFlow Lite Metadata Writer API. Kod języka en

Modele

Interaktywne narzędzie do podziału obrazu może być używane z kilkoma modelami ML. Gdy zaczniesz tworzyć modele, zacznij od domyślnego, zalecanego modelu dla platformy docelowej. Inne dostępne modele zwykle stanowią kompromis między wydajnością, dokładnością, rozdzielczością i wymaganiami dotyczącymi zasobów, a w niektórych przypadkach obejmują dodatkowe funkcje.

Ten model identyfikuje segmenty na podstawie współrzędnych obrazu w przypadku obszaru zainteresowania. Model wykorzystuje splotową sieć neuronową podobną do architektury MobileNetV3 z dostosowanym dekoderem.

Nazwa modelu Kształt wejściowy Typ kwantowania Karta modelu Wersje
MagicTouch 512 x 512 x 4 Brak (float32) info Najnowsze

Porównania zadań

Poniżej znajdziesz punkty odniesienia zadań dla całego potoku na podstawie wymienionych powyżej wstępnie wytrenowanych modeli. Wynik opóźnienia to średnie opóźnienie na Pixelu 6 z wykorzystaniem procesora CPU lub GPU.

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