Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

Wilt u handgeschreven OCR doen? Deze blog is een uitgebreid overzicht van de nieuwste methoden voor handschriftherkenning met behulp van deep learning. We hebben de laatste onderzoeken en artikelen bekeken en hebben ook een handschriftlezer helemaal opnieuw gebouwd.


Nanonetten OCR-API heeft veel interessante use cases. Praat met een Nanonets AI-expert voor meer informatie.


Introductie

De marktomvang van Optical Character Recognition (OCR) zal tegen 13.38 naar verwachting 2025 miljard dollar bedragen, met een jaarlijkse groei van 13.7%. Deze groei wordt aangedreven door snelle digitalisering van bedrijfsprocessen met behulp van OCR om hun arbeidskosten te verlagen en kostbare manuren te besparen. Hoewel OCR als een opgelost probleem wordt beschouwd, is er รฉรฉn belangrijk onderdeel ervan, Handschriftherkenning (Handschrift-OCR) of Handgeschreven tekstherkenning (HTR), dat nog steeds als een uitdagende probleemstelling wordt beschouwd. De grote variatie in handschriftstijlen tussen mensen en de slechte kwaliteit van de handgeschreven tekst in vergelijking met gedrukte tekst vormen aanzienlijke hindernissen bij het converteren naar machineleesbare tekst. Desalniettemin is het een cruciaal probleem om op te lossen voor meerdere sectoren, zoals de gezondheidszorg, verzekeringen en het bankwezen.

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning
Bron: - https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

Recente vorderingen in Deep Learning, zoals de komst van transformatorarchitecturen, hebben onze vooruitgang bij het kraken van handgeschreven tekstherkenning versneld. Het herkennen van handgeschreven tekst wordt Intelligent Character Recognition (ICR) genoemd vanwege het feit dat de algoritmen die nodig zijn om ICR op te lossen veel meer intelligentie nodig hebben dan het oplossen van generieke OCR.

In dit artikel zullen we leren over de taak van handgeschreven tekstherkenning, de fijne kneepjes ervan en hoe we dit kunnen oplossen met behulp van deep learning-technieken.


Wilt u gegevens uit handgeschreven formulieren halen? Ga naar Nanonetten en begin gratis handschrift OCR-modellen te bouwen!


Uitdagingen bij handschriftherkenning

  1. Grote variabiliteit en dubbelzinnigheid van beroertes van persoon tot persoon
  2. De handschriftstijl van een individuele persoon varieert ook van tijd tot tijd en is inconsistent
  3. Slechte kwaliteit van het brondocument / de afbeelding als gevolg van verslechtering in de tijd
  4. Tekst in gedrukte documenten zit in een rechte lijn, terwijl mensen geen regel tekst in een rechte lijn op wit papier hoeven te schrijven
  5. Cursief handschrift maakt het scheiden en herkennen van tekens een uitdaging
  6. Tekst in handgeschreven tekst kan een variabele rotatie naar rechts hebben, in tegenstelling tot gedrukte tekst waarbij alle tekst rechtop staat
  7. Het verzamelen van een goed gelabelde dataset om te leren is niet goedkoop in vergelijking met synthetische data

Use cases

Gezondheidszorg en farmaceutica

Het digitaliseren van recepten voor patiรซnten is een belangrijk pijnpunt in de gezondheidszorg / farmaceutische industrie. Roche verwerkt bijvoorbeeld dagelijks miljoenen petabytes aan medische pdf's. Een ander gebied waarop handgeschreven tekstdetectie een belangrijke impact heeft, is de inschrijving van patiรซnten en het digitaliseren van formulieren. Door handschriftherkenning toe te voegen aan hun toolkit van diensten, kunnen ziekenhuizen / farmaceutica de gebruikerservaring aanzienlijk verbeteren

Verzekering

Een grote verzekeringssector ontvangt meer dan 20 miljoen documenten per dag en een vertraging bij het verwerken van de claim kan grote gevolgen hebben voor het bedrijf. Het claimdocument kan verschillende handschriftstijlen bevatten en pure handmatige automatisering van het verwerken van claims zal de pijplijn volledig vertragen

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning
Bron: - https://www.researchgate.net/figure/mages-of-handwritten-bank-cheques-from-different-countries-a-Brazilian-1-b-American_fig2_226705617

Bankieren

Mensen schrijven regelmatig cheques uit en cheques spelen nog steeds een grote rol bij de meeste niet-contante transacties. In veel ontwikkelingslanden vereist de huidige verwerkingsprocedure voor cheques dat een bankmedewerker de informatie op een cheque leest en handmatig invoert en ook de vermeldingen zoals handtekening en datum verifieert. Omdat elke dag een groot aantal cheques in een bank moet worden verwerkt, kan een handgeschreven tekstherkenningssysteem kosten en uren menselijk werk besparen

Online bibliotheken

Enorme hoeveelheden historische kennis worden gedigitaliseerd door de beeldscans te uploaden voor toegang tot de hele wereld. Maar deze inspanning is niet erg nuttig totdat de tekst in de afbeeldingen kan worden geรฏdentificeerd die kan worden geรฏndexeerd, opgevraagd en gebladerd. Handschriftherkenning speelt een sleutelrol bij het tot leven brengen van de middeleeuwse en 20e-eeuwse documenten, ansichtkaarten, onderzoeken enz.

Methoden

Methoden voor handschriftherkenning kunnen grofweg in de onderstaande twee typen worden ingedeeld

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning
  1. Online methoden : - Onlinemethoden hebben betrekking op een digitale pen / stylus en hebben toegang tot de streekinformatie, de penlocatie terwijl tekst wordt geschreven, zoals te zien is in de rechter afbeelding hierboven. Omdat ze over het algemeen veel informatie hebben met betrekking tot de tekststroom die wordt geschreven, kunnen ze met een vrij hoge nauwkeurigheid worden geclassificeerd en wordt de afbakening tussen verschillende tekens in de tekst veel duidelijker
  2. Offline methoden :- Offline-methoden omvatten het herkennen van tekst zodra deze is opgeschreven en hebben daarom geen informatie over de streken/richtingen die tijdens het schrijven worden gebruikt, met een mogelijke toevoeging van wat achtergrondgeluid van de bron, bijvoorbeeld papier.

In de echte wereld is het niet altijd mogelijk/schaalbaar om een โ€‹โ€‹digitale pen met sensoren mee te nemen om streekinformatie vast te leggen en daarom is het offline herkennen van tekst een veel relevanter probleem. Daarom zullen we nu verschillende technieken bespreken om het probleem van het herkennen van offline tekst op te lossen.

technieken

De eerste benaderingen voor het oplossen van handschriftherkenning omvatten Machine Learning-methoden zoals Hidden Markov Models (HMM), SVM enz. Zodra de oorspronkelijke tekst is voorbewerkt, wordt feature-extractie uitgevoerd om belangrijke informatie te identificeren, zoals lussen, buigpunten, beeldverhouding enz. van een individueel karakter. Deze gegenereerde functies worden nu naar een classifier, bijvoorbeeld HMM, gevoerd om de resultaten te krijgen. De prestaties van machine learning-modellen zijn vrij beperkt vanwege de handmatige functie-extractiefase en hun beperkte leervermogen. De stap voor het extraheren van functies varieert voor elke afzonderlijke taal en is daarom niet schaalbaar. Met de komst van deep learning kwamen enorme verbeteringen in de nauwkeurigheid van handschriftherkenning. Laten we enkele van de prominente onderzoeken op het gebied van diep leren voor handschriftherkenning bespreken

Multidimensionale terugkerende neurale netwerken

