Cum să adăugați Machine Learning la aplicațiile dvs. Android

Autor: Peter Berry
Data Creației: 16 Lang L: none (month-012) 2021
Data Actualizării: 1 Iulie 2024
Anonim
Train machine learning model and develop Android Application (Basic Example)
Video: Train machine learning model and develop Android Application (Basic Example)

Conţinut


Învățarea automată (ML) vă poate ajuta să creați experiențe inovatoare, convingătoare și unice pentru utilizatorii dvs. de telefonie mobilă.

După ce ați stăpânit ML, îl puteți utiliza pentru a crea o gamă largă de aplicații, inclusiv aplicații care organizează automat fotografii în funcție de subiectul său, identificați și urmăriți fața unei persoane pe un stream live, extrageți text dintr-o imagine și multe altele .

Dar ML nu este tocmai prietenos pentru începători! Dacă doriți să vă îmbunătățiți aplicațiile Android cu capacități puternice de învățare a mașinilor, atunci de unde începeți exact?

În acest articol, voi oferi o imagine de ansamblu a unui SDK (kit de dezvoltare software) care promite să pună puterea ML la îndemână, chiar dacă aveți zero Experiență ML. Până la sfârșitul acestui articol, veți avea fundamentul necesar pentru a începe crearea de aplicații inteligente, bazate pe ML, capabile să eticheteze imagini, să scaneze coduri de bare, să recunoască fețele și reperele celebre și să efectueze multe alte sarcini puternice ML.


Faceți cunoștință cu kitul de învățare automată Google

Odată cu lansarea de tehnologii precum TensorFlow și CloudVision, ML devine din ce în ce mai utilizat, dar aceste tehnologii nu sunt pentru cei slabi de inimă! De obicei, veți avea nevoie de o înțelegere profundă a rețelelor neuronale și a analizelor de date, doar pentru a obține a început cu o tehnologie precum TensorFlow.

Chiar daca tu do să aveți o experiență în domeniul ML, crearea unei aplicații mobile bazate pe învățare automată poate fi un proces care necesită mult timp, complex și costisitor, necesitând sursa de date suficiente pentru a vă antrena propriile modele ML, apoi optimizați acele modele ML pentru a rula eficient în mediu mobil Dacă sunteți un dezvoltator individual sau aveți resurse limitate, este posibil să nu puteți pune în practică cunoștințele dvs. de ML.

ML Kit este încercarea Google de a aduce învățarea automată în masă.


Sub capotă, Kitul ML îmbină mai multe tehnologii ML puternice, care ar necesita de obicei cunoștințe ML extinse, incluzând Cloud Vision, TensorFlow și API-ul Android Neural Networks. ML Kit combină aceste tehnologii ML de specialitate cu modele pre-instruite pentru cazurile de utilizare mobilă obișnuite, inclusiv extragerea de text dintr-o imagine, scanarea unui cod de bare și identificarea conținutului unei fotografii.

Indiferent dacă aveți cunoștințe anterioare de ML, puteți utiliza kitul ML pentru a adăuga funcții puternice de învățare a mașinii pe Android și Aplicațiile iOS - treceți doar câteva date la partea corectă a ML Kit, cum ar fi API-ul de recunoaștere a textului sau identificarea limbii, iar această API va folosi învățarea automată pentru a returna un răspuns.

Cum folosesc API-urile ML Kit?

ML Kit este împărțit în mai multe API-uri care sunt distribuite ca parte a platformei Firebase. Pentru a utiliza oricare dintre API-urile ML Kit, va trebui să creați o conexiune între proiectul Android Studio și proiectul Firebase corespunzător, apoi să comunicați cu Firebase.

Majoritatea modelelor ML Kit sunt disponibile ca modele de pe dispozitiv pe care le puteți descărca și utiliza local, dar unele modele sunt de asemenea disponibile în cloud, ceea ce permite aplicației dvs. să efectueze activități ML pe baza conexiunii la internet a dispozitivului.

