Så lägger du till Machine Learning till dina Android-appar

Författare: Peter Berry
Skapelsedatum: 16 Augusti 2021
Uppdatera Datum: 1 Juli 2024
Anonim
Så lägger du till Machine Learning till dina Android-appar - Appar
Så lägger du till Machine Learning till dina Android-appar - Appar

Innehåll


Maskininlärning (ML) kan hjälpa dig att skapa innovativa, övertygande och unika upplevelser för dina mobilanvändare.

När du har behärskat ML kan du använda det för att skapa ett brett utbud av applikationer, inklusive appar som automatiskt ordnar foton baserat på deras ämne, identifierar och spårar en persons ansikte över en livestream, extraherar text från en bild och mycket mer .

Men ML är inte exakt nybörjarvänligt! Om du vill förbättra dina Android-appar med kraftfulla maskininlärningsmöjligheter, var börjar du exakt?

I den här artikeln kommer jag att ge en översikt över en SDK (Software Development Kit) som lovar att ställa kraften hos ML till hands, även om du har noll ML-erfarenhet. I slutet av den här artikeln har du den grund du behöver för att börja skapa intelligenta, ML-drivna appar som kan märka bilder, skanna streckkoder, känna igen ansikten och berömda landmärken och utföra många andra kraftfulla ML-uppgifter.


Möt Googles maskininlärningssats

Med lanseringen av tekniker som TensorFlow och CloudVision blir ML mer utbredd, men dessa teknologier är inte för svag hjärta! Du behöver vanligtvis en djup förståelse av neurala nätverk och dataanalys, bara för att få satte igång med en teknik som TensorFlow.

Även om du do har lite erfarenhet av ML, att skapa en maskininlärningsdriven mobilapp kan vara en tidskrävande, komplex och dyr process, som kräver att du källs tillräckligt med data för att träna dina egna ML-modeller och sedan optimera dessa ML-modeller för att köra effektivt i mobil miljö. Om du är en enskild utvecklare eller har begränsade resurser kan det hända att det inte är möjligt att implementera din ML-kunskap i praktiken.

ML Kit är Googles försök att föra maskinlärande till massorna.


Under huven buntar ML Kit flera kraftfulla ML-tekniker som vanligtvis kräver omfattande ML-kunskap, inklusive Cloud Vision, TensorFlow och Android Neural Networks API. ML Kit kombinerar dessa specialiserade ML-tekniker med förutbildade modeller för vanliga mobilanvändningsfall, inklusive extrahering av text från en bild, skanning av en streckkod och identifiering av innehållet i ett foto.

Oavsett om du har tidigare kunskaper om ML kan du använda ML Kit för att lägga till kraftfulla maskininlärningsmöjligheter till din Android och iOS-appar - skicka bara en del data till rätt del av ML Kit, till exempel Textigenkänning eller Språkidentifierings-API, och detta API kommer att använda maskininlärning för att få ett svar.

Hur använder jag API: er för ML Kit?

ML Kit är uppdelat i flera API: er som distribueras som en del av Firebase-plattformen. Om du vill använda någon av ML Kit API: er måste du skapa en anslutning mellan ditt Android Studio-projekt och ett motsvarande Firebase-projekt och sedan kommunicera med Firebase.

De flesta av ML Kit-modellerna finns som modeller på enheten som du kan ladda ner och använda lokalt, men vissa modeller finns också i molnet, vilket gör att din app kan utföra ML-drivna uppgifter via enhetens internetanslutning.

Varje tillvägagångssätt har sin unika uppsättning styrkor och svagheter, så du måste bestämma om lokal eller fjärrbehandling är mest meningsfull för din specifika app. Du kan till och med lägga till stöd för båda modellerna och sedan låta dina användare bestämma vilken modell de ska använda vid körning. Alternativt kan du konfigurera din app för att välja den bästa modellen för de aktuella förhållandena, till exempel endast med den molnbaserade modellen när enheten är ansluten till Wi-Fi.

Om du väljer den lokala modellen kommer din apps maskininlärningsfunktioner alltid att finnas tillgängliga, oavsett om användaren har en aktiv Internet-anslutning. Eftersom allt arbete utförs lokalt är modeller på enheter perfekta när din app måste bearbeta stora datamängder snabbt, till exempel om du använder ML Kit för att manipulera en direkt videoström.