RNN/LSTM, zoals we die kennen, kan omgaan met sequentiรซle gegevens om temporele patronen te identificeren en resultaten te genereren. Maar ze zijn beperkt tot het omgaan met 1D-gegevens en zijn daarom niet direct van toepassing op beeldgegevens. Om dit probleem op te lossen, hebben de auteurs in dit artikel een multidimensionale RNN/LSTM-structuur voorgesteld, zoals te zien is in de onderstaande afbeelding

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

Het volgende is het verschil tussen een algemeen RNN en een multidimensionaal RNN. In een algemene RNN, zegt een verborgen laag dat ik de status ontvangt van een vorige verborgen laag in tijd i-1. Zeg bijvoorbeeld in Multi-dimensionale RNN een 2-dimensionale RNN, de verborgen laag (i, j) ontvangt toestanden van meerdere voorgaande verborgen lagen, dwz (i-1, j) en (i, j-1) en legt dus de context vast van beide hoogte en breedte in een afbeelding die cruciaal is voor het verkrijgen van een duidelijk begrip van de lokale regio door een netwerk. Dit wordt verder uitgebreid om niet alleen informatie te krijgen van eerdere lagen, maar ook van toekomstige lagen, vergelijkbaar met hoe een BI-LSTM informatie ontvangt van t-1 en t + 1. Op dezelfde manier kan een 2D MDRNN verborgen laag ik nu informatie ontvangen (i-1, j), (i, j-1), (i + 1, j), (i, j + 1) en zo de context in alle richtingen vastleggen

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

De volledige netwerkstructuur is hierboven weergegeven. MDLSTM wordt gebruikt, wat niets anders is dan het vervangen van het RNN-blok door een LSTM-blok uit de bovenstaande bespreking van MDRNN. De invoer is verdeeld in blokken van 3 ร— 4 die nu in MDSTM-lagen worden ingevoerd. Het netwerk heeft een hiรซrarchische structuur van MDLSTM-lagen, gevolgd door achtereenvolgende feed-forward (ANN) lagen. Vervolgens wordt de uiteindelijke uitvoer omgezet in een 1D-vector en aan de CTC-functie gegeven om uitvoer te genereren

Connectionist Temporal Classification (CTC) is een algoritme dat wordt gebruikt om taken uit te voeren zoals spraakherkenning, handschriftherkenning enz. waarbij alleen de invoergegevens en de uitvoertranscriptie beschikbaar zijn, maar er geen uitlijningsdetails worden gegeven, dwz hoe een bepaald gebied in audio voor spraak of een bepaald gebied in afbeeldingen voor handschrift is afgestemd op een specifiek teken. Eenvoudige heuristieken, zoals elk teken hetzelfde gebied geven, zullen niet werken, omdat de hoeveelheid ruimte die elk teken inneemt in handschrift van persoon tot persoon en van tijd tot tijd varieert.

Beschouw voor ons handschriftherkenningsvoorbeeld de invoerbeeldgebieden voor een bepaalde zin als invoer X=[x1,x2, ...,x ** T] terwijl de verwachte uitvoer als Y=[y1,y2, ...,y ** U] . Gegeven X zouden we een nauwkeurige Y moeten vinden. Het CTC-algoritme werkt door invoer X te nemen en een verdeling te geven over alle mogelijke Y's waarmee we een voorspelling kunnen doen voor de uiteindelijke uitvoer.

CTC gebruikt bijvoorbeeld een basisteken om onderscheid te maken tussen dubbele tekens en herhaalde tekens in een invoergebied. Een bepaald teken kan bijvoorbeeld meerdere invoergebieden omvatten en dus zou CTC hetzelfde teken achtereenvolgens uitvoeren. Voorbeeld: - Input james en output van CTC is jjaammmees. De uiteindelijke uitvoer wordt afgeleid door de herhaalde uitvoer samen te vouwen en daarom krijgen we james. Maar om nu dubbele tekens te presenteren, zeg 'l' in hallo, we moeten een scheiding aanbrengen en dus worden alle uitvoer gescheiden door een koppelteken (-). Nu zou de uitvoer voor hallo h-ee-ll-lll-oo kunnen zijn, die, indien samengevouwen, hallo wordt en niet helo. Meer informatie over hoe CTC werkt, vindt u hier CTC.

Terwijl we de uitvoer van CTC decoderen op basis van de eenvoudige heuristiek van de hoogste waarschijnlijkheid voor elke positie, kunnen we resultaten krijgen die in de echte wereld misschien nergens op slaan. Om dit op te lossen kunnen we een andere decoder gebruiken om de resultaten te verbeteren. Laten we verschillende soorten decoderingen bespreken

  1. Beste pad-decodering : - Dit is de generieke decodering die we tot nu toe hebben besproken. Bij elke positie nemen we de output van het model en zoeken we het resultaat met de hoogste waarschijnlijkheid.
  2. Beam zoeken decodering : - In plaats van elke keer een enkele output van het netwerk te nemen, stelt straalonderzoek voor om meerdere outputpaden met de hoogste waarschijnlijkheden te behouden en de keten uit te breiden met nieuwe outputs en droppaden met kleinere waarschijnlijkheden om de bundelgrootte constant te houden. De resultaten die met deze benadering worden verkregen, zijn nauwkeuriger dan bij het gebruik van de hebzuchtige benadering
  3. Straal zoeken met taalmodel : - Zoeken met straal levert nauwkeurigere resultaten op dan zoeken op rasters, maar het lost het probleem van het hebben van zinvolle resultaten nog steeds niet op. Om dit op te lossen kunnen we een taalmodel gebruiken in combinatie met zoeken met bundels, waarbij we zowel kansen uit het model als het taalmodel gebruiken om definitieve resultaten te genereren.

Hier kunnen meer details over het genereren van nauwkeurige decoderingsresultaten worden bekeken dit artikel

Encoder-decoder en aandachtsnetwerken

Seq2Seq-modellen met Encoder-decoder-netwerken zijn recentelijk populair geweest voor het oplossen van de taken van spraakherkenning, machinevertaling enz. en zijn daarom uitgebreid om de use-case van handschriftherkenning op te lossen door een extra aandachtsmechanisme in te zetten. Laten we wat baanbrekend onderzoek op dit gebied bespreken

Scannen, bijwonen en lezen

In dit baanbrekende werk Scan, Attend and Read (SAR) stellen de auteurs het gebruik voor van een op aandacht gebaseerd model voor end-to-end handschriftherkenning. De belangrijkste bijdrage van het onderzoek is de automatische transcriptie van tekst zonder opsplitsing in regels als voorbewerkingsstap en kan zo een hele pagina scannen en resultaten opleveren.

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

SAR maakt gebruik van op MDLSTM gebaseerde architectuur, vergelijkbaar met degene die we hierboven hebben besproken, met een kleine wijziging in de laatste laag. Na de laatste lineaire laag, dwz het laatste Sum-blok in de bovenstaande afbeelding, worden de feature maps samengevouwen in de verticale dimensie en wordt een laatste softmax-functie toegepast om de outputs te krijgen.

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

SAR-architectuur bestaat uit een MDLSTM-architectuur die fungeert als feature extractor. De laatste instortende module met een softmax-uitgang en CTC-verlies wordt vervangen door een attentiemodule en een LSTM-decoder. Het gebruikte aandachtsmodel is een hybride combinatie van inhoudelijke aandacht en locatiegebaseerde aandacht die in de volgende paper nader wordt toegelicht. De decoder LSTM-modules nemen de vorige toestand, de vorige attentiekaart en de encoderfuncties om het uiteindelijke uitvoerkarakter en de toestandsvector voor de volgende voorspelling te genereren.

Convolueer, woon bij en spel

