Google I / O revient du 18 au 20 mai! Réservez de l'espace et construisez votre emploi du temps Inscrivez-vous maintenant

Démarrage rapide Android

Pour démarrer avec TensorFlow Lite sur Android, nous vous recommandons d'explorer l'exemple suivant.

Exemple de classification d'images Android

Lisez la classification des images Android TensorFlow Lite pour obtenir une explication du code source.

Cet exemple d'application utilise la classification d'images pour classer en continu tout ce qu'il voit de la caméra arrière de l'appareil. L'application peut s'exécuter sur l'appareil ou sur l'émulateur.

L'inférence est effectuée à l'aide de l'API Java TensorFlow Lite et de la bibliothèque de support Android TensorFlow Lite . L'application de démonstration classe les cadres en temps réel, affichant les classifications les plus probables. Il permet à l'utilisateur de choisir entre un modèle à virgule flottante ou quantifié , de sélectionner le nombre de threads et de décider s'il doit fonctionner sur CPU, GPU ou via NNAPI .

Construire dans Android Studio

Pour créer l'exemple dans Android Studio, suivez les instructions dans README.md .

Créez votre propre application Android

Pour commencer à écrire rapidement votre propre code Android, nous vous recommandons d'utiliser notre exemple de classification d'images Android comme point de départ.

Les sections suivantes contiennent des informations utiles pour travailler avec TensorFlow Lite sur Android.

Utiliser la liaison de modèle Android Studio ML

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

  1. Faites un clic droit sur le module que vous souhaitez utiliser le modèle TFLite ou cliquez sur File , puis New > Other > TensorFlow Lite Model Menus contextuels pour accéder à la fonctionnalité d'importation de TensorFlow Lite

  2. Sélectionnez l'emplacement de votre fichier TFLite. Notez que l'outillage configurera la dépendance du module en votre nom avec la liaison de modèle ML et toutes les dépendances automatiquement insérées dans le fichier build.gradle de votre module Android.

    Facultatif: cochez la deuxième case pour importer le GPU TensorFlow si vous souhaitez utiliser l' accélération GPU . Boîte de dialogue d'importation pour le modèle TFLite

  3. Cliquez sur Finish .

  4. L'écran suivant apparaîtra une fois l'importation réussie. Pour commencer à utiliser le modèle, sélectionnez Kotlin ou Java, copiez et collez le code dans la section Sample Code . Vous pouvez revenir à cet écran en double-cliquant sur le modèle TFLite sous le répertoire ml dans Android Studio. Page des détails du modèle dans Android Studio

Utiliser la bibliothèque de tâches TensorFlow Lite

La bibliothèque de tâches TensorFlow Lite contient un ensemble de bibliothèques spécifiques aux tâches puissantes et faciles à utiliser permettant aux développeurs d'applications de créer des expériences de ML avec TFLite. 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 la meilleure convivialité. La bibliothèque de tâches fonctionne sur plusieurs plates-formes et est prise en charge sur Java, C ++ et Swift (bientôt disponible).

Pour utiliser la bibliothèque de support dans votre application Android, nous vous recommandons d'utiliser l'AAR hébergé sur MavenCentral pour la bibliothèque Task Vision et la bibliothèque Task Text , respectivement.

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

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

Pour utiliser des instantanés nocturnes, assurez-vous d'avoir ajouté le référentiel d'instantanés Sonatype .

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

Utilisez la bibliothèque de support Android TensorFlow Lite

La bibliothèque de support Android TensorFlow Lite facilite l'intégration des modèles dans votre application. Il fournit des API de haut niveau qui aident à transformer les données d'entrée brutes dans 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, y compris 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 d'image.

Pour utiliser la bibliothèque de support dans votre application Android, nous vous recommandons d'utiliser la bibliothèque de support TensorFlow Lite AAR hébergée sur MavenCentral .

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

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

Pour utiliser des instantanés nocturnes, assurez-vous d'avoir ajouté le référentiel d'instantanés Sonatype .

Pour commencer, suivez les instructions de la bibliothèque de support Android de TensorFlow Lite .

Utilisez le TensorFlow Lite AAR de MavenCentral

Pour utiliser TensorFlow Lite dans votre application Android, nous vous recommandons d'utiliser TensorFlow Lite AAR hébergé chez MavenCentral .

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

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly-SNAPSHOT'
}

Pour utiliser des instantanés nocturnes, assurez-vous d'avoir ajouté le référentiel d'instantanés Sonatype .

Cet AAR comprend 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.

Nous recommandons à la plupart des développeurs d'omettre les arm32 x86 , x86_64 et arm32. Cela peut être réalisé avec la configuration Gradle suivante, qui inclut spécifiquement uniquement armeabi-v7a et arm64-v8a , qui devraient couvrir la plupart des appareils Android modernes.

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

Pour en savoir plus sur abiFilters , consultez NdkOptions dans la documentation Android Gradle.

Créer une application Android à l'aide de C ++

Il existe deux façons d'utiliser TFLite via C ++ si vous créez votre application avec le NDK:

Utiliser l'API TFLite C

C'est l'approche recommandée . Téléchargez le TensorFlow Lite AAR hébergé chez MavenCentral , renommez tensorflow-lite-*.zip et décompressez-le. Vous devez inclure les quatre fichiers d'en headers/tensorflow/lite/ tête dans le dossier headers/tensorflow/lite/ et headers/tensorflow/lite/c/ et la bibliothèque dynamique libtensorflowlite_jni.so correspondante 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.

Utiliser l'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

64 bits arm64-v8a:

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

Actuellement, il n'existe pas de 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 d' Abseil .