Fiecare abordare are propriul set unic de puncte forte și puncte slabe, așa că va trebui să decideți dacă procesarea locală sau la distanță are cel mai mult sens pentru aplicația dvs. particulară. Puteți adăuga chiar și asistență pentru ambele modele și apoi permiteți utilizatorilor dvs. să decidă ce model să folosească în timpul rulării. În mod alternativ, este posibil să configurați aplicația pentru a selecta cel mai bun model pentru condițiile actuale, de exemplu, utilizând doar modelul bazat pe cloud atunci când dispozitivul este conectat la Wi-Fi.

Dacă optați pentru modelul local, funcțiile de învățare automată a aplicației dvs. vor fi întotdeauna disponibile, indiferent dacă utilizatorul are o conexiune la Internet activă. Deoarece toate lucrările sunt efectuate local, modelele de pe dispozitiv sunt ideale atunci când aplicația trebuie să proceseze rapid cantități mari de date, de exemplu dacă utilizați ML Kit pentru a manipula un flux video live.

Între timp, modelele bazate pe cloud oferă în mod obișnuit o precizie mai mare decât omologii lor de pe dispozitiv, deoarece modelele cloud folosesc puterea tehnologiei de învățare automată a platformei Google Cloud. De exemplu, modelul de pe dispozitiv al API-ului Image Labelling include 400 de etichete, dar modelul de cloud funcționează peste 10.000 de etichete.

În funcție de API, poate exista și o funcționalitate care este disponibilă doar în cloud, de exemplu API-ul de recunoaștere a textului poate identifica caractere non-latine doar dacă utilizați modelul său bazat pe cloud.

API-urile bazate pe cloud sunt disponibile numai pentru proiectele Blaze la nivel Blaze, așa că va trebui să faceți upgrade la un plan Blaze plătit, înainte de a putea utiliza oricare dintre modelele de cloud Kit ML.

Dacă decideți să explorați modelele cloud, atunci la momentul scrierii, a fost disponibilă o cotă gratuită pentru toate API-urile ML Kit. Dacă dorești doar să experimentezi cu Etichetarea de imagine bazată pe cloud, atunci ai putea să îți upgradezi proiectul Firebase la planul Blaze, testezi API-ul cu mai puțin de 1.000 de imagini și apoi reveniți la planul gratuit Spark, fără a fi taxat. Cu toate acestea, termenii și condițiile au un obicei urât de a se schimba în timp, așa că asigurați-vă că citiți tiparul mic înainte de a face upgrade la Blaze, doar pentru a vă asigura că nu veți fi lovit de facturi neașteptate!

Identificați textul în orice imagine, cu API-ul de recunoaștere a textului

API-ul Text Recognition poate identifica, analiza și prelucra în mod inteligent textul.

Puteți utiliza această API pentru a crea aplicații care extrag text dintr-o imagine, astfel încât utilizatorii dvs. nu trebuie să pierdeți timp la introducerea manuală a datelor obositoare. De exemplu, puteți utiliza API-ul de recunoaștere a textului pentru a ajuta utilizatorii să extragă și să înregistreze informațiile din încasări, facturi, cărți de vizită sau chiar etichete nutritive, pur și simplu făcând o fotografie cu elementul în cauză.

Puteți utiliza chiar API-ul de recunoaștere a textului ca prim pas într-o aplicație de traducere, unde utilizatorul face o fotografie cu un text necunoscut, iar API extrage tot textul din imagine, gata să fie transmis unui serviciu de traducere.

API-ul de recunoaștere a textului de pe dispozitivul ML Kit poate identifica textul în orice limbă bazată pe latină, în timp ce omologul său bazat pe cloud poate recunoaște o varietate mai mare de limbi și caractere, inclusiv caractere chineze, japoneze și coreene. Modelul bazat pe cloud este, de asemenea, optimizat pentru a extrage text rar din imagini și text din documente pline cu densitate, de care ar trebui să țineți cont atunci când decideți ce model să utilizați în aplicația dvs.

