Zadanie MediaPipe Image Embedder umożliwia tworzenie liczbowej reprezentacji obrazu, co jest przydatne do wykonywania różnych zadań związanych z przetwarzaniem obrazów z wykorzystaniem uczenia maszynowego. Ta funkcja jest często używana do porównywania podobieństwa 2 obrazów za pomocą metod matematycznych, takich jak podobieństwo 2 zdań. To zadanie działa na danych obrazów z modelem uczenia maszynowego (ML) jako danych statycznych lub ciągłego strumienia i wyprowadza liczbową reprezentację danych obrazów jako listy wektorów cech o wysokiej wymiarowości, zwanych też wektorami zanurzeniowymi, w postaci liczby zmiennoprzecinkowej lub zaokrąglonej.
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 przy użyciu zalecanego modelu oraz przykłady 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.
- Region zainteresowania – umożliwia umieszczanie w ramce części obrazu zamiast całego obrazu.
- Obliczanie podobieństwa za pomocą embeddingu – wbudowana funkcja pomocnicza do obliczania podobieństwosferycznego między dwoma wektorami cech.
- Kwantyzacja – obsługa kwantyzacji skalarnej wektorów cech.
Dane wejściowe zadania | Dane wyjściowe |
---|---|
Dane wejściowe mogą być jednym z tych typów danych:
|
Image Embedder zwraca listę reprezentacji właściwościowych, która zawiera:
|
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 |
l2_normalize |
Określa, czy zwrócony wektor cech ma być znormalizowany za pomocą normy L2. Używaj tej opcji tylko wtedy, gdy model nie zawiera już natywnej operacji TFLite L2_NORMALIZATION. W większości przypadków tak jest już w ogóle, więc normalizacja L2 jest osiągana przez wnioskowanie TFLite bez potrzeby stosowania tej opcji. | Boolean |
False |
quantize |
Określa, czy zwrócony wektor dystrybucyjny ma być zaokrąglony do bajtów za pomocą kwantyzacji skalarnej. Zakłada się, że wektory mają długość jednostkową, dlatego wartość dowolnego wymiaru musi mieścić się w zakresie [-1,0, 1,0]. Jeśli nie, użyj opcji l2_normalize. | Boolean |
False |
result_callback |
Ustawia odbiornik wyników tak, aby otrzymywał wyniki umieszczania asynchronicznie, gdy moduł umieszczania obrazu jest w trybie transmisji na żywo. Można go używać tylko wtedy, gdy tryb działania ma wartość LIVE_STREAM . |
Nie dotyczy | Nie ustawiono |
Modele
Narzędzie Image Embedder wymaga pobrania i zapisania w katalogu projektu modelu wektora dystrybucyjnego obrazu. Gdy zaczniesz tworzyć aplikację, zacznij od domyślnego, zalecanego modelu na platformie 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 zawierają dodatkowe funkcje.
Model MobileNetV3
Ta rodzina modeli korzysta z architektury MobileNet V3 i została wyszkolona na podstawie danych ImageNet. Ten model używa mnożnika 0,75 dla głębokości (liczby cech) w warstwach konwolucyjnych, aby dostosować kompromis między dokładnością a opóźnieniem. Ponadto MobileNet V3 jest dostępny w 2 rozmiarach: małym i dużym, aby dostosować sieć do niskiego lub wysokiego użycia zasobów.
Nazwa modelu | Kształt wejściowy | Typ kwantowania | Wersje |
---|---|---|---|
MobileNet-V3 (mała) | 224 x 224 | Brak (float32) | Najnowsze |
MobileNet-V3 (large) | 224 x 224 | Brak (float32) | 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 |
---|---|---|
MobileNet-V3 (mała) | 3,94 ms | 7,83 ms |
MobileNet-V3 (duży) | 9,75 ms | 9,08 ms |