Outils de développement pour Android

TensorFlow Lite fournit un certain nombre d'outils pour intégrer des modèles dans les applications Android. Cette page décrit les outils de développement à utiliser pour créer des applications avec Kotlin, Java et C++, ainsi que la prise en charge du développement TensorFlow Lite dans Android Studio.

Pour commencer rapidement à écrire du code Android, consultez le guide de démarrage rapide pour Android

Outils pour construire avec 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 de tâches TensorFlow Lite

La bibliothèque de tâches TensorFlow Lite contient un ensemble de bibliothèques spécifiques à des tâches puissantes et faciles à utiliser que les développeurs d'applications peuvent créer avec TensorFlow Lite. Il fournit des interfaces de modèle prêtes à l'emploi optimisées pour les tâches d'apprentissage automatique courantes, telles que la classification d'images, les questions et réponses, etc. Les interfaces de modèle sont spécifiquement conçues pour chaque tâche afin d'obtenir les meilleures performances et convivialité. La bibliothèque de tâches fonctionne sur plusieurs plates-formes et est prise en charge sur Java et C++.

Pour utiliser la bibliothèque de tâches dans votre application Android, utilisez respectivement l'AAR de MavenCentral pour la bibliothèque Task Vision , la bibliothèque de textes de tâches et la bibliothèque audio de tâches .

Vous pouvez spécifier cela dans vos dépendances build.gradle comme suit :

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-task-vision:+'
    implementation 'org.tensorflow:tensorflow-lite-task-text:+'
    implementation 'org.tensorflow:tensorflow-lite-task-audio:+'
}

Si vous utilisez des instantanés nocturnes, assurez-vous d'ajouter le référentiel d'instantanés Sonatype à votre projet.

Consultez l'introduction dans la présentation de la bibliothèque de tâches TensorFlow Lite pour plus de détails.

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 cela dans vos dépendances build.gradle comme suit :

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

Si vous utilisez des instantanés nocturnes, assurez-vous d'ajouter le référentiel d'instantanés Sonatype à votre projet.

Cet AAR comprend des binaires pour tous les ABI Android . Vous pouvez réduire la taille du binaire de votre application en incluant uniquement les ABI que vous devez prendre en charge.

Sauf si vous ciblez un matériel spécifique, vous devez omettre les ABI x86 , x86_64 et arm32 dans la plupart des cas. Vous pouvez configurer cela avec la configuration Gradle suivante. Il inclut spécifiquement uniquement armeabi-v7a et arm64-v8a et devrait couvrir la plupart des appareils Android modernes.

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

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

Bibliothèque de support TensorFlow Lite

La bibliothèque de support Android TensorFlow Lite facilite l'intégration de modèles dans votre application. Il fournit des API de haut niveau qui aident à transformer les données d'entrée brutes sous la forme requise par le modèle et à interpréter la sortie du modèle, réduisant ainsi la quantité de code standard requis.

Il prend en charge les formats de données courants pour les entrées et les sorties, notamment les images et les tableaux. Il fournit également des unités de pré- et post-traitement qui effectuent des tâches telles que le redimensionnement et le recadrage de l'image.

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

Vous pouvez spécifier cela dans vos dépendances build.gradle comme suit :

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

Si vous utilisez des instantanés nocturnes, assurez-vous d'ajouter le référentiel d'instantanés Sonatype à votre projet.

Pour savoir comment démarrer, consultez la bibliothèque de support Android TensorFlow Lite .

Versions minimales du SDK Android pour les bibliothèques

Bibliothèque minSdkVersion Configuration requise pour l'appareil
tensorflow-lite 19 L'utilisation de NNAPI nécessite l'API 27+
tensorflow-lite-gpu 19 GLES 3.1 ou OpenCL (généralement disponible uniquement sur API 21+
tensorflow-lite-hexagone 19 -
support tensorflow-lite 19 -
tensorflow-lite-tâche-vision 21 L'API liée à android.graphics.Color nécessite l'API 26+
tensorflow-lite-tâche-texte 21 -
tensorflow-lite-tâche-audio 23 -
tensorflow-lite-métadonnées 19 -

Utiliser Android Studio

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

Liaison de modèle Android Studio ML

La fonctionnalité ML Model Binding 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. Faites un clic droit sur le module sur lequel vous souhaitez utiliser le modèle TFLite ou cliquez sur Fichier > Nouveau > Autre > Modèle TensorFlow Lite .

  2. Sélectionnez l'emplacement de votre fichier TensorFlow Lite. Notez que les outils configurent la dépendance du module avec la liaison ML Model et ajoutent automatiquement toutes les dépendances requises au fichier build.gradle de votre module Android.

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

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

Vous pouvez revenir à l'écran d'informations sur le modèle en double-cliquant sur le modèle TensorFlow Lite sous le répertoire ml dans Android Studio. Pour plus d'informations sur l'utilisation de la fonctionnalité Modle Binding d'Android Studio, consultez les notes de version d'Android Studio. Pour une présentation de l'utilisation de la liaison de modèle dans Android Studio, consultez les instructions de l'exemple de code .

Outils pour construire avec C et C++

Les bibliothèques C et C++ pour TensorFlow Lite sont principalement destinées aux développeurs utilisant le kit de développement natif Android (NDK) pour créer leurs applications. Il existe deux manières d'utiliser TFLite via C++ si vous créez votre application avec le NDK :

API C TFLite

L'utilisation de cette API est l'approche recommandée pour les développeurs utilisant le NDK. Téléchargez le fichier TensorFlow Lite AAR 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/ et 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 C TFLite.

API C++ TFLite

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

Actuellement, il n'existe 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 référentiel TensorFlow. De plus, vous aurez besoin des fichiers d'en-tête de FlatBuffers et Abseil .