Strumenti di sviluppo per Android

TensorFlow Lite fornisce una serie di strumenti per l'integrazione di modelli nelle app Android. Questa pagina descrive gli strumenti di sviluppo da utilizzare nella creazione di app con Kotlin, Java e C++, nonché il supporto per lo sviluppo di TensorFlow Lite in Android Studio.

Per iniziare rapidamente a scrivere codice Android, consulta la Guida introduttiva per Android

Strumenti per costruire con Kotlin e Java

Le sezioni seguenti descrivono gli strumenti di sviluppo per TensorFlow Lite che utilizzano i linguaggi Kotlin e Java.

Libreria attività TensorFlow Lite

La libreria attività TensorFlow Lite contiene una serie di librerie specifiche per attività potenti e facili da usare che gli sviluppatori di app possono creare con TensorFlow Lite. Fornisce interfacce modello predefinite ottimizzate per attività comuni di apprendimento automatico, come classificazione di immagini, domande e risposte, ecc. Le interfacce modello sono progettate specificamente per ciascuna attività per ottenere le migliori prestazioni e usabilità. La libreria attività funziona su più piattaforme ed è supportata su Java e C++.

Per utilizzare la libreria attività nella tua app Android, utilizza rispettivamente l'AAR di MavenCentral per la libreria Task Vision , la libreria Task Text e la libreria Task Audio .

Puoi specificarlo nelle dipendenze build.gradle come segue:

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

Se utilizzi snapshot notturni, assicurati di aggiungere il repository di snapshot Sonatype al tuo progetto.

Per ulteriori dettagli, vedere l'introduzione nella panoramica della libreria attività di TensorFlow Lite .

Libreria TensorFlow Lite

Utilizza la libreria TensorFlow Lite nella tua app Android aggiungendo l' AAR ospitato su MavenCentral al tuo progetto di sviluppo.

Puoi specificarlo nelle dipendenze build.gradle come segue:

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

Se utilizzi snapshot notturni, assicurati di aggiungere il repository di snapshot Sonatype al tuo progetto.

Questo AAR include file binari per tutti gli ABI Android . Puoi ridurre la dimensione del file binario della tua applicazione includendo solo gli ABI che devi supportare.

A meno che non si stia prendendo di mira un hardware specifico, nella maggior parte dei casi è necessario omettere gli ABI x86 , x86_64 e arm32 . Puoi configurarlo con la seguente configurazione Gradle. Include specificamente solo armeabi-v7a e arm64-v8a e dovrebbe coprire la maggior parte dei dispositivi Android moderni.

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

Per ulteriori informazioni sugli abiFilters , consulta gli ABI Android nella documentazione di Android NDK.

Libreria di supporto TensorFlow Lite

La libreria di supporto Android TensorFlow Lite semplifica l'integrazione dei modelli nella tua applicazione. Fornisce API di alto livello che aiutano a trasformare i dati di input grezzi nella forma richiesta dal modello e a interpretare l'output del modello, riducendo la quantità di codice boilerplate richiesto.

Supporta formati di dati comuni per input e output, incluse immagini e array. Fornisce inoltre unità di pre e post-elaborazione che eseguono attività come il ridimensionamento e il ritaglio delle immagini.

Utilizza la libreria di supporto nella tua app Android includendo l' AAR della libreria di supporto TensorFlow Lite ospitato su MavenCentral .

Puoi specificarlo nelle dipendenze build.gradle come segue:

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

Se utilizzi snapshot notturni, assicurati di aggiungere il repository di snapshot Sonatype al tuo progetto.

Per istruzioni su come iniziare, consulta la libreria di supporto Android TensorFlow Lite .

Versioni minime dell'SDK Android per le librerie

Biblioteca minSdkVersion Requisiti del dispositivo
tensorflow-lite 19 L'utilizzo della NNAPI richiede API 27+
tensorflow-lite-gpu 19 GLES 3.1 o OpenCL (in genere disponibile solo su API 21+
tensorflow-lite-esagono 19 -
supporto tensorflow-lite 19 -
tensorflow-lite-task-vision 21 L'API relativa ad android.graphics.Color richiede l'API 26+
testo-attività-tensorflow-lite 21 -
tensorflow-lite-task-audio 23 -
metadati-tensorflow-lite 19 -

Utilizzando Android Studio

Oltre alle librerie di sviluppo sopra descritte, Android Studio fornisce anche il supporto per l'integrazione dei modelli TensorFlow Lite, come descritto di seguito.

Associazione del modello ML di Android Studio

La funzionalità ML Model Binding di Android Studio 4.1 e versioni successive consente di importare file di modello .tflite nell'app Android esistente e generare classi di interfaccia per semplificare l'integrazione del codice con un modello.

Per importare un modello TensorFlow Lite (TFLite):

  1. Fai clic con il pulsante destro del mouse sul modulo per cui desideri utilizzare il modello TFLite o fai clic su File > Nuovo > Altro > Modello TensorFlow Lite .

  2. Seleziona la posizione del tuo file TensorFlow Lite. Tieni presente che gli strumenti configurano la dipendenza del modulo con l'associazione del modello ML e aggiungono automaticamente tutte le dipendenze richieste al file build.gradle del modulo Android.

  3. Fare clic su Finish per iniziare il processo di importazione. Al termine dell'importazione, lo strumento visualizza una schermata che descrive il modello, inclusi i suoi tensori di input e output.

  4. Per iniziare a utilizzare il modello, seleziona Kotlin o Java, copia e incolla il codice nella sezione Codice esempio .

È possibile tornare alla schermata delle informazioni sul modello facendo doppio clic sul modello TensorFlow Lite nella directory ml in Android Studio. Per ulteriori informazioni sull'utilizzo della funzionalità di associazione dei modelli di Android Studio, consulta le note sulla versione di Android Studio. Per una panoramica sull'utilizzo dell'associazione di modelli in Android Studio, consulta le istruzioni dell'esempio di codice.

Strumenti per costruire con C e C++

Le librerie C e C++ per TensorFlow Lite sono destinate principalmente agli sviluppatori che utilizzano Android Native Development Kit (NDK) per creare le proprie app. Esistono due modi per utilizzare TFLite tramite C++ se crei la tua app con NDK:

API TFLite C

L'utilizzo di questa API è l'approccio consigliato per gli sviluppatori che utilizzano NDK. Scarica il file AAR TensorFlow Lite ospitato su MavenCentral , rinominalo in tensorflow-lite-*.zip e decomprimilo. È necessario includere i quattro file header nelle cartelle headers/tensorflow/lite/ e headers/tensorflow/lite/c/ e la relativa libreria dinamica libtensorflowlite_jni.so nella cartella jni/ del progetto NDK.

Il file di intestazione c_api.h contiene la documentazione di base sull'utilizzo dell'API C TFLite.

API TFLite C++

Se desideri utilizzare TFLite tramite l'API C++, puoi creare le librerie condivise C++:

32 bit armabi-v7a:

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

Braccio 64-v8a a 64 bit:

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

Attualmente non esiste un modo semplice per estrarre tutti i file di intestazione necessari, quindi è necessario includere tutti i file di intestazione in tensorflow/lite/ dal repository TensorFlow. Inoltre, avrai bisogno dei file header di FlatBuffers e Abseil .