Android-Schnellstart

Um mit TensorFlow Lite auf Android zu beginnen, empfehlen wir, das folgende Beispiel zu erkunden.

Beispiel für die Klassifizierung von Android-Bildern

Lesen TensorFlow Lite Android Bildklassifizierungs- für eine Erklärung des Quellcodes.

Dieses Beispiel App verwendet Bildklassifizierungs- kontinuierlich Klassifizieren , was sie von den Geräten hinten gerichtete Kamera sieht. Die Anwendung kann entweder auf einem Gerät oder einem Emulator ausgeführt werden.

Inference ausgeführt , um die TensorFlow Lite Java API und die Verwendung von TensorFlow Lite Android Support Library . Die Demo-App klassifiziert Frames in Echtzeit und zeigt die wahrscheinlichsten Klassifizierungen an. Es ermöglicht dem Benutzer zwischen einem Floating - Point oder wählen quantisiert Modell, wählen Sie die Anzahl der Threads, und entscheiden , ob sie auf CPU, GPU oder über laufen NNAPI .

In Android Studio erstellen

Um das Beispiel in Android Studio zu erstellen, folgen Sie den Anweisungen in README.md .

Erstellen Sie Ihre eigene Android-App

Um loszuzulegen schnell Ihren eigenen Android Code zu schreiben, empfehlen wir unser mit Android Bildklassifizierungs- Beispiel als Ausgangspunkt.

Die folgenden Abschnitte enthalten einige nützliche Informationen zum Arbeiten mit TensorFlow Lite auf Android.

Verwenden Sie die Android Studio ML-Modellbindung

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

  1. Rechtsklick auf das Modul möchten Sie die TFLite Modell verwenden , oder klicken Sie auf File , dann New > Other > TensorFlow Lite Model Klicken Sie mit der rechten Maustaste auf Menüs, um auf die TensorFlow Lite-Importfunktion zuzugreifen

  2. Wählen Sie den Speicherort Ihrer TFLite-Datei aus. Beachten Sie, dass das Werkzeug wird die Modul Abhängigkeit von Ihrem Namen mit ML Modell verbindlich und alle Abhängigkeiten automatisch eingefügt in Ihren Android - Moduls konfiguriert build.gradle Datei.

    Optional: Wählen Sie das zweite Kontrollkästchen für den Import von TensorFlow GPU , wenn Sie verwenden möchten , GPU - Beschleunigung . Importdialog für TFLite-Modell

  3. Klicken Sie auf Finish stellen .

  4. Nach erfolgreichem Import erscheint der folgende Bildschirm. So starten Sie das Modell verwenden, wählen Sie Kotlin oder Java, zu kopieren und den Code unter dem Einfügen von Sample Code Abschnitt. Sie können das TFLite Modell unter dem durch einen Doppelklick auf diesen Bildschirm zurück ml Verzeichnis in Android Studio. Modelldetailseite in Android Studio

Verwenden Sie die TensorFlow Lite-Aufgabenbibliothek

Die TensorFlow Lite-Aufgabenbibliothek enthält eine Reihe leistungsstarker und benutzerfreundlicher aufgabenspezifischer Bibliotheken für App-Entwickler, um ML-Erlebnisse mit TFLite zu erstellen. Es bietet optimierte Out-of-Box-Modellschnittstellen für beliebte maschinelle Lernaufgaben wie Bildklassifizierung, Frage und Antwort usw. Die Modellschnittstellen wurden speziell für jede Aufgabe entwickelt, um die beste Leistung und Benutzerfreundlichkeit zu erzielen. Die Aufgabenbibliothek funktioniert plattformübergreifend und wird von Java, C++ und Swift (demnächst) unterstützt.

Um den Support Library in Ihrem Android - App zu verwenden, empfehlen wir das AAR mit bei MavenCentral für gehostete Task - Vision - Bibliothek und Task - Textbibliothek ist.

Sie können in Ihrem angeben diese build.gradle Abhängigkeiten wie folgt:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-task-vision:0.1.0'
    implementation 'org.tensorflow:tensorflow-lite-task-text:0.1.0'
}

Um nächtlichen Snapshots zu verwenden, stellen Sie sicher , dass Sie hinzugefügt haben Repository - Snapshot Sonatype .

Siehe die Einführung in der TensorFlow Lite Task - Bibliothek Übersicht für weitere Details.

