Outils de développement pour Android

TensorFlow Lite fournit un certain nombre d'outils permettant d'intégrer des modèles dans des applications Android. Cette page décrit les outils de développement permettant de créer des applications avec Kotlin, Java et C++, ainsi que la compatibilité avec le développement de TensorFlow Lite dans Android Studio.

Outils pour la compilation en Kotlin et Java

Les sections suivantes décrivent les outils de développement pour TensorFlow Lite qui utilisent les langages Kotlin et Java.

Bibliothèque TensorFlow Lite

Utilisez la bibliothèque TensorFlow Lite dans votre application Android en ajoutant l'AAR hébergé sur MavenCentral à votre projet de développement.

Vous pouvez spécifier ce paramètre dans vos dépendances build.gradle comme suit:

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

Si vous utilisez des instantanés nocturnes, veillez à ajouter le dépôt d'instantanés Sonatype à votre projet.

Cette AAR inclut des binaires pour toutes les ABI Android. Vous pouvez réduire la taille du binaire de votre application en n'incluant que les ABI que vous devez prendre en charge.

Dans la plupart des cas, vous devez omettre les ABI x86, x86_64 et arm32, sauf si vous ciblez du matériel spécifique. Vous pouvez le faire à l'aide de la configuration Gradle suivante. Il n'inclut que armeabi-v7a et arm64-v8a, et doit couvrir la plupart des appareils Android modernes.

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

Pour en savoir plus sur abiFilters, consultez la section ABI Android dans la documentation du NDK Android.

Bibliothèque TensorFlow Lite Support

La bibliothèque Android Support de TensorFlow Lite facilite l'intégration de modèles dans votre application. Elle fournit des API de haut niveau qui aident à transformer les données d'entrée brutes au format requis par le modèle et à interpréter la sortie du modèle, réduisant ainsi la quantité de code récurrent nécessaire.

Il est compatible avec les formats de données courants pour les entrées et les sorties, y compris les images et les tableaux. Il fournit également des unités de prétraitement et de post-traitement qui effectuent des tâches telles que le redimensionnement et le recadrage d'images.

Utilisez la bibliothèque Support dans votre application Android en incluant l'AAR de la bibliothèque Support TensorFlow Lite hébergée sur MavenCentral.

Vous pouvez spécifier ce paramètre dans vos dépendances build.gradle comme suit:

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

Si vous utilisez des instantanés nocturnes, veillez à ajouter le dépôt d'instantanés Sonatype à votre projet.

Pour savoir comment vous lancer, consultez la bibliothèque TensorFlow Lite Android Support.

Versions minimales du SDK Android pour les bibliothèques

Bibliothèque minSdkVersion Configuration requise pour l'appareil
tensorflow-lite 21 -
tensorflow-lite-gpu 21 GLES 3.1 ou OpenCL (généralement disponible uniquement à partir de l'API 21)
tensorflow-lite-support 21 -
tensorflow-lite-metadata 21 -

Utiliser Android Studio

En plus des bibliothèques de développement décrites ci-dessus, Android Studio est également compatible avec l'intégration de modèles TensorFlow Lite, comme décrit ci-dessous.

Liaison de modèle de ML Android Studio

La fonctionnalité de liaison de modèles de ML d'Android Studio 4.1 et versions ultérieures vous permet d'importer des fichiers de modèle .tflite dans votre application Android existante et de générer des classes d'interface pour faciliter l'intégration de votre code à un modèle.

Pour importer un modèle TensorFlow Lite (TFLite) :

  1. Effectuez un clic droit sur le module dans lequel vous souhaitez utiliser le modèle TFLite ou cliquez sur File > New > Other > TensorFlow Lite Model (Fichier > Nouveau > Autre > Modèle TensorFlow Lite).

  2. Sélectionnez l'emplacement de votre fichier TensorFlow Lite. Notez que cet outil configure la dépendance du module avec la liaison de modèle de ML et ajoute automatiquement toutes les dépendances requises au fichier build.gradle de votre module Android.

  3. Cliquez sur Finish pour lancer le processus d'importation. Une fois l'importation terminée, l'outil affiche un écran décrivant le modèle, y compris ses Tensors d'entrée et de sortie.

  4. Pour commencer à utiliser le modèle, sélectionnez Kotlin ou Java, puis copiez et collez le code dans la section Exemple de code.

Pour revenir à l'écran d'informations sur le modèle, double-cliquez sur le modèle TensorFlow Lite dans le répertoire ml d'Android Studio. Pour en savoir plus sur l'utilisation de la fonctionnalité de liaison modle d'Android Studio, consultez les notes de version d'Android Studio. Pour découvrir comment utiliser la liaison de modèle dans Android Studio, consultez les instructions d'exemple de code.

Outils de compilation en C et C++

Les bibliothèques C et C++ pour TensorFlow Lite sont principalement destinées aux développeurs qui utilisent le kit de développement natif Android (NDK) pour créer leurs applications. Si vous compilez votre application avec le NDK, vous pouvez utiliser TFLite via C++ de deux manières:

API TFLite C

L'utilisation de cette API est l'approche recommandée pour les développeurs utilisant le NDK. Téléchargez le fichier AAR TensorFlow Lite hébergé sur MavenCentral, renommez-le en tensorflow-lite-*.zip et décompressez-le. Vous devez inclure les quatre fichiers d'en-tête dans les dossiers headers/tensorflow/lite/ et headers/tensorflow/lite/c/, ainsi que la bibliothèque dynamique libtensorflowlite_jni.so appropriée dans le dossier jni/ de votre projet NDK.

Le fichier d'en-tête c_api.h contient une documentation de base sur l'utilisation de l'API TFLite C.

API TFLite C++

Si vous souhaitez utiliser TFLite via l'API C++, vous pouvez créer les bibliothèques partagées C++:

armeabi-v7a 32 bits:

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

arm64-v8a 64 bits:

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

Il n'existe actuellement aucun moyen simple d'extraire tous les fichiers d'en-tête nécessaires. Vous devez donc inclure tous les fichiers d'en-tête dans tensorflow/lite/ à partir du dépôt TensorFlow. Vous aurez également besoin des fichiers d'en-tête de FlatBuffers et d'Abseil.