Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Vil du lave håndskrevet OCR? Denne blog er en omfattende oversigt over de nyeste metoder til håndskriftsgenkendelse ved hjælp af dyb læring. Vi har gennemgået den seneste forskning og artikler og har også bygget en håndskriftslæser fra bunden.


Nanonetter OCR API har mange interessante brug sager. Tal med en Nanonets AI-ekspert for at lære mere.


Introduktion

Markedsstørrelsen for Optical Character Recognition (OCR) forventes at være USD 13.38 milliarder i 2025 med en år-til-år vækst på 13.7 %. Denne vækst er drevet af hurtig digitalisering af forretningsprocesser ved hjælp af OCR for at reducere deres lønomkostninger og for at spare dyrebare mandetimer. Selvom OCR er blevet betragtet som et løst problem, er der én nøglekomponent i det, håndskriftsgenkendelse (håndskrifts-OCR) eller håndskrevet tekstgenkendelse (HTR), som stadig betragtes som en udfordrende problemformulering. Den høje varians i håndskriftsstile på tværs af mennesker og den dårlige kvalitet af den håndskrevne tekst sammenlignet med trykt tekst udgør betydelige forhindringer ved konverteringen til maskinlæsbar tekst. Ikke desto mindre er det et afgørende problem at løse for flere brancher som sundhedspleje, forsikring og bank.

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning
Kilde:- https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

Nylige fremskridt inden for Deep Learning, såsom fremkomsten af ​​transformerarkitekturer, har fremskyndet vores fremskridt med at knække håndskrevet tekstgenkendelse. Genkendelse af håndskrevet tekst kaldes Intelligent Character Recognition (ICR) på grund af det faktum, at de nødvendige algoritmer til at løse ICR har brug for meget mere intelligens end at løse generisk OCR.

I denne artikel vil vi lære om opgaven med håndskrevet tekstgenkendelse, dens forviklinger, og hvordan vi kan løse den ved hjælp af deep learning-teknikker.


Vil du udtrække data fra håndskrevne formularer? Gå over til Nanonetter og begynd at bygge håndskrift OCR-modeller gratis!


Udfordringer i håndskriftsgenkendelse

  1. Kæmpe variation og tvetydighed af slagtilfælde fra person til person
  2. En individuel persons håndskriftstil varierer også fra tid til anden og er inkonsekvent
  3. Dårlig kvalitet af kildedokumentet/-billedet på grund af forringelse over tid
  4. Tekst i trykte dokumenter sidder i en lige linje, hvorimod mennesker ikke behøver at skrive en linje tekst i en lige linje på hvidt papir
  5. Kursiv håndskrift gør adskillelse og genkendelse af karakterer udfordrende
  6. Tekst i håndskrift kan have variabel rotation til højre, hvilket er i modsætning til trykt tekst, hvor al tekst sidder oprejst
  7. At indsamle et godt mærket datasæt for at lære er ikke billigt sammenlignet med syntetiske data

Brug sager

Sundhedspleje og lægemidler

Digitalisering af patientrecept er et stort smertepunkt i sundhedsvæsenet/farmaceutisk industri. For eksempel håndterer Roche millioner af petabyte medicinske PDF'er dagligt. Et andet område, hvor håndskrevet tekstgenkendelse har afgørende betydning, er patientindskrivning og formulardigitalisering. Ved at tilføje håndskriftsgenkendelse til deres værktøjssæt af tjenester, kan hospitaler/farmaceutiske produkter forbedre brugeroplevelsen markant

Forsikring

En stor forsikringsbranche modtager mere end 20 millioner dokumenter om dagen, og en forsinkelse i behandlingen af ​​kravet kan påvirke virksomheden voldsomt. Kravdokumentet kan indeholde forskellige håndskriftsstile, og ren manuel automatisering af behandling af krav vil fuldstændig bremse pipelinen

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning
Kilde:- https://www.researchgate.net/figure/mages-of-handwritten-bank-cheques-from-different-countries-a-Brazilian-1-b-American_fig2_226705617

Bank

Folk skriver checks med jævne mellemrum, og checks spiller stadig en stor rolle i de fleste ikke-kontante transaktioner. I mange udviklingslande kræver den nuværende checkbehandlingsprocedure, at en bankmedarbejder skal læse og manuelt indtaste oplysningerne på en check og også verificere indtastningerne som underskrift og dato. Da et stort antal checks skal behandles hver dag i en bank, kan et håndskriftstekstgenkendelsessystem spare omkostninger og timers menneskeligt arbejde

Online biblioteker

Enorme mængder af historisk viden bliver digitaliseret ved at uploade billedscanningerne for at få adgang til hele verden. Men denne indsats er ikke særlig nyttig, før teksten i billederne kan identificeres, som kan indekseres, forespørges og gennemses. Håndskriftsgenkendelse spiller en nøglerolle i at levendegøre middelalderens og det 20. århundredes dokumenter, postkort, forskningsstudier osv.

Metoder

Håndskriftsgenkendelsesmetoder kan bredt klassificeres i nedenstående to typer

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning
  1. Online metoder :- Online metoder involverer en digital pen/pen og har adgang til streginformationen, pennens placering, mens teksten skrives som vist i den højre figur ovenfor. Da de har en tendens til at have meget information med hensyn til strømmen af ​​tekst, der skrives, kan de klassificeres med en ret høj nøjagtighed, og afgrænsningen mellem forskellige tegn i teksten bliver meget mere klar
  2. Offline metoder :- Offline metoder involverer genkendelse af tekst, når den er skrevet ned, og vil derfor ikke have information om streger/retninger involveret under skrivning med en mulig tilføjelse af baggrundsstøj fra kilden, dvs. papir.

I den virkelige verden er det ikke altid muligt/skalerbart at bære en digital pen med sensorer til at fange stregoplysninger, og derfor er opgaven med at genkende tekst offline et meget mere relevant problem. Derfor vil vi nu diskutere forskellige teknikker til at løse problemet med at genkende offline tekst.

Teknikker

De indledende tilgange til løsning af håndskriftsgenkendelse involverede Machine Learning-metoder som Hidden Markov Models(HMM), SVM osv. Når den indledende tekst er forbehandlet, udføres feature-ekstraktion for at identificere nøgleinformation såsom sløjfer, bøjningspunkter, billedformat osv. af individuel karakter. Disse genererede funktioner sendes nu til en klassifikator siger HMM for at få resultaterne. Ydeevnen af ​​maskinlæringsmodeller er ret begrænset på grund af manuel funktionsudtrækningsfase og deres begrænsede indlæringskapacitet. Funktionsudtrækningstrin varierer for hvert enkelt sprog og er derfor ikke skalerbart. Med fremkomsten af ​​dyb læring kom der enorme forbedringer i nøjagtigheden af ​​håndskriftsgenkendelse. Lad os diskutere nogle få af den fremtrædende forskning inden for dyb læring til håndskriftsgenkendelse

Multidimensionelle tilbagevendende neurale netværk

