LiteRT fornisce una serie di strumenti per integrare i modelli in Android app. 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 LiteRT in Android Studio.
Strumenti per creare con Kotlin e Java
Le seguenti sezioni descrivono gli strumenti di sviluppo per LiteRT che utilizzano i linguaggi Kotlin e Java.
Libreria LiteRT
Utilizza la libreria LiteRT nella tua app Android aggiungendo il AAR ospitato su MavenCentral al tuo progetto di sviluppo.
Puoi specificare questa opzione nelle dipendenze build.gradle
come segue:
dependencies {
...
implementation 'com.google.ai.edge.litert:+'
}
repositories {
...
google()
}
Se usi istantanee notturne, assicurati di aggiungere lo snapshot Sonatype repository al tuo progetto.
Questo AAR include programmi binari per tutti i servizi Android ABI. Puoi ridurre le dimensioni il programma binario della tua applicazione includendo solo le ABI che devi supportare.
A meno che tu non abbia come target hardware specifici, devi omettere x86
, x86_64
,
e arm32
ABI nella maggior parte dei casi. Puoi configurare questa funzionalità con il seguente Gradle
configurazione. Nello specifico sono inclusi 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
, vedi Android
ABI nell'NDK di Android
documentazione.
Libreria di supporto LiteRT
La libreria di supporto Android LiteRT semplifica l'integrazione dei modelli nella tua applicazione. Fornisce API di alto livello che aiutano a trasformare l'input non elaborato nel formato richiesto dal modello e interpreta l'output del modello riducendo la quantità di codice boilerplate necessario.
Supporta formati di dati comuni per input e output, tra cui immagini e di grandi dimensioni. Fornisce inoltre unità di pre- e post-elaborazione che eseguono attività come come ridimensionamento e ritaglio delle immagini.
Usa la libreria di supporto nella tua app Android includendo LiteRT Supporto AAR della libreria di supporto ospitato su MavenCentral.
Puoi specificare questa opzione nelle dipendenze build.gradle
come segue:
dependencies {
implementation 'com.google.ai.edge.litert:litert-support:+'
}
Se usi istantanee notturne, assicurati di aggiungere lo snapshot Sonatype repository al tuo progetto.
Per istruzioni su come iniziare, vedi Assistenza LiteRT per Android Raccolta.
Utilizzo di Android Studio
Oltre alle librerie di sviluppo descritte sopra, Android Studio fornisce il supporto per l'integrazione dei modelli LiteRT, come descritto di seguito.
Associazione di modelli ML di Android Studio
La funzionalità ML Model Binding di Android Studio 4.1 e versioni successive ti consente
importa .tflite
file modello nell'app per Android esistente e genera
di interfaccia per semplificare l'integrazione del codice con un modello.
Per importare un modello LiteRT:
Fai clic con il tasto destro del mouse sul modulo che desideri utilizzare il modello LiteRT oppure fai clic File > Nuovo > Altro > Modello LiteRT.
Seleziona la posizione del file LiteRT. Tieni presente che gli strumenti configura la dipendenza del modulo con l'associazione del modello ML aggiunge tutte le dipendenze obbligatorie al file
build.gradle
del modulo Android.Fai clic su
Finish
per avviare il processo di importazione. Al termine dell'importazione, visualizza una schermata che descrive il modello, compresi i dati di input e output tensori.Per iniziare a utilizzare il modello, seleziona Kotlin o Java, copia e incolla il codice sezione Codice di esempio.
Puoi tornare alla schermata delle informazioni sul modello facendo doppio clic sul
Modello Lite nella directory ml
di Android Studio. Per ulteriori informazioni
utilizzando la funzione Modle Binding di Android Studio, consultate la sezione
rilascio
note.
Per una panoramica dell'utilizzo dell'associazione di modelli in Android Studio, guarda l'esempio di codice
istruzioni.
Strumenti per creare con C e C++
Le librerie C e C++ per LiteRT sono destinate principalmente sviluppatori che usano Android Native Development Kit (NDK) per creare le proprie app. Se crei la tua app con l'NDK, puoi utilizzare LiteRT tramite C++ in due modi:
API LiteRT C
Questa API è l'approccio consigliato per gli sviluppatori che usano l'NDK.
Scarica il LiteRT AAR ospitato su
MavenCentral
, rinominalo in tensorflow-lite-*.zip
e decomprimilo. Devi includere i quattro
file di intestazione in headers/tensorflow/lite/
e headers/tensorflow/lite/c/
e la libreria dinamica libtensorflowlite_jni.so
pertinente nel
jni/
nel tuo progetto NDK.
Il file di intestazione c_api.h
contiene la documentazione di base sull'utilizzo di LiteRT C
tramite Google Cloud CLI
o tramite l'API Compute Engine.
API LiteRT C++
Se vuoi utilizzare LiteRT tramite l'API C++, puoi creare il file librerie:
armeabi-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
Al momento, non esiste un modo semplice per estrarre tutti i file di intestazione necessari,
devi quindi includere tutti i file di intestazione in tensorflow/lite/
da TensorFlow
repository Git. Inoltre, avrai bisogno di file di intestazione
FlatBuffers e
Abseil (Abseil).