Sådan tilføjes Machine Learning til dine Android-apps

Forfatter: Peter Berry
Oprettelsesdato: 16 August 2021
Opdateringsdato: 1 Juli 2024
Anonim
Sådan tilføjes Machine Learning til dine Android-apps - Apps
Sådan tilføjes Machine Learning til dine Android-apps - Apps

Indhold


Maskinlæring (ML) kan hjælpe dig med at skabe innovative, overbevisende og unikke oplevelser for dine mobile brugere.

Når du har mestret ML, kan du bruge det til at oprette en lang række applikationer, inklusive apps, der automatisk organiserer fotos baseret på deres emne, identificerer og sporer en persons ansigt på tværs af en livestream, udtrækker tekst fra et billede og meget mere .

Men ML er ikke nøjagtigt begyndervenlig! Hvis du vil forbedre dine Android-apps med kraftfulde maskinlæringsfunktioner, hvor skal du så begynde nøjagtigt?

I denne artikel giver jeg et overblik over et SDK (softwareudviklingssæt), der lover at sætte kraften i ML ved hånden, selvom du har nul ML-oplevelse. I slutningen af ​​denne artikel har du det fundament, du har brug for, for at begynde at oprette intelligente, ML-drevne apps, der er i stand til at mærke billeder, scanne stregkoder, genkende ansigter og berømte vartegn og udføre mange andre stærke ML-opgaver.


Mød Googles Machine Learning Kit

Med frigivelsen af ​​teknologier som TensorFlow og CloudVision bliver ML mere udbredt, men disse teknologier er ikke til at svage hjertet! Du har typisk brug for en dyb forståelse af neurale netværk og dataanalyse, bare for at få det startede med en teknologi som TensorFlow.

Selv hvis du gøre har lidt erfaring med ML, at oprette en maskinlæringsdrevet mobilapp kan være en tidskrævende, kompliceret og dyre proces, der kræver, at du kilder nok data til at træne dine egne ML-modeller og derefter optimere disse ML-modeller til at køre effektivt i mobil miljø. Hvis du er en individuel udvikler eller har begrænsede ressourcer, er det måske ikke muligt at omsætte din ML-viden til praksis.

ML Kit er Googles forsøg på at bringe maskinlæring til masserne.

Under hætten samler ML Kit flere kraftfulde ML-teknologier, der typisk vil kræve omfattende ML-viden, herunder Cloud Vision, TensorFlow og Android Neural Networks API. ML Kit kombinerer disse specialiserede ML-teknologier med foruddannede modeller til almindelig mobil brugssag, herunder udtrækning af tekst fra et billede, scanning af en stregkode og identifikation af indholdet på et foto.


Uanset om du har tidligere viden om ML, kan du bruge ML Kit til at tilføje kraftfulde maskinindlæringsfunktioner til din Android og iOS-apps - bare videregive nogle data til den rigtige del af ML Kit, f.eks. tekstgenkendelse eller sprogidentifikations-API, og dette API vil bruge maskinlæring til at returnere et svar.

Hvordan bruger jeg API-programmerne i ML Kit?

ML Kit er opdelt i flere API'er, der distribueres som en del af Firebase-platformen. Hvis du vil bruge en af ​​ML Kit API'erne, skal du oprette en forbindelse mellem dit Android Studio-projekt og et tilsvarende Firebase-projekt og derefter kommunikere med Firebase.

De fleste af ML Kit-modellerne er tilgængelige som modeller på enheden, som du kan downloade og bruge lokalt, men nogle modeller er også tilgængelige i skyen, hvilket giver din app mulighed for at udføre ML-drevne opgaver via enhedens internetforbindelse.

Hver tilgang har sit eget unikke sæt styrker og svagheder, så du bliver nødt til at beslutte, om lokal eller fjernbehandling er mest fornuftig for din bestemte app. Du kan endda tilføje support til begge modeller og derefter give dine brugere mulighed for at bestemme, hvilken model de skal bruge på runtime. Alternativt kan du konfigurere din app til at vælge den bedste model til de aktuelle forhold, f.eks. Kun ved hjælp af den skybaserede model, når enheden er tilsluttet Wi-Fi.

Hvis du vælger den lokale model, vil din apps maskinindlæringsfunktioner altid være tilgængelige, uanset om brugeren har en aktiv internetforbindelse. Da alt arbejde udføres lokalt, er modeller på enheden ideelle, når din app skal behandle store datamængder hurtigt, for eksempel hvis du bruger ML Kit til at manipulere en live videostrøm.

I mellemtiden giver skybaserede modeller typisk større nøjagtighed end deres modparter på enheden, da skymodellerne udnytter kraften i Google Cloud Platforms maskinindlæringsteknologi. For eksempel inkluderer Image Labeling API's enhedsmodel 400 etiketter, men skymodellen indeholder over 10.000 etiketter.

Afhængigt af API'et kan der også være en vis funktionalitet, der kun er tilgængelig i skyen. F.eks. Kan tekstgenkendelses-API kun identificere ikke-latinske tegn, hvis du bruger dens skybaserede model.

De skybaserede API'er er kun tilgængelige for Blaze-niveau Firebase-projekter, så du bliver nødt til at opgradere til en Blaze-plan, som du skal betale, før du kan bruge nogen af ​​ML Kit's skymodeller.

Hvis du beslutter at udforske skymodellerne, var der i skrivende stund et gratis kontingent til rådighed for alle ML Kit API'er. Hvis du bare ville eksperimentere med skybaseret billedmærkning, kunne du opgradere dit Firebase-projekt til Blaze-planen, teste API på mindre end 1.000 billeder og derefter skifte tilbage til den gratis gnistplan uden at blive opkrævet. Imidlertid har vilkår og betingelser en ubehagelig vane med at ændre sig over tid, så sørg for at læse den lille skrift, før du opgraderer til Blaze, bare for at sikre dig, at du ikke bliver ramt af uventede regninger!

Identificer tekst i et hvilket som helst billede med tekstgenkendelses API

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

Du kan bruge denne API til at oprette applikationer, der udtrækker tekst fra et billede, så dine brugere ikke behøver at spilde tid på kedelige manuelle dataindtastning. For eksempel kan du bruge API til tekstgenkendelse til at hjælpe dine brugere med at udpakke og registrere oplysningerne fra kvitteringer, fakturaer, visitkort eller endda ernæringsetiketter ved blot at tage et foto af det pågældende emne.

Du kan endda bruge tekstgenkendelses-API'et som det første trin i en oversættelsesapp, hvor brugeren tager et foto af en eller anden ukendt tekst, og API'et udtrækker al teksten fra billedet, klar til at blive sendt til en oversættelsestjeneste.

ML Kit's API til tekstgenkendelse på enheden kan identificere tekst på et hvilket som helst latin-baseret sprog, mens dens skybaserede modstykke kan genkende en større række sprog og tegn, inklusive kinesiske, japanske og koreanske tegn. Den skybaserede model er også optimeret til at udtrække sparsom tekst fra billeder og tekst fra tætpakkede dokumenter, som du skal tage højde for, når du beslutter, hvilken model du skal bruge i din app.

Vil du have en praktisk oplevelse med denne API? Tjek derefter vores trin-for-trin-guide til at oprette et program, der kan udtrække teksten fra ethvert billede ved hjælp af API-teksten genkendelse.

Forståelse af et billedes indhold: Image Labeling API

Image Labeling API kan genkende enheder i et billede, herunder placeringer, mennesker, produkter og dyr uden behov for yderligere kontekstuelle metadata. Image Labeling API giver oplysninger om de registrerede enheder i form af etiketter. I det følgende skærmbillede har jeg for eksempel givet API'et et naturfoto, og det svarede med mærker som "Skov" og "Flod."

Denne evne til at genkende et billedes indhold kan hjælpe dig med at oprette apps, der mærker fotos baseret på deres emne; filtre, der automatisk identificerer upassende brugerindgivet indhold og fjerner det fra din app; eller som grundlag for avanceret søgefunktionalitet.

Mange af ML Kit API'erne returnerer flere mulige resultater komplet med ledsagende tillidsresultater - inklusive Image Labeling API. Hvis du passerer Billedmærkning af et foto af en puddel, kan det muligvis returnere etiketter som "puddel", "hund", "kæledyr" og "lille dyr", alle med forskellige scoringer, der indikerer API'ets tillid til hver etiket. Forhåbentlig har "poodle" i dette scenarie den højeste tillidsresultat!

Du kan bruge denne konfidensscore til at oprette en tærskel, der skal overholdes, før din applikation fungerer på en bestemt etiket, for eksempel at vise den til brugeren eller mærke et foto med denne etiket.

Billedmærkning er tilgængelig både på enheden og i skyen, selvom hvis du vælger skymodellen, får du adgang til over 10.000 etiketter sammenlignet med de 400 etiketter, der er inkluderet i enhedsmodellen.

For et mere dybtgående kig på Image Labeling API skal du tjekke Bestem et billedindhold med maskinlæring. I denne artikel bygger vi en applikation, der behandler et billede, og returnerer derefter etiketter og tillidsresultater for hver enhed, der registreres i dette billede. Vi implementerer også enheds- og skymodeller i denne app, så du kan se nøjagtigt, hvordan resultaterne er forskellige, afhængigt af hvilken model du vælger.

Forstå udtryk og sporing af ansigter: API til ansigtsgenkendelse

Ansigtsregistrerings-API'en kan lokalisere menneskelige ansigter i fotos, videoer og live-streams og derefter udtrække oplysninger om hvert registreret ansigt, inklusive dets placering, størrelse og orientering.

Du kan bruge denne API til at hjælpe brugere med at redigere deres fotos, for eksempel ved automatisk at beskære alt det tomme rum omkring deres seneste hovedbillede.

Face Detection API er ikke begrænset til billeder - du kan også anvende denne API på videoer, for eksempel kan du oprette en app, der identificerer alle ansigter i et videofeed og derefter slører alt undtagen disse ansigter, der ligner Skypes funktion til baggrundsløring.

Ansigtsregistrering er altid udføres på enheden, hvor det er hurtigt nok til at blive brugt i realtid, så i modsætning til de fleste af ML Kit's API'er, gør Face Detection ikke inkluderer en skymodel.

Ud over at registrere ansigter har denne API et par ekstra funktioner, der er værd at udforske. For det første kan Face Detection API identificere ansigts-landemærker, såsom øjne, læber og ører, og derefter hente de nøjagtige koordinater for hvert af disse vartegn. Dette skelsættende anerkendelse giver dig et nøjagtigt kort over hvert detekteret ansigt - perfekt til at oprette augmented reality (AR) apps, der tilføjer Snapchat-stilmasker og filtre til brugerens kamerafeed.

Face Detection API tilbyder også ansigtsbehandling klassifikation. I øjeblikket understøtter ML Kit to ansigtsklassifikationer: øjne åbne og smilende.

Du kan bruge denne klassificering som basis for tilgængelighedstjenester, såsom håndfri kontrol, eller til at oprette spil, der svarer til spillerens ansigtsudtryk. Evnen til at opdage, om nogen smiler eller har øjnene åbne, kan også være praktisk, hvis du opretter en kamera-app - der er trods alt intet værre end at tage en flok fotos, kun for senere at opdage, at nogen havde lukkede øjne i hvert eneste skud.

Endelig inkluderer API til ansigtsgenkendelse en ansigtssporingskomponent, der tildeler et ID til et ansigt og derefter sporer der står overfor flere på hinanden følgende billeder eller videorammer. Bemærk, at dette er ansigt sporing og ikke sandt ansigtsbehandling anerkendelse. Bag kulisserne sporer ansigtsregistrerings-API'en ansigtets position og bevægelse og udledes derefter, at dette ansigt sandsynligvis hører til den samme person, men det er i sidste ende uvidende om personens identitet.

Prøv Face Detection API selv! Find ud af, hvordan du bygger en ansigtsregistrerende app med maskinlæring og Firebase ML Kit.

Stregkodescanning med ildbase og ML

Stregkodescanning lyder muligvis ikke så spændende som nogle af de andre API'er til maskinlæring, men det er en af ​​de mest tilgængelige dele af ML Kit.

Scanning af en stregkode kræver ingen speciel hardware eller software, så du kan bruge stregkodescanning-API'en, mens du sikrer, at din app forbliver tilgængelig for så mange mennesker som muligt, inklusive brugere på ældre eller budgetenheder. Så længe en enhed har et fungerende kamera, skal det ikke have problemer med at scanne en stregkode.

ML Kit's stregkodescanning-API kan udtrække en lang række oplysninger fra trykte og digitale stregkoder, hvilket gør det til en hurtig, nem og tilgængelig måde at videregive information fra den virkelige verden til din applikation uden brugere at skulle udføre nogen kedelige manuelle dataindtastning .

