Narzędzia dla programistów na Androida

LiteRT zapewnia szereg narzędzi do integracji modeli z Androidem aplikacji. Na tej stronie opisujemy narzędzia dla programistów służące do tworzenia aplikacji za pomocą Kotlin, Java i C++ oraz obsługa programowania LiteRT w Android Studio.

Narzędzia do tworzenia przy użyciu Kotlin i Javy

W poniższych sekcjach opisano narzędzia dla programistów LiteRT, które wykorzystują z językami Kotlin i Javy.

biblioteka LiteRT

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

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

dependencies {
    ...
    implementation 'com.google.ai.edge.litert:+'
}

repositories {
    ...
    google()
}

Jeśli korzystasz z ujęć z nocy, pamiętaj o dodaniu opcji Sonatype do swojego projektu.

Ten plik AAR zawiera pliki binarne dla systemów Android interfejsy ABI. Możesz zmniejszyć rozmiar pliku binarnego aplikacji, dodając tylko te interfejsy ABI, które muszą być obsługiwane.

Jeśli nie kierujesz reklam na konkretny sprzęt, pomiń x86, x86_64, i w większości przypadków arm32 interfejsów ABI. Możesz to skonfigurować przy użyciu poniższego Gradle konfiguracji. W szczególności dotyczy to tylko tych kategorii: armeabi-v7a i arm64-v8a oraz powinna obsługiwać większość nowoczesnych urządzeń z Androidem.

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

Więcej informacji o aplikacji abiFilters znajdziesz w artykule Android interfejsy ABI w Android NDK dokumentacji.

Biblioteka pomocy LiteRT

Biblioteka pomocy na Androidzie LiteRT ułatwia integrowanie modeli do aplikacji. Udostępnia interfejsy API wysokiego poziomu, które pomagają przekształcać nieprzetworzone dane wejściowe do postaci wymaganej przez model i zinterpretuj wyniki w celu ograniczenia ilości niezbędnego powtarzalnego kodu.

Obsługuje popularne formaty danych wejściowych i wyjściowych, w tym obrazy tablice. Udostępnia też jednostki reklamowe, które wykonują takie zadania jak jak zmiana rozmiaru i przycinanie obrazów.

Korzystanie z biblioteki pomocy w aplikacji na Androida, włączając LiteRT Pomoc AAR w bibliotece pomocy jest hostowana MavenCentral.

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

dependencies {
    implementation 'com.google.ai.edge.litert:litert-support:+'
}

Jeśli korzystasz z ujęć z nocy, pamiętaj o dodaniu opcji Sonatype do swojego projektu.

Instrukcje rozpoczynania pracy znajdziesz w artykule pomocy LiteRT dla Androida Biblioteka.

Korzystanie z Android Studio

Oprócz opisanych powyżej bibliotek programistycznych Android Studio umożliwia też zapewnia obsługę integracji modeli LiteRT w sposób opisany poniżej.

Powiązanie modelu ML Android Studio

Funkcja ML Model Binding w Android Studio 4.1 i nowszych umożliwia zaimportuj pliki modelu .tflite do istniejącej aplikacji na Androida i wygeneruj klas interfejsu, które ułatwiają integrację kodu z modelem.

Aby zaimportować model LiteRT:

  1. Kliknij prawym przyciskiem myszy moduł, w którym chcesz używać modelu LiteRT, lub kliknij Plik > Nowe > Inne > Model LiteRT.

  2. Wybierz lokalizację pliku LiteRT. Zwróć uwagę, że narzędzia 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 Androida.

  3. Kliknij Finish, aby rozpocząć proces importowania. Po zakończeniu importowania narzędzie wyświetla ekran opisujący model, w tym jego dane wejściowe i wyjściowe tensorów.

  4. Aby zacząć korzystać z modelu, wybierz Kotlin lub Java, skopiuj i wklej kod w sekcji Przykładowy kod.

Aby wrócić do ekranu z informacjami o modelu, kliknij dwukrotnie TensorFlow Model Lite w katalogu ml w Android Studio. Więcej informacji na temat: za pomocą funkcji Modle Binding w Android Studio, zwolnienie notatki. Omówienie korzystania z powiązania modelu w Android Studio znajdziesz w przykładowym kodzie instrukcje.

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

Biblioteki C i C++ dla LiteRT są przeznaczone głównie dla programistów korzystających z pakietu Android Native Development Kit (NDK) w swoich aplikacjach. Jeśli tworzysz aplikację przy użyciu NDK, możesz korzystać z LiteRT w C++ na 2 sposoby:

Interfejs API LiteRT C

Używanie tego interfejsu API jest zalecaną metodą dla deweloperów korzystających z NDK. Pobierz narzędzie AAR LiteRT hostowane na stronie MavenCentral , zmienić nazwę na tensorflow-lite-*.zip i rozpakować go. Musisz uwzględnić cztery pliki nagłówka w tabelach headers/tensorflow/lite/ i headers/tensorflow/lite/c/ i odpowiednią bibliotekę dynamiczną libtensorflowlite_jni.so w sekcji jni/ folder w projekcie NDK.

Plik nagłówka c_api.h zawiera podstawową dokumentację na temat używania LiteRT C API.

Interfejs API LiteRT C++

Jeśli chcesz używać LiteRT przez interfejs API C++, możesz utworzyć biblioteki:

32-bitowy pakiet armeabi-v7a:

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

64-bitowa architektura arm64-v8a:

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

Obecnie nie ma prostego sposobu wyodrębniania wszystkich potrzebnych plików nagłówka, więc musisz uwzględnić wszystkie pliki nagłówków w tensorflow/lite/ z biblioteki TensorFlow z repozytorium. Potrzebne będą też pliki nagłówka z FlatBuffers i Absejil.