Hur du frigör potentialen hos MLKit-dokumentskannern på din Android-telefon

  • ML Kit erbjuder integrerade lösningar för bildskanning och analys på Android, vilket gör det enkelt att effektivt upptäcka kod, objekt, text och ansikten på enheten.
  • Integration med CameraX och korrekt bildförberedelse säkerställer snabba och exakta resultat, vilket optimerar prestandan i realtid även på resursbegränsade enheter.
  • Genom att dra nytta av avancerade funktioner som autozoom, hantering av flera bildformat och anpassning av användarupplevelsen kan du utveckla mer professionella och omfattande skanningsappar.

MLKit-dokumentskanner

I Android-utvecklingens värld är det skillnaden mellan en funktionell app och en verkligt banbrytande app att utnyttja dagens verktyg fullt ut. En av de mest mångsidiga komponenterna är den ML Kit-baserade skannern, som kan förändra hur en app interagerar med sin omgivning genom kameran. Från att läsa streckkoder och QR-koder till att upptäcka objekt eller känna igen text och ansikten, möjligheterna är praktiskt taget oändliga med rätt tillvägagångssätt.

Många utvecklare håller sig till grunderna och misslyckas med att utnyttja ML Kits funktioner fullt ut på Android. Att integrera det korrekt handlar inte bara om att inkludera beroenden och teste exempel; Nyckeln är att optimera prestandan, konfigurera varje parameter för specifika fall och förstå alla alternativ och knep som erbjuds av både den officiella dokumentationen och andra yrkesverksammas erfarenhet. I den här artikeln går vi steg för steg och på djupet igenom allt du behöver veta för att få ut det mesta av ML Kit-skannern på Android, från installation till mer avancerade inställningar, inklusive bildanalys, koordinathantering och viktiga tips för att arbeta i realtid.

Vad är ML Kit och varför det revolutionerade skanning på Android

ML Kit är ett SDK utvecklat av Google som integrerar kraftfulla artificiella intelligens-tekniker för datorseendeuppgifter på mobila enheter. Det möjliggör inte bara enkel tillämpning av maskininlärningstekniker, utan det gör det också på själva enheten, utan behov av en internetanslutning. Detta gör det till ett pålitligt, snabbt och användbart verktyg för applikationer som kräver kodskanning, ansiktsigenkänning, textläsning eller objektidentifiering.

ML Kits modulära arkitektur ger flexibilitet för de som vill inkludera det viktigaste eller anpassa in i minsta detalj. Du kan välja mellan paketerade modeller (större, tillgängliga från början) eller dynamiskt nedladdade modeller (som sparar utrymme i appen men kräver en initial nedladdning). Denna dualitet låter dig prioritera appens storlek eller hur snabbt den ska användas beroende på projektets behov.

ML Kit
ML Kit
Utvecklare: Novum Logic
Pris: Fri

Integrering av ML Kit med CameraX: Den vinnande kombinationen

Om du letar efter en robust integration mellan Android-kameran och ML Kit-funktionerna är CameraX din bästa allierade. Detta bibliotek underlättar avsevärt åtkomst till kamerahårdvara och bildströmshantering, och möjliggör även överlagring av gränssnittselement och maskininlärningsresultat över kamerans förhandsgranskning.

Genom klassen ML Kit-analysator, kan du ansluta utgången från CameraX till detektorerna och analysatorerna i ML Kit. Denna analysator implementerar gränssnittet Bildanalys.Analysator, effektivt hantera bildupplösning, koordinattransformationer och resultatleverans, vilket avsevärt förenklar utvecklingen av avancerade skanningsfunktioner.

Att använda CameraController och PreviewView förenklar presentationen av gränssnittet och mottagandet av resultat. När du integrerar ML Kit Analyzer behöver du bara ange vilken typ av detektor du vill ha (till exempel streckkod) och hur du vill ta emot resultaten. Dessutom tar CameraX hand om detaljer som bildrotation och bildförhållande, vilket undviker vanliga fel vid mer manuella framkallningar.

Att upptäcka och avkoda streckkoder: utöver det grundläggande exemplet

MLKit streckkodsläsare

El streckkodsskanning Det är ett av de främsta användningsfallen för ML Kit på Android. Det intressanta är att dess API låter dig gå långt utöver att upptäcka den typiska QR-koden. Från GS1, EAN-13, PDF417 till Data Matrix eller Aztec är mångsidigheten maximal och öppnar dörren för tillämpningar inom logistik, handel, produktidentifiering och mycket mer.

När du konfigurerar detektorn kan du begränsa den till de format du faktiskt behöver, vilket resulterar i en ökad hastighet och lägre resursförbrukning. Genom att begränsa sökningen blir bearbetningen effektivare och svarar bättre i realtid.

Bland de markerade alternativen finns:

  • aktiveraAllaPotentiellaStreckkoder(): Det gör det möjligt att upptäcka alla möjliga koder som finns i en bild, även om vissa inte kan avkodas ännu. Detta är användbart när användaren behöver zooma in eller fokusera bättre på kameran.
  • setZoomförslagsalternativ(): Aktiverar autozoom, så att appen automatiskt kan föreslå hur mycket kameran ska zooma in för att maximera läsbarheten för den upptäckta koden.

Zoom-autoförslag är en viktig ny funktion vilket förbättrar användarupplevelsen, särskilt i sammanhang där avståndet eller storleken på koderna varierar kraftigt. Du kan implementera din egen ring tillbaka för att justera zoomparametrarna enligt rekommendationerna från ML Kit-detektorn.

Korrekt förbereda inmatningsbilder

En av de viktigaste faktorerna för ML Kit-skannerns prestanda är kvaliteten och storleken på inmatningsbilderna. Den officiella dokumentationen lägger stor vikt vid tillräckliga pixlar och upplösning, eftersom detekteringsnoggrannheten direkt beror på hur data representeras i bilden.

Till exempel, för EAN-13-koder måste streck och mellanslag vara minst 2 pixlar breda; Hela koden ska vara minst 190 pixlar bred. För mer komplexa format som PDF417 är de obligatoriska dimensionerna ännu större och når upp till 1156 pixlar i bredd för en enda rad.

Fokus och upplösning är avgörande. Om användaren tar en suddig eller lågupplöst bild kan resultaten bli oregelbundna. En bra idé är att föreslå bilder med en upplösning på 1280 x 720 eller 1920 x 1080, så länge enhetens prestanda tillåter det. Om latens är ett problem kan du minska upplösningen, men se till att koden tar upp så mycket av bilden som möjligt.

ML Kits eget API låter dig omvandla bildkällorna du tar emot från kameran till Inmatningsbild. Du kan bygga det här objektet från:

  • kameraspecifikt media.Bild.
  • Bitmapp, bytebuffert eller bytearray.
  • Fil-URI (användbart för att ladda bilder från galleriet).

När det gäller CameraX löses många av dessa transformationer automatiskt., särskilt när det gäller bildrotation och leverans av bildrutor i realtid. Detta avlastar utvecklaren mycket och säkerställer att den bearbetade bilden alltid blir korrekt.

Google Drive uppdaterar sin skanner och lägger till betydande förbättringar
Relaterad artikel:
Google Drive kommer att förbättra sin dokumentskanner

Bearbeta bilder och hantera resultat

MLKit-bildmärkning

När inmatningsbilden har förberetts bearbetar ML Kit-detektorn bilden och returnerar en lista med resultat. För streckkoder får du objekt Streckkod som låter dig komma åt koordinaterna i bilden, det avkodade värdet, datatypen (URL, kontakt, text etc.) och till och med ytterligare attribut om tillgängliga.

Hanteringen av dessa resultat är flexibel. Du kan lägga information över bilden, interagera med användaren (till exempel genom att öppna en webblänk om det är en QR-kod) eller spara de upptäckta värdena i en databas. Tack vare användningen av lyssnare, kan du hantera både lyckade händelser och fel, eller okända bildhändelser.

I integration med CameraX är det viktigt att stänga varje Bildproxy efter bearbetning, för att undvika minnesläckor och bibehålla flytet i realtidsanalysen.

Optimering för realtidsanalys

ML Kits fulla potential frigörs när du bearbetar bilder i realtid, till exempel från en videoström. För att bibehålla en smidig och laggfri upplevelse finns det flera viktiga tips:

  • Använd inte kamerans maximala upplösning om det inte är absolut nödvändigt. I många fall räcker det med 2 megapixelbilder och de förbättrar bearbetningshastigheten.
  • Minska upplösningen om hastighet är en prioritet, men bibehåller det minimum som krävs för korrekt kodning.
  • I videoströmmar kan detektorn ge olika resultat mellan på varandra följande bildrutor. Det är lämpligt att vänta minst flera identiska detektioner i följd innan ett resultat anses vara giltigt.
  • Begränsar antalet anrop till detektorn. Om till exempel en bild redan bearbetas, ignorera efterföljande bildrutor tills du är klar.
  • Om du använder CameraX, se till att ställa in strategin Bildanalys.STRATEGY_KEEP_ONLY_LATEST för att alltid leverera den senaste bilden och hålla appen flexibel.
  • För att lägga grafik över bilden (t.ex. avgränsningsramar) bearbetas först bilden och sedan renderas både bilden och överlagringen i ett enda svep, vilket optimerar mängden grafikarbete per bildruta.

Bildformatet spelar också roll. Om du använder Camera2, välj YUV_420_888; för äldre API:er, NV21 garanterar kompatibilitet och hastighet.

Objektdetektering och spårning i ML Kit

MLKit-objektspårning

ML Kit-skannerns potential är inte begränsad till streckkoder: objektdetektering och spårning är en annan viktig funktion. Detta API låter dig identifiera upp till fem objekt i en bild eller ram, hämta deras position och dessutom tilldela ett unikt spårnings-ID till vart och ett. När du arbetar med realtidsvideo kan du spåra ett objekts rörelse över successiva bildrutor med fullständig precision.

Inställningar för objektdetektering låter dig:

  • Välj mellan överföringsläge (STREAM_MODE), optimerad för låg latens och spårning, och enbildsläge (ENKEL_BILD_LÄGE).
  • Aktivera eller inaktivera sortering av objekt i breda kategorier (mode, mat, hem, platser, växter, främlingar).
  • Ange om du vill bearbeta flera objekt samtidigt eller bara det mest framträdande.

Användningsområdena sträcker sig från produktigenkänning i butiker, växt- eller djuranalys i utbildningsappar till avancerade logistik- och lagerstödssystem.

Bildförberedelse och rotationshantering följer samma principer som nämns vid kodskanning, och det rekommenderas att använda Inmatningsbild skapade direkt från format som stöds för att maximera prestandan.

Textigenkänning och ansiktsigenkänning

Textigenkänning (OCR) och ansiktsanalys i realtid är två andra viktiga grundpelare i ML Kit. Text API:et kan lokalisera block, linjer och element i en bild, returnera deras exakta position och igenkänt innehåll, även för komplexa tecken eller olika språk.

Ansiktsigenkänning ger möjlighet att identifiera konturer, specifika drag (ögon, mun, näsa etc.), fastställa sannolikheter i samband med gester (som att le eller blinka) och rita på bilden för att visualisera resultaten. Genom att integrera anpassade klasser kan du till exempel lägga rutor eller punkter över varje detekterat ansikte och visa olika uppgifter för användaren.

Den här typen av implementering kräver extra hantering när det gäller grafisk representation., men integrationen med CameraX och Grafisk överlagring gör processen enklare. Utvecklare kan helt anpassa gränssnittet och anpassa resultaten av den automatiska analysen till önskad visuell stil.

Tips för en optimal användarupplevelse

ML Kit

