Comment ajouter Machine Learning à vos applications Android

Auteur: Peter Berry
Date De Création: 16 Août 2021
Date De Mise À Jour: 1 Juillet 2024
Anonim
Comment ajouter Machine Learning à vos applications Android - Applications
Comment ajouter Machine Learning à vos applications Android - Applications

Contenu


L'apprentissage machine (ML) peut vous aider à créer des expériences novatrices, convaincantes et uniques pour vos utilisateurs mobiles.

Une fois que vous maîtrisez le langage ML, vous pouvez l’utiliser pour créer un large éventail d’applications, y compris des applications qui organisent automatiquement les photos en fonction de leur sujet, identifient et suivent le visage d’une personne dans un flux en direct, extraient le texte d’une image, etc. .

Mais ML n’est pas vraiment adapté aux débutants! Si vous souhaitez améliorer vos applications Android avec de puissantes capacités d'apprentissage automatique, par où commencez-vous exactement?

Dans cet article, je vais vous donner un aperçu d’un kit de développement logiciel (SDK) qui promet de mettre la puissance de ML à portée de main, même si vous avez zéro Expérience ML. À la fin de cet article, vous aurez les bases nécessaires pour commencer à créer des applications intelligentes basées sur ML, capables d’étiqueter des images, de numériser des codes à barres, de reconnaître des visages et des points de repère célèbres, et d’exécuter de nombreuses autres tâches ML puissantes.


Découvrez le kit d’apprentissage automatique de Google

Avec la sortie de technologies telles que TensorFlow et CloudVision, ML est de plus en plus utilisé, mais ces technologies ne sont pas pour les âmes sensibles! Vous aurez généralement besoin d’une connaissance approfondie des réseaux de neurones et de l’analyse des données commencé avec une technologie telle que TensorFlow.

Même si vous faire avoir une certaine expérience en matière de ML, la création d’une application mobile basée sur l’apprentissage automatique peut être un processus long, complexe et coûteux, vous obligeant à collecter suffisamment de données pour former vos propres modèles ML, puis à optimiser ces modèles pour une exécution efficace environnement mobile. Si vous êtes un développeur individuel ou que vous avez des ressources limitées, il ne sera peut-être pas possible de mettre en pratique vos connaissances en matière de BC.


ML Kit est la tentative de Google d’apporter l’apprentissage automatique aux masses.

Sous le capot, ML Kit regroupe plusieurs technologies ML puissantes nécessitant généralement une connaissance approfondie de la technologie ML, notamment Cloud Vision, TensorFlow et l’API Android Neural Networks. Le kit ML combine ces technologies ML spécialisées avec des modèles pré-formés pour les cas d'utilisation mobile courants, notamment l'extraction de texte d'une image, la numérisation d'un code à barres et l'identification du contenu d'une photo.

Que vous ayez une connaissance préalable de ML ou non, vous pouvez utiliser ML Kit pour ajouter de puissantes capacités d’apprentissage automatique à votre Android. et Applications iOS: transmettez simplement certaines données à la partie appropriée de ML Kit, telle que l'API de reconnaissance de texte ou d'identification de langage, et cette API utilisera l'apprentissage automatique pour renvoyer une réponse.

Comment utiliser les API du kit ML?

ML Kit est divisé en plusieurs API réparties dans le cadre de la plate-forme Firebase. Pour utiliser l’une des API du kit ML, vous devez créer une connexion entre votre projet Android Studio et un projet Firebase correspondant, puis communiquer avec Firebase.

La plupart des modèles du kit ML sont disponibles en tant que modèles sur le périphérique que vous pouvez télécharger et utiliser localement, mais certains modèles sont également disponibles dans le cloud, ce qui permet à votre application d’effectuer des tâches alimentées par le ML via la connexion Internet du périphérique.

Chaque approche ayant son propre ensemble de forces et de faiblesses, vous devez déterminer si le traitement local ou à distance est le plus judicieux pour votre application particulière. Vous pouvez même ajouter une prise en charge pour les deux modèles, puis permettre à vos utilisateurs de choisir le modèle à utiliser au moment de l'exécution. Vous pouvez également configurer votre application pour sélectionner le meilleur modèle pour les conditions actuelles, par exemple en utilisant uniquement le modèle basé sur un nuage lorsque l'appareil est connecté au Wi-Fi.

Si vous optez pour le modèle local, les fonctionnalités d’apprentissage automatique de votre application seront toujours disponibles, que l’utilisateur ait ou non une connexion Internet active. Étant donné que tout le travail est effectué localement, les modèles sur appareil sont idéaux lorsque votre application doit traiter rapidement de grandes quantités de données, par exemple si vous utilisez ML Kit pour manipuler un flux vidéo en direct.

