Slik legger du til Machine Learning til Android-appene dine

Forfatter: Peter Berry
Opprettelsesdato: 16 Lang L: none (month-012) 2021
Oppdater Dato: 1 Juli 2024
Anonim
Metaverse Neon Earth NFT game play to earn
Video: Metaverse Neon Earth NFT game play to earn

Innhold


Maskinlæring (ML) kan hjelpe deg med å skape innovative, overbevisende og unike opplevelser for dine mobile brukere.

Når du har mestret ML, kan du bruke den til å lage et bredt spekter av applikasjoner, inkludert apper som automatisk organiserer bilder basert på emnet, identifiserer og sporer en persons ansikt over en livestream, trekker ut tekst fra et bilde og mye mer .

Men ML er ikke akkurat nybegynnervennlig! Hvis du vil forbedre Android-appene dine med kraftige maskinlæringsfunksjoner, hvor starter du egentlig?

I denne artikkelen vil jeg gi en oversikt over en SDK (Software Development Kit) som lover å sette kraften til ML til fingerspissene, selv om du har null ML-erfaring. Mot slutten av denne artikkelen har du det grunnlaget du trenger for å begynne å lage intelligente, ML-drevne apper som er i stand til å merke bilder, skanne strekkoder, gjenkjenne ansikter og kjente landemerker og utføre mange andre kraftige ML-oppgaver.


Møt Googles maskinlæringssett

Med utgivelsen av teknologier som TensorFlow og CloudVision blir ML mer utbredt, men disse teknologiene er ikke for besvimelse av hjertet! Du trenger vanligvis en dyp forståelse av nevrale nettverk og dataanalyse, bare for å få det startet med en teknologi som TensorFlow.

Selv om du gjøre ha litt erfaring med ML, å lage en maskinlæringsdrevet mobilapp kan være en tidkrevende, kompleks og kostbar prosess, som krever at du kildes med nok data til å trene dine egne ML-modeller, og deretter optimalisere disse ML-modellene for å kjøre effektivt i mobilmiljø. Hvis du er en individuell utvikler, eller har begrensede ressurser, kan det hende det ikke er mulig å utføre ML-kunnskapen din i praksis.

ML Kit er Googles forsøk på å bringe maskinlæring til massene.

Under panseret pakker ML Kit sammen flere kraftige ML-teknologier som vanligvis vil kreve omfattende ML-kunnskap, inkludert Cloud Vision, TensorFlow og Android Neural Networks API. ML Kit kombinerer disse spesialiserte ML-teknologiene med ferdigtrente modeller for vanlig mobilbruk, inkludert pakking av tekst fra et bilde, skanning av strekkode og identifisering av innholdet i et foto.


Uansett om du har tidligere kunnskap om ML, kan du bruke ML Kit for å legge til kraftige maskinlæringsfunksjoner til Android-en din og iOS-apper - bare send noen data til riktig del av ML Kit, for eksempel tekstgjenkjenning eller språkidentifikasjons-API, og dette API-en vil bruke maskinlæring for å returnere et svar.

Hvordan bruker jeg API-programmer for ML Kit?

ML Kit er delt inn i flere API-er som distribueres som en del av Firebase-plattformen. Hvis du vil bruke noen av ML Kit API-er, må du opprette en forbindelse mellom Android Studio-prosjektet og et tilsvarende Firebase-prosjekt, og deretter kommunisere med Firebase.

De fleste av ML Kit-modellene er tilgjengelige som modeller på enheten som du kan laste ned og bruke lokalt, men noen modeller er også tilgjengelige i skyen, noe som gjør at appen din kan utføre ML-drevne oppgaver over enhetens internettforbindelse.

Hver tilnærming har sitt eget unike sett med styrker og svakheter, så du må ta stilling til om lokal eller ekstern prosessering er mest fornuftig for akkurat din app. Du kan til og med legge til støtte for begge modellene, og deretter la brukerne dine bestemme hvilken modell de skal bruke på kjøretid. Alternativt kan du konfigurere appen din til å velge den beste modellen for gjeldende forhold, for eksempel bare ved å bruke den skybaserte modellen når enheten er koblet til Wi-Fi.

Hvis du velger den lokale modellen, vil appens maskinlæringsfunksjoner alltid være tilgjengelige, uavhengig av om brukeren har en aktiv internettforbindelse. Siden alt arbeidet utføres lokalt, er modeller på enheten ideelle når appen din trenger å behandle store datamengder raskt, for eksempel hvis du bruker ML Kit for å manipulere en direktesendt videostrøm.

