Przewodnik po umieszczaniu obrazów

Dwa przykładowe obrazy lodów w rożku z umieszczonymi w nich macierzowo zakodowanymi liczbami

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.

Wypróbuj to!

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:

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:
  • obrazy nieruchome,
  • Dekodowane klatki wideo
  • Transmisja na żywo
Image Embedder zwraca listę reprezentacji właściwościowych, która zawiera:
  • Wstawianie: wektor cech w formie zmiennoprzecinkowej lub skalarnej.
  • Indeks głowy: indeks głowy, która wygenerowała to ujednolicenie.
  • Nazwa głowy (opcjonalnie): nazwa głowy, która wygenerowała ten element.

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