Zadanie MediaPipe Image Segmenter umożliwia dzielenie obrazów na regiony na podstawie zdefiniowanych wcześniej kategorii. Dzięki tej funkcji możesz identyfikować określone obiekty lub tekstury, a następnie stosować efekty wizualne, takie jak rozmycie tła. To zadanie obejmuje kilka modeli specjalnie trenowanych pod kątem segmentacji osób i ich cech na podstawie danych obrazowych, w tym:
- Osoba i tło
- Tylko włosy
- włosy, twarz, skóra, ubrania i akcesoria
To zadanie działa na danych obrazów z modelem systemów uczących się, z pojedynczymi obrazami lub ciągłym strumieniem wideo. Wypisuje listę podzielonych na segmenty obszarów reprezentujących obiekty lub obszary na obrazie w zależności od wybranego modelu.
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:
- Android – przykład kodu – przewodnik
- Python – przykład kodu Przewodnik
- Sieć – przykład kodu – przewodnik
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 |
---|---|
Dane wejściowe mogą być jednym z tych typów danych:
|
Narzędzie do podziału obrazu na segmenty generuje dane obrazu podzielonego na segmenty, które mogą zawierać jeden lub oba z tych elementów, w zależności od ustawień konfiguracji:
|
Opcje konfiguracji
To zadanie ma te opcje konfiguracji:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
running_mode |
Ustawia tryb działania zadania. Dostępne są 3 tryby: OBRAZ: tryb dla pojedynczych obrazów wejściowych. FILM: tryb dekodowanych klatek filmu. LIVE_STREAM: tryb transmisji na żywo danych wejściowych, takich jak dane z kamery. W tym trybie należy wywołać metodę resultListener, aby skonfigurować odbiornik, który będzie asynchronicznie odbierał wyniki. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
output_category_mask |
Jeśli ustawisz tę opcję na True , dane wyjściowe będą zawierać maskę segmentacji w postaci obrazu uint8, w którym każda wartość piksela wskazuje zwycięską kategorię. |
{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 mapę współczynnika zaufania danej kategorii. |
{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 |
result_callback |
Ustawia odbiornik wyników tak, aby asynchronicznie otrzymywał wyniki podziału na segmenty, gdy segmentator obrazu jest w trybie LIVE_STREAM .
Można go używać tylko wtedy, gdy tryb działania ma wartość LIVE_STREAM . |
Nie dotyczy | Nie dotyczy |
Modele
Segmentator obrazów może być używany z kilkoma modelami systemów uczących się. Większość z tych modeli segmentacji jest tworzona i trenowana do wykonywania segmentacji na podstawie obrazów przedstawiających ludzi. Model DeepLab-v3 został jednak stworzony jako ogólny segmentator obrazu. Wybierz model, który najlepiej pasuje do Twojej aplikacji.
Model segmentacji selfie
Ten model może podzielić na segmenty portret osoby i może służyć do zastępowania lub modyfikowania tła na zdjęciu. Model zwraca 2 kategorie: tło (indeks 0) i osoba (indeks 1). Ten model ma wersje z różnymi kształtami danych wejściowych, w tym wersję kwadratową i wersję poziomą, które mogą być bardziej wydajne w przypadku aplikacji, w których dane wejściowe mają zawsze ten kształt, na przykład w przypadku połączeń wideo.
Nazwa modelu | Kształt wejściowy | Typ kwantowania | Karta modelu | Wersje |
---|---|---|---|---|
SelfieSegmenter (kwadrat) | 256 x 256 | float 16 | info | Najnowsze |
SelfieSegmenter (orientacja pozioma) | 144 x 256 | float 16 | info | Najnowsze |
Model segmentacji włosów
Ten model pobiera zdjęcie osoby, wykrywa włosy na jej głowie i wyprowadza mapę podziału obrazu na obszary odpowiadające włosom. Możesz użyć tego modelu do zmiany koloru włosów lub zastosowania innych efektów. Model wyprowadza te kategorie segmentacji:
0 - background
1 - hair
Nazwa modelu | Kształt wejściowy | Typ kwantowania | Karta modelu | Wersje |
---|---|---|---|---|
HairSegmenter | 512 x 512 | Brak (float32) | info | Najnowsze |
Model segmentacji selfie wieloklasowego
Model ten przetwarza obraz osoby, wykrywa różne obszary, takie jak włosy, skóra i odzież, a następnie generuje mapę podziału obrazu na te elementy. Możesz użyć tego modelu do stosowania różnych efektów do osób na zdjęciach lub filmach. Model wyprowadza te kategorie segmentacji:
0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
Nazwa modelu | Kształt wejściowy | Typ kwantowania | Karta modelu | Wersje |
---|---|---|---|---|
SelfieMulticlass (256 x 256) | 256 x 256 | Brak (float32) | info | Najnowsze |
model DeepLab-v3.
Ten model identyfikuje segmenty w różnych kategoriach, takich jak tło, osoba, kot, pies i roślina w doniczce. Model wykorzystuje łączenie piramidalne z atrous, aby rejestrować informacje z większego zakresu. Więcej informacji znajdziesz w DeepLab-v3.
Nazwa modelu | Kształt wejściowy | Typ kwantowania | Wersje |
---|---|---|---|
DeepLab-V3 | 257 x 257 | Brak (float32) | Najnowsze |
Porównania zadań
Poniżej znajdziesz benchmarki zadań dla całego przepływu danych opartego na wytrenowanych wstępnie modelach. Wynik opóźnienia to średnie opóźnienie na Pixelu 6 z wykorzystaniem procesora CPU lub GPU.
Nazwa modelu | Czas oczekiwania 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 |