Com afegir Machine Learning a les vostres aplicacions d'Android

Autora: Peter Berry
Data De La Creació: 16 Lang L: none (month-012) 2021
Data D’Actualització: 1 Juliol 2024
Anonim
Com afegir Machine Learning a les vostres aplicacions d'Android - Aplicacions
Com afegir Machine Learning a les vostres aplicacions d'Android - Aplicacions

Content


L’aprenentatge automàtic (ML) us pot ajudar a crear experiències innovadores, convincents i úniques per als usuaris del vostre mòbil.

Un cop dominat el ML, podeu utilitzar-lo per crear una àmplia gamma d'aplicacions, incloses aplicacions que organitzen automàticament fotografies en funció del seu tema, identificar i fer el seguiment de la cara d'una persona a través d'un streaming en viu, extreure text d'una imatge i molt més. .

Però ML no és exactament amable per als principiants! Si voleu millorar les vostres aplicacions d’Android amb potents capacitats d’aprenentatge de màquines, aleshores per on començar exactament?

En aquest article, oferiré una visió general d’un SDK (Kit de desenvolupament de programari) que promet posar el poder de ML al vostre abast, fins i tot si ho teniu zero Experiència en ML. Al final d’aquest article, tindreu la base necessària per començar a crear aplicacions intel·ligents amb tecnologia ML, capaces d’etiquetar imatges, escanejar codis de barres, reconèixer cares i fites famoses i realitzar moltes altres tasques ML potents.


Compliu el kit d’aprenentatge automàtic de Google

Amb l’alliberament de tecnologies com TensorFlow i CloudVision, ML s’està fent més àmpliament utilitzat, però aquestes tecnologies no són del tot desitjoses. Normalment, necessitareu una comprensió profunda de les xarxes neuronals i de l’anàlisi de dades va començar amb una tecnologia com TensorFlow.

Encara que tu fer Teniu una mica d’experiència amb ML, la creació d’una aplicació mòbil basada en l’aprenentatge de màquines pot ser un procés que requereix molt de temps, complex i costós, que requereix que aporti dades suficients per entrenar els vostres propis models ML i, a continuació, optimitzeu aquests models ML per funcionar de manera eficient al entorn mòbil. Si sou un desenvolupador individual o teniu recursos limitats, potser no serà possible posar en pràctica els vostres coneixements de ML.


ML Kit és l’intent de Google d’acostar l’aprenentatge automàtic a les masses.

Sota la caputxa, ML Kit agrupa diverses potents tecnologies ML que normalment requeririen un ampli coneixement de ML, incloses Cloud Vision, TensorFlow i l'Android Neural Networks API. ML Kit combina aquestes tecnologies ML especialitzades amb models pre-formats per a usos mòbils habituals, com ara extreure text d'una imatge, explorar un codi de barres i identificar el contingut d'una foto.

Independentment de si teniu algun coneixement previ de ML, podeu utilitzar el kit ML per afegir potents capacitats d’aprenentatge automàtic a Android i Aplicacions iOS: només cal passar algunes dades a la part correcta de ML Kit, com ara l'API de Reconeixement de Text o d'Identificació d'Idiomes, i aquesta API utilitzarà l'aprenentatge automàtic per retornar una resposta.

Com puc utilitzar les API de ML Kit?

ML Kit es divideix en diverses API que es distribueixen com a part de la plataforma Firebase. Per utilitzar qualsevol de les API de ML Kit, haureu de crear una connexió entre el projecte d’Android Studio i el projecte Firebase corresponent, i després comunicar-vos amb Firebase.

La majoria dels models de ML Kit estan disponibles com a models en un dispositiu que podeu descarregar i utilitzar localment, però alguns models també estan disponibles al núvol, cosa que permet a la vostra aplicació realitzar tasques alimentades amb ML a través de la connexió a Internet del dispositiu.

Cada enfocament té el seu propi conjunt de punts forts i febles, de manera que haureu de decidir si el processament local o remot té el sentit per a la vostra aplicació particular. Fins i tot podeu afegir suport per a tots dos models i, a continuació, permetre als usuaris decidir quin model utilitzar en temps d'execució. De forma alternativa, podeu configurar la vostra aplicació per seleccionar el millor model per a les condicions actuals, per exemple, només mitjançant el model basat en núvol quan el dispositiu està connectat a Wi-Fi.

Si opteu pel model local, les funcions d'aprenentatge automàtic de l'aplicació sempre estaran disponibles, independentment de si l'usuari té una connexió a Internet activa. Com que tot el treball es realitza localment, els models al dispositiu són ideals quan la vostra aplicació necessita processar grans quantitats de dades ràpidament, per exemple, si utilitzeu ML Kit per manipular un flux de vídeo en directe.

