Strumenti di sviluppo per Android

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

TensorFlow Lite fornisce una serie di strumenti per l'integrazione dei 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, vedere Quickstart 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

TensorFlow Lite Task Library 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 del modello predefinite ottimizzate per le attività di apprendimento automatico più diffuse, come la classificazione delle immagini, domande e risposte, ecc. Le interfacce del modello sono progettate specificamente per ogni attività per ottenere le migliori prestazioni e usabilità. Task Library funziona su più piattaforme ed è supportata su Java e C++.

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

Puoi specificarlo nelle tue 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 gli snapshot notturni, assicurati di aggiungere il repository di snapshot Sonatype al tuo progetto.

Per maggiori dettagli, vedere l'introduzione nella panoramica della Libreria delle attività di TensorFlow Lite .

Libreria TensorFlow Lite

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

Puoi specificarlo nelle tue dipendenze build.gradle come segue:

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

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

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

A meno che tu non stia prendendo di mira hardware specifico, nella maggior parte dei casi dovresti omettere gli ABI x86 , x86_64 e arm32 . Puoi configurarlo con la seguente configurazione Gradle. In particolare include solo armeabi-v7a e arm64-v8a e dovrebbe coprire la maggior parte dei moderni dispositivi Android.

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

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

Libreria di supporto TensorFlow Lite

La libreria di supporto Android TensorFlow Lite semplifica l'integrazione dei modelli nell'applicazione. Fornisce API di alto livello che aiutano a trasformare i dati di input grezzi nella forma richiesta dal modello e ad interpretare l'output del modello, riducendo la quantità di codice standard 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.

Usa la Libreria di supporto nella tua app Android includendo la Libreria di supporto TensorFlow Lite AAR ospitata su MavenCentral .

Puoi specificarlo nelle tue dipendenze build.gradle come segue:

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

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

Per istruzioni su come iniziare, vedere la Libreria di supporto per Android TensorFlow Lite .

Versioni minime dell'SDK Android per le librerie

Biblioteca minSdkVersion Requisiti del dispositivo
tensorflow-lite 19 L'utilizzo di NNAPI richiede API 27+
tensorflow-lite-gpu 19 GLES 3.1 o OpenCL (di solito disponibile solo su API 21+
tensorflow-lite-esagono 19 -
tensorflow-lite-supporto 19 -
tensorflow-lite-task-vision 21 Android.graphics.L'API relativa al colore richiede API 26+
tensorflow-lite-task-text 21 -
tensorflow-lite-task-audio 23 -
tensorflow-lite-metadata 19 -

Utilizzo di Android Studio

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

Rilegatura del modello Android Studio ML

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 di generare classi di interfaccia per semplificare l'integrazione del codice con un modello.

Per importare un modello TensorFlow Lite (TFLite):

  1. Fare clic con il pulsante destro del mouse sul modulo in cui si desidera utilizzare il modello TFLite o fare clic su File > Nuovo > Altro > Modello TensorFlow Lite .

  2. Seleziona la posizione del tuo file TensorFlow Lite. Si noti che lo strumento configura la dipendenza del modulo con l'associazione del modello ML e aggiunge 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 di output.

  4. Per iniziare a utilizzare il modello, seleziona Kotlin o Java, copia e incolla il codice nella sezione Codice di 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, vedere le note sulla versione di Android Studio. Per una panoramica dell'utilizzo dell'associazione di modelli in Android Studio, vedere le istruzioni di 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 TensorFlow Lite AAR ospitato su MavenCentral , rinominalo in tensorflow-lite-*.zip e decomprimilo. Devi includere i quattro file di intestazione nelle cartelle headers/tensorflow/lite/ e headers/tensorflow/lite/c/ e la relativa libreria dinamica libtensorflowlite_jni.so nella cartella jni/ nel tuo progetto NDK.

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

API C++ di TFLite

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

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

Al momento, 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 di file di intestazione da FlatBuffers e Abseil .