I mellomtiden gir skybaserte modeller vanligvis større nøyaktighet enn kollegene på enheten, siden skymodellene utnytter kraften i Google Cloud Platforms maskinlæringsteknologi. For eksempel inkluderer Image Labeling APIs modell på enheten 400 etiketter, men skymodellen har over 10.000 etiketter.

Avhengig av API, kan det også være en viss funksjonalitet som bare er tilgjengelig i skyen, for eksempel kan API for tekstgjenkjenning bare identifisere ikke-latinske tegn hvis du bruker den skybaserte modellen.

De skybaserte API-ene er bare tilgjengelige for Blaze-nivå Firebase-prosjekter, så du må oppgradere til en betal-som-du-gå-Blaze-plan, før du kan bruke noen av ML Kits skymodeller.

Hvis du bestemmer deg for å utforske skymodellene, var det i skrivende stund en gratis kvote tilgjengelig for alle ML Kit API-er. Hvis du bare ønsket å eksperimentere med skybasert bildemerking, kan du oppgradere Firebase-prosjektet til Blaze-planen, teste API på mindre enn 1000 bilder og deretter bytte tilbake til gratis gnistplan uten å bli belastet. Vilkår og betingelser har imidlertid en stygg vane med å endre seg over tid, så husk å lese det med liten skrift før du oppgraderer til Blaze, bare for å forsikre deg om at du ikke blir rammet av noen uventede regninger!

Identifiser tekst i et hvilket som helst bilde, med API for tekstgjenkjenning

Text Recognition API kan intelligent identifisere, analysere og behandle tekst.

Du kan bruke dette APIet til å lage applikasjoner som henter ut tekst fra et bilde, slik at brukerne dine ikke trenger å kaste bort tid på kjedelig manuell datainnføring. For eksempel kan du bruke API for tekstgjenkjenning for å hjelpe brukerne dine med å trekke ut og registrere informasjonen fra kvitteringer, fakturaer, visittkort eller til og med ernæringsetiketter, ganske enkelt ved å ta et bilde av det aktuelle produktet.

Du kan til og med bruke API for tekstgjenkjenning som det første trinnet i en oversettelsesapp, der brukeren tar et bilde av en ukjent tekst og API trekker ut all teksten fra bildet, klar til å bli sendt til en oversettelsestjeneste.

ML Kit's API for tekstgjenkjenning på enheten kan identifisere tekst på et hvilket som helst latin-basert språk, mens det skybaserte motstykket kan gjenkjenne et større utvalg av språk og tegn, inkludert kinesiske, japanske og koreanske tegn. Den skybaserte modellen er også optimalisert for å trekke ut sparsom tekst fra bilder og tekst fra tettpakkede dokumenter, som du bør ta hensyn til når du bestemmer hvilken modell du vil bruke i appen din.

Vil du ha litt praktisk erfaring med dette APIet? Så sjekk ut vår trinn-for-trinn-guide for å lage et program som kan trekke ut teksten fra et hvilket som helst bilde, ved hjelp av API for tekstgjenkjenning.

Forstå innholdet til et bilde: Image Labeling API

Image Labeling API kan gjenkjenne enheter i et bilde, inkludert steder, mennesker, produkter og dyr, uten behov for ytterligere kontekstuelle metadata. Image Labeling API vil returnere informasjon om de oppdagede enhetene i form av etiketter. I det følgende skjermbildet har jeg for eksempel gitt APIen et naturfoto, og det svarte med etiketter som "Skog" og "Elv."

Denne muligheten til å gjenkjenne innholdet i et bilde kan hjelpe deg med å lage apper som tagger bilder basert på emnet; filtre som automatisk identifiserer upassende brukerinnsendt innhold og fjerner det fra appen din; eller som grunnlag for avansert søkefunksjonalitet.

Mange av ML Kit API-ene gir flere mulige resultater, komplett med tilhørende tillitspoeng - inkludert Image Labeling API. Hvis du passerer Image Labeling et bilde av en puddel, kan det returnere etiketter som "puddel", "hund", "kjæledyr" og "lite dyr", alle med varierende score som indikerer API-tilliten til hver etikett. Forhåpentligvis vil "puddel" i dette scenariet ha den høyeste tillitspoeng!

Du kan bruke denne tillitsvurderingen til å opprette en terskel som må være oppfylt, før applikasjonen din fungerer på en bestemt etikett, for eksempel å vise den til brukeren eller merke et bilde med denne etiketten.

