Narzędzia programistyczne dla Androida

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):

  1. Kliknij prawym przyciskiem myszy moduł, którego chcesz użyć w modelu TFLite lub kliknij Plik > Nowy > Inne > Model TensorFlow Lite .

  2. 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.

  3. 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.

  4. 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 .