Samtidigt ger molnbaserade modeller vanligtvis större noggrannhet än motsvarigheterna på enheten, eftersom molnmodellerna utnyttjar kraften i Google Cloud Platforms maskininlärningsteknik. Till exempel innehåller Image Labeling API: s modell på enheten 400 etiketter, men molnmodellen har över 10 000 etiketter.

Beroende på API kan det också finnas vissa funktioner som bara är tillgängliga i molnet, till exempel kan API: n för textigenkänning bara identifiera icke-latinska tecken om du använder sin molnbaserade modell.

De molnbaserade API: erna är bara tillgängliga för Blaze-nivå Firebase-projekt, så du måste uppgradera till en Blaze-plan som betalar dig-innan du kan använda någon av ML Kit's molnmodeller.

Om du bestämmer dig för att utforska molnmodellerna, var det i skrivande stund en gratis kvot tillgänglig för alla ML Kit API: er. Om du bara ville experimentera med molnbaserad bildetikettering, kan du uppgradera ditt Firebase-projekt till Blaze-planen, testa API: n på mindre än 1 000 bilder och sedan växla tillbaka till den kostnadsfria gnistplanen utan att laddas. Villkor har emellertid en otäck vana att förändras över tid, så se till att du läser det lilla texten innan du uppgraderar till Blaze, bara för att se till att du inte drabbas av oväntade räkningar!

Identifiera text i valfri bild med API: n för textigenkänning

Textigenkännings API kan på ett intelligent sätt identifiera, analysera och bearbeta text.

Du kan använda detta API för att skapa applikationer som extraherar text från en bild, så att dina användare inte behöver slösa tid på tråkiga manuell datainmatning. Till exempel kan du använda API för textigenkänning för att hjälpa dina användare att extrahera och registrera informationen från kvitton, fakturor, visitkort eller till och med näringsetiketter, helt enkelt genom att ta ett foto av det aktuella objektet.

Du kan till och med använda API: n för textigenkänning som det första steget i en översättningsapp, där användaren tar ett foto av lite okänd text och API extraherar all text från bilden, redo att skickas till en översättningstjänst.

ML Kit's API för textigenkänning på enheten kan identifiera text på alla latinska-baserade språk, medan dess molnbaserade motsvarighet kan känna igen en större variation av språk och tecken, inklusive kinesiska, japanska och koreanska tecken. Den molnbaserade modellen är också optimerad för att extrahera gles text från bilder och text från täta packade dokument, som du bör ta hänsyn till när du bestämmer vilken modell du ska använda i din app.

Vill du ha praktisk upplevelse med det här API? Kolla sedan in vår steg-för-steg-guide för att skapa ett program som kan extrahera texten från vilken bild som helst med hjälp av API: n för textigenkänning.

Förstå bildens innehåll: Image Labeling API

Image Labeling API kan känna igen enheter i en bild, inklusive platser, människor, produkter och djur, utan att det behövs några ytterligare kontextuella metadata. Image Labeling API kommer att returnera information om de upptäckta enheterna i form av etiketter. Till exempel i följande skärmdump har jag försett API med ett naturfoto och svarat med etiketter som "Skog" och "Flod."

Denna förmåga att känna igen en bilds innehåll kan hjälpa dig att skapa appar som taggar foton baserat på deras ämne; filter som automatiskt identifierar olämpligt användarinlämnat innehåll och tar bort det från din app; eller som grund för avancerad sökfunktion.

Många av ML Kit-API: erna ger flera möjliga resultat, kompletta med åtföljande förtroendepoäng - inklusive Image Labeling API. Om du passerar Bildmärkning av ett foto av en pudel, kan det returnera etiketter som "puddel", "hund", "husdjur" och "litet djur", alla med olika poäng som indikerar API: s förtroende för varje etikett. Förhoppningsvis kommer "poodle" i det här scenariot att ha den högsta förtroendepoäng!

Du kan använda den här konfidenspoängen för att skapa en tröskel som måste uppfyllas innan din applikation verkar på en viss etikett, till exempel visa den för användaren eller märka ett foto med den här etiketten.