Mentrestant, els models basats en núvols solen proporcionar una precisió més gran que els seus homòlegs del dispositiu, ja que els models de núvol aprofiten la potència de la tecnologia d'aprenentatge automàtic de Google Cloud Platform. Per exemple, el model en dispositiu de l’API per a l’etiquetatge d’imatges inclou 400 etiquetes, però el model de núvol es presenta 10.000 etiquetes.

Segons l'API, també pot haver-hi alguna funcionalitat que només estigui disponible al núvol. Per exemple, l'API de reconeixement de text només pot identificar caràcters no llatins si utilitzeu el seu model basat en núvol.

Les API basades en el núvol només estan disponibles per a projectes Blaze Firebase a nivell Blaze, per la qual cosa haureu d’actualitzar-vos a un pla Blaze de pagament inici, abans de poder utilitzar qualsevol dels models de núvol de ML Kit.

Si decidiu explorar els models del núvol, a l’hora d’escriure, hi havia una quota gratuïta disponible per a totes les API de ML Kit. Si només voleu experimentar amb l'etiquetatge d'imatges basat en núvol, podríeu actualitzar el vostre projecte Firebase al pla Blaze, provar l'API amb menys de 1.000 imatges i, després, tornar al pla gratuït Spark sense ser cobrat. Tanmateix, els termes i les condicions tenen un costum desagradable de canviar amb el pas del temps, així que assegureu-vos de llegir la lletra petita abans d’actualitzar a Blaze, només per assegurar-vos que no us sorprendreran cap factura inesperada.

Identifiqueu el text de qualsevol imatge amb l’API de reconeixement de text

L’API de Reconeixement de Text pot identificar, analitzar i processar de forma intel·ligent el text.

Podeu utilitzar aquesta API per crear aplicacions que extreuen text d'una imatge, de manera que els vostres usuaris no hauran de perdre temps en l'entrada de dades manuals tedioses. Per exemple, podeu utilitzar l’API de reconeixement de text per ajudar els usuaris a extreure i registrar la informació de rebuts, factures, targetes de visita o fins i tot etiquetes nutricionals, només fent una foto de l’element en qüestió.

Fins i tot podríeu utilitzar l’API de Reconeixement de Text com a primer pas d’una aplicació de traducció, on l’usuari fa una foto d’algun text desconegut i l’API extreu tot el text de la imatge, a punt per passar a un servei de traducció.

L'API de reconeixement de text al dispositiu de ML Kit pot identificar text en qualsevol idioma basat en llatí, mentre que el seu homòleg basat en núvol pot reconèixer una varietat més gran de idiomes i caràcters, inclosos els caràcters xinès, japonès i coreà. El model basat en núvol també s’optimitza per extreure el text escàs de les imatges i el text de documents densament empaquetats, que heu de tenir en compte a l’hora de decidir quin model utilitzar a la vostra aplicació.

Voleu una experiència pràctica amb aquesta API? A continuació, consulteu la nostra guia pas a pas per crear una aplicació que pugui extreure el text de qualsevol imatge, mitjançant l'API de reconeixement de textos.

Comprendre el contingut d'una imatge: l'API d'etiquetatge d'imatges

L’API d’etiquetatge d’imatges pot reconèixer les entitats d’una imatge, incloses ubicacions, persones, productes i animals, sense necessitat de metadades contextuals addicionals. L'API d'etiquetatge d'imatges retornarà informació sobre les entitats detectades en forma d'etiquetes. Per exemple a la captura de pantalla següent, he proporcionat a l’API una foto de naturalesa i la vaig respondre amb etiquetes com “Bosc” i “Riu”.

Aquesta capacitat de reconèixer el contingut d’una imatge us pot ajudar a crear aplicacions que etiqueten fotos en funció del seu tema; filtres que identifiquen automàticament el contingut enviat per l’usuari inapropiat i el treuen de l’aplicació; o com a base per a la funcionalitat de cerca avançada.

Moltes de les API de ML Kit tornen a obtenir diversos resultats possibles, completades amb puntuacions de confiança que inclouen l'etiquetatge d'imatges API. Si passa Image Labelling a una foto d'un canòdel, pot retornar etiquetes com "poodle", "dog", "pet" i "animal petit", totes amb puntuacions diferents que indiquen la confiança de l'API en cada etiqueta. Esperem que en aquest escenari “poodle” tingui la puntuació de confiança més alta!

