Entwicklungstools für Android

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

Tools zum Entwickeln mit Kotlin und Java

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

TensorFlow Lite-Bibliothek

Verwenden Sie die TensorFlow Lite-Bibliothek in Ihrer Android-App. Fügen Sie dazu Ihrem Entwicklungsprojekt das in MavenCentral gehostete AAR hinzu.

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

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

Wenn Sie nächtliche Snapshots verwenden, müssen Sie Ihrem Projekt das Sonatype-Snapshot-Repository hinzufügen.

Dieses AAE enthält Binärprogramme für alle Android-ABIs. Sie können die Größe des Binärprogramms Ihrer Anwendung reduzieren, indem Sie nur die ABIs einschließen, die Sie unterstützen müssen.

Sofern Sie keine spezifische Hardware als Ziel haben, sollten Sie die ABIs x86, x86_64 und arm32 in den meisten Fällen weglassen. Das lässt sich mit der folgenden Gradle-Konfiguration konfigurieren. Er enthält nur armeabi-v7a und arm64-v8a und sollte die meisten modernen Android-Geräte abdecken.

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

Weitere Informationen zu abiFilters finden Sie unter Android-ABIs in der Android NDK-Dokumentation.

TensorFlow Lite-Supportbibliothek

Mit der Android-Supportbibliothek von TensorFlow Lite können Sie Modelle einfacher in Ihre Anwendung einbinden. Es bietet High-Level-APIs, mit denen Eingaberohdaten in die für das Modell erforderliche Form umgewandelt und die Modellausgabe interpretiert werden können. Dadurch reduziert sich der erforderliche Boilerplate-Code.

Sie unterstützt gängige Datenformate für Ein- und Ausgaben, einschließlich Bilder und Arrays. Außerdem stehen Vor- und Nachbearbeitungseinheiten zur Verfügung, die Aufgaben wie das Anpassen der Bildgröße und das Zuschneiden ausführen.

Verwenden Sie die Support Library in Ihrer Android-App, indem Sie AAR von TensorFlow Lite auf MavenCentral einbinden.

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

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

Wenn Sie nächtliche Snapshots verwenden, müssen Sie Ihrem Projekt das Sonatype-Snapshot-Repository hinzufügen.

Anleitungen für den Einstieg finden Sie in der Android-Supportbibliothek für TensorFlow Lite.

Android SDK-Mindestversionen für Bibliotheken

Mediathek minSdkVersion Geräteanforderungen
tensorflow-lite 21 -
tensorflow-lite-gpu 21 GLES 3.1 oder OpenCL (normalerweise nur für API 21 und höher verfügbar)
tensorflow-lite-support 21 -
tensorflow-lite-metadata 21 -

Android Studio verwenden

Zusätzlich zu den oben beschriebenen Entwicklungsbibliotheken bietet Android Studio auch Unterstützung für die Integration von TensorFlow Lite-Modellen (siehe unten).

Android Studio ML-Modellbindung

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

So importieren Sie ein TensorFlow Lite-Modell (TFLite):

  1. Klicken Sie mit der rechten Maustaste auf das Modul, das Sie das TFLite-Modell verwenden möchten, oder klicken Sie auf File > New > Other > TensorFlow Lite Model.

  2. Wählen Sie den Speicherort der TensorFlow Lite-Datei aus. Beachten Sie, dass das Tool die Abhängigkeit des Moduls mit ML-Modellbindung konfiguriert und automatisch alle erforderlichen Abhängigkeiten zur Datei build.gradle des Android-Moduls hinzufügt.

  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 der Eingabe- und Ausgabetensoren beschrieben wird.

  4. Wählen Sie Kotlin oder Java aus, kopieren Sie den Code und fügen Sie ihn im Abschnitt Beispielcode ein, um mit der Verwendung des Modells zu beginnen.

Sie können zum Bildschirm mit den Modellinformationen zurückkehren, indem Sie in Android Studio im Verzeichnis ml auf das TensorFlow Lite-Modell doppelklicken. Weitere Informationen zur Verwendung der Funktion „Modle Binding“ von Android Studio finden Sie in den Versionshinweisen zu Android Studio. Eine Übersicht zur Verwendung der Modellbindung in Android Studio finden Sie in der instructions.

Tools zum Erstellen mit C und C++

Die C- und C++-Bibliotheken für TensorFlow Lite sind in erster Linie für Entwickler gedacht, die das Android Native Development Kit (NDK) zum Erstellen von Apps verwenden. Es gibt zwei Möglichkeiten, TFLite über C++ zu verwenden, wenn Sie Ihre App mit dem NDK erstellen:

TFLite C API

Die Verwendung dieser API ist der empfohlene Ansatz für Entwickler, die den NDK verwenden. Laden Sie die in MavenCentral gehostete AAR von TensorFlow Lite herunter, benennen Sie die Datei in tensorflow-lite-*.zip um und entpacken Sie sie. Sie müssen die vier Headerdateien in den Ordnern headers/tensorflow/lite/ und headers/tensorflow/lite/c/ sowie die entsprechende dynamische Bibliothek libtensorflowlite_jni.so im Ordner jni/ Ihres NDK-Projekts hinzufügen.

Die Headerdatei c_api.h enthält eine grundlegende Dokumentation zur Verwendung der TFLite C API.

TFLite C++ API

Wenn Sie TFLite über die C++ API verwenden möchten, können Sie die freigegebenen C++-Bibliotheken erstellen:

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. Nehmen Sie daher alle Headerdateien in tensorflow/lite/ aus dem TensorFlow-Repository auf. Außerdem benötigen Sie Headerdateien von FlatBuffers und Abseil.