Bildmärkning finns både på enheten och i molnet, även om du väljer molnmodellen så får du tillgång till över 10 000 etiketter, jämfört med de 400 etiketter som ingår i enhetens modell.

För en mer djupgående titt på API: et för bildmärkning, kolla in Bestäm en bilds innehåll med maskininlärning. I den här artikeln bygger vi en applikation som bearbetar en bild och returnerar sedan etiketter och konfidensresultat för varje enhet som upptäcks i den bilden. Vi implementerar också enheter på enheten och molnet i denna app, så att du kan se exakt hur resultaten skiljer sig, beroende på vilken modell du väljer.

Förstå uttryck och spåra ansikten: API för ansiktsavkänning

Ansiktsdetekterings-API: n kan hitta mänskliga ansikten i foton, videor och liveströmmar och extraherar sedan information om varje upptäckt ansikte, inklusive dess position, storlek och orientering.

Du kan använda detta API för att hjälpa användare att redigera sina foton, till exempel genom att automatiskt beskära allt tomt utrymme runt deras senaste huvudbild.

Ansiktsdetekterings-API: et är inte begränsat till bilder - du kan också använda detta API på videor, till exempel kan du skapa en app som identifierar alla ansikten i ett videoflöde och sedan oskärpa allt bortsett från dessa ansikten, liknande Skypes funktion för bakgrundssuddighet.

Ansiktsdetektering är alltid utförs på enheten, där det är tillräckligt snabbt för att kunna användas i realtid, så till skillnad från majoriteten av ML Kit: s API: er gör ansiktsavkänning det inte inkludera en molnmodell.

Förutom att upptäcka ansikten har detta API några ytterligare funktioner som är värda att utforska. Först kan API: n för ansiktsavkänning identifiera landmärken i ansiktet, till exempel ögon, läppar och öron, och sedan hämtar de exakta koordinaterna för vart och ett av dessa landmärken. Detta landmärke erkännande ger dig en exakt karta över varje upptäckt ansikte - perfekt för att skapa augmented reality (AR) -appar som lägger till masker och filter i Snapchat-stil till användarens kameraflöde.

Face Face Detection API erbjuder också ansiktsbehandling klassificering. För närvarande stöder ML Kit två ansiktsklassificeringar: öppna ögon och leende.

Du kan använda den här klassificeringen som bas för tillgänglighetstjänster, till exempel handsfree-kontroller, eller för att skapa spel som svarar på spelarens ansiktsuttryck. Möjligheten att upptäcka om någon ler eller har ögonen öppna kan också vara praktiskt om du skapar en kamera-app - det finns ju inget värre än att ta ett gäng foton, för att senare upptäcka att någon hade sina ögon stängda i varje skott.

Slutligen innehåller Face Detection API en ansiktsspårningskomponent, som tilldelar ett ID till ett ansikte och sedan spårar ansikten över flera på varandra följande bilder eller videoramar. Observera att detta är ansikte spårning och inte sant ansiktsbehandling igenkännande. Bakom kulisserna spårar ansiktsdetekterings-API: n ansikts position och rörelse och drar sedan slutsatsen att detta ansikte sannolikt tillhör samma person, men det är i slutändan omedvetet om personens identitet.

Prova API: n för ansiktsavkänning själv! Ta reda på hur du bygger en ansiktsdetekterande app med maskininlärning och Firebase ML Kit.

Streckkodsscanning med eldstad och ML

Streckkodsskanning låter kanske inte så spännande som några av de andra maskininlärnings-API: erna, men det är en av de mest tillgängliga delarna av ML Kit.

Att skanna en streckkod kräver ingen specialiserad hårdvara eller mjukvara, så du kan använda API: n för streckkodsskanning samtidigt som du ser till att din app förblir tillgänglig för så många människor som möjligt, inklusive användare på äldre eller budgetenheter. Så länge en enhet har en fungerande kamera bör den inte ha några problem med att skanna en streckkod.

ML Kit: s streckkodsskannings-API kan extrahera ett brett utbud av information från tryckta och digitala streckkoder, vilket gör det till ett snabbt, enkelt och tillgängligt sätt att skicka information från den verkliga världen till din applikation, utan att användare behöver utföra någon tråkig manuell datainmatning .