Dans le même temps, les modèles basés sur le cloud offrent généralement une plus grande précision que leurs homologues intégrés, car ils exploitent la puissance de la technologie d’apprentissage automatique de Google Cloud Platform. Par exemple, le modèle sur le périphérique de l’API Image Labeling comprend 400 étiquettes, mais le modèle de nuage présente des 10 000 étiquettes.

Selon l’API, il peut également y avoir des fonctionnalités uniquement disponibles dans le nuage. Par exemple, l’API de reconnaissance de texte ne peut identifier les caractères non latins que si vous utilisez son modèle basé sur un nuage.

Les API basées sur le cloud ne sont disponibles que pour les projets Firebase de niveau Blaze. Vous devez donc passer à un plan Blaze à la carte avant de pouvoir utiliser l’un des modèles de cloud de ML Kit.

Si vous décidez d'explorer les modèles de cloud, au moment de la rédaction du présent document, un quota gratuit était disponible pour toutes les API de kit ML. Si vous souhaitez simplement expérimenter l'étiquetage d'images en nuage, vous pouvez mettre à niveau votre projet Firebase vers le plan Blaze, tester l'API sur moins de 1 000 images, puis revenir au plan Spark gratuit, sans être facturé. Cependant, les termes et conditions ont la mauvaise habitude de changer avec le temps, alors assurez-vous de lire les petits caractères avant de passer à Blaze, histoire de ne pas vous faire toucher par des factures inattendues!

Identifiez le texte dans n'importe quelle image avec l'API de reconnaissance de texte

L'API de reconnaissance de texte peut identifier, analyser et traiter le texte de manière intelligente.

Vous pouvez utiliser cette API pour créer des applications qui extraient du texte à partir d'une image, afin que vos utilisateurs ne perdent pas de temps en saisie de données manuelle fastidieuse. Par exemple, vous pouvez utiliser l'API de reconnaissance de texte pour aider vos utilisateurs à extraire et enregistrer les informations contenues dans des reçus, des factures, des cartes de visite ou même des étiquettes nutritionnelles, simplement en prenant une photo de l'article en question.

Vous pouvez même utiliser l'API de reconnaissance de texte comme première étape d'une application de traduction, où l'utilisateur prend une photo d'un texte inconnu et l'API extrait tout le texte de l'image, prêt à être transmis à un service de traduction.

L'API de reconnaissance de texte intégrée au kit de ML peut identifier le texte dans n'importe quelle langue basée en latin, tandis que son pendant basé sur le nuage peut reconnaître une plus grande variété de langues et de caractères, y compris les caractères chinois, japonais et coréen. Le modèle basé sur un nuage est également optimisé pour extraire du texte fragmentaire d'images et du texte de documents très volumineux, dont vous devez tenir compte lors du choix du modèle à utiliser dans votre application.

Vous voulez une expérience pratique avec cette API? Consultez ensuite notre guide étape par étape pour créer une application capable d'extraire le texte à partir d'une image à l'aide de l'API de reconnaissance de texte.

Comprendre le contenu d’une image: l’API de marquage d’image

L'API de marquage d'image peut reconnaître des entités dans une image, y compris des emplacements, des personnes, des produits et des animaux, sans avoir besoin de métadonnées contextuelles supplémentaires. L'API d'étiquetage d'image renvoie des informations sur les entités détectées sous la forme d'étiquettes. Par exemple, dans la capture d’écran suivante, j’ai fourni à l’API une photo de nature et a répondu avec des libellés tels que «Forest» et «River».

Cette capacité à reconnaître le contenu d’une image peut vous aider à créer des applications qui balisent les photos en fonction de leur sujet. des filtres qui identifient automatiquement le contenu soumis par l'utilisateur inapproprié et le suppriment de votre application; ou comme base pour la fonctionnalité de recherche avancée.

La plupart des API du kit ML renvoient plusieurs résultats possibles, avec les scores de confiance correspondants, y compris l'API d'étiquetage d'images. Si vous transmettez à une image une image d’un caniche, elle peut renvoyer des étiquettes telles que «caniche», «chien», «animal de compagnie» et «petit animal», avec des scores différents indiquant la confiance de l’API en chaque étiquette. Espérons que dans ce scénario, «caniche» aura le score de confiance le plus élevé!

Vous pouvez utiliser ce score de confiance pour créer un seuil qui doit être atteint avant que votre application n'agisse sur une étiquette particulière, par exemple pour l'afficher à l'utilisateur ou pour marquer une photo avec cette étiquette.

