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.
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
- Web – 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 |
---|---|
|
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:
|
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.
Model MagicTouch (zalecany)
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 |