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 wykorzystania w tworzeniu aplikacji w językach Kotlin, Java i C++, a także obsługę programowania TensorFlow Lite w Android Studio.

Aby szybko rozpocząć pisanie kodu systemu Android, zobacz Przewodnik Szybki start dla systemu Android

Narzędzia do budowania w Kotlinie i Javie

W poniższych sekcjach opisano narzędzia programistyczne dla TensorFlow Lite, które korzystają z języków Kotlin i Java.

Biblioteka zadań TensorFlow Lite

Biblioteka zadań TensorFlow Lite zawiera zestaw wydajnych i łatwych w użyciu bibliotek specyficznych dla zadań, które umożliwiają programistom aplikacji tworzenie za pomocą TensorFlow Lite. Zapewnia zoptymalizowane, gotowe do użycia 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 korzystać z biblioteki zadań w aplikacji na Androida, użyj odpowiednio AAR z MavenCentral dla biblioteki Task Vision , biblioteki zadań tekstowych i biblioteki audio zadań .

Możesz to określić w 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 używasz nocnych migawek, pamiętaj o dodaniu repozytorium migawek Sonatype do swojego projektu.

Aby uzyskać więcej informacji, zobacz wprowadzenie w omówieniu biblioteki zadań TensorFlow Lite .

Biblioteka TensorFlow Lite

Użyj biblioteki TensorFlow Lite w swojej aplikacji na Androida, dodając AAR hostowany w MavenCentral do swojego projektu programistycznego.

Możesz to określić w zależnościach build.gradle w następujący sposób:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:+'
}

Jeśli używasz nocnych migawek, pamiętaj o dodaniu repozytorium migawek Sonatype do swojego projektu.

Ten plik 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ć.

Jeśli nie jesteś ukierunkowany na konkretny sprzęt, w większości przypadków powinieneś pominąć interfejsy 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 Interfejsy ABI systemu Android w dokumentacji Android NDK.

Biblioteka wsparcia TensorFlow Lite

Biblioteka pomocy technicznej TensorFlow Lite dla systemu Android ułatwia integrację modeli z aplikacją. Zapewnia interfejsy API wysokiego poziomu, które pomagają przekształcać surowe dane wejściowe do postaci wymaganej przez model i interpretować dane wyjściowe modelu, zmniejszając ilość wymaganego kodu szablonowego.

Obsługuje popularne formaty danych wejściowych i wyjściowych, w tym obrazy i tablice. Zapewnia także jednostki przetwarzania wstępnego i końcowego, które wykonują takie zadania, jak zmiana rozmiaru i kadrowanie obrazu.

Skorzystaj z biblioteki pomocy technicznej w aplikacji na Androida, dołączając bibliotekę pomocy technicznej TensorFlow Lite AAR hostowaną w MavenCentral .

Możesz to określić w zależnościach build.gradle w następujący sposób:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-support:+'
}

Jeśli używasz nocnych migawek, pamiętaj o dodaniu repozytorium migawek Sonatype do swojego projektu.

Aby uzyskać instrukcje dotyczące rozpoczęcia, zobacz Bibliotekę pomocy technicznej TensorFlow Lite dla systemu Android .

Minimalne wersje zestawu SDK systemu Android dla bibliotek

Biblioteka minSdkVersion Wymagania dotyczące urządzenia
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 -
obsługa tensorflow-lite 19 -
wizja zadań tensorflow-lite 21 Interfejs API związany z android.graphics.Color wymaga API 26+
tekst-zadania tensorflow-lite 21 -
tensorflow-lite-task-audio 23 -
metadane tensorflow-lite 19 -

Korzystanie z Android Studio

Oprócz opisanych powyżej bibliotek programistycznych Android Studio zapewnia także 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 modelu .tflite do istniejącej aplikacji na Androida i generowanie klas interfejsu, aby ułatwić integrację kodu z modelem.

Aby zaimportować model TensorFlow Lite (TFLite):

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

  2. Wybierz lokalizację pliku TensorFlow Lite. Należy pamiętać, że narzędzie konfiguruje zależność modułu za pomocą powiązania modelu ML i automatycznie dodaje wszystkie wymagane zależności do pliku build.gradle modułu Android.

  3. Kliknij Finish , aby rozpocząć proces importowania. Po zakończeniu importu narzędzie wyświetla ekran opisujący model, w tym jego 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, zobacz Informacje o wersji Android Studio. Aby zapoznać się z omówieniem korzystania z powiązania modelu w Android Studio, zobacz instrukcje dotyczące przykładowego kodu.

Narzędzia do budowania w językach C i C++

Biblioteki C i C++ dla TensorFlow Lite są przeznaczone przede wszystkim dla programistów korzystających z zestawu Android Native Development Kit (NDK) do tworzenia swoich aplikacji. Jeśli tworzysz aplikację za pomocą NDK, możesz używać TFLite w C++ na dwa sposoby:

API TFLite C

Korzystanie z tego interfejsu API jest zalecanym podejściem dla programistów korzystających z NDK. Pobierz plik AAR TensorFlow Lite hostowany w MavenCentral , zmień nazwę na tensorflow-lite-*.zip i rozpakuj go. Musisz dołączyć cztery pliki nagłówkowe w folderach headers/tensorflow/lite/ i headers/tensorflow/lite/c/ oraz odpowiednią bibliotekę dynamiczną libtensorflowlite_jni.so w folderze jni/ w projekcie NDK.

Plik nagłówkowy c_api.h zawiera podstawową dokumentację dotyczącą korzystania z API TFLite C.

API TFLite C++

Jeśli chcesz używać TFLite poprzez API C++, możesz zbudować biblioteki współdzielone C++:

32-bitowa 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 wyodrębnienia wszystkich potrzebnych plików nagłówkowych, dlatego należy dołączyć wszystkie pliki nagłówkowe do tensorflow/lite/ z repozytorium TensorFlow. Dodatkowo będziesz potrzebować plików nagłówkowych z FlatBuffers i Abseil .