Podeu utilitzar aquesta puntuació de confiança per crear un llindar que s'ha de complir abans que l'aplicació actuï sobre una determinada etiqueta, per exemple, mostrar-la a l'usuari o etiquetar una foto amb aquesta etiqueta.

L'etiquetatge d'imatges està disponible tant al dispositiu com al núvol, tot i que si opteu pel model de núvol, obtindreu accés a més de 10.000 etiquetes, en comparació amb les 400 etiquetes que s'inclouen en el model del dispositiu.

Per obtenir un aspecte més detallat de l'API d'etiquetatge d'imatges, feu un cop d'ull a Determineu el contingut d'una imatge amb l'aprenentatge automàtic. En aquest article, creem una aplicació que processa una imatge i, a continuació, retorna les etiquetes i els punts de confiança de cada entitat detectats dins d'aquesta imatge. També implementem models en dispositiu i en núvol en aquesta aplicació, de manera que podreu veure exactament com difereixen els resultats, segons quin model opteu.

Comprendre expressions i fer el seguiment de cares: l'API de detecció de cares

L’API de detecció de rostres pot localitzar cares humanes en fotos, vídeos i transmissions en directe, i després extreu informació sobre cada cara detectada, inclosa la seva posició, mida i orientació.

Podeu utilitzar aquesta API per ajudar els usuaris a editar les seves fotos, per exemple, retallant automàticament tot l'espai buit al voltant del darrer cap de pantalla.

L'API de detecció de rostres no està limitada a les imatges, sinó que també podeu aplicar aquesta API a vídeos, per exemple, podeu crear una aplicació que identifiqui totes les cares d'un canal de vídeo i que després difuminés tot. excepte aquestes cares, semblant a la funció de difuminació de fons d’Skype.

La detecció de cara és sempre es realitza al dispositiu, on és prou ràpid per utilitzar-se en temps real, de manera que a diferència de la majoria de les API de ML Kit, la detecció de rostres no incloure un model de núvol.

A més de detectar cares, aquesta API té algunes funcions addicionals que val la pena explorar. En primer lloc, l’API de detecció de rostres pot identificar fites facials, com ara ulls, llavis i orelles, i després recupera les coordenades exactes de cadascuna d’aquestes fites. Això reconeixement de fita us proporciona un mapa exacte de cada cara detectada, perfecte per crear aplicacions de realitat augmentada (AR) que afegeixen màscares i filtres d’estil Snapchat al feed de la càmera de l’usuari.

L’API de detecció de rostres també ofereix la cara classificació. Actualment, ML Kit admet dues classificacions facials: els ulls oberts i el somriure.

Podeu utilitzar aquesta classificació com a base per a serveis d’accessibilitat, com ara controls lliures de mans, o per crear jocs que responguin a l’expressió facial del jugador. La possibilitat de detectar si algú somriu o té els ulls oberts també pot resultar útil si estàs creant una aplicació per a càmeres. Al cap i a la fi, no hi ha res pitjor que fer un munt de fotos, només per després descobrir que algú tenia els ulls tancats. a cada instant.

Finalment, l'API de detecció de rostres inclou un component de seguiment de rostres, que assigna un ID a una cara i, a continuació, fa pistes que s'enfronten a través de diverses imatges o marcs de vídeo consecutius. Tingueu en compte que això és cara seguiment i no és veritable facial reconeixement. Darrere de les escenes, l'API de detecció de rostres fa el seguiment de la posició i el moviment de la cara i, a continuació, dedueix que aquesta cara pertany a la mateixa persona, però en última instància desconeix la identitat de la persona.

Proveu l'API de detecció de rostres per vosaltres mateixos. Obteniu informació sobre com podeu crear una aplicació de detecció de rostres amb aprenentatge automàtic i Kit de Firebase ML.

Escaneig de codi de barres amb Firebase i ML

És possible que l'escaneig de codis de barres no sembli tan emocionant com algunes de les altres API d'aprenentatge automàtic, però és una de les parts més accessibles del ML Kit.

Escanejar un codi de barres no requereix cap maquinari ni programari especialitzat, de manera que podeu utilitzar l'API d'escaneig de codis de barres alhora que us assegureu que la vostra aplicació es mantingui accessible a la major quantitat possible de persones, inclosos els usuaris de dispositius més antics o de pressupost. Sempre que un dispositiu tingui una càmera que funciona, no hauria de tenir cap problema per analitzar un codi de barres.

L’API d’escaneig de codis de barres de ML Kit pot extreure una àmplia gamma d’informació de codis de barres impresos i digitals, cosa que la converteix en una manera ràpida, fàcil i accessible de passar informació del món real a la vostra aplicació, sense que els usuaris hagin de realitzar cap entrada manual de dades tediosa. .

