Zadanie MediaPipe Image Embedder pozwala utworzyć liczbową reprezentację obrazu, co jest przydatne przy realizacji różnych zadań związanych z obrazami opartymi na systemach uczących się. Ta funkcja jest często używana do porównywania podobieństwa 2 obrazów za pomocą matematycznych technik porównywania, takich jak podobieństwo cosinusowe. To zadanie działa na danych obrazu z modelem systemów uczących się w postaci danych statycznych lub ciągłego strumienia i generuje liczbową reprezentację danych obrazu w postaci listy wysokowymiarowych wektorów cech (nazywanych też wektorami dystrybucyjnymi) w postaci zmiennoprzecinkowej lub kwantowej.
Rozpocznij
Zacznij od wykonania tego zadania, postępując zgodnie z instrukcjami podanymi w jednym z przewodników po implementacji dla platformy docelowej. Te przewodniki dotyczące poszczególnych platform przeprowadzą Cię przez podstawową implementację tego zadania z użyciem zalecanego modelu i zawierają przykłady kodu 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.
- Region zainteresowań – powoduje umieszczanie w regionie obrazu zamiast na całym obrazie.
- Obliczanie podobieństwa między 2 wektorami cech – wbudowana funkcja narzędziowa służąca do obliczania podobieństwa cosinusowego między 2 wektorami cech
- Kwantyzacja – obsługuje kwantyzację skalarną wektorów cech.
Dane wejściowe zadań | Wyniki działania |
---|---|
Dane wejściowe mogą być jednym z tych typów:
|
Narzędzie do umieszczania obrazów generuje listę reprezentacji właściwościowych, w skład której wchodzą:
|
Opcje konfiguracji
To zadanie ma te opcje konfiguracji:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
running_mode |
Ustawia tryb działania zadania. Są 3 tryby: IMAGE: tryb wprowadzania pojedynczych obrazów. WIDEO: tryb dekodowanych klatek filmu. TRANSMISJA NA ŻYWO: tryb transmisji danych wejściowych na żywo, np. z kamery. W tym trybie należy wywołać metodę resultListener, aby skonfigurować odbiornik, który będzie odbierał wyniki asynchronicznie. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
l2_normalize |
Określa, czy znormalizować zwrócony wektor cech z normą L2. Użyj tej opcji tylko wtedy, gdy model nie zawiera jeszcze natywnej operacji L2_NORMALIZATION TFLite. W większości przypadków tak się dzieje i w ten sposób można uzyskać normalizację L2 za pomocą wnioskowania TFLite bez potrzeby użycia tej opcji. | Boolean |
False |
quantize |
Określa, czy zwrócone umieszczenie ma zostać poddane kwantyzacji do liczby bajtów za pomocą kwantyzacji skalarnej. Osadzone elementy są domyślnie uznawane za normę jednostki, dlatego każdy wymiar na pewno ma wartość [-1,0, 1,0]. Jeśli tak nie jest, użyj opcji l2_normalize. | Boolean |
False |
result_callback |
Ustawia odbiornik, który asynchronicznie otrzymuje wyniki umieszczania, gdy kreator obrazów działa w trybie transmisji na żywo. Tego ustawienia można używać tylko wtedy, gdy tryb biegowy jest ustawiony na LIVE_STREAM |
Nie dotyczy | Nie ustawiono |
Modele
Narzędzie do umieszczania obrazów wymaga pobrania modelu umieszczania obrazów i zapisania go w katalogu projektu. Gdy zaczniesz tworzyć aplikacje z tym zadaniem, zacznij od domyślnego, zalecanego modelu dla platformy docelowej. Inne dostępne modele zwykle komponują się z wymaganiami dotyczącymi wydajności, dokładności, rozdzielczości i zasobów, a w niektórych przypadkach zawierają dodatkowe funkcje.
Model MobileNetV3
Ta rodzina modeli korzysta z architektury MobileNet V3 i została wytrenowana z użyciem danych ImageNet. Ten model wykorzystuje mnożnik 0,75 dla głębokości (liczby cech) w warstwach konwolucyjnych, aby dostosować kompromis między dokładnością i opóźnieniami. Dodatkowo MobileNet V3 jest dostępny w dwóch różnych rozmiarach, małym i dużym, aby dostosować sieć do miejsc pracy o niskim lub dużym wykorzystaniu zasobów.
Nazwa modelu | Wprowadź kształt | Typ kwantyzacji | Wersje |
---|---|---|---|
MobileNet-V3 (mały) | 224 x 224 | Brak (float32) | Najnowsze |
MobileNet-V3 (duży) | 224 x 224 | Brak (float32) | 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 |
---|---|---|
MobileNet-V3 (mały) | 3,94 ms | 7,83 ms |
MobileNet-V3 (duży) | 9,75 ms | 9,08 ms |