Entwicklungstools für Android

LiteRT bietet eine Reihe von Tools zur Integration von Modellen in Android. Apps. Auf dieser Seite werden Entwicklungstools zum Erstellen von Apps mit Kotlin, Java und C++ sowie Unterstützung für LiteRT-Entwicklung in Android Studio

Tools für die Entwicklung mit Kotlin und Java

In den folgenden Abschnitten werden Entwicklungstools für LiteRT beschrieben, die die Programmiersprachen Kotlin und Java.

LiteRT-Bibliothek

Nutzen Sie die LiteRT-Bibliothek in Ihrer Android-App, indem Sie die automatisch angewendeten Empfehlungen hinzufügen, die unter MavenCentral für Ihr Entwicklungsprojekt.

Sie können dies so in Ihren build.gradle-Abhängigkeiten angeben:

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

repositories {
    ...
    google()
}

Wenn Sie nächtliche Snapshots verwenden, sollten Sie den Sonatype-Snapshot mit Ihrem Projekt verknüpfen.

Diese AAE umfassen Binärprogramme für alle Android- ABIs. Sie können die Größe der das Binärprogramm Ihrer Anwendung, indem Sie nur die ABIs angeben, die Sie unterstützen müssen.

Sofern Sie kein Targeting auf bestimmte Hardware vornehmen, sollten Sie x86, x86_64, und in den meisten Fällen arm32 ABIs. Du kannst dies mit folgendem Gradle konfigurieren: Konfiguration. Insbesondere sind nur armeabi-v7a und arm64-v8a enthalten. die die meisten modernen Android-Geräte abdecken.

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

Weitere Informationen zu abiFilters findest du unter Android ABIs im Android NDK Dokumentation.

LiteRT-Supportbibliothek

Die LiteRT Android Support Library erleichtert die Integration von Modellen in Ihre Anwendung einbinden. Es bietet High-Level-APIs, die dazu beitragen, Roheingaben zu transformieren Daten in das für das Modell erforderliche Format umwandeln und die Ausgabe des Modells interpretieren. weniger Boilerplate-Code erforderlich.

Es unterstützt gängige Datenformate für Ein- und Ausgaben wie Bilder und Arrays. Es bietet auch Vor- und Nachbearbeitungseinheiten, die Aufgaben wie z. B. bei Bildgrößenänderung und -zuschnitt.

Support Library in deiner Android-App verwenden, indem du LiteRT einschließt Supportbibliothek AAE gehostet bei MavenCentral.

Sie können dies so in Ihren build.gradle-Abhängigkeiten angeben:

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

Wenn Sie nächtliche Snapshots verwenden, sollten Sie den Sonatype-Snapshot mit Ihrem Projekt verknüpfen.

Eine Anleitung für die ersten Schritte finden Sie beim LiteRT-Android-Support. Mediathek.

Android Studio verwenden

Zusätzlich zu den oben beschriebenen Entwicklungsbibliotheken enthält Android Studio auch bietet Unterstützung für die Integration von LiteRT-Modellen, wie unten beschrieben.

Android Studio ML-Modellbindung

Mit der ML-Modellbindungsfunktion von Android Studio 4.1 und höher können Sie .tflite-Modelldateien in die vorhandene Android-App importieren und , um die Integration Ihres Codes in ein Modell zu vereinfachen.

So importieren Sie ein LiteRT-Modell:

  1. Klicken Sie mit der rechten Maustaste auf das Modul, in dem Sie das LiteRT-Modell verwenden möchten, oder klicken Sie auf Datei > Neu > Sonstiges > LiteRT-Modell.

  2. Wählen Sie den Speicherort Ihrer LiteRT-Datei aus. Beachten Sie, dass die Tools konfiguriert die Abhängigkeit des Moduls mit ML-Modellbindung und fügt der Datei build.gradle Ihres Android-Moduls alle erforderlichen Abhängigkeiten hinzu.

  3. Klicken Sie auf Finish, um den Import zu starten. Wenn der Import abgeschlossen ist, zeigt das Tool einen Bildschirm an, in dem das Modell, einschließlich Eingabe und Ausgabe beschrieben wird. Tensoren.

  4. Wählen Sie „Kotlin“ oder „Java“ aus, kopieren Sie den Code und fügen Sie ihn im Abschnitt Beispielcode.

Wenn Sie zum Bildschirm mit den Modellinformationen zurückkehren möchten, doppelklicken Sie auf das TensorFlow-Symbol Lite-Modell im Verzeichnis ml in Android Studio. Weitere Informationen zu Modle-Bindungsfunktion von Android Studio finden Sie in der Veröffentlichung Notizen. Eine Übersicht über die Verwendung der Modellbindung in Android Studio finden Sie im Codebeispiel. Anleitung.

Tools zum Erstellen mit C und C++

Die C- und C++-Bibliotheken für LiteRT sind in erster Linie für Entwicklerinnen und Entwicklern, die das Android Native Development Kit (NDK) zum Entwickeln ihrer Apps verwenden. Es gibt zwei Möglichkeiten, LiteRT mit C++ zu verwenden, wenn Sie Ihre App mit dem NDK erstellen:

LiteRT C-API

Die Verwendung dieser API ist der empfohlene Ansatz für Entwickler, die das NDK verwenden. Laden Sie das LiteRT AAR herunter, das unter folgendem Link gehostet wird: MavenCentral -Datei, benennen Sie sie in tensorflow-lite-*.zip um und entpacken Sie sie. Sie müssen die vier Headerdateien in headers/tensorflow/lite/ und headers/tensorflow/lite/c/ Ordner und der relevanten dynamischen Bibliothek libtensorflowlite_jni.so im jni/ im NDK-Projekt.

Die Headerdatei c_api.h enthält grundlegende Informationen zur Verwendung von LiteRT C. der API erstellen.

LiteRT C++ API

Wenn Sie LiteRT über die C++ API verwenden möchten, können Sie die in C++ freigegebene Bibliotheken:

32-Bit-Armeabi-v7a:

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

64-Bit-arm64-v8a:

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

Derzeit gibt es keine einfache Möglichkeit, alle erforderlichen Headerdateien zu extrahieren. Deshalb müssen Sie in tensorflow/lite/ alle Headerdateien aus dem TensorFlow-Format zu erstellen. Außerdem benötigen Sie Headerdateien von FlatBuffers und Abseil: