04/01/2022
I en verden, hvor mobiltelefoner er blevet uundværlige værktøjer, stiger behovet for, at apps kan forstå og interagere med den fysiske verden omkring os. En af de mest fascinerende og praktiske teknologier, der muliggør dette, er optisk tegngenkendelse, bedre kendt som OCR (Optical Character Recognition). OCR giver apps evnen til at 'læse' tekst fra billeder – uanset om det er et skilt på gaden, en side i en bog eller håndskrevne noter. Google tilbyder to formidable løsninger til dette formål på Android: Google Mobile Vision API og Google Cloud Vision API. Disse API'er åbner døren for en række innovative applikationer, fra automatisk indtastning af kontaktoplysninger til digitalisering af dokumenter, direkte fra din smartphone.

Uanset om du er en erfaren Android-udvikler eller lige er begyndt, kan forståelsen af disse API'er give dig en betydelig fordel. Denne artikel vil dykke ned i begge tilgange, forklare deres forskelle, fordele og ulemper, og give dig et solidt grundlag for at vælge den rette løsning til dit næste projekt. Gør dig klar til at udforske, hvordan du kan give dine Android-apps 'syn'.
Hvad er Tekstgenkendelse (OCR)?
Optisk Tegngenkendelse, eller OCR, er teknologien, der konverterer forskellige typer dokumenter, såsom scannede papirdokumenter, PDF-filer eller billeder taget med et digitalt kamera, til redigerbare og søgbare data. Forestil dig at tage et billede af en restaurantmenu og øjeblikkeligt kunne kopiere teksten, oversætte den eller endda søge efter specifikke retter online. Det er essensen af OCR.
Historisk set har OCR været en kompleks udfordring, men med fremskridt inden for kunstig intelligens og maskinlæring er nøjagtigheden og hastigheden af tekstgenkendelse forbedret dramatisk. For mobile apps er OCR utroligt værdifuldt, da det eliminerer behovet for manuel dataindtastning, reducerer fejl og gør information mere tilgængelig. Fra kvitteringsscanning til visitkortlæsere, er potentialet for at forbedre brugeroplevelsen enormt. Google har med sine Vision API'er gjort denne avancerede teknologi tilgængelig for alle Android-udviklere.
Google Mobile Vision API: Lokal Behandling på Android
Google Mobile Vision API'en er en del af Googles Mobile Vision-suite, der er designet til at udføre computer vision-opgaver direkte på Android-enheden. Det betyder, at behandlingen af billeder til tekstgenkendelse sker lokalt på telefonen, hvilket har flere afgørende fordele.
Denne API giver Android-udviklere en robust og pålidelig OCR-kapacitet, der fungerer med de fleste Android-enheder. Den er optimeret til ydeevne på mobile enheder og kan levere hurtige resultater, selv uden en aktiv internetforbindelse. Dette gør Mobile Vision API ideel til applikationer, hvor realtidsbehandling eller offline-funktionalitet er kritisk. Tænk på apps, der skal scanne stregkoder i en butik uden Wi-Fi, eller hurtigt genkende tekst på et skilt under en vandretur.
Udover tekstgenkendelse er Mobile Vision API også utroligt kraftfuld til andre opgaver, såsom live ansigtsgenkendelse og ansigtssporing samt stregkodescanning. Dette gør den til en alsidig værktøjskasse for udviklere, der ønsker at integrere visuelle funktioner i deres apps, uden at skulle håndtere den underliggende komplekse maskinlæringslogik selv.
For at bruge Google Mobile Vision API i Android Studio skal du primært tilføje de relevante afhængigheder til din `build.gradle`-fil og derefter initialisere tekstgenkenderen i din app. Processen er relativt ligetil og involverer typisk at fange et billede (eller en videostrøm), behandle det med API'en og derefter håndtere de genkendte tekstblokke. Da behandlingen sker på enheden, er der ingen latenstid forbundet med at sende data til skyen, hvilket resulterer i en meget responsiv brugeroplevelse.
Google Cloud Vision API: Skyens Kraft for Avanceret Vision
Computer vision er et felt inden for kunstig intelligens, der sigter mod at give computere evnen til at 'se' og fortolke den visuelle verden på samme måde som mennesker. Det er et område, der betragtes som et 'AI-komplet' problem, hvilket betyder, at en fuld løsning ville kræve en kunstig intelligens på menneskeligt niveau. Selvom vi endnu ikke er der, har teknologien gjort enorme fremskridt. Hvis du nogensinde har brugt apps som Google Goggles, Google Fotos eller set demonstrationen af Google Lens, har du sandsynligvis indset, hvor kraftfuld computer vision er blevet.
Gennem en REST-baseret API kaldet Cloud Vision API deler Google sine revolutionerende visionsrelaterede teknologier med alle udviklere. Ved at bruge API'en kan du ubesværet tilføje imponerende funktioner såsom ansigtsgenkendelse, følelsesgenkendelse og optisk tegngenkendelse til dine Android-apps. I modsætning til Mobile Vision API, der behandler data lokalt, foregår Cloud Vision API's behandling i Googles datacenter. Dette giver adgang til langt mere komplekse og ressourcekrævende modeller, der kan håndtere en bredere vifte af scenarier og levere højere nøjagtighed, især for tekst med usædvanlige skrifttyper, vinkler eller sprog.
Før Du Begynder: Forudsætninger
For at kunne følge og implementere Google Cloud Vision API i din Android-app, er der et par forudsætninger, du skal have på plads:
- En Google Cloud Platform-konto
- Et projekt på Google Cloud Console
- Den seneste version af Android Studio
- En enhed, der kører Android 4.4 (KitKat) eller nyere
Disse forudsætninger sikrer, at du har adgang til de nødvendige udviklingsværktøjer og platformstjenester.
Aktivering og Nøgler
Du kan kun bruge Cloud Vision API i din Android-app, når du har aktiveret den i Google Cloud Console og anskaffet en gyldig API-nøgle. Start med at logge ind på konsollen og navigere til 'API Manager' > 'Bibliotek' > 'Vision API'. På den side, der åbner, trykker du blot på 'Aktiver'-knappen.
Hvis du allerede har genereret en API-nøgle til dit Cloud Console-projekt, kan du genbruge den med Cloud Vision API'en. Ellers skal du åbne 'Legitimationsoplysninger'-fanen og vælge 'Opret Legitimationsoplysninger' > 'API-nøgle'. I den dialogboks, der popper op, vil du se din API-nøgle, som er afgørende for at autentificere dine anmodninger til API'en.
Tilføjelse af Afhængigheder
Ligesom de fleste andre API'er, der tilbydes af Google, kan Cloud Vision API tilgås ved hjælp af Google API Client-biblioteket. For at bruge biblioteket i dit Android Studio-projekt skal du tilføje de relevante kompilerafhængigheder i din app-moduls `build.gradle`-fil. Disse omfatter typisk biblioteker som com.google.api-client:google-api-client-android og com.google.apis:google-api-services-vision, samt eventuelt commons-io for at forenkle fil-I/O-operationer.
Desuden, fordi Google API Client kun kan fungere, hvis din app har INTERNET-tilladelsen, skal du sørge for, at linjen <uses-permission android:name="android.permission.INTERNET" /> er til stede i dit projekts `AndroidManifest.xml`-fil. Dette er afgørende for, at appen kan kommunikere med Googles cloud-servere.
Konfiguration af API-klienten
Du skal konfigurere Google API-klienten, før du bruger den til at interagere med Cloud Vision API'en. Dette involverer primært at specificere API-nøglen, HTTP-transporten og den JSON-fabrik, den skal bruge. HTTP-transporten er ansvarlig for at kommunikere med Googles servere, og JSON-fabrikken er ansvarlig for at konvertere de JSON-baserede resultater, API'en genererer, til Java-objekter.

For moderne Android-apps anbefaler Google, at du bruger NetHttpTransport-klassen som HTTP-transport og AndroidJsonFactory-klassen som JSON-fabrik. Klassen Vision repræsenterer Google API Client for Cloud Vision. Selvom det er muligt at oprette en instans af klassen ved hjælp af dens konstruktør, er det lettere og mere fleksibelt at gøre det ved hjælp af Vision.Builder-klassen. Mens du bruger Vision.Builder-klassen, skal du huske at kalde setVisionRequestInitializer()-metoden for at specificere din API-nøgle. Når Vision.Builder-instansen er klar, kan du kalde dens build()-metode for at generere en ny Vision-instans, som du kan bruge i hele din app.
Sådan Fungerer Tekstgenkendelse med Cloud Vision
Processen med at udtrække strenge fra fotos af tekst kaldes som nævnt optisk tegngenkendelse (OCR). Cloud Vision API giver dig mulighed for nemt at oprette en optisk tegngenkender, der kan håndtere fotos af både trykt og håndskrevet tekst. Hvad mere er, læseren, du opretter, vil ikke have problemer med at læse vinklet tekst eller tekst, der er overlejret på et farverigt billede.
API'en tilbyder to forskellige funktioner til OCR:
TEXT_DETECTION: Til læsning af små mængder tekst, f.eks. den der findes på skilte eller bogomslag.DOCUMENT_TEXT_DETECTION: Til læsning af store mængder tekst, f.eks. den der findes på siderne i en roman.
Trinene for at foretage en OCR-anmodning er identiske med de trin, du følger for f.eks. ansigtsgenkendelse, bortset fra hvordan du initialiserer Feature-objektet. For OCR skal du indstille dens type til enten TEXT_DETECTION eller DOCUMENT_TEXT_DETECTION.
Den generelle proces involverer:
- Kodning af billedet: Billedet skal konverteres til en Base64-streng og placeres inde i et
Image-objekt. - Oprettelse af anmodning: Du skal eksplicit specificere den funktion, du er interesseret i (f.eks.
TEXT_DETECTION), ved at oprette etFeature-objekt. Derefter sammensættes enAnnotateImageRequest-instans, som igen skal tilhøre etBatchAnnotateImagesRequest-objekt, da API'en er designet til at behandle flere billeder på én gang. - Udførelse af anmodning: Anmodningen udføres via
vision.images().annotate(batchRequest).execute(). - Brug af responsen: Når anmodningen er behandlet, får du et
BatchAnnotateImagesResponse-objekt. For OCR får du etTextAnnotation-objekt, der indeholder al den udtrukne tekst viagetFullTextAnnotation()-metoden. Du kan derefter kaldegetText()-metoden påTextAnnotation-objektet for faktisk at få en reference til en streng, der indeholder den udtrukne tekst.
Mobile Vision vs. Cloud Vision: Hvilken Skal Du Vælge?
Valget mellem Google Mobile Vision og Google Cloud Vision API afhænger af dine specifikke behov og applikationskrav. Begge er kraftfulde værktøjer for tekstgenkendelse og andre vision-relaterede opgaver, men de opererer på forskellige principper og tilbyder forskellige fordele.
Her er en sammenlignende oversigt, der kan hjælpe dig med at træffe en informeret beslutning:
| Funktion | Google Mobile Vision API | Google Cloud Vision API |
|---|---|---|
| Behandlingssted | På enheden (on-device) | I skyen (cloud-based) |
| Internetkrav | Ingen (til de fleste funktioner) | Ja |
| Latenstid | Meget lav, realtid | Afhængig af netværk, højere |
| Kompleksitet | Mindre kompleks, optimeret til mobil | Meget avanceret maskinlæring, bredere funktioner |
| Nøjagtighed | God, men kan være begrænset af enhedens ressourcer | Meget høj, adgang til Googles fulde ML-modeller |
| Pris | Gratis at bruge (ingen API-kald omkostninger) | Betal-pr.-brug model (op til et gratis niveau) |
| Batteriforbrug | Potentielt højere pga. lokal behandling | Lavere, da behandling sker eksternt |
| Databeskyttelse | Data forlader ikke enheden | Data sendes til Googles servere for behandling |
| Anvendelsesområder | Realtids scanning, offline apps, hurtig OCR af enkle tekster, stregkoder | Avanceret OCR (håndskrift, forskellige sprog), ansigtsanalyse, billedklassifikation, objektdetektion, web-detektion, safe search |
Som det fremgår, er Google Mobile Vision ideel, hvis din app kræver hurtig, on-device tekstgenkendelse uden afhængighed af internettet, og hvor databeskyttelse er en prioritet, da data ikke forlader enheden. Det er perfekt til simple OCR-opgaver som at scanne et enkelt ord eller en sætning hurtigt.
Google Cloud Vision derimod er valget, når du har brug for den højeste nøjagtighed, understøttelse af et bredere spektrum af sprog og skrifttyper, eller adgang til mere avancerede vision-funktioner, som kun en cloud-based løsning kan tilbyde. Den er mere velegnet til apps, der behandler store mængder tekst, komplekse dokumenter eller kræver dybdegående billedanalyse.
For udviklere handler valget ofte om at afveje behovet for offline-funktionalitet og hastighed mod behovet for avanceret analyse og nøjagtighed.
Ofte Stillede Spørgsmål (FAQ)
Er Google Mobile Vision API gratis at bruge?
Ja, Google Mobile Vision API er gratis at bruge, da al behandling sker direkte på brugerens enhed. Der er ingen omkostninger forbundet med API-kald, da de ikke interagerer med Googles cloud-servere i en betalt kapacitet.
Kan Google Cloud Vision API genkende håndskrift?
Ja, Google Cloud Vision API er meget dygtig til at genkende både trykt og håndskrevet tekst, selv under udfordrende forhold som vinklet tekst eller tekst overlejret på et farverigt billede. Den tilbyder en højere nøjagtighed for håndskrift end Mobile Vision.
Hvad er den primære forskel mellem TEXT_DETECTION og DOCUMENT_TEXT_DETECTION i Cloud Vision?
TEXT_DETECTION er optimeret til at genkende små mængder tekst i billeder, såsom skilte, logoer eller etiketter. DOCUMENT_TEXT_DETECTION er designet til at håndtere større mængder tekst, der ligner dokumenter, f.eks. sider fra bøger eller lange artikler, og giver mere detaljeret information om tekstens struktur (f.eks. linjer, blokke, paragraffer).
Kræver disse API'er internetadgang for at fungere?
Google Mobile Vision API fungerer primært offline, da behandlingen foregår på enheden. Visse komponenter kan dog kræve en initial download eller opdatering via internettet. Google Cloud Vision API kræver altid internetadgang, da den sender billeddata til Googles cloud-servere for behandling og modtager resultaterne derfra.
Kan jeg bruge begge API'er i den samme app?
Ja, det er absolut muligt at bruge både Google Mobile Vision og Google Cloud Vision API'erne i den samme Android-app. Dette kan være en strategisk fordel, hvor du f.eks. bruger Mobile Vision til hurtig, lokal scanning og derefter falder tilbage på Cloud Vision for mere kompleks eller nøjagtig analyse, når internetadgang er tilgængelig.
Konklusion
Google Mobile Vision og Cloud Vision API'erne repræsenterer et kvantespring inden for mobil computer vision og tekstgenkendelse. De giver udviklere enestående værktøjer til at skabe apps, der kan 'se' og forstå den visuelle verden omkring dem, hvilket åbner op for et utal af innovative anvendelsesmuligheder. Fra at automatisere dataindtastning til at berige brugeroplevelser med visuel intelligens, er mulighederne nærmest ubegrænsede.
Mens Mobile Vision udmærker sig ved sin on-device ydeevne og offline-kapacitet, leverer Cloud Vision en uovertruffen nøjagtighed og et bredere spektrum af avancerede funktioner takket være Googles massive skyinfrastruktur. Valget mellem dem afhænger af dit projekts specifikke krav til hastighed, præcision, offline-funktionalitet og omkostninger.
Det er værd at bemærke, at selvom disse API'er er yderst avancerede, er der stadig et område, hvor de har begrænsninger: ansigtsgenkendelse. I sin nuværende form kan API'erne kun detektere ansigter, ikke identificere dem. Ikke desto mindre er potentialet for at skabe smartere og mere intuitive brugergrænseflader med disse teknologier enormt. Ved at integrere disse vision-kapaciteter kan du give dine Android-apps en helt ny dimension af intelligens, der vil glæde og imponere dine brugere.
Hvis du vil læse andre artikler, der ligner Tekstgenkendelse på Android med Google Vision API'er, kan du besøge kategorien Mobilteknologi.