Doriți experiență practică cu această API? Apoi consultați ghidul nostru pas cu pas pentru crearea unei aplicații care poate extrage textul din orice imagine, folosind API-ul de recunoaștere a textului.

Înțelegerea conținutului unei imagini: API Etichetarea imaginii

API-ul pentru etichetarea imaginii poate recunoaște entitățile dintr-o imagine, inclusiv locații, oameni, produse și animale, fără a fi nevoie de metadate contextuale suplimentare. Image Labelling API va returna informații despre entitățile detectate sub formă de etichete. De exemplu, în imaginea următoare, am oferit API-ului o fotografie de natură și am răspuns cu etichete precum „Forest” și „River”.

Această capacitate de a recunoaște conținutul unei imagini te poate ajuta să creezi aplicații care să eticheteze fotografii în funcție de subiectul lor; filtre care identifică automat conținutul inadecvat trimis de utilizator și îl elimină din aplicație; sau ca bază pentru funcționalitate avansată de căutare.

Multe dintre API-urile ML Kit returnează multiple rezultate posibile, însoțite de scoruri de încredere însoțitoare - inclusiv API-ul pentru etichetarea imaginii. Dacă treceți Image Labelling o fotografie a unui poodle, atunci ar putea întoarce etichete precum „poodle”, „câine”, „animal de companie” și „animal mic”, toate cu scoruri diferite care indică încrederea API-ului în fiecare etichetă. Sperăm că în acest scenariu „poodle” va avea cel mai mare scor de încredere!

Puteți utiliza acest scor de încredere pentru a crea un prag care trebuie îndeplinit, înainte ca aplicația dvs. să acționeze pe o anumită etichetă, de exemplu afișarea acesteia către utilizator sau etichetarea unei fotografii cu această etichetă.

Etichetarea imaginii este disponibilă atât pe dispozitiv cât și în cloud, deși dacă optați pentru modelul cloud, atunci veți avea acces la peste 10.000 de etichete, comparativ cu cele 400 de etichete care sunt incluse în modelul de pe dispozitiv.

Pentru o privire mai detaliată la API-ul pentru etichetarea imaginii, verificați Determinați conținutul unei imagini cu ajutorul învățării automate. În acest articol, construim o aplicație care procesează o imagine, apoi returnează etichetele și scorurile de încredere pentru fiecare entitate detectată în cadrul acelei imagini. De asemenea, implementăm modele pe dispozitiv și pe cloud în această aplicație, astfel încât să puteți vedea exact cum diferă rezultatele, în funcție de modelul pentru care optați.

Înțelegerea expresiilor și urmărirea fețelor: API Detection Face

API-ul de detectare a feței poate localiza fețele umane în fotografii, videoclipuri și fluxuri live și apoi extrage informații despre fiecare față detectată, inclusiv poziția, dimensiunea și orientarea acesteia.

Puteți utiliza această API pentru a ajuta utilizatorii să își editeze fotografiile, de exemplu prin tăierea automată a întregului spațiu gol din jurul celei mai recente fotografii.

API-ul de detectare a feței nu se limitează la imagini - puteți aplica și această API la videoclipuri, de exemplu, puteți crea o aplicație care identifică toate fețele dintr-un flux video și apoi estompează totul cu exceptia acele fețe, similare cu funcția de estompare a fundalului Skype.

Detectarea feței este mereu efectuat pe dispozitiv, unde este suficient de rapid pentru a fi utilizat în timp real, astfel încât, spre deosebire de majoritatea API-urilor ML Kit, detectarea feței nu includeți un model cloud.

Pe lângă detectarea fețelor, această API are câteva caracteristici suplimentare care merită explorate. În primul rând, API-ul de detectare a feței poate identifica repere faciale, cum ar fi ochii, buzele și urechile, și apoi preia coordonatele exacte pentru fiecare dintre aceste repere. Acest recunoașterea reperului vă oferă o hartă precisă a fiecărei fețe detectate - perfectă pentru crearea de aplicații de realitate augmentată (AR) care adaugă măști și filtre în stil Snapchat la feedul camerei utilizatorului.