Dit artikel stelt een op aandacht gebaseerd model van volgorde naar volgorde voor voor handgeschreven woordherkenning. De voorgestelde architectuur bestaat uit drie hoofdonderdelen: een encoder, bestaande uit een CNN en een bidirectionele GRU, een aandachtsmechanisme dat zich richt op de relevante kenmerken en een decoder die wordt gevormd door een eenrichtings GRU die het corresponderende woord kan spellen, karakter voor karakter.

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

De encoder gebruikt een CNN om visuele kenmerken te extraheren. Een vooraf getrainde VGG-19-BN-architectuur wordt gebruikt als feature-extractor. Het invoerbeeld wordt geconverteerd naar feature map X, die vervolgens wordt omgevormd tot X' door alle kanalen kolomsgewijs te splitsen en te combineren om de sequentiรซle informatie te krijgen. X' wordt verder omgezet in H door gebruik te maken van een bidirectionele GRU. GRU is een neuraal netwerk vergelijkbaar met LSTM in de natuur en kan tijdelijke informatie vastleggen.

Verder wordt een attentiemodel gebruikt bij het voorspellen van de output van de decoder. De paper bespreekt twee verschillende soorten onderzochte aandachtsmechanismen.

  1. Op inhoud gebaseerde aandacht : - Het idee hierachter is om de overeenkomst te vinden tussen de huidige verborgen status van de decoder en de feature map van de encoder. We kunnen de meest gecorreleerde feature-vectoren vinden in de feature-map van de encoder, die kan worden gebruikt om het huidige karakter in de huidige tijdstap te voorspellen. Meer details over hoe het aandachtsmechanisme werkt, zijn vanaf hier te zien Aandacht
  2. Op locatie gebaseerde aandacht :- Het belangrijkste nadeel van op inhoud gebaseerde locatiemechanismen is dat er een impliciete aanname is dat de locatie-informatie is ingebed in de uitvoer van de encoder. Anders is er geen manier om onderscheid te maken tussen karakteruitvoeren die door de decoder worden herhaald. Neem bijvoorbeeld een woord Charmander, het teken a wordt er twee keer in herhaald en zonder locatie-informatie kan de decoder ze niet als afzonderlijke tekens voorspellen. Om dit te verlichten, wordt het huidige teken en zijn uitlijning voorspeld door zowel de uitvoer van de encoder als de vorige uitlijning te gebruiken. Meer details over hoe locatiegebaseerd bijwonen werkt, zijn te zien hier.

De decoder is een eenrichtings meerlagige GRU. Bij elke tijdstap t ontvangt het input van de vorige tijdstap en de contextvector van de aandachtsmodule. Multinominale decodering en afvlakking van labels worden tijdens de training onderzocht om de generalisatiemogelijkheden te verbeteren.

Transformatormodellen

Hoewel encoder-decodernetwerken behoorlijk goed zijn in het behalen van resultaten voor handschriftherkenning, hebben ze een knelpunt in de training vanwege de betrokken LSTM-lagen en kunnen ze daarom niet worden geparallelliseerd. Onlangs zijn transformatoren behoorlijk succesvol geweest en hebben ze LSTM vervangen bij het oplossen van verschillende taalgerelateerde taken. Laten we nu bespreken hoe op transformatoren gebaseerde modellen kunnen worden toegepast voor handschriftherkenning.

Let op wat u leest

In dit werk stelden de auteurs het gebruik voor van een op transformator gebaseerde architectuur met behulp van meerkoppige aandacht-zelf-aandacht-lagen in zowel visuele als tekstfasen en kunnen zo zowel tekenherkenning als taalgerelateerde afhankelijkheden van de te decoderen tekenreeksen leren. Aangezien de taalkennis in het model zelf is ingebed, is er geen extra stap nodig na het verwerken van een taalmodel en heeft het de mogelijkheid om output te voorspellen die geen deel uitmaakt van het vocabulaire. Om dit te bereiken gebeurt tekstcodering op tekenniveau en niet op woordniveau. Omdat de transformatorarchitectuur het mogelijk maakt om het model parallel te trainen voor elke regio of elk personage, is het trainingsproces aanzienlijk vereenvoudigd.

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

