Sådan frigør du potentialet i MLKit-dokumentscanneren på din Android-telefon

  • ML Kit leverer integrerede løsninger til billedscanning og -analyse på Android, hvilket gør det nemt at registrere kode, objekter, tekst og ansigter effektivt og på enheden.
  • Integration med CameraX og korrekt billedforberedelse sikrer hurtige og præcise resultater og optimerer realtidsydelsen, selv på enheder med begrænsede ressourcer.
  • Ved at udnytte avancerede funktioner som autozoom, administration af flere billedformater og tilpasning af brugeroplevelsen kan du udvikle mere professionelle og omfattende scanningsapps.

MLKit dokumentscanner

I Android-udviklingens verden er det afgørende at udnytte nutidens værktøjer fuldt ud, om det er en funktionel app eller en virkelig banebrydende app. En af de mest alsidige komponenter er den ML Kit-baserede scanner, der er i stand til at transformere den måde, en app interagerer med sine omgivelser på gennem kameraet. Fra at læse stregkoder og QR-koder til at detektere objekter eller genkende tekst og ansigter, er mulighederne stort set uendelige med den rigtige tilgang.

Mange udviklere holder sig til det grundlæggende og udnytter ikke ML Kits muligheder fuldt ud på Android. At integrere det korrekt handler ikke kun om at inkludere afhængigheder og teste eksempler; Nøglen er at optimere ydeevnen, konfigurere hver parameter til specifikke tilfælde og forstå alle de muligheder og tricks, der tilbydes af både den officielle dokumentation og andre fagfolks erfaring. I denne artikel gennemgår vi trin for trin og i dybden alt, hvad du behøver at vide for at få mest muligt ud af ML Kit-scanneren på Android, lige fra installation til mere avancerede indstillinger, herunder billedanalyse, koordinatstyring og vigtige tips til at arbejde i realtid.

Hvad er ML Kit, og hvorfor revolutionerede det scanning på Android

ML Kit er et SDK udviklet af Google, der integrerer kraftfulde kunstig intelligens-teknologier til computer vision-opgaver på mobile enheder. Det muliggør ikke blot nem anvendelse af maskinlæringsteknikker, men det gør det også på selve enheden, uden behov for en internetforbindelse. Dette gør det til et pålideligt, hurtigt og nyttigt værktøj til applikationer, der kræver kodescanning, ansigtsgenkendelse, tekstlæsning eller objektidentifikation.

ML Kits modulære arkitektur giver fleksibilitet for dem, der ønsker at inkludere det essentielle eller tilpasse ned til mindste detalje. Du kan vælge mellem pakkede modeller (større, tilgængelige fra starten) eller dynamisk downloadede modeller (som sparer plads i appen, men kræver en indledende download). Denne dualitet giver dig mulighed for at prioritere appens størrelse eller brugens umiddelbarhed afhængigt af projektets behov.

ML sæt
ML sæt
Udvikler: Novum Logic
Pris: Gratis

Integrering af ML Kit med CameraX: Den vindende kombination

Hvis du leder efter en robust integration mellem Android-kameraet og ML Kit-funktionerne, er CameraX din bedste allierede. Dette bibliotek letter i høj grad adgangen til kamerahardware og billedstrømsstyring og giver også mulighed for at lægge grænsefladeelementer og maskinlæringsresultater oven på kameraforhåndsvisningen.

Gennem klassen ML Kit Analysator, kan du forbinde CameraX' udgang med detektorerne og analysatorerne i ML Kit. Denne analysator implementerer grænsefladen Billedanalyse.Analysator, effektiv styring af billedopløsning, koordinattransformationer og levering af resultater, hvilket i høj grad forenkler udviklingen af ​​avancerede scanningsfunktioner.

Brug af CameraController og PreviewView forenkler præsentationen af ​​brugerfladen og modtagelsen af ​​resultater. Når du integrerer ML Kit Analyzer, behøver du kun at angive, hvilken type detektor du ønsker (f.eks. stregkode), og hvordan du ønsker at modtage resultaterne. Derudover tager CameraX sig af detaljer som billedrotation og billedformat og undgår dermed almindelige fejl i mere manuelle fremkaldelser.

Detektering og afkodning af stregkoder: ud over det grundlæggende eksempel

MLKit stregkodelæser

