Narzędzia dla programistów na Androida

TensorFlow Lite udostępnia wiele narzędzi do integrowania modeli z aplikacjami na Androida. Na tej stronie opisujemy narzędzia programistyczne do tworzenia aplikacji za pomocą języka Kotlin, Java i C++ oraz narzędzia umożliwiające programowanie TensorFlow Lite w Android Studio.

Narzędzia do tworzenia w Kotlin i Javie

W kolejnych sekcjach opisano narzędzia dla programistów TensorFlow Lite korzystające z języków Kotlin i Java.

Biblioteka TensorFlow Lite

Użyj biblioteki TensorFlow Lite w aplikacji na Androida i dodaj do swojego projektu programisty AAR hostowany w MavenCentral.

Możesz to określić w zależnościach build.gradle w ten sposób:

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

Jeśli używasz nocnych zrzutów, pamiętaj, aby dodać do projektu repozytorium zrzutów Sonatype.

To AAR zawiera pliki binarne wszystkich ABI Androida. Możesz zmniejszyć rozmiar pliku binarnego aplikacji, dodając tylko te interfejsy ABI, które są Ci potrzebne.

Jeśli nie kierujesz reklam na konkretny sprzęt, w większości przypadków pomijaj interfejsy ABI x86, x86_64 i arm32. Możesz to skonfigurować za pomocą poniższej konfiguracji Gradle. Obejmują tylko armeabi-v7a i arm64-v8a i powinny obejmować większość współczesnych urządzeń z Androidem.

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }
}

Więcej informacji o abiFilters znajdziesz w artykule o elementach AI na Androida w dokumentacji pakietu NDK Androida.

Biblioteka pomocy TensorFlow Lite

Biblioteka pomocy technicznej TensorFlow Lite na Androidzie ułatwia integrację modeli z aplikacją. Udostępnia interfejsy API wysokiego poziomu, które pomagają przekształcać nieprzetworzone dane wejściowe w formę wymaganą przez model i interpretować dane wyjściowe modelu, co zmniejsza ilość wymaganego kodu.

Obsługuje typowe formaty danych wejściowych i wyjściowych, w tym obrazy i tablice. Zawiera też jednostki przetwarzania wstępnego i ponownego, które wykonują takie zadania jak zmiana rozmiaru i przycinanie obrazu.

Aby korzystać z biblioteki pomocy w aplikacji na Androida, dodaj narzędzie AAR biblioteki pomocy z TensorFlow Lite hostowane w MavenCentral.

Możesz to określić w zależnościach build.gradle w ten sposób:

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

Jeśli używasz nocnych zrzutów, pamiętaj, aby dodać do projektu repozytorium zrzutów Sonatype.

Informacje o tym, jak zacząć, znajdziesz w bibliotece obsługi klienta TensorFlow Lite na Androidzie.

Minimalna liczba wersji pakietu Android SDK na potrzeby bibliotek

Biblioteka minSdkVersion Wymagania dotyczące urządzenia
tensorflow-lite 21 -
tensorflow-lite-gpu 21 GLES 3.1 lub OpenCL (zwykle dostępne tylko w interfejsie API w wersji 21 i nowszych)
tensorflow-lite-support 21 -
tensorflow-lite-metadata 21 -

W Android Studio

Oprócz bibliotek programistycznych opisanych powyżej Android Studio zapewnia również obsługę integracji modeli TensorFlow Lite, jak opisano poniżej.

Powiązanie modelu ML Android Studio

Funkcja wiązania modelu ML w Android Studio w wersji 4.1 i nowszych pozwala importować pliki modelu .tflite do istniejącej aplikacji na Androida oraz generować klasy 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żywać modelu TFLite, lub kliknij Plik > Nowy > Inne > Model TensorFlow Lite.

  2. Wybierz lokalizację pliku TensorFlow Lite. Pamiętaj, że to narzędzie konfiguruje zależność modułu z powiązaniem modelu ML i automatycznie dodaje wszystkie wymagane zależności do pliku build.gradle modułu Androida.

  3. Kliknij Finish, aby rozpocząć proces importowania. Po zakończeniu importowania narzędzie wyświetla ekran z opisem modelu, w tym jego parametry wejściowe i wyjściowe.

  4. Aby zacząć używać modelu, wybierz Kotlin lub Java, a następnie skopiuj kod i wklej go w sekcji Przykładowy kod.

Aby wrócić do ekranu z informacjami o modelu, kliknij dwukrotnie model TensorFlow Lite w katalogu ml w Android Studio. Więcej informacji o korzystaniu z funkcji modle Binding w Android Studio znajdziesz w informacjach o wersji Android Studio. Omówienie korzystania z powiązania modeli w Android Studio znajdziesz w instructions z przykładowym kodem.

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

Biblioteki C i C++ dla TensorFlow Lite są przeznaczone przede wszystkim dla programistów korzystających z pakietu Android Native Development Kit (NDK) do tworzenia aplikacji. Jeśli tworzysz aplikację przy użyciu NDK, możesz korzystać z TFLite przez C++ na 2 sposoby:

Interfejs API TFLite C

Używanie tego interfejsu API jest zalecane dla deweloperów korzystających z pakietu NDK. Pobierz plik TensorFlow Lite AAR hostowany w MavenCentral, zmień nazwę na tensorflow-lite-*.zip i rozpakuj go. Musisz umieścić 4 pliki nagłówka w folderach headers/tensorflow/lite/ i headers/tensorflow/lite/c/, a odpowiednią bibliotekę dynamiczną libtensorflowlite_jni.so w folderze jni/ w projekcie NDK.

Plik nagłówkowy c_api.h zawiera podstawową dokumentację interfejsu API TFLite C.

Interfejs API TFLite C++

Jeśli chcesz używać TFLite za pomocą interfejsu API C++, możesz utworzyć biblioteki udostępnione w C++:

32-bitowa wersja armeabi-v7a:

bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so

64-bitowa wersja Arm64-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łówka, dlatego w pliku tensorflow/lite/ trzeba umieścić wszystkie pliki nagłówka z repozytorium TensorFlow. Dodatkowo potrzebne są pliki nagłówków z FlatBuffers i Abseil.