Verwenden Sie die TensorFlow Lite Android-Supportbibliothek

Die TensorFlow Lite Android Support Library erleichtert die Integration von Modellen in Ihre Anwendung. Es bietet High-Level-APIs, die dabei helfen, rohe Eingabedaten in die für das Modell erforderliche Form umzuwandeln und die Ausgabe des Modells zu interpretieren, wodurch der erforderliche Boilerplate-Code reduziert wird.

Es unterstützt gängige Datenformate für Ein- und Ausgaben, einschließlich Bilder und Arrays. Es bietet auch Vor- und Nachbearbeitungseinheiten, die Aufgaben wie die Größenänderung und das Zuschneiden von Bildern ausführen.

Um den Support Library in Ihrem Android - App zu verwenden, empfehlen wir die Verwendung von TensorFlow Lite Support Library AAR bei MavenCentral gehostet .

Sie können in Ihrem angeben diese build.gradle Abhängigkeiten wie folgt:

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

Um nächtlichen Snapshots zu verwenden, stellen Sie sicher , dass Sie hinzugefügt haben Repository - Snapshot Sonatype .

Um damit zu beginnen, folgen Sie den Anweisungen in dem TensorFlow Lite Android Support Library .

Verwenden Sie den TensorFlow Lite AAR von MavenCentral

So verwenden TensorFlow Lite in Ihrem Android - App, empfehlen wir die Verwendung von TensorFlow Lite AAR bei MavenCentral gehostet .

Sie können in Ihrem angeben diese build.gradle Abhängigkeiten wie folgt:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly-SNAPSHOT'
}

Um nächtlichen Snapshots zu verwenden, stellen Sie sicher , dass Sie hinzugefügt haben Repository - Snapshot Sonatype .

Das AAR enthält Binärdateien für alle der Android ABIs . Sie können die Größe der Binärdatei Ihrer Anwendung reduzieren, indem Sie nur die ABIs einschließen, die Sie unterstützen müssen.

Wir empfehlen die meisten Entwickler lassen Sie die x86 , x86_64 und arm32 Abi. Dies kann mit der folgenden Gradle Konfiguration erreicht werden, die spezifisch nur enthält armeabi-v7a und arm64-v8a , die die meisten modernen Android - Geräte abdecken sollte.

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

Um mehr darüber zu erfahren , abiFilters finden NdkOptions im Android Gradle Dokumentation.

Android-App mit C++ erstellen

Es gibt zwei Möglichkeiten, TFLite über C++ zu verwenden, wenn Sie Ihre App mit dem NDK erstellen:

Verwenden Sie die TFLite C-API

Dies ist die empfohlene Vorgehensweise. Laden Sie die TensorFlow Lite AAR bei MavenCentral gehostet , benennen Sie sie in tensorflow-lite-*.zip , Und entpacken Sie es. Sie müssen die vier Header - Dateien in include headers/tensorflow/lite/ und headers/tensorflow/lite/c/ Ordner und die entsprechende libtensorflowlite_jni.so dynamische Bibliothek in jni/ Ordnern in Ihrem NDK Projekt.

Die c_api.h Header - Datei enthält grundlegende Dokumentation über den TFLite C - API.

Verwenden Sie die TFLite C++-API

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

32bit armeabi-v7a:

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

64bit arm64-v8a:

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

Derzeit gibt es keine einfache Möglichkeit , alle Header - Dateien benötigt , um zu extrahieren, so dass Sie alle Header - Dateien in beinhalten muss tensorflow/lite/ vom TensorFlow Repository. Darüber hinaus werden Sie Header - Dateien aus benötigen FlatBuffers und Abseil .

Min. SDK-Version von TFLite

Bibliothek minSdkVersion Geräteanforderungen
tensorflow-lite 19 NNAPI-Nutzung erfordert API 27+
tensorflow-lite-gpu 19 GLES 3.1 oder OpenCL (normalerweise nur auf API 21+ verfügbar
tensorflow-lite-hexagon 19 -
tensorflow-lite-Unterstützung 19 -
tensorflow-lite-task-vision 21 android.graphics.Color-bezogene API erfordert API 26+
Tensorflow-lite-Aufgabentext 21 -
tensorflow-lite-task-audio 23 -
tensorflow-lite-metadaten 19 -