Hi ha nou tipus de dades diferents que l'API d'escaneig de codis de barres pot reconèixer i analitzar des d'un codi de barres:

  • TYPE_CALENDAR_EVENT. Inclou informació com ara la ubicació, l’organitzador de l’esdeveniment i l’hora d’inici i finalització.Si promocioneu un esdeveniment, podeu incloure un codi de barres imprès als vostres pòsters o flyers o incloure un codi de barres digital al vostre lloc web. Els possibles assistents poden extreure tota la informació sobre el vostre esdeveniment, simplement explorant el seu codi de barres.
  • TYPE_CONTACT_INFO. Aquest tipus de dades inclou informació com ara l’adreça de correu electrònic, el nom, el número de telèfon i el títol del contacte.
  • TYPE_DRIVER_LICENSE. Inclou informació com el carrer, la ciutat, l'estat, el nom i la data de naixement associades al carnet de conduir.
  • TIPUS_EMAIL. Aquest tipus de dades inclou una adreça de correu electrònic, a més de la línia d’assumpte del correu electrònic i el text del cos.
  • TIPUS_GEO. Conté la latitud i la longitud d’un determinat punt geogràfic, que és una manera senzilla de compartir una ubicació amb els vostres usuaris o de compartir-los la ubicació amb els altres. Fins i tot, podríeu utilitzar codis de barres geogràfiques per activar esdeveniments basats en la ubicació, com ara mostrar informació útil sobre la ubicació actual de l'usuari o com a base per a jocs mòbils basats en la ubicació.
  • TYPE_PHONE Conté el número de telèfon i el tipus de número, per exemple si és una feina o un número de telèfon domèstic.
  • TYPE_SMS. Inclou algun text del cos d’SMS i el número de telèfon associat a l’SMS.
  • TIPUS_URL. Aquest tipus de dades conté un URL i el títol de l’URL. Escanejar un codi de barres TYPE_URL és molt més senzill que confiar en els vostres usuaris per escriure manualment un URL llarg i complex, sense haver d'evitar errors d'ortografia o d'ortografia.
  • TIPUS_WIFI. Conté SSID i contrasenya d’una xarxa Wi-Fi, a més del seu tipus de xifrat com OPEN, WEP o WPA. Un codi de barres Wi-Fi és una de les maneres més fàcils de compartir les credencials de Wi-Fi, a la vegada que elimina per complet el risc que els usuaris introdueixen aquesta informació de manera incorrecta.

L'API d'escaneig de codis de barres pot analitzar dades d'una gamma de codis de barres diferents, incloent formats lineals com Codabar, Codi 39, EAN-8, ITF i UPC-A, i formats 2D com Aztec, Data Matrix i Codis QR.

Per fer les coses més fàcils per als usuaris finals, aquesta API analitza simultàniament tots els codis de barres admesos i també pot extreure dades independentment de l’orientació del codi de barres, per tant, no importa si el codi de barres està completament al revés quan l’usuari ho explora!

Aprenentatge automàtic al núvol: l’API de reconeixement de fites

Podeu utilitzar l'API de reconeixement de fites de ML Kit per identificar fites naturals i construïdes conegudes dins d'una imatge.

Si feu passar aquesta API una imatge que conté una fita famosa, us retornarà el nom d'aquesta fita, els valors de longitud i longitud de la marca i un quadre de limitació que indica on s'ha descobert la fita dins de la imatge.

Podeu utilitzar l'API de reconeixement de llocs d'interès per crear aplicacions que etiquetin automàticament les fotos de l'usuari o per proporcionar una experiència més personalitzada, per exemple, si l'aplicació reconeix que un usuari fa fotos de la torre Eiffel, pot oferir alguns dades interessants sobre aquesta fita o suggereix atraccions turístiques similars i properes que l'usuari pugui desitjar visitar a continuació.

Inusualment per a ML Kit, l’API de detecció de fites només està disponible com a API basada en núvol, de manera que la vostra aplicació només podrà realitzar una detecció de fita quan el dispositiu tingui una connexió a Internet activa.

La API d’Identificació d’Idiomes: Desenvolupada per a una audiència internacional

Avui en dia, les aplicacions d'Android són utilitzades a totes les parts del món per usuaris que parlen molts idiomes diferents.

L’API d’identificació d’idiomes de ML Kit pot ajudar la vostra aplicació d’Android a atraure un públic internacional, agafant una cadena de text i determinant l’idioma en què està escrit. L’API d’identificació lingüística pot identificar més de cent idiomes diferents, inclòs el text romanitzat per a l’àrab, el búlgar, Xinès, grec, hindi, japonès i rus.