RNN/LSTM, som vi ved, kan håndtere sekventielle data for at identificere tidsmæssige mønstre og generere resultater. Men de er begrænset til at håndtere 1D-data og vil derfor ikke være direkte anvendelige på billeddata. For at løse dette problem foreslog forfatterne i dette papir en multidimensionel RNN/LSTM-struktur som kan ses i figuren nedenfor

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Det følgende er forskellen mellem en generel RNN og en multidimensional RNN. I en generel RNN siger skjult lag, at jeg modtager tilstand fra et tidligere skjult lag i tiden i-1. I Multi-dimensional RNN siger for eksempel en 2 dimensional RNN, det skjulte lag (i, j) modtager tilstande fra flere tidligere skjulte lag, dvs. (i-1, j) og (i, j-1) og fanger således kontekst fra begge højde og bredde i et billede, som er afgørende for at få en klar forståelse af den lokale region af et netværk. Dette udvides yderligere for at få information ikke kun fra tidligere lag, men også fra fremtidige lag svarende til hvordan en BI-LSTM modtager information fra t-1 og t+1. På samme måde kan et 2D MDRNN skjult lag i nu modtage information (i-1, j), (i, j-1), (i+1, j), (i, j+1) og dermed fange kontekst i alle retninger

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Hele netværksstrukturen er vist ovenfor. MDLSTM bruges, hvilket ikke er andet end at erstatte RNN-blok med en LSTM-blok fra ovenstående diskussion af MDRNN. Inputtet er opdelt i blokke af størrelse 3×4, som nu føres ind i MDSTM-lag. Netværket har en hierarkisk struktur af MDLSTM-lag efterfulgt af feed-forward (ANN) lag i tandem. Derefter konverteres det endelige output til en 1D-vektor og gives til CTC-funktionen for at generere output

Connectionist Temporal Classification (CTC) er en algoritme, der bruges til at håndtere opgaver som talegenkendelse, håndskriftsgenkendelse osv., hvor kun inputdata og outputtransskription er tilgængelige, men der er ingen justeringsdetaljer angivet, dvs. hvordan en bestemt region i lyd til tale eller bestemt region i billeder til håndskrift er justeret til et bestemt tegn. Simple heuristik, såsom at give hver karakter det samme område, virker ikke, da mængden af ​​plads, hver karakter tager, varierer i håndskrift fra person til person og fra gang til gang.

Til brug for vores håndskriftsgenkendelse skal du overveje input-billedområderne for en bestemt sætning som input X=[x1,x2,…,x**T] mens forventet output som Y=[y1,y2,…,y**U] . Givet X formodes vi at finde nøjagtig Y. CTC-algoritmen virker ved at tage input X og give fordeling over alle mulige Y'er, hvorved vi kan lave en forudsigelse for det endelige output.

CTC bruger et basistegn sige - til at skelne mellem duplikerede tegn og gentagne tegn i et inputområde. For eksempel kan et bestemt tegn spænde over flere inputområder, og CTC vil således udsende det samme tegn fortløbende. Eksempel: - Input james og output fra CTC er jjaammmees. Det endelige output er afledt ved at kollapse de gentagne output, og derfor får vi james. Men nu for at præsentere duplikerede tegn, siger 'l' i hej, skal vi have en adskillelse på plads, og derfor er alle udgange adskilt af bindestreg(-). Nu kunne outputtet for hej være h-ee-ll-lll-oo, som hvis det kollapser bliver til hej og ikke hej. Mere information om, hvordan CTC virker, kan ses her CTC.

Mens vi afkoder outputtet af CTC baseret på den simple heuristik af højeste sandsynlighed for hver position, kan vi få resultater, som måske ikke giver nogen mening i den virkelige verden. For at løse dette kan vi bruge en anden dekoder for at forbedre resultaterne. Lad os diskutere forskellige typer afkodninger

  1. Bedste sti-afkodning :- Dette er den generiske afkodning, vi har diskuteret indtil videre. Ved hver position tager vi output fra modellen og finder resultatet med størst sandsynlighed.
  2. Afkodning af strålesøgning :- I stedet for at tage et enkelt output fra netværket hver gang, foreslår strålesøgning at holde flere outputveje med højest sandsynligheder og udvide kæden med nye output og droppe stier med mindre sandsynlighed for at holde strålestørrelsen konstant. Resultaterne opnået gennem denne tilgang er mere nøjagtige end at bruge den grådige tilgang
  3. Strålesøgning med sprogmodel :- Strålesøgning giver mere præcise resultater end gittersøgning, men det løser stadig ikke problemet med at have meningsfulde resultater. For at løse dette kan vi bruge en sprogmodel sammen med strålesøgning ved at bruge både sandsynligheder fra modellen og sprogmodellen til at generere endelige resultater.

Flere detaljer om generering af nøjagtige afkodningsresultater kan ses i denne artikel

Encoder-Decoder og Attention Networks

Seq2Seq-modeller med encoder-decoder-netværk har for nylig været populære til at løse opgaverne med talegenkendelse, maskinoversættelse osv. og er således blevet udvidet til at løse brugssagen med håndskriftsgenkendelse ved at implementere en ekstra opmærksomhedsmekanisme. Lad os diskutere noget afgørende forskning på dette område

Scan, deltag og læs

I dette skelsættende værk Scan, Attend and Read(SAR) foreslår forfatterne brugen af ​​en opmærksomhedsbaseret model til ende-til-ende håndskriftsgenkendelse. Forskningens hovedbidrag er automatisk transskription af tekst uden at segmentere i linjer som et forbehandlingstrin og dermed kan scanne en hel side og give resultater.

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

SAR bruger MDLSTM baseret arkitektur svarende til den, vi diskuterede ovenfor med en lille ændring i det sidste lag. Efter det sidste lineære lag, dvs. den endelige Sum-blok i figuren ovenfor, er funktionskortene kollapset i den lodrette dimension, og en endelig softmax-funktion anvendes for at få output.

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

SAR-arkitektur består af en MDLSTM-arkitektur, der fungerer som funktionsudtrækkeren. Det endelige sammenklappelige modul med en softmax-udgang og CTC-tab erstattes af et opmærksomhedsmodul og en LSTM-dekoder. Den anvendte opmærksomhedsmodel er en hybrid kombination af indholdsbaseret opmærksomhed og lokationsbaseret opmærksomhed, som forklares mere detaljeret i næste papir. Dekoder-LSTM-modulerne tager den tidligere tilstand, tidligere opmærksomhedskort og indkoderegenskaberne for at generere det endelige outputtegn og tilstandsvektoren til næste forudsigelse.

Konvolver, overvær og stave

Denne artikel foreslår en opmærksomhedsbaseret sekvens-til-sekvens-model til håndskrevne ordgenkendelse. Den foreslåede arkitektur har tre hoveddele: en koder, der består af en CNN og en tovejs GRU, en opmærksomhedsmekanisme dedikeret til at fokusere på de relevante funktioner og en dekoder dannet af en envejs GRU, der er i stand til at stave det tilsvarende ord, tegn for tegn.

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Indkoderen bruger en CNN til at udtrække visuelle funktioner. En præ-trænet VGG-19-BN arkitektur bruges som en feature extractor. Inputbilledet konverteres til feature map X, som derefter omformes til X' ved at opdele alle kanaler kolonnevis og kombinere dem for at få den sekventielle information. X' konverteres yderligere til H ved at bruge en tovejs GRU. GRU er et neuralt netværk, der ligner LSTM i naturen og kan fange tidsmæssig information.

Yderligere anvendes en opmærksomhedsmodel, mens outputtet fra dekoderen forudsiges. Artiklen diskuterer to forskellige typer af opmærksomhedsmekanismer, der er udforsket.

  1. Indholdsbaseret opmærksomhed :- Ideen bag dette er at finde ligheden mellem den aktuelle skjulte tilstand af dekoderen og featurekortet fra encoder. Vi kan finde de mest korrelerede egenskabsvektorer i indkoderens feature map, som kan bruges til at forudsige det aktuelle tegn på det aktuelle tidstrin. Flere detaljer om, hvordan opmærksomhedsmekanismen virker, kan ses herfra Opmærksomhed
  2. Lokationsbaseret opmærksomhed :- Den største ulempe ved indholdsbaserede lokaliseringsmekanismer er, at der er en implicit antagelse om, at lokaliseringsinformationen er indlejret i koderens output. Ellers er der ingen måde at skelne mellem tegnoutput, som gentages fra dekoderen. Overvej for eksempel et ord Charmander, tegnet a gentages to gange i det, og uden placeringsoplysninger vil dekoderen ikke være i stand til at forudsige dem som separate tegn. For at afhjælpe dette forudsiges det aktuelle tegn og dets justering ved at bruge både encoder-output og tidligere justering. Flere detaljer om, hvordan lokationsbaseret deltagelse fungerer, kan ses link..

Dekoderen er en envejs flerlags GRU. Ved hvert tidstrin t modtager den input fra tidligere tidstrin og kontekstvektoren fra opmærksomhedsmodulet. Multinomial afkodning og etiketudjævning undersøges ved træning for at forbedre generaliseringsevnen.

Transformatormodeller

Selvom encoder-decoder-netværk har været ret gode til at opnå resultater for håndskriftsgenkendelse, har de en flaskehals i træningen på grund af de involverede LSTM-lag og kan derfor ikke paralleliseres. For nylig har transformere haft ret succes og erstattet LSTM i løsningen af ​​forskellige sprogrelaterede opgaver. Lad os nu diskutere, hvordan transformatorbaserede modeller kan anvendes til håndskriftsgenkendelse.

Vær opmærksom på, hvad du læser

I dette arbejde foreslog forfatterne brugen af ​​en transformatorbaseret arkitektur ved hjælp af selvopmærksomhedslag med flere hoveder på både visuelle og tekststadier og kan således lære både karaktergenkendelse såvel som sprogrelaterede afhængigheder af de tegnsekvenser, der skal afkodes. Da sprogkundskaben er indlejret i selve modellen, er der ikke behov for yderligere efterbehandlingstrin ved hjælp af en sprogmodel og har derfor evnen til at forudsige output, som ikke er en del af ordforrådet. For at opnå dette sker tekstkodning på et tegnniveau og ikke på ordniveau. Da transformatorarkitekturen tillader at træne modellen parallelt for hver region eller karakter, er træningsprocessen meget forenklet.

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Netværksarkitekturen består af følgende komponenter

  1. Visuel encoder :- At udtrække relevante funktioner og anvende flerhovedet visuel selvopmærksomhed på forskellige karakterplaceringer
  2. Teksttransskribering :- Den udfører opgaven med at tage tekstinputtet, kode det, anvende flerhovedet sproglig selvopmærksomhed og anvende gensidig opmærksomhed på både visuelle og teksttræk.
Visuel Encoder

Resnet50 backbone skal bruges til at ekstra funktionerne, som det kan ses i figuren ovenfor. Det 3-dimensionelle feature map output fra Resnet50 Fc sendes til Temporal Encoding modul, som omformes til 2d ved at beholde den samme bredde og dermed formen på (fxh, w). Dette føres ind i et fuldt forbundet lag for at reducere formen til (f, w), og det resulterende output er Fc'. Derudover tilføjes en positionskodning TE til Fc' for at bevare positionsinformationen som nævnt i Transformer-papir af Vaswani. Mere info om hvordan transformerarkitektur er designet kan ses link.. Outputtet føres gennem et fuldt tilsluttet lag for at få det endelige funktionskort med form (f , w). Det endelige output sendes gennem et flerhovedet opmærksomhedsmodul med 8 hoveder for at få et visuelt rigt funktionskort

Teksttransskribering

Indtastningsteksten sendes gennem en koder, som genererer indlejringer på tegnniveau. Disse indlejringer er kombineret med tidsmæssig placering svarende til måden i Visual Encoder ved hjælp af et Temporal Encoder-modul. Dette resultat sendes derefter til et Multi-Head Language Self-Attention-modul, som ligner opmærksomhedsmodulet i Visual Encoder. Tekstfunktionerne, der genereres langs de visuelle funktioner fra visual encoder, overføres til et gensidigt opmærksomhedsmodul, hvis opgave er at tilpasse og kombinere de indlærte funktioner fra både billeder og tekstinput. Outputtet sendes gennem en softmax-funktion for at få det endelige resultat.

Ved evaluering på testdata er transskriptionerne ikke tilgængelige. Det er således kun startsymbolet <S>, der sendes som input, og det første forudsagte tegn føres tilbage til systemet, som udsender det andet forudsagte tegn. Denne slutningsproces gentages i en sløjfe, indtil slutningen af ​​sekvenssymbolet <E> frembringes, eller når den maksimale udgangslængde N er nået.

Generering af håndskrifttekst

Handwriting Text Generation er opgaven med at generere ægte håndskrevet tekst og kan derfor bruges til at udvide de eksisterende datasæt. Som vi ved, kræver dyb læring en masse data at træne, mens det er en besværlig opgave at skaffe et stort korpus af mærkede håndskriftsbilleder til forskellige sprog. For at løse dette kan vi bruge Generative Adversarial Networks til at generere træningsdata. Lad os diskutere en sådan arkitektur her

ScrabbleGAN

ScrabbleGAN følger en semi-overvåget tilgang til at syntetisere håndskrevne tekstbilleder, der er alsidige både i stil og leksikon. Det har evnen til at generere billeder af varierende længde. Generatoren kan også manipulere den resulterende tekststil, som giver os mulighed for at bestemme, om teksten skal være kursiv eller sige, hvor tyk/tynd pennestrøg skal være

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Arkitekturen består af en fuldt konvolutionerende generator baseret på BigGAN. For hvert tegn i inputtet vælges et tilsvarende filter, og alle værdierne kædes sammen, som derefter multipliceres med en støjvektor z, som styrer den genererede tekststil. Som det kan ses ovenfor, overlapper de områder, der genereres for hvert enkelt tegn, hinanden, hvilket hjælper med at generere sammenhængende rekursiv tekst samt tillader fleksibiliteten af ​​forskellige tegnstørrelser. For eksempel optager m meget af pladsen, mens e og t tager begrænset areal. For at bevare den samme stil for hele ord eller sætning, holdes stilvektoren z konstant for alle tegn.

En foldningsdiskriminator baseret på BigGAN-arkitektur bruges til at klassificere, om den genererede stil af billeder ser falsk eller ægte ud. Diskriminatoren er ikke afhængig af annoteringer på tegnniveau og er derfor ikke baseret på et klassebetinget GAN. Fordelen ved dette er, at der ikke er behov for mærkede data, og derfor kan data fra uset korpus, som ikke er en del af træningsdata, bruges til at træne diskriminator. Sammen med diskriminatoren er en tekstgenkender R trænet til at klassificere, om den genererede tekst giver mening fra den virkelige verden, eller om den er volapyk. Genkendelsen er baseret på CRNN-arkitekturer med det tilbagevendende hoved fjernet for at gøre genkendelsen lidt svagere og ikke genkende tekst, selvom den er uklar. Teksten, der genereres i outputtet af R, sammenlignes med inputteksten, der er givet til generatoren, og en tilsvarende straf tilføjes tabsfunktionen.

Output genereret af ScrabbleGAN er vist nedenfor

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Datasæt:-

  1. IAM :- IAM-datasæt indeholder omkring 100 billeder af ord fra det engelske sprog med ord skrevet af 657 forskellige forfattere. Tog-, test- og valideringssættet indeholder ord skrevet af gensidigt eksklusive forfattereLink:- http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. CVL :- CVL-datasættet består af syv håndskrevne dokumenter skrevet af omkring 310 deltagere, hvilket resulterer i omkring 83 ordafgrøder, opdelt i tog- og testsætLink :- https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. RIMER :- Indeholder ord fra det franske sprog på omkring 60 billeder og skrevet af 1300 forfattere svarende til omkring 5 mails skrevet af hver person. Link :- http://www.a2ialab.com/doku.php?id=rimes_database:start

Metrics:-

Tegnfejlfrekvens :- Det beregnes som Levenshtein-afstanden, som er summen af ​​tegnsubstitutionerne (Sc), indsættelser (Ic) og sletninger (Dc), der er nødvendige for at transformere den ene streng til den anden, divideret med det samlede antal tegn i groundtruth (Nc)

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Ordfejlfrekvens :- Det beregnes som summen af ​​ordsubstitutionerne (Sw), indsættelser (Iw) og sletninger (Dw), der er nødvendige for at transformere den ene streng til den anden, divideret med det samlede antal ord i grundsandheden (Nw)

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Træn din egen håndskriftsgenkendelsesmodel

