Przewodnik po segmentacji obrazu

Zadanie MediaPipe Image segmenter umożliwia podział obrazów na regiony na podstawie wstępnie zdefiniowanych kategorii reklam. Możesz użyć tej funkcji do identyfikacji określonych obiektów lub tekstury, a potem stosować efekty wizualne, takie jak rozmycie tła. To zadanie kilka modeli stworzonych specjalnie do segmentowania funkcji w danych zdjęć, w tym:

  • Osoba i tło
  • Tylko włosy osoby
  • Włosy, twarz, skóra, ubrania i akcesoria osoby

To zadanie działa na danych obrazów za pomocą modelu systemów uczących się z jednym obrazów lub ciągłego strumienia wideo. Zwraca listę posegmentowanych regionów, reprezentujące obiekty lub obszary na obrazie, w zależności od wybranego modelu. wyboru.

Wypróbuj!

Rozpocznij

Aby zacząć z niego korzystać, postępuj zgodnie z jednym z tych przewodników po implementacji platformy docelowej. Te przewodniki dotyczące konkretnych platform przeprowadzą Cię przez wdrożenie tego zadania, w tym zalecany model i przykładowy kod z zalecanymi opcjami konfiguracji:

Szczegóły zadania

W tej sekcji opisujemy możliwości, dane wejściowe, wyjściowe i konfigurację. aby wykonać tę czynność.

Funkcje

  • Wprowadzanie obrazów – przetwarzanie obrazu – przetwarzanie obejmuje obrót, zmianę rozmiaru normalizację i konwersję przestrzeni kolorów.
Dane wejściowe zadania Wyniki zadania
Dostępne są te typy danych:
  • Nieruchome obrazy
  • Zdekodowane klatki filmu
  • Obraz na żywo
Narzędzie do segmentowania obrazów generuje podział na segmenty danych obrazu, które mogą zawierać jeden lub obie te opcje, zależnie od wybranych opcji konfiguracji:
  • CATEGORY_MASK: lista zawierająca maskę podzieloną na segmenty. w formacie uint8. Każda wartość w pikselach wskazuje, czy należy do konkretnej kategorii segmentu obsługiwanej przez model.
  • CONFIDENCE_MASK: lista kanałów zawierających podzieloną na segmenty maskę z wartościami pikseli w formacie float32. Każda wartość piksela wskazuje poziom ufności, że należy on do określonej kategorii obsługiwane przez model.

Opcje konfiguracji

To zadanie zawiera te opcje konfiguracji:

Nazwa opcji Opis Zakres wartości Wartość domyślna
running_mode Ustawia tryb działania zadania. Są trzy tryby:

IMAGE: tryb wprowadzania pojedynczego obrazu.

WIDEO: tryb zdekodowanych klatek filmu.

LIVE_STREAM: tryb transmisji danych wejściowych na przykład z kamery. W tym trybie detektor wyników musi mieć wartość wywołano, aby skonfigurować detektor i otrzymywać wyniki asynchronicznie.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
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 zwycięską kategorię . {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 punktację danej kategorii. {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
result_callback Konfiguruje detektor wyników, który ma otrzymywać wyniki segmentacji asynchronicznie, gdy segmenter obrazów działa w trybie LIVE_STREAM. Tej opcji można używać tylko wtedy, gdy tryb działania jest ustawiony na LIVE_STREAM Nie dotyczy Nie dotyczy

Modele

Segmentacji obrazów można używać z więcej niż jednym modelem ML. Większość z następujących modele segmentacji są tworzone i trenowane tak, aby przeprowadzały segmentację z użyciem obrazów ludzi. Model DeepLab-v3 jest jednak ogólny dzięki segmentowaniu obrazów do celów. Wybierz model, który najlepiej pasuje do Twojej aplikacji.

Model segmentacji selfie

Ten model umożliwia segmentowanie portretu osoby i może być używany do zastępowania lub modyfikowanie tła zdjęcia. Model generuje 2 kategorie: tło w indeksie 0 i osoba w indeksie 1. Ten model ma wersje z o różnych kształtach do wprowadzania danych, w tym w wersji kwadratowej i poziomej, mogą być skuteczniejsze w aplikacjach, w których dane wejściowe mają zawsze taki kształt, takich jak rozmowy wideo.

Nazwa modelu Wpisz kształt Typ kwantyzacji Karta modelu Wersje
SelfieSegmenter (kwadrat) 256 x 256 liczba zmiennoprzecinkowa 16 informacje Najnowsze
SelfieSegmenter (orientacja pozioma) 144 x 256 liczba zmiennoprzecinkowa 16 informacje Najnowsze

Model segmentacji włosów

Ten model wykonuje zdjęcie osoby, lokalizuje włosy na jej głowie, generuje mapę segmentacji obrazu dla włosów. Możesz użyć tego modelu do zmiana kolorystyki włosów lub stosowanie innych efektów Model na wyjściu generuje kategorie podziału na segmenty:

0 - background
1 - hair
Nazwa modelu Wpisz kształt Typ kwantyzacji Karta modelu Wersje
HairSegmenter 512 x 512 Brak (float32) informacje Najnowsze

Wieloklasowy model segmentacji selfie

Ten model wykonuje zdjęcie osoby, lokalizuje obszary w różnych miejscach, włosy, skóra i odzież, a następnie generuje mapę segmentacji dla tych elementów. Za pomocą tego modelu możesz stosować różne efekty do ludzi na obrazach lub film. Model na wyjściu generuje te kategorie podziału na segmenty:

0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
Nazwa modelu Wpisz kształt Typ kwantyzacji Karta modelu Wersje
SelfieMulticlass (256 x 256) 256 x 256 Brak (float32) informacje Najnowsze

Model DeepLab-v3

Ten model identyfikuje segmenty dla wielu kategorii, w tym tła, osoba, kot, pies i roślina doniczkowa. Model wykorzystuje zieloną piramidę przestrzenną w celu zebrania informacji z dłuższego zakresu. Więcej informacji: DeepLab-v3.

Nazwa modelu Wpisz kształt Typ kwantyzacji Wersje
DeepLab V3 257 x 257 Brak (float32) Najnowsze

Testy porównawcze zadań

Oto testy porównawcze zadań dla całego potoku oparte na wyżej wytrenowanych modeli ML. Wynik opóźnienia to średnie opóźnienie w przypadku używania CPU / GPU na Pixelu 6.

Nazwa modelu Opóźnienie procesora Opóźnienie GPU
SelfieSegmenter (kwadrat) 33,46 ms 35,15 ms
SelfieSegmenter (orientacja pozioma) 34,19 ms 33,55 ms
HairSegmenter 57,90 ms 52,14 ms
SelfieMulticlass (256 x 256) 217,76 ms 71,24 ms
DeepLab V3 123,93 ms 103,30 ms