De netwerkarchitectuur bestaat uit de volgende componenten

  1. Visuele encoder : - Om relevante kenmerken te extraheren en meerkoppige visuele zelf-aandacht toe te passen op verschillende karakterlocaties
  2. Sms-transcriber : - Het doet de taak om de tekstinvoer te nemen, deze te coderen, meerkoppige taalzelfaandacht toe te passen en wederzijdse aandacht toe te passen op zowel visuele als tekstkenmerken.
Visuele encoder

Resnet50-backbone wordt gebruikt om de functies uit te breiden, zoals te zien is in de bovenstaande afbeelding. De uitvoer van de driedimensionale functiekaart van Resnet3 Fc wordt doorgegeven aan de Temporal Encoding-module die een nieuwe vorm krijgt in 50d door dezelfde breedte en dus de vorm van (fxh, w) te behouden. Dit wordt ingevoerd in een volledig verbonden laag om de vorm te verminderen tot (f, w) en de resulterende uitvoer is Fc'. Daarnaast wordt een positionele codering TE toegevoegd aan Fc' om de positie-informatie te behouden zoals vermeld in Transformer paper door Vaswani. Meer informatie over hoe de transformatorarchitectuur is ontworpen, is te zien hier. De uitvoer wordt door een volledig verbonden laag geleid om de laatste objectkaart met vorm (f, w) te krijgen. De uiteindelijke output wordt door een meerkoppige aandachtsmodule met 8 koppen geleid om een โ€‹โ€‹visueel rijke feature map te krijgen

Sms-transcriber

De invoertekst wordt door een encoder gestuurd die inbeddingen op tekenniveau genereert. Deze inbeddingen worden gecombineerd met tijdelijke locatie, vergelijkbaar met de manier waarop in Visual Encoder een Temporal Encoder-module wordt gebruikt. Dit resultaat wordt vervolgens doorgegeven aan een Multi-Head Language Self-Attention-module die vergelijkbaar is met de aandachtsmodule in Visual encoder. De tekstkenmerken die langs de visuele kenmerken van de visuele encoder worden gegenereerd, worden doorgegeven aan een module voor wederzijdse aandacht die tot taak heeft de aangeleerde kenmerken van zowel afbeeldingen als tekstinvoer uit te lijnen en te combineren. De uitvoer wordt door een softmax-functie geleid om het eindresultaat te krijgen.

Bij het evalueren op testgegevens zijn de transcripties niet beschikbaar. Dus alleen het starttoken <S> wordt als invoer doorgegeven en het eerste voorspelde teken wordt teruggevoerd naar het systeem, dat het tweede voorspelde teken uitvoert. Dit inferentieproces wordt herhaald in een lus totdat het einde van de reeks symbool <E> wordt geproduceerd of wanneer de maximale uitgangslengte N is bereikt.

Handgeschreven tekst genereren

Handgeschreven tekst genereren is de taak van het genereren van echt ogende handgeschreven tekst en kan dus worden gebruikt om de bestaande datasets aan te vullen. Zoals we weten, vereist deep learning veel gegevens om te trainen, terwijl het verkrijgen van een enorm corpus van gelabelde handschriftafbeeldingen voor verschillende talen een omslachtige taak is. Om dit op te lossen kunnen we Generative Adversarial Networks gebruiken om trainingsgegevens te genereren. Laten we hier een dergelijke architectuur bespreken

ScrabbleGAN