Face Detection API oferă și aspect facial clasificare. În prezent, ML Kit acceptă două clasificări faciale: ochii deschiși și zâmbetul.

Puteți utiliza această clasificare ca bază pentru servicii de accesibilitate, cum ar fi controale mâini libere sau pentru a crea jocuri care să răspundă expresiei faciale a jucătorului. Posibilitatea de a detecta dacă cineva zâmbește sau are ochii deschiși poate de asemenea să fie util dacă creezi o aplicație pentru camera foto - până la urmă, nu este nimic mai rău decât să faci o grămadă de fotografii, doar pentru a descoperi mai târziu că cineva a avut ochii închiși. în la fiecare lovitură.

În cele din urmă, API-ul de detectare a feței include o componentă de urmărire a feței, care atribuie un ID unei fețe și apoi urmărește care se confruntă cu mai multe imagini consecutive sau cadre video. Rețineți că asta este față urmărire și nu adevărat facial recunoaştere. În spatele scenei, API-ul de detectare a feței urmărește poziția și mișcarea feței și apoi deduce că acest chip aparține aceleiași persoane, dar în cele din urmă nu cunoaște identitatea persoanei.

Încercați API-ul dvs. pentru detectarea feței! Aflați cum puteți construi o aplicație de detectare a feței cu ajutorul sistemului de învățare automată și kit Firebase ML.

Scanarea codurilor de bare cu Firebase și ML

Scanarea cu coduri de bare poate să nu pară la fel de interesantă ca unele dintre celelalte API-uri de învățare automată, dar este una dintre cele mai accesibile părți ale kit-ului ML.

Scanarea unui cod de bare nu necesită hardware sau software specializat, astfel încât puteți utiliza API-ul de scanare a codurilor de bare în timp ce vă asigurați că aplicația dvs. rămâne accesibilă cât mai multor persoane, inclusiv utilizatorilor de pe dispozitive mai vechi sau bugetare. Atâta timp cât un dispozitiv are o cameră funcțională, nu ar trebui să aibă probleme în scanarea unui cod de bare.

API-ul de scanare a codurilor de bare de la ML Kit poate extrage o gamă largă de informații din codurile de bare tipărite și digitale, ceea ce îl face un mod rapid, ușor și accesibil de a transmite informații din lumea reală, către aplicația dvs., fără ca utilizatorii să fie nevoiți să efectueze o introducere manuală a datelor obositoare .

Există nouă tipuri de date diferite pe care API-ul de scanare a codurilor de bare le poate recunoaște și analiza dintr-un cod de bare:

  • TYPE_CALENDAR_EVENT. Acesta conține informații, cum ar fi locația, organizatorul evenimentului și ora de început și sfârșit.Dacă promovați un eveniment, atunci puteți include un cod de bare tipărit pe afișele sau fluturașele dvs. sau puteți include un cod de bare digital pe site-ul dvs. web. Participanții potențiali pot extrage apoi toate informațiile despre evenimentul dvs., pur și simplu scanând codul de bare.
  • TYPE_CONTACT_INFO. Acest tip de date acoperă informații precum adresa de e-mail a contactului, numele, numărul de telefon și titlul.
  • TYPE_DRIVER_LICENSE. Acesta conține informații, cum ar fi strada, orașul, statul, numele și data nașterii asociate permisului de conducere.
  • TYPE_EMAIL. Acest tip de date include o adresă de e-mail, plus subiectul e-mailului și textul corpului.
  • TYPE_GEO. Aceasta conține latitudinea și longitudinea pentru un anumit punct geografic, care este un mod ușor de a partaja o locație cu utilizatorii dvs. sau de a le împărtăși locația cu alții. Puteți utiliza chiar și coduri de bare geo pentru a declanșa evenimente bazate pe locație, cum ar fi afișarea unor informații utile despre locația curentă a utilizatorului sau ca bază pentru jocurile mobile bazate pe locație.
  • TYPE_PHONE. Acesta conține numărul de telefon și tipul numărului, de exemplu, dacă este vorba despre o muncă sau un număr de telefon de acasă.
  • TYPE_SMS. Acesta conține textul corpului SMS și numărul de telefon asociat cu SMS-ul.
  • TYPE_URL. Acest tip de date conține o adresă URL și titlul URL-ului. Scanarea unui cod de bare TYPE_URL este mult mai ușoară decât să te bazezi pe utilizatori pentru a introduce manual o adresă URL lungă și complexă, fără a face greșeli de dactilografie sau greșeli de ortografie.
  • TYPE_WIFI. Acesta conține SSID și parola unei rețele Wi-Fi, plus tipul său de criptare, cum ar fi OPEN, WEP sau WPA. Un cod de bare Wi-Fi este una dintre cele mai ușoare metode de a partaja acreditările Wi-Fi, eliminând în același timp riscul ca utilizatorii dvs. să intre în mod incorect aceste informații.