Der er ni forskellige datatyper, som Barcode Scanning API kan genkende og analysere fra en stregkode:

  • TYPE_CALENDAR_EVENT. Dette indeholder oplysninger om begivenhedens placering, arrangør og start- og sluttidspunktet.Hvis du promoverer en begivenhed, kan du muligvis inkludere en udskrevet stregkode på dine plakater eller flyers eller have en digital stregkode på dit websted. Potentielle deltagere kan derefter udtrække alle oplysninger om din begivenhed ved blot at scanne dens stregkode.
  • TYPE_CONTACT_INFO. Denne datatype dækker oplysninger såsom kontaktens e-mail-adresse, navn, telefonnummer og titel.
  • TYPE_DRIVER_LICENSE. Dette indeholder oplysninger som gaden, byen, staten, navn og fødselsdato forbundet med førerkortet.
  • TYPE_EMAIL. Denne datatype inkluderer en e-mail-adresse plus e-mailens emnelinje og brødtekst.
  • TYPE_GEO. Dette indeholder breddegrad og længdegrad for et specifikt geografisk punkt, som er en nem måde at dele en placering med dine brugere eller for dem at dele deres placering med andre. Du kan endda potentielt bruge geo-stregkoder til at udløse placeringsbaserede begivenheder, såsom at vise nogle nyttige oplysninger om brugerens aktuelle placering eller som grundlag for placeringsbaserede mobilspil.
  • TYPE_PHONE. Dette indeholder telefonnummeret og nummerets type, for eksempel om det er et arbejde eller et hjemmetelefonnummer.
  • TYPE_SMS. Dette indeholder en sms-kropstekst og det telefonnummer, der er knyttet til sms'en.
  • TYPE_URL. Denne datatype indeholder en URL og URL's titel. Det er meget lettere at scanne en TYPE_URL-stregkode end at stole på dine brugere til manuelt at indtaste en lang, kompleks URL uden at foretage nogen skrivefejl eller stavefejl.
  • TYPE_WIFI. Dette indeholder et Wi-Fi-netværks SSID og adgangskode, plus dets krypteringstype såsom OPEN, WEP eller WPA. En Wi-Fi-stregkode er en af ​​de nemmeste måder at dele Wi-Fi-legitimationsoplysninger, mens den også helt fjerner risikoen for, at dine brugere indtaster disse oplysninger forkert.

Barcode Scanning API kan analysere data fra en række forskellige stregkoder, herunder lineære formater som Codabar, Code 39, EAN-8, ITF og UPC-A og 2D formater som Aztec, Data Matrix og QR Codes.

For at gøre tingene lettere for dine slutbrugere scanner denne API efter alle understøttede stregkoder samtidigt og kan også udtrække data uanset stregkodes orientering - så det betyder ikke noget, om stregkoden er fuldstændig oppe, når brugeren scanner dem!

Machine Learning in the Cloud: Landmark Recognition API

Du kan bruge ML Kit's Landmark Recognition API til at identificere kendte naturlige og konstruerede landemærker i et billede.

Hvis du videregiver denne API et billede, der indeholder et berømt vartegn, returnerer det navnet på det landmærke, landemærkeets bredde- og længdegradsværdier og et afgrænsningsfelt, der angiver, hvor landemærket blev fundet i billedet.

Du kan bruge Landmark Recognition API til at oprette applikationer, der automatisk mærker brugerens fotos, eller til at give en mere tilpasset oplevelse, for eksempel hvis din app anerkender, at en bruger tager billeder af Eiffeltårnet, kan det muligvis tilbyde nogle interessante fakta om dette vartegn eller foreslå lignende turistattraktioner i nærheden, som brugeren måske vil besøge næste.

Uvanligt for ML Kit er Landmark Detection API kun tilgængeligt som et skybaseret API, så din applikation vil kun være i stand til at udføre landemærkedetektion, når enheden har en aktiv internetforbindelse.

Sprogidentifikations-API: Udvikling for et internationalt publikum

I dag bruges Android-apps i alle dele af verden af ​​brugere, der taler mange forskellige sprog.

ML Kit's API til sprogidentifikation kan hjælpe din Android-app med at appellere til et internationalt publikum ved at tage en streng tekst og bestemme det sprog, det er skrevet på. Sprogidentifikations-API'en kan identificere over hundrede forskellige sprog, herunder romaniseret tekst på arabisk, bulgarsk, Kinesisk, græsk, hindi, japansk og russisk.