ScrabbleGAN volgt een semi-supervised benadering om handgeschreven tekstafbeeldingen te synthetiseren die zowel qua stijl als qua lexicon veelzijdig zijn. Het heeft de mogelijkheid om afbeeldingen van verschillende lengte te genereren. De generator kan ook de resulterende tekststijl manipuleren, waardoor we kunnen beslissen of de tekst cursief moet zijn of hoe dik / dun de pennenstreek moet zijn

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

De architectuur bestaat uit een volledig convolutionele generator op basis van BigGAN. Voor elk teken in de invoer wordt een overeenkomstig filter gekozen en alle waarden worden aan elkaar gekoppeld, die vervolgens wordt vermenigvuldigd met een ruisvector z die de gegenereerde tekststijl bestuurt. Zoals hierboven te zien is, overlappen de gebieden die voor elk afzonderlijk teken worden gegenereerd, wat bijdraagt โ€‹โ€‹aan het genereren van verbonden recursieve tekst en de flexibiliteit van verschillende lettergroottes mogelijk maakt. M neemt bijvoorbeeld veel van de ruimte in, terwijl e en t een beperkt gebied innemen. Om dezelfde stijl voor het hele woord of de hele zin te behouden, wordt de stijlvector z constant gehouden voor alle tekens.

Een convolutionele discriminator op basis van BigGAN-architectuur wordt gebruikt om te classificeren of de gegenereerde stijl van afbeeldingen er nep of echt uitziet. De discriminator vertrouwt niet op annotaties op tekenniveau en is daarom niet gebaseerd op een klasse-voorwaardelijke GAN. Het voordeel hiervan is dat er geen gelabelde gegevens nodig zijn en daarom kunnen gegevens van onzichtbare corpus die geen deel uitmaken van trainingsgegevens worden gebruikt voor trainingsdiscriminator. Samen met de discriminator wordt een tekstherkenner R getraind om te classificeren of de gegenereerde tekst realistisch is of wartaal is. De herkenner is gebaseerd op CRNN-architecturen waarbij de terugkerende kop is verwijderd om de herkenner een beetje zwakker te maken en tekst niet te herkennen, zelfs als deze onduidelijk is. De tekst die wordt gegenereerd in de uitvoer van R wordt vergeleken met de invoertekst die aan de generator is gegeven en een overeenkomstige straf wordt toegevoegd aan de verliesfunctie.

De outputs die door ScrabbleGAN worden gegenereerd, worden hieronder weergegeven

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

Datasets: -

  1. IAM : - IAM-dataset bevat ongeveer 100k afbeeldingen van woorden uit de Engelse taal met woorden geschreven door 657 verschillende auteurs. De trein-, test- en validatieset bevat woorden die zijn geschreven door elkaar uitsluitende auteursLink: - http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. CVL : - De CVL-dataset bestaat uit zeven handgeschreven documenten geschreven door ongeveer 310 deelnemers, resulterend in ongeveer 83 woorden, verdeeld over trein- en testsetsLink: - https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. RIMES : - Bevat woorden uit de Franse taal van ongeveer 60k afbeeldingen en geschreven door 1300 auteurs, wat overeenkomt met ongeveer 5 mails die door elke persoon zijn geschreven. http://www.a2ialab.com/doku.php?id=rimes_database:start

Statistieken: -

Karakterfoutpercentage : - Het wordt berekend als de Levenshtein-afstand die de som is van de tekenvervangingen (Sc), invoegingen (Ic) en verwijderingen (Dc) die nodig zijn om de ene string in de andere om te zetten, gedeeld door het totale aantal tekens in de groundtruth (Nc)

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

Woordfoutpercentage : - Het wordt berekend als de som van de woordvervangingen (Sw), invoegingen (Iw) en verwijderingen (Dw) die nodig zijn om de ene string in de andere om te zetten, gedeeld door het totale aantal woorden in de groundtruth (Nw)

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

Train uw eigen model voor handschriftherkenning