API-ul de scanare a codurilor de bare poate analiza date dintr-o serie de coduri de bare diferite, inclusiv formate liniare precum Codabar, Cod 39, EAN-8, ITF și UPC-A, și formate 2D precum Aztec, Data Matrix și Coduri QR.

Pentru a facilita lucrurile pentru utilizatorii finali, această API scanează simultan toate codurile de bare acceptate și poate extrage date indiferent de orientarea codului de bare - deci nu contează dacă codul de bare este complet cu susul în jos atunci când utilizatorul îl scanează!

Învățare automată în cloud: API-ul de recunoaștere a reperului

Puteți utiliza API-ul de recunoaștere a reperelor ML Kit pentru a identifica repere naturale și construite bine cunoscute în cadrul unei imagini.

Dacă treceți pe această API o imagine care conține un reper celebru, atunci va întoarce numele acelui reper, valorile latitudinii și longitudinei reperului și o casetă de limitare care indică unde a fost descoperit reperul din imagine.

Puteți utiliza API-ul de recunoaștere a reperului pentru a crea aplicații care etichetează automat fotografiile utilizatorului sau pentru a oferi o experiență mai personalizată, de exemplu, dacă aplicația dvs. recunoaște că un utilizator face fotografii cu Turnul Eiffel, atunci ar putea oferi unele fapte interesante despre acest reper sau sugerează obiective turistice similare, din apropiere, pe care utilizatorul ar putea dori să le viziteze în continuare.

În mod neobișnuit pentru ML Kit, API-ul de detectare a reperelor este disponibil numai ca API bazată pe cloud, astfel încât aplicația dvs. va putea efectua detectarea reperelor numai atunci când dispozitivul are o conexiune la Internet activă.

API-ul Language Identification: Dezvoltat pentru o audiență internațională

Astăzi, aplicațiile Android sunt utilizate în toate părțile lumii, de către utilizatorii care vorbesc multe limbi diferite.

API-ul de identificare al limbajului ML Kit vă poate ajuta aplicația Android să apeleze la o audiență internațională, luând un șir de text și determinând limba în care este scris. API-ul Identificarea limbii poate identifica peste o sută de limbi diferite, inclusiv text romanizat pentru arabă, bulgară, Chineză, greacă, hindi, japoneză și rusă.

Această API poate fi o adăugare valoroasă la orice aplicație care procesează text furnizat de utilizator, deoarece acest text include rareori informații despre limbă. De asemenea, este posibil să utilizați API-ul Language Identification în aplicațiile de traducere, ca primul pas pentru traducere orice, este să știți cu ce limbă lucrați! De exemplu, dacă utilizatorul indică camera dispozitivului său într-un meniu, atunci aplicația dvs. ar putea utiliza API-ul de identificare a limbii pentru a determina dacă meniul este scris în franceză, apoi să se ofere să traducă acest meniu folosind un serviciu precum API-ul Cloud Translation ( poate după extragerea textului, folosind API-ul de recunoaștere a textului?)

