Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Android-Schnellstart

Um mit TensorFlow Lite unter Android zu beginnen, empfehlen wir, das folgende Beispiel zu untersuchen.

Beispiel für die Klassifizierung von Android-Bildern

Lesen Sie die TensorFlow Lite Android-Bildklassifizierung, um eine Erklärung des Quellcodes zu erhalten.

Diese Beispiel-App verwendet die Bildklassifizierung, um kontinuierlich zu klassifizieren, was auch immer von der Rückfahrkamera des Geräts gesehen wird. Die Anwendung kann entweder auf einem Gerät oder einem Emulator ausgeführt werden.

Die Inferenz wird mithilfe der TensorFlow Lite Java-API und der TensorFlow Lite Android Support Library durchgeführt . Die Demo-App klassifiziert Frames in Echtzeit und zeigt die wahrscheinlichsten Klassifizierungen an. Der Benutzer kann zwischen einem Gleitkomma- oder einem quantisierten Modell wählen, die Thread-Anzahl auswählen und entscheiden, ob er auf einer CPU, einer GPU oder über NNAPI ausgeführt werden soll .

In Android Studio einbauen

Befolgen Sie die Anweisungen in README.md, um das Beispiel in Android Studio zu erstellen .

Erstellen Sie Ihre eigene Android-App

Um schnell mit dem Schreiben Ihres eigenen Android-Codes zu beginnen, empfehlen wir, unser Beispiel für die Klassifizierung von Android-Bildern als Ausgangspunkt zu verwenden.

Die folgenden Abschnitte enthalten einige nützliche Informationen für die Arbeit mit TensorFlow Lite unter Android.

Verwenden Sie die TensorFlow Lite-Aufgabenbibliothek

Die TensorFlow Lite-Aufgabenbibliothek enthält eine Reihe leistungsstarker und benutzerfreundlicher aufgabenspezifischer Bibliotheken, mit denen App-Entwickler ML-Erfahrungen mit TFLite erstellen können. Es bietet optimierte Out-of-Box-Modellschnittstellen für gängige 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 Task Library funktioniert plattformübergreifend und wird unter Java, C ++ und Swift unterstützt (in Kürze verfügbar).

Um die Support-Bibliothek in Ihrer Android-App zu verwenden, empfehlen wir die Verwendung des AAR, der in der JCenter for Task Vision-Bibliothek bzw. der Task Text-Bibliothek gehostet wird.

Sie können dies in Ihren build.gradle Abhängigkeiten wie folgt angeben:

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

Weitere Informationen finden Sie in der Einführung in der Übersicht über die TensorFlow Lite-Aufgabenbibliothek .

Verwenden Sie die TensorFlow Lite Android Support Library

Die TensorFlow Lite Android Support Library erleichtert die Integration von Modellen in Ihre Anwendung. Es bietet APIs auf hoher Ebene, mit deren Hilfe rohe Eingabedaten in die vom Modell geforderte Form umgewandelt und die Ausgabe des Modells interpretiert werden können, wodurch die Menge des erforderlichen Boilerplate-Codes 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 das Ändern der Bildgröße und das Zuschneiden ausführen.

Um die Support-Bibliothek in Ihrer Android-App zu verwenden, empfehlen wir die Verwendung des AAR der TensorFlow Lite-Support-Bibliothek, das bei JCenter gehostet wird .

Sie können dies in Ihren build.gradle Abhängigkeiten wie folgt angeben:

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

Befolgen Sie zunächst die Anweisungen in der TensorFlow Lite Android Support Library .

Verwenden Sie den TensorFlow Lite AAR von JCenter

Um TensorFlow Lite in Ihrer Android-App zu verwenden, empfehlen wir die Verwendung des TensorFlow Lite AAR, das bei JCenter gehostet wird .

Sie können dies in Ihren build.gradle Abhängigkeiten wie folgt angeben:

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

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

Wir empfehlen den meisten Entwicklern, die ABIs x86 , x86_64 und arm32 . Dies kann mit der folgenden Gradle-Konfiguration erreicht werden, die speziell nur armeabi-v7a und arm64-v8a , die die meisten modernen Android-Geräte abdecken sollten.

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

Weitere abiFilters zu abiFilters finden Sie unter NdkOptions in der Android Gradle-Dokumentation.

Erstellen Sie eine Android-App mit C ++

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 der empfohlene Ansatz. Laden Sie den bei JCenter gehosteten TensorFlow Lite AAR herunter , benennen Sie ihn in tensorflow-lite-*.zip und entpacken Sie ihn. 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 Header-Datei c_api.h enthält grundlegende Dokumentationen zur Verwendung der 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 benötigten Header-Dateien zu extrahieren. tensorflow/lite/ müssen Sie alle Header-Dateien in tensorflow/lite/ aus dem TensorFlow-Repository aufnehmen. Darüber hinaus werden Sie Header - Dateien aus benötigen FlatBuffers und Abseil .