L'étiquetage d'images est disponible sur le périphérique et dans le nuage. Toutefois, si vous optez pour le modèle de nuage, vous aurez accès à plus de 10 000 étiquettes, par rapport aux 400 étiquettes incluses dans le modèle sur périphérique.

Pour plus de détails sur l’API d’étiquetage d’images, consultez Déterminer le contenu d’une image avec l’apprentissage automatique. Dans cet article, nous construisons une application qui traite une image, puis renvoie les étiquettes et les scores de confiance pour chaque entité détectée dans cette image. Nous implémentons également des modèles sur l'appareil et dans le nuage dans cette application, afin que vous puissiez voir exactement en quoi les résultats diffèrent, en fonction du modèle que vous avez choisi.

Comprendre les expressions et suivre les visages: l'API de détection de visage

L'API de détection de visage peut localiser des visages humains dans des photos, des vidéos et des flux en direct, puis extraire des informations sur chaque visage détecté, y compris sa position, sa taille et son orientation.

Vous pouvez utiliser cette API pour aider les utilisateurs à éditer leurs photos, par exemple en réduisant automatiquement tout l'espace vide autour de leur dernier portrait.

L’API de détection de visage n’est pas limitée aux images. Vous pouvez également l’appliquer à des vidéos. Par exemple, vous pouvez créer une application qui identifie tous les visages d’un flux vidéo, puis brouille tout. sauf visages similaires à la fonction de flou d’arrière-plan de Skype.

La détection de visage est toujours effectué sur l’appareil, où il est assez rapide pour être utilisé en temps réel. Par conséquent, contrairement à la plupart des API de ML Kit, la détection de visage ne fonctionne pas. ne pas inclure un modèle de nuage.

En plus de détecter les visages, cette API comporte quelques fonctionnalités supplémentaires qui méritent d’être explorées. Tout d'abord, l'API de détection de visage peut identifier les points de repère du visage, tels que les yeux, les lèvres et les oreilles, puis extraire les coordonnées exactes de chacun de ces points de repère. Cette reconnaissance de repère vous fournit une carte précise de chaque visage détecté - idéal pour créer des applications de réalité augmentée (RA) qui ajoutent des masques et des filtres de style Snapchat au flux de caméra de l'utilisateur.

L’API de détection de visage propose également des classification. Actuellement, ML Kit prend en charge deux classifications faciales: les yeux ouverts et le sourire.

Vous pouvez utiliser cette classification comme base pour les services d’accessibilité, tels que les commandes mains libres, ou pour créer des jeux qui répondent à l’expression du visage du joueur. La possibilité de détecter si une personne sourit ou a les yeux ouverts peut également s'avérer utile si vous créez une application pour appareil photo. Après tout, rien de pire que de prendre plusieurs photos, mais de découvrir plus tard que quelqu'un avait les yeux fermés. dans chaque coup.

Enfin, l'API de détection de visage comprend un composant de suivi des visages qui attribue un identifiant à un visage, puis effectue le suivi du visage sur plusieurs images ou images vidéo consécutives. Notez que c'est le visage suivi et pas vrai visage reconnaissance. En coulisse, l’API de détection de visage surveille la position et le mouvement du visage, puis en déduit que ce visage appartient probablement à la même personne, mais qu’il ignore en fin de compte son identité.

Essayez l'API de détection de visage pour vous-même! Découvrez comment créer une application de détection de visage avec Machine Learning et le kit Firebase ML.

Numérisation de codes à barres avec Firebase et ML

La numérisation de codes à barres n’est peut-être pas aussi intéressante que certaines autres API d’apprentissage automatique, mais c’est l’une des parties les plus accessibles du kit ML.

La numérisation d’un code à barres n’exigeant aucun logiciel ni matériel spécialisé, vous pouvez donc utiliser l’API de numérisation de codes à barres tout en garantissant que votre application reste accessible au plus grand nombre de personnes possible, y compris à des utilisateurs d’appareils plus anciens ou plus économiques. Tant qu'un appareil a une caméra qui fonctionne, il ne devrait pas rencontrer de problèmes pour scanner un code à barres.

L'API de numérisation de codes à barres de ML Kit peut extraire un large éventail d'informations à partir de codes à barres imprimés et numériques, ce qui en fait un moyen rapide, facile et accessible de transmettre des informations du monde réel à votre application, sans que les utilisateurs aient à effectuer une saisie manuelle fastidieuse. .

