Strumenti di sviluppo per Android

TensorFlow Lite offre una serie di strumenti per integrare i modelli nelle app per Android. In questa pagina vengono descritti 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.

Strumenti per la creazione con Kotlin e Java

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

Libreria TensorFlow Lite

Utilizza la libreria TensorFlow Lite nella tua app per 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 i programmi binari per tutti gli ABI di Android. Puoi ridurre le dimensioni del programma binario dell'applicazione includendo solo le ABI che devi supportare.

A meno che tu non abbia scelto come target hardware specifico, nella maggior parte dei casi dovresti omettere le ABI x86, x86_64 e arm32. Puoi configurarla con la seguente configurazione Gradle. Include 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 scoprire di più su abiFilters, consulta la sezione ABI di Android nella documentazione di Android NDK.

Libreria di assistenza TensorFlow Lite

La libreria di supporto Android di TensorFlow Lite semplifica l'integrazione dei modelli nell'applicazione. Fornisce API di alto livello che aiutano a trasformare i dati di input non elaborati nel modulo richiesto 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, inclusi 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 assistenza nella tua app per Android includendo l'AAR della libreria di supporto ospitata su MavenCentral di TensorFlow Lite.

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 assistenza Android di TensorFlow Lite.

Versioni minime dell'SDK Android per le librerie

Raccolta minSdkVersion Requisiti del dispositivo
tensorflow-lite 21 -
tensorflow-lite-gpu 21 GLES 3.1 o OpenCL (in genere disponibili solo su API 21 e versioni successive)
tensorflow-lite-support 21 -
tensorflow-lite-metadata 21 -

Con 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.

Associazione modelli ML di Android Studio

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

Per importare un modello TensorFlow Lite (TFLite):

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

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

  3. Fai clic su Finish per avviare il processo di importazione. Al termine dell'importazione, lo strumento visualizza una schermata che descrive il modello, inclusi i 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.

Puoi tornare alla schermata delle informazioni sul modello facendo doppio clic sul modello TensorFlow Lite nella directory ml di Android Studio. Per ulteriori informazioni sull'utilizzo della funzionalità Modle Binding di Android Studio, consulta le note di rilascio di Android Studio. Per una panoramica sull'utilizzo dell'associazione di modelli in Android Studio, consulta le instructions di esempio di codice.

Strumenti per creare con C e C++

Le librerie C e C++ per TensorFlow Lite sono destinate principalmente agli sviluppatori che utilizzano l'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 l'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 libreria dinamica libtensorflowlite_jni.so pertinente nella cartella jni/ del tuo progetto NDK.

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

API TFLite C++

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

32bit armeabi-v7a:

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

Arm64-v8a a 64 bit:

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 devi includere tutti i file di intestazione in tensorflow/lite/ dal repository TensorFlow. Inoltre, avrai bisogno dei file di intestazione di FlatBuffers e Abseil.