Det finns nio olika datatyper som streckkodsskannings-API kan identifiera och analysera från en streckkod:

  • TYPE_CALENDAR_EVENT. Den innehåller information som evenemangets plats, arrangör och start- och sluttid.Om du marknadsför ett evenemang kan du inkludera en tryckt streckkod på dina affischer eller reklamblad eller ha en digital streckkod på din webbplats. Potentiella deltagare kan sedan extrahera all information om ditt evenemang helt enkelt genom att skanna streckkoden.
  • TYPE_CONTACT_INFO. Denna datatyp täcker information som kontaktens e-postadress, namn, telefonnummer och titel.
  • TYPE_DRIVER_LICENSE. Den innehåller information som gatan, staden, staten, namnet och födelsedatumet som är kopplat till körkortet.
  • TYPE_EMAIL. Den här datatypen innehåller en e-postadress, plus e-postens ämnesrad och huvudtext.
  • TYPE_GEO. Detta innehåller latitud och longitud för en specifik geo-punkt, vilket är ett enkelt sätt att dela en plats med dina användare, eller för dem att dela sin plats med andra. Du kan till och med potentiellt använda geo-streckkoder för att utlösa platsbaserade händelser, som att visa lite användbar information om användarens nuvarande plats eller som grund för platsbaserade mobilspel.
  • TYPE_PHONE. Detta innehåller telefonnumret och numret, till exempel om det är ett arbete eller ett hemtelefonnummer.
  • TYPE_SMS. Det här innehåller lite SMS-texttext och telefonnumret associerat med SMS.
  • TYPE_URL. Denna datatyp innehåller en URL och URL: s titel. Att skanna en TYPE_URL-streckkod är mycket lättare än att lita på att dina användare manuellt skriver in en lång, komplex URL utan att göra några skrivfel eller stavfel.
  • TYPE_WIFI. Detta innehåller ett Wi-Fi-nätverks SSID och lösenord, plus dess krypteringstyp som OPEN, WEP eller WPA. En Wi-Fi-streckkod är ett av de enklaste sätten att dela Wi-Fi-referenser samtidigt som du helt tar bort risken för att dina användare skriver fel information.

Barcode Scanning API kan analysera data från en rad olika streckkoder, inklusive linjära format som Codabar, Code 39, EAN-8, ITF och UPC-A och 2D format som Aztec, Data Matrix och QR Codes.

För att göra det enklare för dina slutanvändare, skannar detta API för alla stöds streckkoder samtidigt och kan också extrahera data oavsett streckkodens orientering - så det spelar ingen roll om streckkoden är helt uppochnervänt när användaren skannar den!

Machine Learning in the Cloud: Landmark Recognition API

Du kan använda ML Kit's Landmark Recognition API för att identifiera kända naturliga och konstruerade landmärken i en bild.

Om du skickar denna API en bild som innehåller ett känt landmärke kommer det att returnera namnet på det landmärket, landmärkeets bredd- och longitudvärden och en avgränsningsruta som anger var landmärket upptäcktes i bilden.

Du kan använda API: et för Landmark Recognition för att skapa applikationer som automatiskt taggar användarens foton eller för att ge en mer anpassad upplevelse, till exempel om din app inser att en användare tar bilder av Eiffeltornet, kan det ge några intressanta fakta om detta landmärke, eller föreslå liknande turistattraktioner i närheten som användaren kanske vill besöka nästa.

Ovanligt för ML Kit är Landmark Detection API bara tillgängligt som ett molnbaserat API, så din applikation kommer bara att kunna utföra landmärkesdetektering när enheten har en aktiv Internet-anslutning.

Språkidentifierings-API: et för en internationell publik

Idag används Android-appar i alla delar av världen av användare som talar många olika språk.

ML Kit: s språkidentifierings-API kan hjälpa din Android-app att vädja till en internationell publik genom att ta en textsträng och bestämma vilket språk den är skriven på. Språkidentifierings-API: et kan identifiera över hundra olika språk, inklusive romaniserad text för arabiska, bulgariska, Kinesiska, grekiska, hindi, japanska och ryska.

