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.
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:
- Android – przykładowy kod – Przewodnik
- Python – przykładowy kod – przewodnik
- Sieć – przykładowy kod – Przewodnik
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 |
---|---|
|
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:
|
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.
Model MagicTouch (zalecany)
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 |