El stregkode scanning Det er et af de vigtigste anvendelsesmuligheder for ML Kit på Android. Det interessante er, at dens API giver dig mulighed for at gå langt ud over at detektere den typiske QR-kode. Fra GS1, EAN-13, PDF417 til Data Matrix eller Aztec er alsidigheden maksimal og åbner døren for anvendelser inden for logistik, handel, produktidentifikation og meget mere.

Når du konfigurerer detektoren, kan du begrænse den til de formater, du rent faktisk har brug for, hvilket resulterer i en øget hastighed og lavere ressourceforbrug. Ved at begrænse søgningen er behandlingen mere effektiv og reagerer bedre i realtid.

Blandt de fremhævede muligheder er:

  • aktiverAllePotentielleBarkoder(): Det gør det muligt at detektere alle mulige koder, der findes i et billede, selvom nogle endnu ikke kan afkodes. Dette er nyttigt, når brugeren har brug for at zoome ind eller fokusere bedre på kameraet.
  • sætZoomForslagsindstillinger(): Aktiverer autozoom, så appen automatisk kan foreslå, hvor meget kameraet skal zoome ind for at maksimere læsbarheden af ​​den registrerede kode.

Zoom-autoforslag er en vigtig ny funktion hvilket forbedrer brugeroplevelsen, især i sammenhænge hvor afstanden eller størrelsen på koderne varierer meget. Du kan implementere din egen ring tilbage at justere zoomparametrene i henhold til anbefalingerne fra ML Kit-detektoren.

Korrekt forberedelse af inputbilleder

En af de mest kritiske faktorer for ML Kit-scannerens ydeevne er kvaliteten og størrelsen af ​​inputbillederne. Den officielle dokumentation lægger stor vægt på tilstrækkelige pixels og opløsning, da detektionsnøjagtigheden er direkte afhængig af repræsentationen af ​​dataene i billedet.

For eksempel skal streger og mellemrum for EAN-13-koder være mindst 2 pixels brede; Hele koden skal være mindst 190 pixels bred. For mere komplekse formater som PDF417 er de nødvendige dimensioner endnu større og kan nå op til 1156 pixels i bredden for en enkelt række.

Fokus og løsning er afgørende. Hvis brugeren tager et sløret billede eller et billede med lav opløsning, kan resultaterne være uregelmæssige. Det er god praksis at foreslå billeder med en opløsning på 1280 x 720 eller 1920 x 1080, så længe enhedens ydeevne tillader det. Hvis latenstid er et problem, kan du reducere opløsningen, men sørg for, at koden optager så meget af billedet som muligt.

ML Kits egen API giver dig mulighed for at transformere de billedkilder, du modtager fra kameraet, til Inputbillede. Du kan bygge dette objekt ud fra:

  • kameraspecifikke medier.Billede.
  • Bitmap, ByteBuffer eller ByteArray.
  • Fil-URI (nyttig til indlæsning af billeder fra galleriet).

I tilfældet med CameraX løses mange af disse transformationer automatisk., især med hensyn til billedrotation og levering af billeder i realtid. Dette aflaster fremkalderen meget og sikrer, at det behandlede billede altid er korrekt.

Google Drive opdaterer sin scanner og tilføjer betydelige forbedringer
relateret artikel:
Google Drive vil forbedre sin dokumentscanner

Behandling af billeder og håndtering af resultater

MLKit-billedmærkning

Når inputbilledet er forberedt, behandler ML Kit-detektoren billedet og returnerer en liste over resultater. For stregkoder vil du modtage objekter Stregkode som giver dig adgang til koordinaterne i billedet, den afkodede værdi, datatypen (URL, kontakt, tekst osv.) og endda yderligere attributter, hvis de er tilgængelige.

Håndteringen af ​​disse resultater er fleksibel. Du kan lægge information oven på billedet, interagere med brugeren (for eksempel ved at åbne et weblink, hvis det er en QR-kode) eller gemme de registrerede værdier i en database. Takket være brugen af lyttere, kan du administrere både succeser og fejl eller uigenkendte billedhændelser.

I integration med CameraX er det vigtigt at lukke hver enkelt korrekt Billedproxy efter behandling for at undgå hukommelseslækager og opretholde flydende realtidsanalyse.