Detta API kan vara ett värdefullt tillägg till alla applikationer som bearbetar text som tillhandahålls av användaren, eftersom denna text sällan innehåller någon språkinformation. Du kan också använda språkidentifierings-API: et i översättningsappar, som det första steget för att översätta något, är att veta vilket språk du arbetar med! Om användaren till exempel pekar enhetens kamera på en meny, kan din app kanske använda API för språkidentifiering för att fastställa att menyn är skriven på franska och sedan erbjuda att översätta den här menyn med en tjänst som Cloud Translation API ( kanske efter att ha extraherat texten med API: n för textigenkänning?)

Beroende på strängen i fråga kan API: n för språkidentifiering returnera flera potentiella språk, åtföljd av förtroendepoäng så att du kan avgöra vilket upptäckt språk som sannolikt kommer att vara korrekt. Observera att vid skrivandet av ML Kit inte kunde identifiera flera olika språk i samma sträng.

För att säkerställa att detta API tillhandahåller språkidentifiering i realtid är API: n för språkidentifiering endast tillgänglig som en enhet på enheten.

Kommer snart: Smart svar

Google planerar att lägga till fler API: er i ML Kit i framtiden, men vi vet redan om ett kommande API.

Enligt ML Kit-webbplatsen är det kommande Smart Answer API ger dig möjlighet att erbjuda kontextuella meddelandesvar i dina applikationer genom att föreslå textutdrag som passar det nuvarande sammanhanget. Baserat på vad vi redan vet om detta API verkar det som att Smart Answer kommer att likna den föreslagna svarfunktionen som redan finns i Android: s app, Wear OS och Gmail.

Följande skärmdump visar hur den föreslagna svarfunktionen för närvarande ser ut i Gmail.

Vad kommer härnäst? Använda TensorFlow Lite med ML-kit

ML Kit tillhandahåller förbyggda modeller för vanliga fall för mobil användning, men vid någon tidpunkt kanske du vill flytta bortom dessa färdiga modeller.

Det är möjligt att skapa dina egna ML-modeller med TensorFlow Lite och sedan distribuera dem med ML Kit. Tänk dock på att till skillnad från ML Kits färdiga API: er, kräver du att arbeta med dina egna ML-modeller a signifikant mängd ML-expertis.

När du har skapat dina TensorFlow Lite-modeller kan du ladda upp dem till Firebase och Google kommer sedan att hantera värden och betjäna dessa modeller till dina slutanvändare. I det här scenariot fungerar ML Kit som ett API-lager över din anpassade modell, vilket förenklar några av de tunga lyft som är involverade i att använda anpassade modeller. Framför allt kommer ML Kit automatiskt att driva den senaste versionen av din modell till dina användare, så att du inte behöver uppdatera din app varje gång du vill finjustera din modell.

För att ge bästa möjliga användarupplevelse kan du ange de villkor som måste uppfyllas innan din applikation laddar ner nya versioner av din TensorFlow Lite-modell, till exempel endast uppdatering av modellen när enheten är i viloläge, laddning eller ansluten till Wi- Fi. Du kan till och med använda ML Kit och TensorFlow Lite tillsammans med andra Firebase-tjänster, till exempel med Firebase Remote Config och Firebase A / B Testing för att betjäna olika modeller till olika uppsättningar av användare.

Om du vill gå längre än förbyggda modeller, eller ML Kits befintliga modeller inte helt uppfyller dina behov, kan du lära dig mer om hur du skapar dina egna modeller för maskininlärning, över i de officiella Firebase-dokumenten.

Avslutar

I den här artikeln tittade vi på varje komponent i Googles maskininlärningssats och täckte några vanliga scenarier där du kanske vill använda var och en av ML Kit API: er.

Google planerar att lägga till fler API: er i framtiden, så vilka maskininlärnings-API: er skulle du vilja lägga till i ML Kit nästa? Låt oss veta i kommentarerna nedan!

Fungerar din Window 10-ökning inte ordentligt? Microoft tationära operativytem lever i över 75% av alla datorer (enligt tatita) och över 55% av dem kör Window 10. Du är i...

Microoft app för din telefon blir martare med dagen. Med appen kan du anluta din Android-martphone till din Window 10-dator för att få åtkomt till avieringar, M, foton och mer. amu...

Rekommenderad