Denne API kan være en værdifuld tilføjelse til ethvert program, der behandler brugerleveret tekst, da denne tekst sjældent indeholder sproginformation. Du kan muligvis også bruge API til sprogidentifikation i oversættelsesapps, som det første trin til oversættelse hvad som helst, er at vide, hvilket sprog du arbejder med! Hvis brugeren for eksempel peger deres enheds kamera på en menu, kan din app muligvis bruge API til sprogidentifikation til at bestemme, at menuen er skrevet på fransk, og derefter tilbyde at oversætte denne menu ved hjælp af en service som Cloud Translation API ( måske efter at have udpakket sin tekst ved hjælp af API til tekstgenkendelse?)

Afhængigt af den pågældende streng, kan API til sprogidentifikation muligvis returnere flere potentielle sprog, ledsaget af tillidsresultater, så du kan bestemme, hvilket detekterede sprog der mest sandsynligt vil være korrekt. Bemærk, at ML Kit på skrivende tidspunkt ikke kunne identificere flere forskellige sprog inden for den samme streng.

For at sikre, at denne API giver sprogidentifikation i realtid, er sprogidentifikations API kun tilgængelig som en enhedsmodel.

Kommer snart: Smart svar

Google planlægger at tilføje flere API'er til ML Kit i fremtiden, men vi ved allerede allerede om et kommende API.

Ifølge ML Kit-webstedet er det kommende Smart svar-API giver dig mulighed for at tilbyde kontekstuelle messaging-svar i dine applikationer ved at foreslå tekstuddrag, der passer til den aktuelle kontekst. Baseret på hvad vi allerede ved om denne API, ser det ud til, at smart svar vil svare til den foreslåede svar-funktion, der allerede er tilgængelig i Android-appen, Wear OS og Gmail.

Følgende skærmbillede viser, hvordan den foreslåede svarfunktion i øjeblikket ser ud i Gmail.

Hvad er det næste? Brug af TensorFlow Lite med ML Kit

ML Kit leverer forudbyggede modeller til almindelige sager til mobil brug, men på et tidspunkt vil du måske gå videre end disse færdige modeller.

Det er muligt at oprette dine egne ML-modeller ved hjælp af TensorFlow Lite og derefter distribuere dem ved hjælp af ML Kit. Vær dog opmærksom på, at i modsætning til ML Kit's færdige API'er, kræver det at arbejde med dine egne ML-modeller a væsentlig mængde af ML ekspertise.

Når du har oprettet dine TensorFlow Lite-modeller, kan du uploade dem til Firebase, og Google administrerer derefter hosting og betjener disse modeller til dine slutbrugere. I dette scenarie fungerer ML Kit som et API-lag over din brugerdefinerede model, hvilket forenkler nogle af de tunge løft, der er involveret i brug af brugerdefinerede modeller. Mest bemærkelsesværdigt vil ML Kit automatisk skubbe den nyeste version af din model til dine brugere, så du behøver ikke at opdatere din app, hver gang du vil finjustere din model.

For at give den bedst mulige brugeroplevelse kan du specificere de betingelser, der skal være opfyldt, inden din applikation downloader nye versioner af din TensorFlow Lite-model, for eksempel kun opdatering af modellen, når enheden er inaktiv, opladning eller tilsluttet Wi- Fi. Du kan endda bruge ML Kit og TensorFlow Lite sammen med andre Firebase-tjenester, for eksempel ved hjælp af Firebase Remote Config og Firebase A / B Testing for at tjene forskellige modeller til forskellige sæt brugere.

Hvis du vil gå videre end forudbyggede modeller, eller ML Kit's eksisterende modeller ikke helt opfylder dine behov, kan du lære mere om, hvordan du opretter dine egne maskinlæringsmodeller, over på de officielle Firebase-dokumenter.

Afslutter

I denne artikel kiggede vi på hver enkelt komponent i Googles maskinlæringssæt og dækkede nogle almindelige scenarier, hvor du måske ønsker at bruge hver af ML Kit API'erne.

Google planlægger at tilføje flere API'er i fremtiden, så hvilke maskinlærings-API'er vil du gerne have tilføjet til ML Kit næste? Fortæl os det i kommentarerne nedenfor!

Opdatering: Mandag 22. april 2019 kl. 11:00 ET: IfølgeWall treet Journal, amung planlægger at udætte lanceringen af ​​Galaxy Fold indtil "mindt i næte måned." Læ...

Opdatering 10. juni 2019 (12:10 ET): I en erklæring endt tilCNET, agde en amung-talmand, at virkomheden vil meddele tidpunktet for Galaxy Fold genudgivele “i de kommende uger.” Udagnet ankommer o...

Del