Optimering til realtidsanalyse

ML Kits fulde potentiale udløses, når du behandler billeder i realtid, for eksempel fra en videostream. For at opretholde en problemfri oplevelse uden forsinkelser er der flere vigtige tips:

  • Brug ikke kameraets maksimale native opløsning, medmindre det er absolut nødvendigt. I mange tilfælde er 2 megapixelbilleder mere end tilstrækkeligt og forbedrer behandlingshastigheden.
  • Reducer opløsningen, hvis hastighed er en prioritet, men opretholder det minimum, der er nødvendigt for nøjagtig kodning.
  • I videostreams kan detektoren give forskellige resultater mellem fortløbende billeder. Det er tilrådeligt at vente mindst flere identiske detektioner i træk, før et resultat betragtes som gyldigt.
  • Begrænser antallet af opkald til detektoren. Hvis et billede for eksempel allerede behandles, skal du ignorere efterfølgende billeder, indtil du er færdig.
  • Hvis du bruger CameraX, skal du sørge for at indstille strategien Billedanalyse.STRATEGY_KEEP_ONLY_LATEST for altid at levere det nyeste billede og holde appen agil.
  • For at lægge grafik over billedet (f.eks. afgrænsningsbokse) behandler den først billedet og gengiver derefter både billedet og overlayet i én omgang, hvilket optimerer mængden af ​​grafikarbejde pr. billede.

Billedformattypen har også betydning. Hvis du bruger Camera2, skal du vælge YUV_420_888; for ældre API'er, NV21 garanterer kompatibilitet og hastighed.

Objektdetektion og -sporing i ML Kit

MLKit-objektsporing

ML Kit-scannerens potentiale er ikke begrænset til stregkoder: objektdetektion og -sporing er en anden vigtig funktion. Denne API giver dig mulighed for at identificere op til fem objekter i et billede eller en ramme, finde deres position og desuden tildele et unikt sporings-ID til hvert enkelt. Når du arbejder med video i realtid, kan du spore et objekts bevægelse over successive billeder med fuldstændig præcision.

Indstillinger for objektdetektion giver dig mulighed for at:

  • Vælg mellem transmissionstilstand (STREAM_MODE), optimeret til lav latenstid og sporing, og enkeltbilledtilstand (ENKELT_BILLEDE_TILSTAND).
  • Slå sortering af objekter i brede kategorier til eller fra (mode, mad, hjem, steder, planter, fremmede).
  • Angiv, om du vil behandle flere objekter samtidigt, eller kun det mest fremtrædende.

Anvendelserne spænder fra produktgenkendelse i butikker, plante- eller dyreanalyse i uddannelsesapps til avancerede logistik- og lagerassistancesystemer.

Billedforberedelse og rotationsstyring følger de samme principper, der er nævnt i kodescanning, og det anbefales at bruge Inputbillede oprettet direkte fra understøttede formater for at maksimere ydeevnen.

Tekstgenkendelse og ansigtsgenkendelse

Tekstgenkendelse (OCR) og ansigtsanalyse i realtid er to andre vigtige søjler i ML Kit. Text API'en er i stand til at lokalisere blokke, linjer og elementer i et billede, returnere deres nøjagtige position og genkendte indhold, selv for komplekse tegn eller forskellige sprog.

Ansigtsgenkendelse tilføjer muligheden for at identificere konturer, specifikke træk (øjne, mund, næse osv.), fastslå sandsynligheder forbundet med bevægelser (såsom at smile eller blinke) og tegne på billedet for at visualisere resultaterne. Ved at integrere brugerdefinerede klasser kan du f.eks. lægge bokse eller prikker oven på hvert registreret ansigt og vise forskellige oplysninger til brugeren.

Denne type implementering kræver ekstra styring med hensyn til grafisk repræsentation., men integrationen med CameraX og Grafisk overlay gør processen lettere. Udviklere kan fuldt ud tilpasse brugerfladen og tilpasse resultaterne af den automatiske analyse til deres ønskede visuelle stil.

Tips til en optimal brugeroplevelse

ML sæt

