Modele niestandardowe z pakietem ML Kit

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Domyślnie interfejsy API ML Kit korzystają z wytrenowanych przez Google modeli systemów uczących się. Te modele zostały opracowane z myślą o szerokim zakresie zastosowań. Zdarza się jednak, że wymagają bardziej konkretnych modeli. Dlatego niektóre interfejsy API ML Kit pozwalają teraz zastępować modele domyślne niestandardowymi modelami TensorFlow Lite.

Zarówno Etykietowanie obrazów, jak i interfejs API Wykrywanie obiektów i śledzenie obsługują niestandardowe modele klasyfikacji obrazów. Są zgodne z wybranymi trenowanymi modelami wysokiej jakości w TensorFlow Hub lub Twoim własnym modelem wytrenowanym z TensorFlow, AutoML Vision Edge lub Kreatora modeli TensorFlow Lite.

Jeśli potrzebujesz niestandardowego rozwiązania dla innych domen lub przypadków użycia, odwiedź stronę poświęconą systemom uczącym się na urządzeniu, gdzie znajdziesz wskazówki dotyczące wszystkich rozwiązań i narzędzi Google dla systemów uczących się.

Zalety korzystania z systemów uczących się z modelami niestandardowymi

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

  • Łatwe w użyciu interfejsy API wysokiego poziomu – nie musisz zajmować się wejściowymi ani wyjściowymi modelami modeli, obsługiwać procesów wstępnego przetwarzania obrazu i po nim ani tworzyć potoku przetwarzania.
  • Nie musisz się martwić o mapowanie etykiet – ML Kit wyodrębnia etykiety z metadanych modelu TFLite i wykonuje mapowanie za Ciebie.
  • Obsługuje modele niestandardowe z wielu różnych źródeł – od wytrenowanych modeli opublikowanych w TensorFlow Hub po nowe modele wytrenowane przy użyciu TensorFlow, AutoML Vision Edge lub Kreatora modeli TensorFlow Lite.
  • Obsługuje modele hostowane przez Firebase. Zmniejsza rozmiar pliku APK, pobierając modele na żądanie. Przesyłaj aktualizacje modelu bez ponownego publikowania aplikacji i łatwe przeprowadzanie testów A/B za pomocą Zdalnej konfiguracji Firebase.
  • Optymalizacja pod kątem integracji z interfejsami API Aparatu w Androidzie.

A zwłaszcza w przypadku wykrywania i śledzenia obiektów:

  • Zwiększ dokładność klasyfikacji przez najpierw zlokalizowanie obiektów i uruchomienie klasyfikatora tylko w powiązanym obszarze obrazu.
  • Interaktywny interfejs w czasie rzeczywistym zapewnia użytkownikom natychmiastowy dostęp do informacji o wykrytych i sklasyfikowanych obiektach.

Użyj już wytrenowanego modelu klasyfikacji obrazów

Możesz używać wytrenowanych modeli TensorFlow Lite, jeśli spełniają zestaw kryteriów. W TensorFlow Hub dostępny jest zestaw sprawdzonych modeli pochodzących od Google i innych twórców, którzy spełniają te kryteria.

Użyj modelu opublikowanego w TensorFlow Hub

TensorFlow Hub oferuje szeroką gamę wytrenowanych przez Google modeli modeli obrazów wielu modeli. Można ich używać z interfejsami API do oznaczania obrazów oraz wykrywania i śledzenia obiektów. Wykonaj te czynności.

  1. Wybierz model z kolekcji zgodnych modeli ML Kit.
  2. Pobierz plik modelu .tflite ze strony z informacjami o modelu. W miarę możliwości wybierz format modelu z metadanymi.
  3. Postępuj zgodnie z naszymi przewodnikami dotyczącymi interfejsu Image Labeling API lub Object Detection and Tracking API, aby dowiedzieć się, jak połączyć plik z modelem 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 pasuje do Twoich potrzeb, możesz wytrenować własny model TensorFlow Lite na różne sposoby. Niektóre z nich zostały szczegółowo opisane poniżej.

Opcje trenowania modelu klasyfikacji obrazów
AutoML Vision Edge
  • Oferowane przez Google Cloud AI
  • Tworzenie najnowocześniejszych modeli klasyfikacji obrazów
  • Łatwo oceń skuteczność i rozmiar
Kreator modeli TensorFlow Lite
  • Ponowne trenowanie modelu (transfer nauczania) zajmuje mniej czasu i wymaga mniejszej ilości danych niż trenowanie modelu od zera
Konwertuj model TensorFlow na TensorFlow Lite
  • Wytrenuj model przy użyciu TensorFlow, a następnie przekonwertuj go na TensorFlow Lite

AutoML Vision Edge

Modele klasyfikacji obrazów trenowane za pomocą AutoML Vision Edge są obsługiwane przez modele niestandardowe w interfejsach API oznaczania obrazów i Object Detection and Tracking API. Interfejsy API obsługują też pobieranie modeli hostowanych przez wdrożenie modelu Firebase.

Aby dowiedzieć się, jak korzystać z modelu wytrenowanego z użyciem AutoML Vision Edge w aplikacjach na Androida i iOS, postępuj zgodnie z instrukcjami dotyczącymi niestandardowego modelu dla każdego interfejsu API w zależności od konkretnego przypadku użycia.

Kreator modeli TensorFlow Lite

Biblioteka TFLite Model Maker upraszcza proces dostosowywania i przekształcania modelu sieci neuronowych TensorFlow do określonych danych wejściowych podczas wdrażania tego modelu w aplikacjach ML na urządzeniu. Możesz przestrzegać klasyfikacji Colab dotyczącej obrazów za pomocą Kreatora modeli TensorFlow Lite.

Aby dowiedzieć się więcej o sposobie korzystania z modelu wytrenowanego za pomocą Kreatora modeli w aplikacjach na Androida i iOS, zapoznaj się z przewodnikami po interfejsie Image Labeling API lub Object Detection and Tracking API (w zależności od konkretnego 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 tym, jak używać modelu TensorFlow Lite w aplikacjach na Androida i iOS, znajdziesz w naszych przewodnikach po interfejsie Image Labeling API lub Object Detection and Tracking API (w zależności od konkretnego przypadku użycia).

Zgodność modelu TensorFlow Lite

Możesz używać dowolnego wytrenowanego modelu klasyfikacji obrazów TensorFlow Lite, pod warunkiem że spełnia on te wymagania:

Tensory

  • Model może mieć tylko jeden tensor wejściowy z tymi ograniczeniami:
    • Dane są w formacie piksela RGB.
    • Dane to typ UINT8 lub FLOAT32. Jeśli typ tensora wejściowego to FLOAT32, musi on określić NormalizationOptions, dołączając Metadane.
    • Tensor ma 4 wymiary : BxHxWxC, gdzie:
      • B to rozmiar wsadu. Musi to być 1 (wnioskowanie w przypadku większych wsadów nie jest obsługiwane).
      • Szerokość i wysokość wysokości wejściowej to W i H.
      • C to liczba oczekiwanych kanałów. Musi to być 3.
  • Model musi mieć co najmniej 1 tensora wyjściowego z klasami N i 2 lub 4 wymiarami:
    • (1 x n)
    • (1x1x1xN)

Metadane

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

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

Zalecamy również dołączenie tych metadanych do tensora wyjściowego TensorMetadata: