Le développement Android ne se limite pas à de jolies petites applications qui répartissent la facture dans les restaurants (cela semble être "l'idée d'application géniale" de tout le monde, ou est-ce juste moi?). Android est une plate-forme puissante bénéficiant du soutien de l'une des entreprises les plus grandes et les plus influentes au monde. Une entreprise qui est à la pointe de l'apprentissage automatique et qui se considère «AI-first».
Apprendre TensorFlow Lite pour Android permet aux développeurs d'implémenter l'apprentissage automatique avancé dans leurs créations. Cela étend considérablement les capacités d'une application et introduit d'innombrables nouveaux cas d'utilisation potentiels. Il enseigne également des compétences inestimables dont la demande ne fera qu'augmenter au cours des prochaines années.
Voir également: Votre travail est-il sûr? Emplois que l'IA détruira dans les 10 à 20 prochaines années
Ceci est la parfaite introduction à l'apprentissage automatique, alors commençons!
Commençons par les bases: qu'est-ce que TensorFlow Lite? Pour répondre à cela, nous devons d'abord examiner TensorFlow lui-même. TensorFlow est une plate-forme open source «de bout en bout» (c'est-à-dire tout-en-un) pour l'apprentissage automatique de l'équipe Google Brain. TensorFlow est une bibliothèque de logiciels open source qui permet des tâches d'apprentissage automatique.
Une tâche d'apprentissage automatique est un problème qui nécessite une reconnaissance de formes alimentée par des algorithmes et de grandes quantités de données. Ceci est AI, mais pas dans le Hal de 2001: Une odyssée de l'espace sens.
Voir également: Intelligence artificielle vs apprentissage automatique: quelle est la différence?
La vision par ordinateur est un exemple d'application d'apprentissage automatique. Il permet aux ordinateurs de reconnaître des objets dans une photographie ou un flux de caméra en direct. Pour ce faire, le programme doit d'abord être «entraîné» en lui montrant des milliers d'images de cet objet. Le programme ne comprend jamais l'objet mais apprend à rechercher des modèles de données particuliers (changements de contraste, angles ou courbes particuliers) susceptibles de correspondre à l'objet. Au fil du temps, le programme devient de plus en plus précis pour repérer cet objet.


En tant que développeur Android, la vision par ordinateur crée de nombreuses possibilités: que vous souhaitiez utiliser la reconnaissance faciale comme fonction de sécurité, créer un programme AR capable de mettre en évidence des éléments de l'environnement ou créer la prochaine application «Reface». C'est avant d'envisager les innombrables autres utilisations des modèles d'apprentissage automatique: reconnaissance vocale, OCR, IA ennemie, et bien plus encore.
Créer et mettre en œuvre ces types de modèles à partir de zéro serait une tâche extrêmement ardue pour un seul développeur, c'est pourquoi il est si utile d'avoir accès à des bibliothèques prêtes à l'emploi.
Voir également: Qu'est-ce que Google Cloud?
TensorFlow est capable de fonctionner sur une large gamme de processeurs et de GPU, mais fonctionne particulièrement bien avec les propres unités de traitement Tensor (TPU) de Google. Les développeurs peuvent également tirer parti de la puissance de Google Cloud Platform en externalisant les opérations de machine learning vers les serveurs de Google.
TensorFlow Lite apporte à bord (cela signifie qu'il fonctionne sur l'appareil mobile lui-même) Tensor Flow aux appareils mobiles. Annoncée en 2017, la pile logicielle TFLite est conçue spécifiquement pour le développement mobile. TensorFlow Lite "Micro", quant à lui, est une version spécialement conçue pour les microcontrôleurs, qui a récemment fusionné avec uTensor d'ARM.
Certains développeurs demandent peut-être maintenant quelle est la différence entre Kit ML et TensorFlow Lite est. Bien qu'il y ait certainement un certain chevauchement, TensorFlow Lite est plus bas niveau et ouvert. Plus important encore: TensorFlow Lite s'exécute sur l'appareil lui-même, tandis que ML Kit nécessite un enregistrement Firebase et une connexion Internet active. Malgré la nomenclature confuse de Google, notez que ML Kit utilise toujours TensorFlow «sous le capot». Firebase n'est également qu'un autre type de projet Google Cloud Platform.
Voir également: Créez une application de détection de visage avec l'apprentissage automatique et Firebase ML Kit
TensorFlow Lite est disponible sur Android et iOS via une API C ++ et un wrapper Java pour les développeurs Android. Sur les appareils qui le prennent en charge, la bibliothèque peut également tirer parti de l'API Android Neural Networks pour l'accélération matérielle.
Lequel devriez-vous utiliser pour vos projets? Cela dépend beaucoup de votre objectif. Si cela ne vous dérange pas de compter sur un service cloud externe, ML Kit peut vous faciliter la vie. Si vous souhaitez que le code s'exécute en natif, ou si vous avez besoin d'un peu plus de personnalisation et de flexibilité, optez pour TensorFlow Lite.
Pour résoudre un problème avec l'apprentissage automatique, les développeurs s'appuient sur des «modèles». Les modèles ML sont des fichiers qui contiennent statistique des modèles. Ces fichiers sont formés pour reconnaître des modèles spécifiques. L'entraînement consiste essentiellement à alimenter le modèle avec des échantillons de données afin qu'il puisse améliorer son taux de réussite en affinant les modèles qu'il utilise.
Voir également: Étiquetage d'image du kit ML: déterminez le contenu d'une image avec l'apprentissage automatique
Ainsi, un modèle de vision par ordinateur peut commencer par quelques hypothèses de base sur l'apparence d'un objet. Au fur et à mesure que vous lui montrez de plus en plus d'images, il deviendra de plus en plus précis tout en élargissant la portée de ce qu'il recherche.


Vous rencontrerez des «modèles pré-entraînés» qui ont déjà été nourris de toutes ces données afin d'affiner leurs algorithmes. Ce type de modèle est donc «prêt à l'emploi». Il peut effectuer automatiquement une tâche telle que l'identification des émotions en fonction des expressions faciales ou le déplacement d'un bras de robot dans l'espace.
Dans TensorFlow Lite, ces fichiers sont appelés «Fichiers de modèle TensorFlow Lite» et portent l'extension «.tflite» ou «.lite». Les fichiers d'étiquettes incluent les étiquettes pour lesquelles le fichier est formé (par exemple, «heureux» ou «triste» pour les modèles de reconnaissance faciale).
Vous pouvez également rencontrer d'autres types de fichiers utilisés dans le processus de formation. Les fichiers GraphDef (.pb ou .pbtxt) décrivent votre graphique et peuvent être lus par d'autres processus. La version TXT est également conçue pour être lisible par l'homme. Vous pouvez également les créer à l'aide de TensorFlow.
Le fichier de point de contrôle vous montre le processus d'apprentissage en listant les variables sérialisées – vous permettant de voir comment les valeurs changent au fil du temps. Le Frozen Graph Def convertit ensuite ces valeurs en constantes et les lit à partir des points de contrôle définis via le graphique. Le modèle TFlite est ensuite construit de le graphe figé à l'aide du TOCO (Tensor Flow Optimizing Converter Tool). Cela nous donne un joli fichier «pré-entraîné» que nous pouvons ensuite implémenter dans nos applications.
Ces bibliothèques peuvent gérer toutes sortes de tâches courantes, telles que répondre aux questions, reconnaître les visages, etc.
Discuter de la façon d'entraîner et d'importer des modèles dépasse le cadre de cet article, bien que vous puissiez trouver un excellent tutoriel ici.
La bonne nouvelle est que la bibliothèque de tâches TensorFlow contient de nombreuses bibliothèques puissantes et simples qui reposent sur des modèles pré-entraînés. Ceux-ci peuvent gérer toutes sortes de tâches courantes, telles que répondre aux questions, reconnaître les visages, etc. Cela signifie que les débutants n'ont pas à se soucier des fichiers Checkpoint ou de la formation!
Il existe de nombreuses façons d'obtenir des fichiers de modèle TensorFlow Lite pré-entraînés pour votre application. Je recommande de commencer par le site officiel de TensorFlow.
Suivre ce lien, par exemple, et vous pourrez télécharger un modèle de démarrage capable de classer les images de base. La page comprend également quelques détails sur la façon de l'utiliser via le Bibliothèque de tâches TensorFlow Lite. Vous pouvez également utiliser la bibliothèque de support TensorFlow Lite si vous souhaitez ajouter votre propre pipeline d'inférence (c'est-à-dire rechercher de nouveaux éléments).
Une fois que vous avez téléchargé le fichier, vous le placerez dans votre répertoire de ressources. Vous devez spécifier que le fichier ne doit pas être compressé. Pour ce faire, vous ajoutez ce qui suit à votre module build.gradle:
Android {
// Autres réglages
// Spécifiez que le fichier tflite ne doit pas être compressé pour l'application apk
aaptOptions {
noCompress "tflite"
}
}
Pour utiliser TensorFlow Lite dans votre application, vous devrez ajouter la dépendance suivante à votre fichier build.gradle:
compilez & # 39; org.tensorflow: tensorflow-lite: + & # 39;
Ensuite, vous devez importer votre interpréteur. C'est le code qui chargera réellement le modèle et vous permettra de l'exécuter.
Dans votre fichier Java, vous allez ensuite créer une instance de l'interpréteur et l'utiliser pour analyser les données dont vous avez besoin. Par exemple, vous pouvez saisir des images et cela renverra des résultats.
Les résultats seront fournis sous forme de probabilités de sortie. Les modèles ne peuvent jamais affirmer avec certitude ce qu'est un objet. Ainsi, une image d'un chat pourrait être 0,75 chien et 0,25 chat. Votre code doit
Vous pouvez également importer la bibliothèque de support TensorFlow et convertir l'image au format tensor.
Ces modèles pré-entraînés sont capables de reconnaître des milliers de classes d'images. Cependant, il existe de nombreuses «architectures» de modèles différentes qui modifient la façon dont le modèle définit les «couches» impliquées dans le cycle d'apprentissage, ainsi que les étapes mises en œuvre pour transformer les données brutes en données d'apprentissage.
Les architectures de modèles populaires incluent MobileNet et Inception. Votre tâche est de choisir la solution optimale pour le travail. Par exemple, MobileNet est conçu pour favoriser les modèles légers et rapides par rapport aux modèles profonds et complexes. Les modèles complexes ont une plus grande précision mais au détriment de la taille et de la vitesse.
Bien qu'il s'agisse d'un sujet complexe pour les débutants, j'espère que cet article vous a donné une idée des bases, afin que vous puissiez mieux comprendre les futurs tutoriels. La meilleure façon d'acquérir une nouvelle compétence est de choisir un projet, puis d'apprendre les étapes nécessaires pour accomplir cette tâche.


Pour une compréhension plus approfondie, nous vous recommandons vivement Apprentissage automatique avec TensorFlow. Ce cours comprend 19 leçons qui vous montreront comment mettre en œuvre des solutions commerciales courantes. Autorité Android les lecteurs bénéficient d'une réduction de 91% en ce moment, ce qui ramène le prix à 10 $ de 124 $.