Succesen af ​​en avanceret scanningsfunktion afhænger ikke udelukkende af algoritmerne; Det er også vigtigt at tage sig af brugeroplevelsen. Her er nogle nyttige retningslinjer:

  • Sørg for, at de objekter, du vil detektere, er fremtrædende nok og har visuelle detaljer. Elementer med lav kontrast eller tvetydige detaljer kan kræve, at brugeren flytter dem tættere på kameraet.
  • Når du bruger objektklassificering, skal du være forberedt på at håndtere ukendte eller tvetydige objekter og give brugeren klar feedback.
  • Inkluder visuelle eller tekstuelle signaler i brugergrænsefladen for at hjælpe brugeren med at fokusere korrekt og undgå frustration på grund af fejlagtige resultater.
  • Hvis der registreres flere objekter, skal du overveje muligheder for, at brugeren kan vælge det relevante resultat (f.eks. i uddannelses- eller inventarapps).
  • Husk at tilpasse din brugerflade og dine fejlmeddelelser til offline-sammenhænge, ​​især hvis du bruger dynamisk downloadede modeller.

Analyse af resultater og praktiske eksempler

Evnen til ML sæt De giver os mulighed for at levere meget fyldig og struktureret information til slutbrugeren. For både objektdetektion og stregkodescanning har du positioner, værdier, typer og konfidensniveauer. Dette gør det muligt at vise tabeller, resuméer eller udføre automatiske handlinger (f.eks. at åbne links eller gemme information i baggrunden).

For eksempel kan du i tilfælde af objektdetektion præsentere brugeren for den identificerede kategori med dens konfidensniveau, sporings-ID'et for at sammenligne det samme objekt på tværs af flere rammer og grænserne for det detekterede område. Så i en lagerapp er det nemt at fremhæve hovedobjektet og følge det billede for billede for at behandle handlinger eller udløse automatiseringer.

Integrationen mellem de forskellige ML Kit-moduler giver dig mulighed for at kombinere funktionaliteterForestil dig at aflæse en stregkode på et detekteret objekt, finde dets værdi og klassificere det, alt sammen i realtid og på kamerabilledet. Disse typer synergier er kun mulige med avanceret konfiguration og fuldstændig beherskelse af alle tilgængelige muligheder.

Sådan holder du alt opdateret og undgår problemer

Opdateringshastigheden for ML Kit-biblioteker er høj og det er vigtigt at holde sig opdateret på hver ny udgivelse, da forbedringer af ydeevne, kompatibilitet og nye funktioner introduceres ofte.

Tjek altid afhængighederne i din fil bygge.gradle og kontroller, at minimums-SDK-niveauet er korrekt defineret (normalt API 21 eller højere). Gennemgå også initialiseringsmetoderne, da de seneste versioner har optimeret nogle processer og introduceret nye funktioner, såsom automatiske modeldownloads ved installation af appen.

En anden anbefaling er at konsultere de eksempelapps og undervisningsmaterialer, der er tilgængelige i både den officielle Google-dokumentation og open source-arkivene. Disse ressourcer omfatter ofte Ydelsestests, integrationseksempler med avancerede grænseflader og løsninger på almindelige fejl.

Oprethold kompatibilitet og optimering på tværs af forskellige enheder

En af udfordringerne ved at udvikle Android-apps er det enorme udvalg af enheder, opløsninger og kameraer, der er tilgængelige på markedet. ML Kit er optimeret til en bred vifte af enheder, men det er altid en god idé at teste appen på flere enheder, både avancerede og billigere, for at sikre, at behandlingen og den visuelle kvalitet er tilstrækkelig i alle tilfælde.

Hvis din målgruppe primært bruger enheder med lavt strømforbrug, så prioriter effektivitet og hastighed, og ofr opløsning eller funktionalitet om nødvendigt for at undgå at gå på kompromis med brugeroplevelsen.

Vi afslutter med en oversigt, der genopfrisker de vigtigste punkter for at få mest muligt ud af ML Kit-scanneren på Android: vælg den bedste integrationsstrategi mellem CameraX og ML Kit, forbered dine inputbilleder godt, administrer formater og opløsninger korrekt i henhold til din brug, og tilpas din brugerflade og dine arbejdsgange for at give den mest robuste og avancerede oplevelse for både brugere og udviklere.

De bedste apps til at se og redigere dokumenter på Android
relateret artikel:
De 5 bedste apps til at se og redigere dokumenter på Android

Følg os på Google Nyheder

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Actualidad Blog
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.