Narzędzia programistyczne dla Androida

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

TensorFlow Lite zapewnia szereg narzędzi do integracji modeli z aplikacjami na Androida. Ta strona opisuje narzędzia programistyczne do wykorzystania w budowaniu aplikacji z Kotlin, Java i C++, a także wsparcie dla rozwoju TensorFlow Lite w Android Studio.

Aby szybko rozpocząć pisanie kodu na Androida, zobacz Szybki start dla Androida

Narzędzia do budowania z Kotlin i Java

Poniższe sekcje opisują narzędzia programistyczne dla TensorFlow Lite, które wykorzystują języki Kotlin i Java.

Biblioteka zadań TensorFlow Lite

Biblioteka zadań TensorFlow Lite zawiera zestaw potężnych i łatwych w użyciu bibliotek zadań dla programistów aplikacji, którzy mogą tworzyć za pomocą TensorFlow Lite. Zapewnia zoptymalizowane, gotowe do użycia interfejsy modeli dla popularnych zadań uczenia maszynowego, takich jak klasyfikacja obrazów, pytania i odpowiedzi itp. Interfejsy modelu 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 Task Text i Task Audio Library .

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 korzystasz z nocnych migawek, pamiętaj, aby dodać do projektu repozytorium migawek Sonatype .

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

Biblioteka TensorFlow Lite

Skorzystaj z biblioteki TensorFlow Lite w swojej aplikacji na Androida, dodając do swojego projektu programistycznego AAR hostowany 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:+'
}

Jeśli korzystasz z nocnych migawek, pamiętaj, aby dodać do projektu repozytorium migawek Sonatype .

Ten AAR zawiera pliki binarne dla wszystkich interfejsów ABI systemu Android . Możesz zmniejszyć rozmiar pliku binarnego aplikacji, włączając tylko te ABI, które musisz obsługiwać.

O ile nie celujesz w 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. Obejmuje on w szczególności 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 Android ABIs w dokumentacji Android NDK.

Biblioteka pomocy technicznej 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 do postaci wymaganej przez model i interpretować dane wyjściowe modelu, zmniejszając ilość wymaganego kodu wzorcowego.

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ą takie zadania, jak zmiana rozmiaru i przycinanie obrazu.

Skorzystaj 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 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, aby dodać do projektu repozytorium migawek Sonatype .

Aby uzyskać instrukcje, jak zacząć, zapoznaj się z Biblioteką pomocy technicznej systemu Android TensorFlow Lite .

Minimalne wersje Android SDK dla bibliotek

Biblioteka minSdkVersion Wymagania dotyczące urządzenia
Tensorflow-lite 19 Użycie NNAPI wymaga interfejsu API 27+
Tensorflow-lite-gpu 19 GLES 3.1 lub OpenCL (zazwyczaj dostępne tylko w API 21+
tensorflow-lite-hexagon 19 -
Tensorflow-lite-support 19 -
tensorflow-lite-zadania-wizja 21 API związane z android.graphics.Color wymaga interfejsu API 26+
tekst-zadania-tensorflow-lite-zadania 21 -
tensorflow-lite-task-audio 23 -
tensorflow-lite-metadane 19 -

Korzystanie z Android Studio

Oprócz bibliotek programistycznych opisanych powyżej, Android Studio zapewnia również wsparcie dla integracji modeli TensorFlow Lite, jak opisano poniżej.

Wiązanie modelu Android Studio ML

Funkcja powiązania modelu ML w Android Studio 4,1 i nowszych umożliwia importowanie plików modelu .tflite do istniejącej aplikacji systemu Android i generowanie klas interfejsu, aby ułatwić integrację kodu z modelem.

Aby zaimportować model TensorFlow Lite (TFLite):

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

  2. Wybierz lokalizację pliku TensorFlow Lite. Należy pamiętać, że oprzyrządowanie konfiguruje zależność modułu z powiązaniem modelu ML i automatycznie dodaje 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 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 wró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 przykładowe instrukcje kodu .

Narzędzia do budowania w C i C++

Biblioteki C i C++ dla TensorFlow Lite są przeznaczone głównie dla programistów korzystających z zestawu Android Native Development Kit (NDK) do tworzenia swoich aplikacji. Istnieją dwa sposoby korzystania z TFLite za pośrednictwem C++, jeśli tworzysz swoją aplikację za pomocą NDK:

TFlite C API

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

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

TFlite C++ API

Jeśli chcesz używać TFLite przez C++ API, 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 na wyodrębnienie wszystkich potrzebnych plików nagłówkowych, więc musisz uwzględnić wszystkie pliki nagłówkowe w tensorflow/lite/ z repozytorium TensorFlow. Dodatkowo będziesz potrzebować plików nagłówkowych z FlatBuffers i Abseil .