L’API de numérisation de codes à barres peut reconnaître et analyser un code à barres à partir de neuf types de données:

  • TYPE_CALENDAR_EVENT. Il contient des informations telles que le lieu de l’événement, son organisateur, son heure de début et de fin.Si vous faites la promotion d’un événement, vous pouvez inclure un code-barres imprimé sur vos affiches ou vos flyers ou un code-barres numérique sur votre site Web. Les participants potentiels peuvent ensuite extraire toutes les informations sur votre événement, simplement en scannant son code à barres.
  • TYPE_CONTACT_INFO. Ce type de données couvre des informations telles que l’adresse e-mail, le nom, le numéro de téléphone et le titre du contact.
  • TYPE_DRIVER_LICENSE. Il contient des informations telles que la rue, la ville, l’état, le nom et la date de naissance associés au permis de conduire.
  • TYPE_EMAIL. Ce type de données comprend une adresse électronique, ainsi que la ligne d’objet et le corps du message.
  • TYPE_GEO. Il contient la latitude et la longitude d'un point géographique spécifique, ce qui constitue un moyen simple de partager un emplacement avec vos utilisateurs ou de leur permettre de partager leur emplacement avec d'autres. Vous pouvez même potentiellement utiliser des codes à barres géographiques pour déclencher des événements basés sur la localisation, tels que l’affichage d’informations utiles sur la position actuelle de l’utilisateur ou la base de jeux mobiles basés sur la localisation.
  • TYPE_PHONE. Celui-ci contient le numéro de téléphone et le type de numéro, par exemple s’il s’agit d’un numéro de téléphone professionnel ou personnel.
  • TYPE_SMS. Celui-ci contient du texte SMS et le numéro de téléphone associé au SMS.
  • TYPE_URL. Ce type de données contient une URL et son titre. Numériser un code à barres TYPE_URL est beaucoup plus facile que de compter sur vos utilisateurs pour taper manuellement une URL longue et complexe, sans faire de fautes de frappe ou d’orthographe.
  • TYPE_WIFI. Celui-ci contient le SSID et le mot de passe d’un réseau Wi-Fi, ainsi que son type de cryptage tel que OPEN, WEP ou WPA. Un code à barres Wi-Fi est l’un des moyens les plus simples de partager les informations d’identité Wi-Fi, tout en éliminant complètement le risque que vos utilisateurs n’entrent ces informations de manière incorrecte.

L'API d'analyse de codes à barres peut analyser des données à partir d'une gamme de codes à barres différents, y compris des formats linéaires tels que Codabar, Code 39, EAN-8, ITF et UPC-A, et des formats 2D tels qu'Aztec, Data Matrix et QR Codes.

Pour faciliter la tâche de vos utilisateurs finaux, cette API analyse simultanément tous les codes à barres pris en charge et peut également extraire des données, quelle que soit l’orientation du code à barres. Qu'importe si le code à barres est complètement à l'envers lorsque l'utilisateur le numérise!

Apprentissage automatique dans le cloud: l'API de reconnaissance de Landmark

Vous pouvez utiliser l’API de reconnaissance de points de repère de ML Kit pour identifier des points de repère naturels et construits bien connus au sein d’une image.

Si vous transmettez à cette API une image contenant un point de repère célèbre, le nom de ce point de repère, les valeurs de latitude et de longitude de ce point de repère ainsi que le cadre de sélection indiquant où le point de repère a été découvert dans l'image sont alors renvoyés.

Vous pouvez utiliser l'API Landmark Recognition pour créer des applications qui marquent automatiquement les photos de l'utilisateur ou pour offrir une expérience plus personnalisée. Par exemple, si votre application reconnaît qu'un utilisateur prend des photos de la Tour Eiffel, elle peut offrir des informations intéressantes sur ce monument, ou suggère des sites touristiques similaires à proximité que l’utilisateur voudra peut-être visiter ensuite.

Exceptionnellement pour le kit ML, l’API de détection de repère est uniquement disponible en tant qu’API basée sur un nuage. Votre application ne peut donc effectuer de détection de repère que lorsque le périphérique dispose d’une connexion Internet active.

L'API d'Identification de Langue: Développer pour un public international

Aujourd'hui, les applications Android sont utilisées dans le monde entier par des utilisateurs qui parlent plusieurs langues.

L'API d'identification de langage de ML Kit peut aider votre application Android à séduire un public international en prenant une chaîne de texte et en déterminant la langue dans laquelle elle est écrite. L'API d'identification de langue peut identifier plus de cent langues différentes, y compris du texte romanisé pour l'arabe, le bulgare, Chinois, grec, hindi, japonais et russe.