Bildetikettering er tilgjengelig både på enheten og i skyen, selv om du velger skymodellen, vil du få tilgang til over 10.000 etiketter, sammenlignet med de 400 etikettene som er inkludert i enhetsmodellen.

For en mer dyptgående titt på API for Image Labeling, sjekk ut Bestem et bildes innhold med maskinlæring. I denne artikkelen bygger vi en applikasjon som behandler et bilde, og returnerer deretter etikettene og tillitspoengene for hver enhet som blir oppdaget i det bildet. Vi implementerer også enhets- og skymodeller i denne appen, slik at du kan se nøyaktig hvordan resultatene avviker, avhengig av hvilken modell du velger.

Forstå uttrykk og spore ansikter: Face Detection API

Ansiktsgjenkjennings-APIet kan finne menneskelige ansikter i bilder, videoer og livestrømmer, og deretter henter ut informasjon om hvert oppdaget ansikt, inkludert dets plassering, størrelse og retning.

Du kan bruke dette APIet for å hjelpe brukere med å redigere bildene sine, for eksempel ved automatisk å beskjære alt det tomme området rundt det nyeste hodeskuddet.

Ansiktsgjenkjennings API er ikke begrenset til bilder - du kan også bruke dette API på videoer, for eksempel kan du lage en app som identifiserer alle ansiktene i en videostrøm og deretter slører alt unntatt disse ansiktene, som ligner på Skypes bakgrunnsskarphet-funksjon.

Ansiktsgjenkjenning er bestandig utført på enheten, hvor det er raskt nok til å brukes i sanntid, så i motsetning til de fleste av ML Kit sine API-er, gjør Face Detection ikke inkluderer en skymodell.

I tillegg til å oppdage ansikter, har denne APIen noen få ekstra funksjoner som er verdt å utforske. For det første kan Face Detection API identifisere ansikts landemerker, for eksempel øyne, lepper og ører, og deretter hente de eksakte koordinatene for hvert av disse landemerkene. Dette landemerke anerkjennelse gir deg et nøyaktig kart over hvert oppdaget ansikt - perfekt for å lage augmented reality (AR) -apper som legger til masker og filtre i Snapchat-stil til brukerens kamerafôr.

Face Detection API tilbyr også ansiktsbehandling klassifisering. For tiden støtter ML Kit to ansiktsklassifiseringer: øynene åpne og smilende.

Du kan bruke denne klassifiseringen som grunnlag for tilgjengelighetstjenester, for eksempel håndfri kontroller, eller for å lage spill som svarer til spillerens ansiktsuttrykk. Evnen til å oppdage om noen smiler eller har øynene åpne kan også komme til nytte hvis du lager en kamera-app - det er tross alt ingenting verre enn å ta en haug med bilder, bare for senere å oppdage at noen hadde lukket øynene i hvert eneste skudd.

Til slutt inkluderer API for ansiktsgjenkjenning en ansiktssporingskomponent, som tildeler en ID til et ansikt og deretter sporer ansiktet over flere påfølgende bilder eller videorammer. Merk at dette er ansikt sporing og ikke sant ansikts erkjennelse. Bak kulissene sporer API for ansiktsgjenkjenning ansiktets plassering og bevegelse og konkluderer deretter at dette ansiktet sannsynligvis tilhører samme person, men det er til syvende og sist uvitende om personens identitet.

Prøv API for ansiktsgjenkjenning selv! Finn ut hvordan du bygger en ansiktsregistrerende app med maskinlæring og Firebase ML Kit.

Strekkodeskanning med ildbase og ML

Strekkodeskanning høres kanskje ikke like spennende ut som noen av de andre APIene for maskinlæring, men det er en av de mest tilgjengelige delene av ML Kit.

Å skanne en strekkode krever ikke spesialisert maskinvare eller programvare, så du kan bruke strekkodeskanning-API-en mens du sikrer at appen din forblir tilgjengelig for så mange mennesker som mulig, inkludert brukere på eldre eller budsjettenheter. Så lenge en enhet har et fungerende kamera, skal det ikke ha problemer med å skanne en strekkode.

ML Kit's Barcode Scanning API kan hente ut et bredt spekter av informasjon fra trykte og digitale strekkoder, noe som gjør det til en rask, enkel og tilgjengelig måte å overføre informasjon fra den virkelige verden til applikasjonen din, uten at brukere trenger å utføre noen kjedelige manuelle dataoppføringer .