În funcție de șirul în cauză, API-ul de identificare a limbii ar putea returna mai multe limbi potențiale, însoțite de scoruri de încredere, astfel încât să puteți determina care limbă detectată este cea mai probabilă să fie corectă. Rețineți că, la momentul scrierii, ML Kit nu a putut identifica mai multe limbi diferite în același șir.

Pentru a vă asigura că această API oferă identificarea limbii în timp real, API-ul de identificare a limbii este disponibil doar ca model pe dispozitiv.

În curând: Răspuns inteligent

Google intenționează să adauge mai multe API-uri pe ML Kit în viitor, dar știm deja despre o API-ul actualizat.

Conform site-ului ML Kit, următorul API-ul Smart Reply vă va permite să oferiți răspunsuri de mesagerie contextuală în aplicațiile dvs., sugerând fragmente de text care se potrivesc contextului actual. Pe baza a ceea ce știm deja despre această API, se pare că Smart Reply va fi similar cu funcția de răspuns sugerată deja disponibilă în aplicația Android, Wear OS și Gmail.

Următoarea captură de ecran arată cum arată caracteristica de răspuns sugerată în Gmail.

Ce urmeaza? Utilizarea TensorFlow Lite cu kit ML

ML Kit oferă modele pre-construite pentru cazuri de utilizare mobilă obișnuite, dar este posibil să doriți să treceți dincolo de aceste modele gata.

Este posibil să vă creați propriile modele ML folosind TensorFlow Lite și apoi să le distribuiți folosind ML Kit. Cu toate acestea, trebuie doar să știți că, spre deosebire de API-urile gata făcute de ML Kit, lucrul cu propriile modele ML necesită o semnificativ cantitatea de expertiză ML.

După ce ați creat modelele TensorFlow Lite, le puteți încărca pe Firebase și Google va gestiona apoi găzduirea și servirea acestor modele pentru utilizatorii finali. În acest scenariu, ML Kit acționează ca un strat API peste modelul dvs. personalizat, care simplifică o parte din ridicarea grea implicată în utilizarea modelelor personalizate. În special, ML Kit va împinge automat cea mai recentă versiune a modelului dvs. către utilizatori, astfel încât nu va trebui să vă actualizați aplicația de fiecare dată când doriți să modificați modelul.

Pentru a oferi cea mai bună experiență de utilizare posibilă, puteți specifica condițiile care trebuie îndeplinite, înainte ca aplicația dvs. să descarce noile versiuni ale modelului TensorFlow Lite, de exemplu, actualizarea modelului doar atunci când dispozitivul este inactiv, se încarcă sau este conectat la Wi- Fi gratuit. Puteți utiliza chiar și ML Kit și TensorFlow Lite alături de alte servicii Firebase, de exemplu, utilizați Firebase Remote Config și Firebase A / B Testing pentru a servi diferite modele pentru diferite seturi de utilizatori.

Dacă doriți să vă deplasați dincolo de modelele pre-construite sau modelele existente ale ML Kit nu răspund în totalitate nevoilor dvs., puteți afla mai multe despre crearea propriilor modele de învățare a mașinilor, la documentele oficiale Firebase.

Înveliți

În acest articol, am analizat fiecare componentă a kitului de învățare automată Google și am acoperit câteva scenarii comune în care este posibil să doriți să utilizați fiecare dintre API-urile ML Kit.

Google intenționează să adauge mai multe API în viitor, așadar ce API-uri de învățare automată ați dori să vedeți adăugate la ML Kit? Spuneți-ne în comentariile de mai jos!

Jocurile de telefonie mobilă -au îmbunătățit în trepte în ultima jumătate de deceniu. În cazul în care odată aveam doar câteva opțiuni și erau în eență Angry Bird a...

După ce ai cheltuit ute de dolari pe un martphone nou, probabil că vei dori ă îi cumperi câteva acceorii. Cel mult, veți plăti probabil între 100 și 200 UD dacă doriți o carcaă premium,...

Noi Publicații