IPhone: Sådan bruges iOS-tekstgenkendelsesfunktioner

click fraud protection

Vision i iOS 11 har alt, hvad du behøver for at oprette en app, der kan genkende teksttegn med implementering, der sker samtidigt. Du behøver ikke en teknisk kodningsviden - det er ret simpelt at navigere i funktionen. Derudover er implementeringen problemfri.

Visionsramme

Visionsrammen gør dig i stand til nemt at implementere enhver opgave, der involverer computerdetaljer. Strukturen udfører registrering af ansigter og ansigter, stregkodegenkendelse, billedregistrering, generel funktionssporing og tekstgenkendelse. Vision giver dig også mulighed for at bruge tilpassede Core ML-modeller til opgaver som klassificering eller objektdetektering.

VN DetectTextRectanglesRequest

Det VN DetectTextRectanglesRequest er en billedanalyseanmodning, der finder områder med synlig tekst i et billede; funktionen returnerer teksttegn som en rektangulær afgrænsningsramme med oprindelse og størrelse.

Hvis du er vant til at bruge swift og har programmeret i et stykke tid, så spekulerer du sikkert på, hvad brugen af ​​Vision er, når der er andre funktioner som image og AVFoundation. Nå, Vision er mere præcis og mere ligetil. Funktionen er også tilgængelig på en række forskellige platforme. Brug af Vision kan dog kræve mere processorkraft og behandlingstid.

For at bruge Vision til tekstgenkendelse skal du bruge Xcode 9 og en enhed, der kører iOS 11.

Oprettelse af et kamera med Avcapture

Først skal du oprette et kamera med AVCapture; dette er ved at initialisere et objekt AVcapturesession til at udføre real-time eller offline capture. Foretag derefter sessionen til enhedsforbindelsen.

For at spare dig tid fra at bygge en brugergrænseflade af din app, overvej at have et startprojekt, til at begynde med vil dette give dig tid til at fokusere på at lære Vision-rammen.

  1. Åbn dit startprojekt. Visningerne i storyboardet burde være klar og sat op til dig.
  2. På den ViewController.swift, se efter kodeafsnittet med funktioner og udtag.
  3. Under stikkontakten-ImageView, derklære en session for AVcapturesession – dette bruges, når du ønsker handlinger udført baseret på en livestream.
  4. Indstil AVcapturesession og AV-medietype til video, da du vil udføre kameraoptagelsen for at få den til at køre kontinuerligt
  5. Definer output- og inputenheden
  6. Inputtet er, hvad kameraet vil se, og output er videoen i et bestemt type format af KCVPixelFormatType_32GRA.
  7. Til sidst tilføjes en underlag der indeholder videoer til billedvisning og start sessionen. Funktionen er kendt som inViewdidload. Du skal også indstille lagets ramme.

Kald funktionen i viewVilvise metode.

Da grænserne endnu ikke er endelige, skal du tilsidesætte viewDidLayoutSubviews ( ) metode til at opdatere de bundne lag.

Efter udgivelsen af ​​iOS 10 er der behov for en ekstra post i Info.plist, dette giver en grund til at bruge kameraet. Du bør også indstille Privacy-Camera Usage Description.

Tekstgenkendelse; Hvordan Vision Framework fungerer

Der er tre trin til implementering af Vision på appen.

  1. Håndtere – det er, når du vil have rammerne til at gøre noget, efter at anmodningen er kaldt.
  2. Observationer – dette er, hvad du vil gøre med de data, du har leveret, begyndende med én anmodning
  3. Forespørgsler – det er, når du beder om Detect framework

Ideelt set opretter du én tekstanmodning som VNopdag tekstrektangleranmodning. Dette er en slags VNrequest der grænser op til teksten. Når rammen har fuldført ansøgningen, fortsætter du med at ringe til Detteksthandler fungere. Du vil også gerne vide den nøjagtige ramme, der blev genkendt, indstil den til Rapportkarakterbokse= Sandt.

Derefter skal du definere de observationer, der indeholder alle resultaterne af VNopdag tekstrektangleranmodning, husk at tilføje Vision til outputkameraet. Da Vision afslører API'er på højt niveau, er det sikkert at arbejde med det.

Funktionen kontrollerer, om Cmsamplebuffer eksisterer og PutOut Avcaptureoutput. Du skal derefter fortsætte med at oprette en variabel Forespørgsler som 1 Ordbogstype VNimage-option. Det VNmage option er en type struktur, der indeholder egenskaber og data fra kameraet. Du skal derefter oprette VNimagerequesthandler og udfør tekstanmodningen.

Tegning af grænser omkring den registrerede tekst

Du kan starte med at have rammen til at tegne to felter, en for hvert bogstav, det registrerer, og den anden for hvert ord. Tabeller er kombinationen af ​​alle de tegnbokse, som din anmodning finder.

  • Definer punkterne på din visning for at hjælpe dig med at placere kasserne.
  • Derefter skal du oprette en CALayer; brug VNrektangulær observation at definere dine begrænsninger, hvilket gør processen med at skitsere boksen nemmere.

Du har nu alle dine funktioner lagt ud.

For at forbinde dine prikker skal du begynde med at lade din kode køre asynkront. Du bør derefter kontrollere, om der findes en region i dine resultater fra din VNTextObservation.

Du kan nu kalde din funktion ind, som vil tegne en boks indenfor området. Tjek, om der er tegnfelter i regionen, og ring derefter til tjenesten, der bringer en boks ind omkring hvert bogstav.

Derefter skal du oprette en variabel RequestOptions. Du kan nu oprette en VNImageRequestHandler objekt og udføre den tekstanmodning, du oprettede.

Til sidst er det sidste trin at køre din visionkode med livestreamen. Du bliver nødt til at tage videooutputtet og konvertere det til Cmsamplebuffer.

Yderligere tips

  1. Prøv altid at beskære billedet og bearbejd kun det afsnit, du har brug for. Dette vil reducere behandlingstiden og hukommelsesfodaftrykket
  2. Slå sprogkorrektion til, når du håndterer ikke-numeriske tegn, og deaktiver den, når du håndterer et numerisk tegn
  3. Inkluder validering for genkendte talstrenge for at bekræfte nøjagtigheden og eliminere visning af falsk værdi til brugeren.
  4. Dokumentkamera-controlleren er den bedste ledsager til tekstgenkendelse, da billedkvalitet spiller en væsentlig rolle i tekstgenkendelse.
  5. Overvej at indstille en minimumsteksthøjde for at øge ydeevnen.

Med Vision har du alt, hvad du behøver til tekstgenkendelse. Da Vision er nem at bruge og tager kort tid at implementere, svarer det næsten til leg med lego at bruge det. Prøv at teste din app på forskellige objekter, skrifttyper, belysning og størrelser. Du kan også imponere dig selv ved at kombinere Vision med Core ML.