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 il 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 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 ciascuna attività per ottenere le migliori prestazioni e usabilità. Task Library funziona su più piattaforme ed è supportato 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 Task Audio Library .
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 istantanee notturne, assicurati di aggiungere il repository di istantanee Sonatype al tuo progetto.
Vedere l'introduzione nella panoramica della libreria di attività di TensorFlow Lite per ulteriori dettagli.
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 tue dipendenze build.gradle
come segue:
dependencies {
implementation 'org.tensorflow:tensorflow-lite:+'
}
Se utilizzi istantanee notturne, assicurati di aggiungere il repository di istantanee Sonatype al tuo progetto.
Questo AAR include file binari per tutti gli ABI di Android . Puoi ridurre le dimensioni del file binario della tua applicazione includendo solo gli ABI che devi supportare.
A meno che tu non abbia come target un hardware specifico, dovresti omettere gli ABI x86
, x86_64
e arm32
nella maggior parte dei casi. 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 Android ABIs 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 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 di TensorFlow Lite ospitato su MavenCentral .
Puoi specificarlo nelle tue dipendenze build.gradle
come segue:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-support:+'
}
Se utilizzi istantanee notturne, assicurati di aggiungere il repository di istantanee Sonatype al tuo progetto.
Per istruzioni su come iniziare, consulta la Libreria di supporto Android di TensorFlow Lite .
Versioni minime di Android SDK per le librerie
Biblioteca | minSdkVersion | Requisiti del dispositivo |
---|---|---|
tensorflow-lite | 19 | L'utilizzo di NNAPI richiede l'API 27+ |
tensorflow-lite-gpu | 19 | GLES 3.1 o OpenCL (in genere disponibile solo su API 21+ |
tensorflow-lite-hexagon | 19 | - |
tensorflow-lite-support | 19 | - |
tensorflow-lite-visione-attività | 21 | L'API relativa ad android.graphics.Color richiede l'API 26+ |
tensorflow-lite-testo-attività | 21 | - |
tensorflow-lite-task-audio | 23 | - |
metadati-tensorflow-lite | 19 | - |
Utilizzo di AndroidStudio
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 di modelli Android Studio ML
La funzionalità di associazione di modelli ML 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):
Fai clic con il pulsante destro del mouse sul modulo in cui desideri utilizzare il modello TFLite oppure fai clic su File > Nuovo > Altro > Modello TensorFlow Lite .
Seleziona la posizione del tuo file TensorFlow Lite. Si noti 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.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.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
in Android Studio. Per ulteriori informazioni sull'utilizzo della funzione Modle Binding di Android Studio, consulta le note sulla versione di Android Studio . Per una panoramica sull'utilizzo dell'associazione di modelli in Android Studio, vedere 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 TensorFlow Lite AAR ospitato nel file 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 TFLite C.
API TFLite C++
Se desideri utilizzare TFLite tramite l'API C++, puoi creare le librerie condivise C++:
armabi-v7a a 32 bit:
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
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 di file di intestazione da FlatBuffers e Abseil .