Aquesta API pot ser una valuosa addició a qualsevol aplicació que processi text proporcionat per l'usuari, ja que aquest text rarament inclou cap informació d'idioma. També podeu utilitzar l’API d’identificació d’idiomes en aplicacions de traducció, com a primer pas per traduir qualsevol cosa, és saber amb quin idioma estàs treballant. Per exemple, si l’usuari assenyala la càmera del seu dispositiu en un menú, l’aplicació pot utilitzar la API d’identificació d’idiomes per determinar que el menú està escrit en francès i, a continuació, oferir-se per traduir aquest menú mitjançant un servei com l’API de traducció en núvol ( potser després d’extreure el seu text, utilitzant l’API de reconeixement de text?)

Segons la cadena en qüestió, l'API d'identificació de idiomes pot retornar diversos idiomes potencials, acompanyat de puntuacions de confiança de manera que pugueu determinar quin idioma detectat és més probable. Tingueu en compte que en el moment d'escriure ML Kit no podríeu identificar diversos idiomes dins la mateixa cadena.

Per garantir que aquesta API proporciona la identificació de l’idioma en temps real, l’IDI d’Identificació d’Idiomes només està disponible com a model dispositiu.

Properament: Resposta intel·ligent

Google planeja afegir més API a ML Kit en el futur, però ja coneixem sobre una API actualitzada.

Segons el lloc web de ML Kit, el proper API de resposta intel·ligent us permetrà oferir respostes de missatgeria contextual a les vostres aplicacions, suggerint fragments de text que s’ajusten al context actual. A partir del que ja sabem sobre aquesta API, sembla que Smart Reply serà similar a la funció de resposta suggerida que ja està disponible a l’aplicació Android, Wear OS i Gmail.

La captura de pantalla següent mostra com apareix actualment la funció de resposta suggerida a Gmail.

Que segueix? Utilitzant TensorFlow Lite amb kit ML

ML Kit proporciona models preconstruïts per a casos d'ús mòbil habituals, però en algun moment és possible que voldreu anar més enllà d'aquests models ja preparats.

És possible crear els vostres models ML mitjançant TensorFlow Lite i després distribuir-los mitjançant ML Kit. Tanmateix, només heu de tenir en compte que, a diferència de les API ja preparades de ML Kit, treballar amb els vostres propis models ML requereix una significatiu quantitat d’experiència en ML.

Un cop hàgiu creat els vostres models TensorFlow Lite, podeu penjar-los a Firebase i Google us gestionarà d'allotjament i servei d'aquests models als usuaris finals. En aquest escenari, ML Kit actua com a capa d’API sobre el vostre model personalitzat, que simplifica alguns dels elevats càrrecs que comporta l’ús de models personalitzats. El més destacable, el ML Kit emetrà automàticament la versió més recent del model als usuaris, de manera que no haureu d’actualitzar la vostra aplicació cada vegada que vulgueu ajustar el model.

Per tal d’oferir la millor experiència d’usuari possible, podeu especificar les condicions que s’han de complir abans que l’aplicació descarregui noves versions del vostre model TensorFlow Lite, per exemple només actualitzant el model quan el dispositiu està inactiu, carregant o connectat a Wi-Fi. Fi Fins i tot podeu utilitzar ML Kit i TensorFlow Lite al costat d'altres serveis Firebase, per exemple, utilitzant Firebase Remote Config i Firebase A / B Test per servir diferents models a diferents conjunts d'usuaris.

Si voleu anar més enllà dels models preconstruïts o els models existents de ML Kit no s'ajusten perfectament a les vostres necessitats, podreu obtenir més informació sobre com crear els vostres propis models d'aprenentatge de màquines, als documents oficials de Firebase.

Embalatge

En aquest article, vam analitzar cada component del kit d’aprenentatge automàtic de Google i vam tractar alguns escenaris habituals en què és possible que vulgueu utilitzar cadascuna de les API de ML Kit.

Google té previst afegir més API en el futur, de manera que quines API d'aprenentatge automàtic voleu veure afegides a ML Kit a continuació? Feu-nos-ho saber als comentaris a continuació!

La fàbrica de rumor età força calenta que Apple llançarà aviat algun tipu de dipoitiu de eguiment, amb el eu xip U1 integrat al model iPhone 11 i 11 Pro per aconeguir la part ...

El expert han etat advertint de de fa temp le coneqüèncie de la guerra comercial de Trump amb la Xina i han fet contar increment de preu per a divero producte, incloo el electrònic de c...

Publicacions Fascinants