Laten we nu eens kijken hoe we ons eigen handgeschreven tekstherkenningsmodel kunnen trainen. We zullen trainen op IAM-dataset, maar u kunt het model ook op uw eigen dataset trainen. Laten we de stappen bespreken die nodig zijn om dit in te stellen

Data

Om de IAM-dataset te downloaden van hier. Eenmaal geregistreerd download je words.tgz van hier. Dit bevat een dataset van handgeschreven woordafbeeldingen. Download ook het annotatiebestand words.txt van hier.

Als u uw eigen dataset wilt gebruiken, dient u de datastructurering van IAM dataset te volgen.

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

Het bovenstaande laat zien hoe de mapstructuur van de AIM-dataset eruitziet. Hier vertegenwoordigen a01, a02 enz. de bovenliggende mappen die elk submappen met gegevens hebben. Elke submap heeft een set afbeeldingen waarvan de naam van de map als voorvoegsel is toegevoegd aan de bestandsnaam.

Daarnaast hebben we een annotatiebestand nodig om de paden naar de afbeeldingsbestanden en de bijbehorende transcripties te vermelden. Beschouw bijvoorbeeld de bovenstaande afbeelding met het nomineren van tekst, het onderstaande zou de weergave zijn in het annotatiebestand words.txt

a01-000u-01-00 ok 156 VBG nomineren

  1. a01-000u-01-00 -> woord-id voor een regel in het formulier a01-000u
  2. ok / err -> Indicator van de kwaliteit van de segmentatie-output
  3. 156 -> grijsniveau om de regel met dit woord te binariseren
  4. 395 -> selectiekader rond dit woord in x, y, w, h-formaat
  5. VBG -> de grammaticale tag voor dit woord. Hier is het werkwoord Gerund
  6. nominating -> de transcriptie voor dit woord

Architectuur: -

We gaan een op CRNN gebaseerde architectuur trainen met CTC-verlies. Een CNN wordt gebruikt om de visuele kenmerken te extraheren die worden doorgegeven aan een RNN en een CTC-verlies wordt aan het einde toegepast met een hebzuchtige decoder om de uitvoer te krijgen.

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

Trainingen

We zullen de CRNN-code gebruiken van hier om ons model te trainen. Volg de onderstaande stappen om de gegevens voor te bereiden

python checkDirs.py

Voer het bovenstaande commando uit en je zou een uitvoer zoals hieronder moeten zien

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

Nu ben je helemaal klaar om te beginnen met trainen.

Ga naar de hoofdmap en voer uit

python main.py --train

Resultaten

Na ongeveer 50 tijdvakken getraind te hebben, is de Character Error Rate (CER) 10.72%, terwijl de Word Error Rate (WER) 26.45% is en dus de Word Accuracy 73.55%. Enkele van de voorspellingen zijn te zien in de onderstaande figuur.

Hoe u gemakkelijk handschriftherkenning kunt doen met Machine Learning

Het model is in staat om de karakters voor een groot deel nauwkeurig te voorspellen, maar het lijdt in enkele gevallen, zoals vreselijk wordt voorspeld, verhalen worden voorspeld als staries. Deze problemen kunnen worden opgelost door een taalmodel te gebruiken als een nabewerkingsstap, samen met de decoder, die betekenisvolle woorden kan genereren en eenvoudige fouten kan herstellen.

Samengevat

Hoewel er belangrijke technologische ontwikkelingen zijn geweest die helpen bij het beter herkennen van handgeschreven tekst, is HTR verre van een opgelost probleem vergeleken met OCR en wordt het daarom nog niet op grote schaal gebruikt in de industrie. Niettemin kunnen we verwachten dat HTR-modellen binnenkort gemeengoed zullen worden met het tempo van de technologische evolutie en met de introductie van modellen zoals transformatoren.

Om meer onderzoek over dit onderwerp te krijgen, kunt u aan de slag gaan hier

Verder lezen

Tijdstempel:

Meer van AI en machine learning