Det er ni forskjellige datatyper som Barcode Scanning API kan gjenkjenne og analysere fra en strekkode:

  • TYPE_CALENDAR_EVENT. Denne inneholder informasjon som begivenhetens beliggenhet, arrangør og start- og sluttidspunktet.Hvis du markedsfører et arrangement, kan du inkludere en trykt strekkode på plakatene eller flygebladene, eller ha en digital strekkode på nettstedet ditt. Potensielle deltakere kan deretter trekke ut all informasjonen om hendelsen din, ganske enkelt ved å skanne strekkoden.
  • TYPE_CONTACT_INFO. Denne datatypen dekker informasjon som kontaktens e-postadresse, navn, telefonnummer og tittel.
  • TYPE_DRIVER_LICENSE. Denne inneholder informasjon som gate, by, stat, navn og fødselsdato knyttet til førerkortet.
  • TYPE_EMAIL. Denne datatypen inkluderer en e-postadresse, pluss e-postens emnelinje og brødtekst.
  • TYPE_GEO. Dette inneholder breddegrad og lengdegrad for et spesifikt geopunkt, som er en enkel måte å dele et sted med brukerne dine, eller for dem å dele sin beliggenhet med andre. Du kan til og med potensielt bruke geo-strekkoder for å utløse stedsbaserte hendelser, for eksempel å vise nyttig informasjon om brukerens nåværende beliggenhet, eller som grunnlag for stedsbaserte mobilspill.
  • TYPE_PHONE. Dette inneholder telefonnummeret og nummeret, for eksempel om det er et verk eller et hjemmetelefonnummer.
  • TYPE_SMS. Dette inneholder en SMS-tekst og telefonnummeret som er knyttet til SMS-en.
  • TYPE_URL. Denne datatypen inneholder en URL og URL-tittelen. Å skanne en TYPE_URL-strekkode er mye enklere enn å stole på at brukerne dine manuelt skriver inn en lang, kompleks URL, uten å gjøre skrivefeil eller stavefeil.
  • TYPE_WIFI. Denne inneholder SSID og passord for et Wi-Fi-nettverk, pluss krypteringstypen som ÅPEN, WEP eller WPA. En Wi-Fi-strekkode er en av de enkleste måtene å dele Wi-Fi-legitimasjon, samtidig som den helt fjerner risikoen for at brukerne dine skriver inn denne informasjonen feil.

Barcode Scanning API kan analysere data fra en rekke forskjellige strekkoder, inkludert lineære formater som Codabar, Code 39, EAN-8, ITF og UPC-A, og 2D formater som Aztec, Data Matrix og QR Codes.

For å gjøre ting enklere for sluttbrukerne dine, skanner denne API-en for alle støttede strekkoder samtidig, og kan også trekke ut data uavhengig av strekkodens retning - så det spiller ingen rolle om strekkoden er helt opp ned når brukeren skanner den!

Machine Learning in the Cloud: Landmark Recognition API

Du kan bruke ML Kits Landmark Recognition API for å identifisere kjente naturlige og konstruerte landemerker i et bilde.

Hvis du passerer denne APIen et bilde som inneholder et kjent landemerke, returnerer det navnet på det landemerket, landemerkets breddegrad og lengdegradverdier og en avgrensningsboks som indikerer hvor landemerket ble oppdaget i bildet.

Du kan bruke API for Landmark Recognition for å opprette applikasjoner som automatisk merker brukerens bilder, eller for å gi en mer tilpasset opplevelse, for eksempel hvis appen din anerkjenner at en bruker tar bilder av Eiffeltårnet, kan det være interessant informasjon om dette landemerket, eller foreslå lignende turistattraksjoner i nærheten som brukeren kanskje vil besøke neste gang.

Uvanlig for ML Kit er Landmark Detection API bare tilgjengelig som et skybasert API, så applikasjonen din vil bare kunne utføre landemerkeoppdagelse når enheten har en aktiv internettforbindelse.

Språkidentifikasjons-API: Utvikler for et internasjonalt publikum

I dag brukes Android-apper i alle deler av verden, av brukere som snakker mange forskjellige språk.

ML Kits API for språkidentifikasjon kan hjelpe Android-appen din til å appellere til et internasjonalt publikum, ved å ta en streng tekst og bestemme språket den er skrevet i. Språkidentifikasjons-API-en kan identifisere over hundre forskjellige språk, inkludert romanisert tekst for arabisk, bulgarsk, Kinesisk, gresk, hindi, japansk og russisk.

