Przewodnik po umieszczaniu obrazów

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.

Wypróbuj!

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:

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:
  • nieruchome obrazy;
  • Zdekodowane klatki wideo
  • Kanał z obrazem na żywo
Narzędzie do umieszczania obrazów generuje listę reprezentacji właściwościowych, w skład której wchodzą:
  • Umieszczanie: sam wektor cech w postaci zmiennoprzecinkowej lub kwantyzacji skalarnej.
  • Indeks nagłówka: indeks nagłówka, który utworzył dane osadzanie.
  • Nazwa nagłówka (opcjonalnie): nazwa nagłówka, za pomocą którego utworzono obiekt.

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