TensorFlow Lite zapewnia szereg narzędzi do integracji modeli z aplikacjami na Androida. Na tej stronie opisano narzędzia programistyczne do tworzenia aplikacji w języku Kotlin, Java i C++, a także obsługę programowania TensorFlow Lite w Android Studio.
Aby szybko rozpocząć pisanie kodu dla systemu Android, zobacz przewodnik Szybki start dla systemu Android
Narzędzia do budowania z Kotlinem i Javą
W poniższych sekcjach opisano narzędzia programistyczne dla TensorFlow Lite korzystające z języków Kotlin i Java.
Biblioteka zadań TensorFlow Lite
Biblioteka zadań TensorFlow Lite zawiera zestaw potężnych i łatwych w użyciu bibliotek specyficznych dla zadań, które twórcy aplikacji mogą tworzyć za pomocą TensorFlow Lite. Zapewnia zoptymalizowane gotowe interfejsy modeli do popularnych zadań uczenia maszynowego, takich jak klasyfikacja obrazów, pytania i odpowiedzi itp. Interfejsy modeli są specjalnie zaprojektowane dla każdego zadania, aby osiągnąć najlepszą wydajność i użyteczność. Biblioteka zadań działa na wielu platformach i jest obsługiwana w językach Java i C++.
Aby użyć biblioteki zadań w aplikacji na Androida, użyj odpowiednio AAR z MavenCentral dla biblioteki Task Vision , biblioteki Task Text i Task Audio Library .
Możesz to określić w swoich zależnościach build.gradle
w następujący sposób:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-task-vision:+'
implementation 'org.tensorflow:tensorflow-lite-task-text:+'
implementation 'org.tensorflow:tensorflow-lite-task-audio:+'
}
Jeśli korzystasz z nocnych migawek, pamiętaj o dodaniu repozytorium migawek Sonatype do swojego projektu.
Zobacz wprowadzenie w omówieniu biblioteki zadań TensorFlow Lite, aby uzyskać więcej informacji.
Biblioteka TensorFlow Lite
Użyj biblioteki TensorFlow Lite w swojej aplikacji na Androida, dodając AAR hostowane w MavenCentral do swojego projektu programistycznego.
Możesz to określić w swoich zależnościach build.gradle
w następujący sposób:
dependencies {
implementation 'org.tensorflow:tensorflow-lite:+'
}
Jeśli korzystasz z nocnych migawek, pamiętaj o dodaniu repozytorium migawek Sonatype do swojego projektu.
Ten raport AAR zawiera pliki binarne dla wszystkich interfejsów ABI systemu Android . Możesz zmniejszyć rozmiar pliku binarnego aplikacji, dołączając tylko te interfejsy ABI, które musisz obsługiwać.
O ile nie celujesz w konkretny sprzęt, w większości przypadków powinieneś pominąć ABI x86
, x86_64
i arm32
. Możesz to skonfigurować za pomocą następującej konfiguracji Gradle. W szczególności obejmuje tylko armeabi-v7a
i arm64-v8a
i powinien obejmować większość nowoczesnych urządzeń z Androidem.
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
}
Aby dowiedzieć się więcej o abiFilters
, zobacz ABI systemu Android w dokumentacji Android NDK.
Biblioteka wsparcia TensorFlow Lite
Biblioteka obsługi systemu Android TensorFlow Lite ułatwia integrację modeli z aplikacją. Zapewnia interfejsy API wysokiego poziomu, które pomagają przekształcać surowe dane wejściowe w formę wymaganą przez model i interpretować dane wyjściowe modelu, zmniejszając ilość wymaganego kodu szablonowego.
Obsługuje popularne formaty danych dla wejść i wyjść, w tym obrazy i tablice. Zapewnia również jednostki przetwarzania wstępnego i końcowego, które wykonują zadania, takie jak zmiana rozmiaru obrazu i przycinanie.
Korzystaj z biblioteki pomocy technicznej w swojej aplikacji na Androida, dołączając bibliotekę pomocy technicznej TensorFlow Lite AAR hostowaną w MavenCentral .
Możesz to określić w swoich zależnościach build.gradle
w następujący sposób:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-support:+'
}
Jeśli korzystasz z nocnych migawek, pamiętaj o dodaniu repozytorium migawek Sonatype do swojego projektu.
Instrukcje, jak zacząć, znajdziesz w Bibliotece obsługi systemu Android TensorFlow Lite .
Minimalne wersje Android SDK dla bibliotek
Biblioteka | minSdkVersion | Wymagania dotyczące urządzeń |
---|---|---|
tensorflow-lite | 19 | Użycie NNAPI wymaga API 27+ |
tensorflow-lite-gpu | 19 | GLES 3.1 lub OpenCL (zwykle dostępne tylko w API 21+ |
tensorflow-lite-sześciokąt | 19 | - |
wsparcie dla tensorflow-lite | 19 | - |
tensorflow-lite-task-vision | 21 | Interfejs API związany z systemem android.graphics.Color wymaga interfejsu API w wersji 26 lub nowszej |
tensorflow-lite-tekst-zadania | 21 | - |
tensorflow-lite-task-audio | 23 | - |
metadane tensorflow-lite | 19 | - |
Korzystanie z Android Studio
Oprócz opisanych powyżej bibliotek programistycznych Android Studio zapewnia również obsługę integracji modeli TensorFlow Lite, jak opisano poniżej.
Powiązanie modelu Android Studio ML
Funkcja ML Model Binding w Android Studio 4.1 i nowszych wersjach umożliwia importowanie plików modeli .tflite
do istniejącej aplikacji na Androida i generowanie klas interfejsów, aby ułatwić integrację kodu z modelem.
Aby zaimportować model TensorFlow Lite (TFLite):
Kliknij prawym przyciskiem myszy moduł, którego chcesz użyć w modelu TFLite lub kliknij Plik > Nowy > Inne > Model TensorFlow Lite .
Wybierz lokalizację pliku TensorFlow Lite. Należy pamiętać, że narzędzia konfigurują zależność modułu z powiązaniem modelu ML i automatycznie dodają wszystkie wymagane zależności do pliku
build.gradle
modułu systemu Android.Kliknij
Finish
, aby rozpocząć proces importowania. Po zakończeniu importu narzędzie wyświetla ekran opisujący model, w tym tensory wejściowe i wyjściowe.Aby rozpocząć korzystanie z modelu, wybierz Kotlin lub Java, skopiuj i wklej kod w sekcji Przykładowy kod .
Możesz powrócić do ekranu informacji o modelu, klikając dwukrotnie model TensorFlow Lite w katalogu ml
w Android Studio. Aby uzyskać więcej informacji na temat korzystania z funkcji Modle Binding w Android Studio, zapoznaj się z informacjami o wersji Android Studio. Aby zapoznać się z omówieniem korzystania z powiązań modelu w Android Studio, zapoznaj się z przykładowymi instrukcjami kodu.
Narzędzia do budowania w C i C++
Biblioteki C i C++ dla TensorFlow Lite są przeznaczone przede wszystkim dla programistów korzystających z Android Native Development Kit (NDK) do tworzenia swoich aplikacji. Istnieją dwa sposoby korzystania z TFLite przez C++, jeśli budujesz swoją aplikację za pomocą NDK:
Interfejs API TFLite C
Korzystanie z tego interfejsu API jest zalecanym podejściem dla programistów korzystających z NDK. Pobierz plik TensorFlow Lite AAR hostowany w MavenCentral , zmień nazwę na tensorflow-lite-*.zip
i rozpakuj go. Musisz dołączyć cztery pliki nagłówkowe w headers/tensorflow/lite/
i headers/tensorflow/lite/c/
oraz odpowiednią bibliotekę dynamiczną libtensorflowlite_jni.so
w folderze jni/
w swoim projekcie NDK.
Plik nagłówkowy c_api.h
zawiera podstawową dokumentację dotyczącą korzystania z interfejsu API TFLite C.
Interfejs API TFLite C++
Jeśli chcesz używać TFLite poprzez API C++, możesz zbudować biblioteki współdzielone C++:
32-bitowy armeabi-v7a:
bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so
64-bitowe ramię64-v8a:
bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so
Obecnie nie ma prostego sposobu na wyodrębnienie wszystkich potrzebnych plików nagłówkowych, więc musisz dołączyć wszystkie pliki nagłówkowe do tensorflow/lite/
z repozytorium TensorFlow. Dodatkowo będziesz potrzebować plików nagłówkowych z FlatBuffers i Abseil .