Modele niestandardowe za pomocą ML Kit

Domyślnie interfejsy API pakietu ML Kit korzystają z modeli systemów uczących się wytrenowanych przez Google. Modele te są zaprojektowane do stosowania w wielu różnych zastosowaniach. Jednak w niektórych przypadkach wymagane są bardziej ukierunkowane modele. Dlatego niektóre interfejsy API ML Kit umożliwiają teraz zastępowanie modeli domyślnych niestandardowymi modelami TensorFlow Lite.

Interfejs API Oznaczanie obrazów etykietami i Object Detection & Tracking API zapewnia obsługę niestandardowych modeli klasyfikacji obrazów. Są one zgodne z wybranymi wcześniej wytrenowanymi modelami wysokiej jakości w TensorFlow Hub lub z Twoim własnym modelem niestandardowym wytrenowanym za pomocą TensorFlow, AutoML Vision Edge lub TensorFlow Lite Maker.

Jeśli potrzebujesz niestandardowego rozwiązania dla innych domen lub zastosowań, wejdź na stronę systemów uczących się na urządzeniu, aby uzyskać wskazówki na temat wszystkich rozwiązań i narzędzi Google do obsługi systemów uczących się na urządzeniu.

Zalety korzystania z ML Kit z modelami niestandardowymi

Zalety korzystania z niestandardowego modelu klasyfikacji obrazów za pomocą ML Kit:

  • Łatwe w użyciu interfejsy API wysokiego poziomu – nie trzeba zajmować się danymi wejściowymi i wyjściowymi niskopoziomowymi modelami, obsługiwać wstępnego i postaci przetwarzania obrazu ani tworzyć potoku przetwarzania.
  • Nie musisz się martwić o samodzielne mapowanie etykiet, ML Kit wyodrębni etykiety z metadanych modelu TFLite i zrobi to za Ciebie.
  • Obsługuje modele niestandardowe z wielu źródeł, od już wytrenowanych modeli opublikowanych w TensorFlow Hub po nowe modele wytrenowane w TensorFlow, AutoML Vision Edge lub TensorFlow Lite Maker.
  • Obsługuje modele hostowane przez Firebase. Zmniejsza rozmiar pliku APK przez pobieranie modeli na żądanie. Przesyłaj aktualizacje modeli bez ponownego publikowania aplikacji i przeprowadzaj łatwe testy A/B za pomocą Zdalnej konfiguracji Firebase.
  • Zoptymalizowane pod kątem integracji z interfejsami API aparatu w Androidzie.

A dokładniej w przypadku wykrywania i śledzenia obiektów:

  • Zwiększ dokładność klasyfikacji, najpierw lokalizując obiekty, i uruchamiaj klasyfikator tylko na powiązanym obrazie.
  • Zapewnianie użytkownikom interaktywnej interakcji w czasie rzeczywistym dzięki natychmiastowemu przekazywaniu informacji o obiektach w miarę ich wykrywania i klasyfikowania.

Użyj wytrenowanego modelu klasyfikacji obrazów

Możesz użyć już wytrenowanych modeli TensorFlow Lite, pod warunkiem że spełniają one zestaw kryteriów. W TensorFlow Hub oferujemy zestaw sprawdzonych modeli – od Google i innych twórców modeli – które spełniają te kryteria.

Użyj modelu opublikowanego w TensorFlow Hub

TensorFlow Hub udostępnia szeroką gamę wytrenowanych modeli klasyfikacji obrazów pochodzących od różnych twórców modeli, których można używać z interfejsami API do oznaczania obrazów oraz wykrywania i śledzenia obiektów. Wykonaj te czynności:

  1. Wybierz model z kolekcji modeli zgodnych z ML Kit.
  2. Pobierz plik modelu .tflite ze strony szczegółów modelu. Jeśli to możliwe, wybierz format modelu z metadanymi.
  3. Postępuj zgodnie z naszymi przewodnikami po interfejsach Image Labeling API lub Object Detection and Tracking API, aby dowiedzieć się, jak połączyć plik modelu z projektem i używać go w aplikacji na Androida lub iOS.

Wytrenuj własny model klasyfikacji obrazów

Jeśli żaden wytrenowany model klasyfikacji obrazów nie spełnia Twoich potrzeb, możesz wytrenować własny model TensorFlow Lite na różne sposoby. Niektóre z nich zostały opisane poniżej i omówione bardziej szczegółowo.

Opcje trenowania własnego modelu klasyfikacji obrazów
AutoML Vision Edge
  • Oferowane przez AI od Google Cloud
  • Tworzenie najnowocześniejszych modeli klasyfikacji obrazów
  • Z łatwością oceniaj skuteczność i rozmiar
Kreator modeli TensorFlow Lite
  • Ponowne wytrenowanie modelu (uczenie się transferu) zajmuje mniej czasu i wymaga mniej danych niż trenowanie modelu od zera
Konwertowanie modelu TensorFlow na TensorFlow Lite
  • Wytrenuj model w TensorFlow i przekonwertuj go na TensorFlow Lite

AutoML Vision Edge

Modele klasyfikacji obrazów wytrenowane z użyciem AutoML Vision Edge są obsługiwane przez modele niestandardowe w interfejsach API Image Labeling oraz Object Detection and Tracking API. Te interfejsy API obsługują też pobieranie modeli hostowanych przez wdrożenie modeli Firebase.

Aby dowiedzieć się więcej o korzystaniu z modelu wytrenowanego z użyciem AutoML Vision Edge w aplikacjach na Androida i iOS, postępuj zgodnie z przewodnikami po modelach niestandardowych dla każdego interfejsu API w zależności od przypadku użycia.

Kreator modeli TensorFlow Lite

Biblioteka TFLite Model Maker upraszcza proces dostosowywania i konwertowania modelu sieci neuronowej TensorFlow w określone dane wejściowe podczas wdrażania tego modelu na potrzeby aplikacji ML na urządzeniu. Zapoznaj się z instrukcjami dotyczącymi klasyfikacji obrazów w Colab w Kreatorze modeli TensorFlow Lite.

Więcej informacji o korzystaniu z modelu wytrenowanego w Kreatorze modeli w aplikacjach na Androida i iOS znajdziesz w przewodnikach po interfejsie Image Labeling API lub Object Detection and Tracking API (w zależności od przypadku użycia).

Modele utworzone za pomocą konwertera TensorFlow Lite

Jeśli masz już model klasyfikacji obrazów TensorFlow, możesz go przekonwertować za pomocą konwertera TensorFlow Lite. Upewnij się, że utworzony model spełnia poniższe wymagania dotyczące zgodności.

Więcej informacji o korzystaniu z modelu TensorFlow Lite w aplikacjach na Androida i iOS znajdziesz w przewodnikach po interfejsie Image Labeling API lub Object Detection and Tracking API (w zależności od przypadku użycia).

Zgodność modelu TensorFlow Lite

Możesz użyć dowolnego wytrenowanego modelu klasyfikacji obrazów TensorFlow Lite, o ile spełnia on te wymagania:

Tensory

  • Model może mieć tylko 1 tensor wejściowy z tymi ograniczeniami:
    • Dane są w formacie pikseli RGB.
    • Typ danych: UINT8 lub FLOAT32. Jeśli typem tensora wejściowego jest FLOAT32, musi on określić NormalizationOptions, dołączając metadane.
    • Tensor ma 4 wymiary : BxWxSxC, gdzie:
      • B to rozmiar wsadu. Musi wynosić 1 (wnioskowanie w przypadku większych wsadów nie jest obsługiwane).
      • W polu „W” i „H” podana jest szerokość i wysokość.
      • C to liczba oczekiwanych kanałów. Musi to być 3.
  • Model musi mieć co najmniej 1 tensor wyjściowy z klasami N i 2 lub 4 wymiarami:
    • (1xN)
    • (1x1x1xN)
  • Obecnie w pełni obsługiwane są tylko modele jednogłówkowe. Modele wielostronne mogą uzyskać nieoczekiwane wyniki.

Metadane

Możesz dodawać metadane do pliku TensorFlow Lite zgodnie z opisem w sekcji Dodawanie metadanych do modelu TensorFlow Lite.

Aby używać modelu z tensorem wejściowym FLOAT32, musisz określić w metadanych wartość NormalizationOptions.

Zalecamy też dołączenie tych metadanych do tensora wyjściowego TensorMetadata:

  • Mapa etykiet określająca nazwę każdej klasy wyjściowej w postaci elementu AssociatedFile o typie TENSOR_AXIS_LABELS (w przeciwnym razie mogą zostać zwrócone tylko liczbowe indeksy klas wyjściowych)
  • Domyślny próg wyniku, poniżej którego wyniki są uważane za zbyt niskie, aby mogły zostać zwrócone, jako ProcessUnit z ScoreThresholdingOptions.