Lad os nu se, hvordan vi kan træne vores egen håndskrevne tekstgenkendelsesmodel. Vi træner i IAM-datasæt, men du kan også træne modellen på dit eget datasæt. Lad os diskutere de trin, der er involveret i at sætte dette op

data

For at downloade IAM datasæt register fra link.. Når du er registreret, download words.tgz fra link.. Dette indeholder et datasæt af håndskrevne ordbilleder. Download også annotationsfilen words.txt fra link..

Hvis du vil bruge dit eget datasæt, skal du følge datastruktureringen af ​​IAM datasæt.

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Ovenstående viser, hvordan AIM-datasættets mappestruktur ser ud. Her repræsenterer a01, a02 osv. de overordnede mapper, der hver har undermapper med data. Hver undermappe har et sæt billeder med navnet på mappen tilføjet som et præfiks til dets filnavn.

Derudover har vi brug for en annotationsfil for at nævne stierne til billedfilerne og de tilsvarende transskriptioner. Overvej for eksempel ovenstående billede med tekstnominering, nedenstående ville være repræsentationen i annotationsfilen words.txt

a01-000u-01-00 ok 156 395 932 441 100 VBG nominering

  1. a01-000u-01-00 -> ord-id for en linje i form a01-000u
  2. ok/err -> Indikator for kvaliteten af ​​segmenteringsoutput
  3. 156 -> gråt niveau for at binarisere linjen, der indeholder dette ord
  4. 395 932 441 100 -> afgrænsningsramme omkring dette ord i x,y,w,h format
  5. VBG -> det grammatiske tag for dette ord. Her er det Verbet Gerund
  6. nominering -> transskriptionen for dette ord

Arkitektur:-

Vi vil træne en CRNN-baseret arkitektur med CTC-tab. En CNN bruges til at udtrække de visuelle funktioner, som overføres til en RNN, og et CTC-tab påføres til slutningen med en grådig dekoder for at få output.

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Kurser

Vi skal bruge CRNN-koden fra link. at træne vores model. Følg nedenstående trin for at forberede dataene

python checkDirs.py

Kør kommandoen over, og du skulle se et output som nedenfor

[OK] ord/
[OK] words/a01/a01-000u/
[OK] words.txt
[OK] test.png
[OK] words/a01/a01-000u/a01-000u-00-00.png

Nu er du klar til at begynde at træne.

Gå til rodbiblioteket og kør

python main.py --train

Resultater

Efter træning i omkring 50 epoker er Character Error Rate (CER) 10.72 %, mens Word Error Rate (WER) er 26.45 %, og ordnøjagtigheden er derfor 73.55 %. Nogle af forudsigelserne kan ses i nedenstående figur.

Sådan laver du nemt håndskriftsgenkendelse ved hjælp af Machine Learning

Modellen er i stand til at forudsige karaktererne nøjagtigt i vid udstrækning, men den lider i få tilfælde, som f.eks. frygtelig forudsiges som uhyggeligt, historier forudsiges som staries. Disse problemer kan løses ved at anvende en sprogmodel som et efterbehandlingstrin sammen med dekoderen, som kan generere meningsfulde ord og rette op på simple fejl.

Resumé

Selvom der har været betydelige udviklinger inden for teknologi, som hjælper med bedre genkendelse af håndskrevet tekst, er HTR et langt fra et løst problem sammenlignet med OCR og er derfor endnu ikke udbredt i industrien. Ikke desto mindre med tempoet i teknologiudviklingen og med introduktionen af ​​modeller som transformere, kan vi forvente, at HTR-modeller snart bliver en hverdag.

For at fange mere forskning om dette emne, kan du komme i gang fra link.

Yderligere læsning

Tidsstempel:

Mere fra AI og maskinindlæring