Denne APIen kan være et verdifullt tillegg til ethvert program som behandler brukertilgjengelig tekst, siden denne teksten sjelden inneholder språkinformasjon. Du kan også bruke API for språkidentifikasjon i oversettelsesapper, som det første trinnet til å oversette hva som helst, er å vite hvilket språk du jobber med! Hvis brukeren for eksempel peker kameraets enhet på en meny, kan appen din bruke API til å identifisere språk for å bestemme at menyen er skrevet på fransk, og deretter tilby å oversette denne menyen ved hjelp av en tjeneste som Cloud Translation API ( kanskje etter å ha trukket ut teksten ved hjelp av API for tekstgjenkjenning?)

Avhengig av den aktuelle strengen, kan API for språkidentifikasjon returnere flere potensielle språk, ledsaget av tillitspoeng, slik at du kan bestemme hvilket oppdaget språk som mest sannsynlig vil være riktig. Vær oppmerksom på at ML Kit i skrivende stund ikke kunne identifisere flere forskjellige språk i samme streng.

For å sikre at dette API gir språkidentifikasjon i sanntid, er språkidentifikasjons-API bare tilgjengelig som en enhet på modellen.

Kommer snart: Smart svar

Google planlegger å legge til flere API-er i ML Kit i fremtiden, men vi vet allerede om ett kommende API.

I følge ML Kit nettsted, den kommende Smart svar API vil tillate deg å tilby kontekstuelle meldingssvar i applikasjonene dine, ved å foreslå tekstutdrag som passer til den nåværende konteksten. Basert på hva vi allerede vet om denne API-en, ser det ut til at Smart Svar vil være lik funksjonen foreslått svar som allerede er tilgjengelig i Android-appen Wear Wear og Gmail.

Følgende skjermbilde viser hvordan den foreslåtte responsfunksjonen for øyeblikket ser ut i Gmail.

Hva blir det neste? Bruke TensorFlow Lite med ML Kit

ML Kit tilbyr forhåndsbygde modeller for vanlige mobilbrukstilfeller, men på et tidspunkt kan det være lurt å bevege seg utover disse ferdige modellene.

Det er mulig å lage dine egne ML-modeller ved hjelp av TensorFlow Lite og deretter distribuere dem ved hjelp av ML Kit. Vær imidlertid oppmerksom på at i motsetning til ML Kit sine ferdige API-er, krever det å jobbe med dine egne ML-modeller a betydelige mengde ML-kompetanse.

Når du har laget TensorFlow Lite-modellene, kan du laste dem opp til Firebase, og Google vil deretter administrere hosting og servere disse modellene til sluttbrukere. I dette scenariet fungerer ML Kit som et API-lag i forhold til din tilpassede modell, noe som forenkler noen av de tunge løftene som er involvert i bruk av tilpassede modeller. Spesielt viktig vil ML Kit automatisk skyve den nyeste versjonen av modellen til brukerne dine, slik at du ikke trenger å oppdatere appen din hver eneste gang du vil finpusse modellen.

For å gi en best mulig brukeropplevelse, kan du spesifisere vilkårene som må være oppfylt, før applikasjonen din laster ned nye versjoner av TensorFlow Lite-modellen, for eksempel bare å oppdatere modellen når enheten er inaktiv, lader eller er koblet til Wi- Fi. Du kan til og med bruke ML Kit og TensorFlow Lite sammen med andre Firebase-tjenester, for eksempel å bruke Firebase Remote Config og Firebase A / B Testing for å tjene forskjellige modeller til forskjellige sett med brukere.

Hvis du vil gå utover forhåndsbygde modeller, eller ML Kits eksisterende modeller ikke helt oppfyller dine behov, kan du lære mer om å lage dine egne maskinlæringsmodeller, over på de offisielle Firebase-dokumentene.

Innpakking

I denne artikkelen så vi på hver komponent i Googles maskinlæringssett, og dekket noen vanlige scenarier der du kanskje vil bruke hver av ML Kit API-ene.

Google planlegger å legge til flere API-er i fremtiden, så hvilke maskinlærings-API-er vil du se lagt til ML Kit neste? Gi oss beskjed i kommentarene nedenfor!

Halloween er alltid et flott tidpunkt å e noe kremmende, noe om vil gi deg fryninger. Det er ogå en flott tid å e noe lett og minneverdig. Heldigvi, hvi du er en Netflix-abonnent, har d...

Det er mange forkjellige grunner for å gjøre om makinvareknappene på nytt. Det kan være lurt å forlenge levetiden på knappene dine. Eller, mer vanlig, kan det hende du h...

Fascinerende