Framgången för en avancerad skanningsfunktion beror inte enbart på algoritmerna; Det är också viktigt att ta hand om användarupplevelsen. Här är några användbara riktlinjer:

  • Se till att de objekt du vill upptäcka är tillräckligt framträdande och har visuella detaljer. Element med låg kontrast eller tvetydiga detaljer kan kräva att användaren flyttar dem närmare kameran.
  • När du använder objektklassificering, var beredd på att hantera okända eller tvetydiga objekt och ge tydlig feedback till användaren.
  • Inkludera visuella eller textuella ledtrådar i gränssnittet för att hjälpa användaren att fokusera korrekt och undvika frustration på grund av felaktiga resultat.
  • Om flera objekt upptäcks, överväg alternativ för användaren att välja relevant resultat (till exempel i utbildnings- eller inventeringsappar).
  • Kom ihåg att anpassa ditt gränssnitt och dina felmeddelanden för offline-sammanhang, särskilt om du använder dynamiskt nedladdade modeller.

Analys av resultat och praktiska exempel

Förmågan hos ML Kit De gör det möjligt för oss att leverera mycket rik och strukturerad information till slutanvändaren. För både objektdetektering och streckkodsskanning har du positioner, värden, typer och konfidensnivåer. Detta gör det möjligt att visa tabeller, sammanfattningar eller utföra automatiska åtgärder (som att öppna länkar eller lagra information i bakgrunden).

Till exempel, vid objektdetektering kan du presentera den identifierade kategorin med dess konfidensnivå, spårnings-ID för att jämföra samma objekt över flera bildrutor och gränserna för det detekterade området för användaren. Så i en inventeringsapp är det enkelt att markera huvudobjektet och följa det bildruta för bildruta för att bearbeta åtgärder eller utlösa automatiseringar.

Integrationen mellan de olika ML Kit-modulerna gör att du kan kombinera funktionerTänk dig att läsa en streckkod på ett detekterat objekt, få dess värde och klassificera det, allt i realtid och på kamerabilden. Den här typen av synergier är endast möjliga med avancerad konfiguration och fullständig kontroll över alla tillgängliga alternativ.

Hur man håller allt uppdaterat och undviker problem

Uppdateringsfrekvensen för ML Kit-bibliotek är hög och det är viktigt att hålla sig uppdaterad om varje ny utgåva, eftersom prestanda-, kompatibilitets- och nya funktionsförbättringar introduceras ofta.

Kontrollera alltid beroendena i din fil bygga.gradle och kontrollera att den lägsta SDK-nivån är korrekt definierad (vanligtvis API 21 eller högre). Granska även initialiseringsmetoderna, eftersom de senaste versionerna har optimerat vissa processer och introducerat nya funktioner, till exempel automatiska modellnedladdningar vid installation av appen.

En annan rekommendation är att konsultera exempelapparna och undervisningsmaterialet som finns i både officiell Google-dokumentation och i öppen källkodsdatabaser. Dessa resurser inkluderar ofta Prestandatester, integrationsexempel med avancerade gränssnitt och lösningar på vanliga fel.

Bibehåll kompatibilitet och optimering mellan olika enheter

En av utmaningarna med att utveckla Android-appar är det enorma utbudet av enheter, upplösningar och kameror som finns tillgängliga på marknaden. ML Kit är optimerat för en mängd olika enheter, men det är alltid en bra idé att testa appen på flera enheter, både avancerade och enklare, för att säkerställa att bearbetnings- och bildkvaliteten är tillräcklig i samtliga fall.

Om din publik främst använder enheter med låg strömförbrukning, prioritera effektivitet och hastighet och offra upplösning eller funktionalitet om det behövs för att undvika att kompromissa med användarupplevelsen.

Vi avslutar med en översikt som uppdaterar de viktigaste punkterna för att få ut det mesta av ML Kit-skannern på Android: välj den bästa integrationsstrategin mellan CameraX och ML Kit, förbered dina inmatade bilder väl, hantera format och upplösningar korrekt enligt din användning och anpassa ditt gränssnitt och dina arbetsflöden för att ge den mest robusta och avancerade upplevelsen som möjligt för både användare och utvecklare.

De bästa apparna för att visa och redigera dokument på Android
Relaterad artikel:
De 5 bästa apparna för att visa och redigera dokument på Android

Följ oss på Google Nyheter

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Actualidad Blog
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.