Cette API peut constituer un ajout précieux à toute application traitant du texte fourni par l'utilisateur, car ce texte inclut rarement des informations sur la langue. Vous pouvez également utiliser l'API d'identification de langage dans les applications de traduction, en tant que première étape de la traduction. n'importe quoi, c’est de savoir dans quelle langue vous travaillez! Par exemple, si l'utilisateur pointe la caméra de son appareil vers un menu, votre application peut alors utiliser l'API d'identification de langage pour déterminer si le menu est écrit en français, puis proposer de traduire ce menu à l'aide d'un service tel que l'API de traduction Cloud ( peut-être après avoir extrait son texte, en utilisant l’API de reconnaissance de texte?)

En fonction de la chaîne en question, l'API d'identification de langue peut renvoyer plusieurs langues potentielles, accompagnées de scores de confiance afin que vous puissiez déterminer quelle langue détectée est la plus susceptible d'être correcte. Notez qu’au moment de la rédaction, ML Kit ne pouvait pas identifier plusieurs langues différentes dans la même chaîne.

Pour garantir que cette API assure l'identification de la langue en temps réel, l'API d'identification de la langue est uniquement disponible en tant que modèle intégré.

Bientôt disponible: Smart Reply

Google envisage d’ajouter plus d’API à ML Kit à l’avenir, mais nous connaissons déjà une API en devenir.

Selon le site Web ML Kit, la prochaine API Smart Reply vous permettra d’offrir des réponses à la messagerie contextuelle dans vos applications en suggérant des extraits de texte qui correspondent au contexte actuel. D'après ce que nous savons déjà de cette API, il semble que Smart Reply sera similaire à la fonctionnalité de réponse suggérée déjà disponible dans l'application Android, Wear OS et Gmail.

La capture d'écran suivante montre à quoi ressemble la fonctionnalité de réponse suggérée dans Gmail.

Et après? Utilisation de TensorFlow Lite avec le kit ML

ML Kit fournit des modèles prédéfinis pour les cas d'utilisation courants des mobiles, mais vous voudrez peut-être aller au-delà de ces modèles tout faits.

Il est possible de créer vos propres modèles ML à l'aide de TensorFlow Lite, puis de les distribuer à l'aide du kit ML. Cependant, sachez que contrairement aux API prédéfinies de ML Kit, travailler avec vos propres modèles ML nécessite une important quantité d'expertise ML.

Une fois que vous avez créé vos modèles TensorFlow Lite, vous pouvez les télécharger sur Firebase. Google gérera l'hébergement et la fourniture de ces modèles à vos utilisateurs finaux. Dans ce scénario, ML Kit agit comme une couche d'API sur votre modèle personnalisé, ce qui simplifie les tâches lourdes liées à l'utilisation de modèles personnalisés. Plus particulièrement, ML Kit transmettra automatiquement la dernière version de votre modèle à vos utilisateurs. Vous ne serez donc pas obligé de mettre à jour votre application à chaque fois que vous souhaitez modifier votre modèle.

Pour fournir la meilleure expérience utilisateur possible, vous pouvez spécifier les conditions à remplir avant que votre application ne télécharge de nouvelles versions de votre modèle TensorFlow Lite, par exemple uniquement la mise à jour du modèle lorsque le périphérique est inactif, en charge ou connecté au réseau Wi-Fi. Fi. Vous pouvez même utiliser ML Kit et TensorFlow Lite avec d'autres services Firebase, par exemple, en utilisant Firebase Remote Config et Firebase A / B Testing pour servir différents modèles à différents groupes d'utilisateurs.

Si vous souhaitez aller au-delà des modèles prédéfinis, ou si les modèles existants de ML Kit ne répondent pas tout à fait à vos besoins, vous pouvez en apprendre davantage sur la création de vos propres modèles d’apprentissage automatique dans la documentation officielle de Firebase.

Emballer

Dans cet article, nous avons examiné chaque composant du kit d’apprentissage automatique de Google et avons présenté quelques scénarios courants dans lesquels vous souhaiteriez peut-être utiliser chacune des API du kit ML.

Google envisage d'ajouter d'autres API dans le futur. Quelles sont donc les API d'apprentissage automatique que vous souhaiteriez voir ajoutées à ML Kit? Faites-nous savoir dans les commentaires ci-dessous!

Nou avon moin de troi moi d’ici 2019 et nou avon déjà vu beaucoup de téléphone géniaux de ociété telle que amung, LG et ony. Ce quiz va teter combien d’entre eux vou...

Cette emaine, nou allon teter à quel point vou connaiez vraiment Xiaomi, la ociété connue pour e téléphone Android offrant un excellent rapport qualité-prix. Le quiz ci-d...

Articles Pour Vous