Hur man enkelt gör handskriftsigenkänning med maskininlärning PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Vill du göra handskriven OCR? Den här bloggen är en omfattande översikt över de senaste metoderna för handskriftsigenkänning med hjälp av djupinlärning. Vi har granskat den senaste forskningen och artiklarna och har även byggt en handskriftsläsare från grunden.


Nanonetter OCR API har många intressanta använd fall. Prata med en Nanonets AI-expert för att lära dig mer.


Beskrivning

Marknadsstorleken för Optical Character Recognition (OCR) förväntas vara 13.38 miljarder USD år 2025 med en tillväxt på 13.7 % från år till år. Denna tillväxt drivs av snabb digitalisering av affärsprocesser med OCR för att minska deras arbetskostnader och för att spara värdefulla arbetstimmar. Även om OCR har ansetts vara ett löst problem finns det en nyckelkomponent i det, Handwriting Recognition (Handwriting OCR) eller Handwritten Text Recognition (HTR) som fortfarande anses vara en utmanande problemformulering. Den höga variansen i handskriftsstilar mellan människor och dålig kvalitet på den handskrivna texten jämfört med tryckt text utgör betydande hinder för att konvertera den till maskinläsbar text. Ändå är det ett avgörande problem att lösa för flera branscher som sjukvård, försäkring och bank.

Hur man enkelt gör handskriftsigenkänning med maskininlärning
Källa: - https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

De senaste framstegen inom Deep Learning som tillkomsten av transformatorarkitekturer har snabbt spårat våra framsteg när det gäller att knäcka handskriven textigenkänning. Att känna igen handskriven text kallas ICR (Intelligent Character Recognition) på grund av att algoritmerna som behövs för att lösa ICR behöver mycket mer intelligens än att lösa generisk OCR.

I den här artikeln kommer vi att lära oss om uppgiften med handskriven textigenkänning, dess krångligheter och hur vi kan lösa det med hjälp av tekniker för djupinlärning.


Vill du extrahera data från handskrivna formulär? Gå över till Nanonetter och börja bygga handskrifts-OCR-modeller gratis!


Utmaningar i handskriftsigenkänning

  1. Stor variation och tvetydighet hos stroke från person till person
  2. Handstil för en enskild person varierar också från tid till annan och är inkonsekvent
  3. Dålig kvalitet på källdokumentet / bilden på grund av försämring över tiden
  4. Text i tryckta dokument sitter i en rak linje medan människor inte behöver skriva en textrad i en rak linje på vitt papper
  5. Kursiv handskrift gör separering och igenkänning av karaktärer utmanande
  6. Text i handstil kan ha variabel rotation till höger, vilket står i kontrast till tryckt text där all text sitter rakt upp
  7. Att samla in en bra märkt dataset för att lära sig är inte billigt jämfört med syntetiska data

Användningsfall

Sjukvård och läkemedel

Patientrecept digitalisering är en viktig smärtpunkt i vården / läkemedelsindustrin. Till exempel hanterar Roche miljontals petabytes med medicinska PDF-filer dagligen. Ett annat område där detektion av handskriven text har nyckelpåverkan är patientregistrering och digitalisering av formulär. Genom att lägga till handskriftsigenkänning i deras verktygssats för tjänster kan sjukhus / läkemedel förbättra användarupplevelsen avsevärt

Försäkring

En stor försäkringsbransch tar emot mer än 20 miljoner dokument om dagen och en försening i behandlingen av skadeståndet kan påverka företaget fruktansvärt. Påståendedokumentet kan innehålla olika handstilstilar och ren manuell automatisering av behandling av anspråk kommer att sakta ner rörledningen

Hur man enkelt gör handskriftsigenkänning med maskininlärning
Källa: - https://www.researchgate.net/figure/mages-of-handwritten-bank-cheques-from-different-countries-a-Brazilian-1-b-American_fig2_226705617

Banking

Människor skriver checkar regelbundet och kontroller spelar fortfarande en viktig roll i de flesta icke-kontanta transaktioner. I många utvecklingsländer kräver det nuvarande kontrollbehandlingsförfarandet att en bankanställd läser och manuellt anger informationen som finns på en check och även verifierar posterna som signatur och datum. Eftersom ett stort antal kontroller måste behandlas varje dag i en bank kan ett system för handigenkänning av text spara kostnader och timmar av mänskligt arbete

Online-bibliotek

Stora mängder historisk kunskap digitaliseras genom att ladda upp bildskanningarna för tillgång till hela världen. Men denna insats är inte särskilt användbar förrän texten i bilderna kan identifieras som kan indexeras, frågas och bläddras. Handskriftsigenkänning spelar en nyckelroll för att leva upp medeltida och 20-talets dokument, vykort, forskningsstudier etc.

Metoder

Metoder för erkännande av handskrifter kan i stort sett klassificeras i nedanstående två typer

Hur man enkelt gör handskriftsigenkänning med maskininlärning
  1. Online metoder : - Onlinemetoder involverar en digital penna / penna och har tillgång till strokeinformation, pennplacering medan text skrivs som visas i rätt figur ovan. Eftersom de tenderar att ha mycket information om flödet av text som skrivs kan de klassificeras med ganska hög noggrannhet och avgränsningen mellan olika tecken i texten blir mycket tydligare
  2. Offline-metoder :- Offlinemetoder involverar att känna igen text när den väl är nedskriven och kommer därför inte att ha information om streck/riktningar som är involverade under skrivning med ett eventuellt tillägg av lite bakgrundsljud från källan, dvs papper.

I den verkliga världen är det inte alltid möjligt/skalbar att bära en digital penna med sensorer för att fånga slaginformation och därför är uppgiften att känna igen text offline ett mycket mer relevant problem. Så nu kommer vi att diskutera olika tekniker för att lösa problemet med att känna igen offlinetext.

tekniker

De första tillvägagångssätten för att lösa handskriftsigenkänning involverade maskininlärningsmetoder som Hidden Markov Models(HMM), SVM etc. När den initiala texten är förbehandlad utförs funktionsextraktion för att identifiera nyckelinformation som slingor, böjningspunkter, bildförhållande etc. av individuell karaktär. Dessa genererade funktioner matas nu till en klassificerare, säg HMM, för att få resultaten. Prestandan för maskininlärningsmodeller är ganska begränsad på grund av manuell funktionsextraktionsfas och deras begränsade inlärningskapacitet. Funktionsextraktionssteget varierar för varje enskilt språk och är därför inte skalbart. Med tillkomsten av djupinlärning kom enorma förbättringar i noggrannheten av handskriftsigenkänning. Låt oss diskutera några av de framstående forskningen inom området djupinlärning för handskriftsigenkänning

Flerdimensionella återkommande neurala nätverk

RNN/LSTM kan som vi vet hantera sekventiell data för att identifiera tidsmönster och generera resultat. Men de är begränsade till att hantera 1D-data och kommer därför inte att vara direkt tillämpliga på bilddata. För att lösa detta problem föreslog författarna i denna artikel en flerdimensionell RNN/LSTM-struktur som kan ses i figuren nedan

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Följande är skillnaden mellan en allmän RNN och en flerdimensionell RNN. I en allmän RNN säger dolda lager att jag mottar tillstånd från ett tidigare dolt lager i tid i-1. I multidimensionell RNN säg till exempel en 2-dimensionell RNN, det dolda lagret (i, j) tar emot tillstånd från flera tidigare dolda lager, dvs. (i-1, j) och (i, j-1) och fångar därmed sammanhang från båda höjd och bredd i en bild som är avgörande för att få en tydlig förståelse för den lokala regionen genom ett nätverk. Detta utökas ytterligare för att få information inte bara från tidigare lager utan också från framtida lager som liknar hur en BI-LSTM tar emot information från t-1 och t + 1. På samma sätt kan ett 2D MDRNN-dolt lager nu få information (i-1, j), (i, j-1), (i + 1, j), (i, j + 1) och fånga sammanhang i alla riktningar

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Hela nätverksstrukturen visas ovan. MDLSTM används vilket bara är att ersätta RNN-block med ett LSTM-block från ovanstående diskussion om MDRNN. Ingången är uppdelad i block av storlek 3 × 4 som nu matas in i MDSTM-lager. Nätverket har en hierarkisk struktur av MDLSTM-skikt följt av matning framåt (ANN) -skikt i tandem. Därefter omvandlas den slutliga utgången till en 1D-vektor och ges till CTC-funktionen för att generera utdata

Connectionist Temporal Classification (CTC) är en algoritm som används för att hantera uppgifter som taligenkänning, handskriftsigenkänning etc. där bara indata och utdatatranskriptionen är tillgänglig men det inte finns några anpassningsdetaljer tillhandahållna, dvs hur en viss region i ljud för tal eller en viss region i bilder för handskrift är anpassad till ett specifikt tecken. Enkla heuristiker som att ge varje karaktär samma område fungerar inte eftersom mängden utrymme varje karaktär tar varierar i handstil från person till person och från tid till annan.

För vårt användningsfall för handskriftsigenkänning, överväg ingångsbildregionerna för en viss mening som inmatning X=[x1,x2,…,x ** T] medan förväntad produktion som Y=[y1,y2,…,y ** U] . Givet X är det meningen att vi ska hitta korrekt Y. CTC-algoritmen fungerar genom att ta ingången X och ge en fördelning över alla möjliga Y:n med hjälp av vilket vi kan göra en förutsägelse för slutresultatet.

CTC använder en basteckensägning – för att skilja mellan dubbletter av tecken och upprepade tecken i en inmatningsregion. Till exempel kan ett visst tecken sträcka sig över flera indataområden och sålunda skulle CTC mata ut samma tecken i följd. Exempel: - Input james och utdata från CTC är jjaammmees. Den slutliga utgången härleds genom att kollapsa de upprepade utgångarna och därför får vi james. Men nu för att presentera dubbletter av tecken säg 'l' i hej, vi måste ha en separation på plats och därför separeras alla utdata med bindestreck(-). Nu kan utgången för hej vara h-ee-ll-lll-oo som om den kollapsar blir hej och inte hej. Mer information om hur CTC fungerar kan ses här CTC.

Medan vi avkodar utdata från CTC baserat på den enkla heuristiken med högsta sannolikhet för varje position, kan vi få resultat som kanske inte är vettiga i den verkliga världen. För att lösa detta kan vi använda en annan dekoder för att förbättra resultaten. Låt oss diskutera olika typer av avkodningar

  1. Best-path avkodning : - Detta är den generiska avkodning som vi har diskuterat hittills. Vid varje position tar vi produktionen av modellen och hittar resultatet med högsta sannolikhet.
  2. Avkodning av strålsökning : - Istället för att ta en enda utgång från nätverket varje gång strålsökning föreslår att du håller flera utgångsvägar med högsta möjliga sannolikhet och utökar kedjan med nya utgångar och släppbanor med mindre sannolikheter för att hålla strålstorleken konstant. De resultat som erhålls genom detta tillvägagångssätt är mer exakta än att använda det giriga tillvägagångssättet
  3. Strålsökning med språkmodell :- Strålsökning ger mer exakta resultat än rutnätssökning, men det löser ändå inte problemet med meningsfulla resultat. För att lösa detta kan vi använda en språkmodell tillsammans med strålsökning med både sannolikheter från modellen och språkmodellen för att generera slutresultat.

Mer information om generering av exakta avkodningsresultat kan ses i detta Artikeln

Encoder-avkodare och uppmärksamhetsnätverk

Seq2Seq-modeller som har encoder-decoder-nätverk har nyligen varit populära för att lösa uppgifterna med taligenkänning, maskinöversättning etc och har därför utökats för att lösa användningsfallet med handskriftsigenkänning genom att använda en extra uppmärksamhetsmekanism. Låt oss diskutera en del framstående forskning inom detta område

Skanna, delta och läs

I detta banbrytande arbete Scan, Attend and Read (SAR) föreslår författarna att man använder en uppmärksamhetsbaserad modell för hand-till-end-igenkänning. Forskningens huvudsakliga bidrag är automatisk transkription av text utan att segmenteras i rader som ett förbehandlingssteg och kan därmed skanna en hel sida och ge resultat.

Hur man enkelt gör handskriftsigenkänning med maskininlärning

SAR använder MDLSTM-baserad arkitektur som liknar den vi diskuterade ovan med en liten förändring i det sista lagret. Efter det sista linjära lagret, dvs. det slutliga Sum-blocket i figuren ovan, kollapsas funktionskartorna i den vertikala dimensionen och en slutlig softmax-funktion tillämpas för att få utgångarna.

Hur man enkelt gör handskriftsigenkänning med maskininlärning

SAR-arkitektur består av en MDLSTM-arkitektur som fungerar som funktionshämtaren. Den slutliga kollapsande modulen med en softmax-utgång och CTC-förlust ersätts av en uppmärksamhetsmodul och en LSTM-avkodare. Uppmärksamhetsmodellen som används är en hybridkombination av innehållsbaserad uppmärksamhet och platsbaserad uppmärksamhet som förklaras mer detaljerat i nästa uppsats. Avkodaren LSTM-moduler tar det tidigare tillståndet, den tidigare uppmärksamhetskartan och kodarfunktionerna för att generera det slutliga utgående karaktären och tillståndsvektorn för nästa förutsägelse.

Konvolvera, delta och stava

Denna uppsats föreslår en uppmärksamhetsbaserad sekvens-till-sekvensmodell för handskriven ordigenkänning. Den föreslagna arkitekturen har tre huvuddelar: en kodare, bestående av en CNN och en dubbelriktad GRU, en uppmärksamhetsmekanism som ägnas åt att fokusera på de relevanta funktionerna och en avkodare bildad av en enkelriktad GRU, som kan stava motsvarande ord, karaktär för karaktär.

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Kodaren använder en CNN för att extrahera visuella funktioner. En förutbildad VGG-19-BN-arkitektur används som funktionsextraktor. Ingångsbilden omvandlas till funktionskarta X som sedan omformas till X' genom att dela upp alla kanaler kolumnvis och kombinera dem för att få sekventiell information. X' omvandlas vidare till H genom att använda en dubbelriktad GRU. GRU är ett neuralt nätverk som liknar LSTM till sin natur och kan fånga tidsinformation.

Vidare används en uppmärksamhetsmodell medan man förutsäger utsignalen från avkodaren. Papperet diskuterar två olika typer av uppmärksamhetsmekanismer som utforskats.

  1. Innehållsbaserad uppmärksamhet : - Tanken bakom detta är att hitta likheten mellan avkodarens nuvarande dolda tillstånd och funktionskartan från kodaren. Vi kan hitta de mest korrelerade funktionsvektorerna på kodarens funktionsöversikt, som kan användas för att förutsäga det aktuella tecknet vid det aktuella tidssteget. Mer information om hur uppmärksamhetsmekanismen fungerar kan ses härifrån Uppmärksamhet
  2. Platsbaserad uppmärksamhet :- Den största nackdelen med innehållsbaserade lokaliseringsmekanismer är att det finns ett implicit antagande att platsinformationen är inbäddad i utdata från kodaren. Annars finns det inget sätt att skilja mellan teckenutgångar som upprepas från avkodaren. Tänk till exempel på ett ord Charmander, tecknet a upprepas två gånger i det och utan platsinformation kommer avkodaren inte att kunna förutsäga dem som separata tecken. För att lindra detta förutsägs det aktuella tecknet och dess justering genom att använda både kodarutgången och tidigare justering. Mer information om hur platsbaserad attend fungerar kan ses här..

Avkodaren är en enriktad flerskiktad GRU. Vid varje tidsteg t får det inmatning från föregående tidssteg och kontextvektorn från uppmärksamhetsmodulen. Multinomiell avkodning och etikettutjämning utforskas vid träning för att förbättra generaliseringsförmågan.

Transformatormodeller

Även om kodar-avkodarnätverk har varit ganska bra för att uppnå resultat för handskriftsigenkänning, har de en flaskhals i träningen på grund av de inblandade LSTM-lagren och kan därför inte parallelliseras. Transformatorer har nyligen varit ganska framgångsrika och ersatt LSTM för att lösa olika språkrelaterade uppgifter. Låt oss nu diskutera hur transformatorbaserade modeller kan användas för handskriftsigenkänning.

Var uppmärksam på vad du läser

I detta arbete författarna föreslog användning av en transformatorbaserad arkitektur med hjälp av flerskiktade uppmärksamhetsskikt i både visuella och textsteg och kan därmed lära sig både karaktärsigenkänning och språkrelaterade beroenden av karaktärssekvenser som ska avkodas. Eftersom språkkunskapen är inbäddad i själva modellen, finns det inget behov av något ytterligare efterbehandlingssteg med användning av en språkmodell och har därför förmågan att förutsäga utdata som inte ingår i ordförrådet. För att uppnå denna textkodning sker på teckennivå och inte ordnivå. Eftersom transformatorarkitekturen tillåter träning av modellen parallellt för varje region eller karaktär, är träningsprocessen mycket förenklad.

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Nätverksarkitekturen består av följande komponenter

  1. Visuell kodare : - Att extrahera relevanta funktioner och tillämpa visuell självuppmärksamhet med flera huvuden på olika karaktärsplatser
  2. Texttranskriberare : - Det gör uppgiften att ta textinmatningen, koda den, tillämpa flerspråkig självuppmärksamhet och tillämpa ömsesidig uppmärksamhet på både visuella och textfunktioner.
Visuell kodare

Resnet50 ryggraden används för att extrafunktionerna som kan ses i figuren ovan. Den 3-dimensionella funktionskartan från Resnet50 Fc skickas till Temporal Encoding-modulen som omformas till 2d genom att behålla samma bredd och därmed formen på (fxh, w). Detta matas in i ett helt anslutet lager för att reducera formen till (f, w) och den resulterande utmatningen är Fc'. Dessutom läggs en positionskodning TE till Fc' för att behålla positionsinformationen som nämns i Transformer paper av Vaswani. Mer info om hur transformatorarkitektur är utformad kan ses här.. Utgången skickas genom ett helt anslutet lager för att få den slutliga funktionskartan med form (f, w). Den slutliga produktionen skickas genom en uppmärksamhetsmodul med flera huvuden med åtta huvuden för att få en visuell rik funktionskarta

Texttranskriberare

Inmatningstexten skickas genom en kodare som genererar inbäddningar på karaktärsnivå. Dessa inbäddningar kombineras med tidsmässig plats som liknar sättet i Visual Encoder med en Temporal Encoder-modul. Detta resultat skickas sedan till en Multi-Head Language Self-Attention-modul som liknar uppmärksamhetsmodulen i Visual encoder. Textfunktionerna som genereras längs de visuella funktionerna från den visuella kodaren skickas till en modul för ömsesidig uppmärksamhet vars uppgift är att anpassa och kombinera de inlärda funktionerna från både bilder och textingångar. Utgången skickas genom en softmax-funktion för att få det slutliga resultatet.

Vid utvärdering av testdata är transkriptionerna inte tillgängliga. Således skickas endast starttoken <S> som ingång och det första förutsagda tecknet matas tillbaka till systemet, vilket matar ut det andra förutspådda tecknet. Denna slutsats upprepas i en slinga tills slutet av sekvenssymbolen <E> produceras eller när den maximala utgångslängden N uppnås.

Generering av handstiltext

Handwriting Text Generation är uppgiften att generera verklig handskriven text och kan därför användas för att utöka befintliga datamängder. Som vi vet kräver djupinlärning mycket data för att träna samtidigt som det är en besvärlig uppgift att skaffa en enorm samling märkta handstilsbilder för olika språk. För att lösa detta kan vi använda Generative Adversarial Networks för att generera träningsdata. Låt oss diskutera en sådan arkitektur här

ScrabbleGAN

ScrabbleGAN följer en halvövervakad metod för att syntetisera handskrivna textbilder som är mångsidiga både i stil och lexikon. Den har förmågan att generera bilder med olika längd. Generatorn kan också manipulera den resulterande textstilen som gör att vi kan avgöra om texten måste vara kursiv eller säga hur tjock / tunn bör vara pennstrecket

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Arkitekturen består av en helt konvolutionsgenerator baserad på BigGAN. För varje tecken i ingången väljs ett motsvarande filter och alla värden sammanfogas tillsammans som sedan multipliceras med en brusvektor z som styr den genererade textstilen. Som framgår ovan överlappar de regioner som genereras för varje enskilt tecken vilket genererar ansluten rekursiv text och möjliggör flexibiliteten för olika teckenstorlek. Till exempel tar m mycket av utrymmet medan e och t tar begränsat område. För att hålla samma stil för hela ordet eller meningen, hålls stilvektorn z konstant för alla tecken.

En konvolutionsdiskriminator baserad på BigGAN-arkitektur används för att klassificera om den genererade stilen på bilder ser falsk eller verklig ut. Diskriminatorn förlitar sig inte på teckennivåkommentarer och är därför inte baserad på ett klassvillkorligt GAN. Fördelen med detta är att det inte finns något behov av märkt data och därför kan data från osynliga korpus som inte ingår i träningsdata användas för att träna diskriminator. Tillsammans med diskriminatorn är en textigenkännare R tränad att klassificera om den genererade texten är meningsfull i verkligheten eller om det är struntprat. Identifieraren är baserad på CRNN-arkitekturer med det återkommande huvudet borttaget för att göra igenkännaren lite svagare och inte känna igen text även om den är otydlig. Texten som genereras i utmatningen av R jämförs med den inmatade texten som ges till generatorn och ett motsvarande straff läggs till förlustfunktionen.

Utgångarna som genereras av ScrabbleGAN visas nedan

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Datamängder: -

  1. IAM : - IAM-dataset innehåller cirka 100 657 bilder av ord från engelska språk med ord skrivna av XNUMX olika författare. Tåg-, test- och valideringsuppsättningen innehåller ord skrivna av ömsesidigt exklusiva författare Länk: - http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. CVL : - CVL-datasetet består av sju handskrivna dokument skrivna av cirka 310 deltagare, vilket resulterar i cirka 83 XNUMX ordskördar, indelade i tåg- och testuppsättningar Länk: - https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. FÄRGAR : - Innehåller ord från det franska språket på cirka 60 1300 bilder och skrivna av 5 författare motsvarande cirka XNUMX mejl skrivna av varje person. Länk: - http://www.a2ialab.com/doku.php?id=rimes_database:start

Mätvärden: -

Teckenfelfrekvens : - Det beräknas som Levenshtein-avståndet som är summan av karaktärsbyten (Sc), insättningar (Ic) och raderingar (Dc) som behövs för att omvandla en sträng till den andra, dividerat med det totala antalet tecken i groundtruth (Nc)

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Ordfel : - Det beräknas som summan av ordsubstitutioner (Sw), insättningar (Iw) och raderingar (Dw) som krävs för att omvandla en sträng till en annan, dividerat med det totala antalet ord i grundsannheten (Nw)

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Träna din egen handigenkänningsmodell

Låt oss nu se hur vi kan träna vår egen handskrivna textigenkänningsmodell. Vi kommer att träna på IAM dataset men du kan träna modellen på din egen datauppsättning också. Låt oss diskutera stegen som är involverade i att ställa in detta

Data

För att ladda ner IAM-dataregistret från här.. En gång registrerad ladda ner words.tgz från här.. Den innehåller en uppsättning handskrivna ordbilder. Ladda ner också anteckningsfilen words.txt från här..

Om du vill använda din egen dataset måste du följa datastruktureringen av IAM dataset.

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Ovanstående visar hur AIM dataset mappstrukturen ser ut. Här representerar a01, a02 etc. överordnade mappar som var och en har undermappar med data. Varje undermapp har en uppsättning bilder med namnet på mappen som ett prefix till dess filnamn.

Dessutom behöver vi en anteckningsfil för att nämna sökvägarna till bildfilerna och motsvarande transkriptioner. Tänk till exempel ovanstående bild med text som nominerar, nedan skulle vara representationen i kommentarfilen words.txt

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

  1. a01-000u-01-00 -> ord-id för en rad i form a01-000u
  2. ok / err -> Indikator för kvaliteten på segmenteringsutmatningen
  3. 156 -> grå nivå för att binära raden som innehåller detta ord
  4. 395 932 441 100 -> avgränsningsruta runt detta ord i x, y, w, h-format
  5. VBG -> den grammatiska taggen för detta ord. Här är det Verb Gerund
  6. nominerar -> transkriptionen för detta ord

Arkitektur: -

Vi kommer att träna en CRNN-baserad arkitektur med CTC-förlust. En CNN används för att extrahera de visuella funktionerna som skickas till ett RNN och en CTC-förlust appliceras till slutet med en girig avkodare för att få utdata.

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Utbildning

Vi kommer att använda CRNN-koden från här. att träna vår modell. Följ stegen nedan för att förbereda data

python checkDirs.py

Kör ovanför kommandot och du ska se en utdata som nedan

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

Nu är du redo att börja träna.

Gå till rotkatalogen och kör

python main.py --train

Resultat

Efter träning under cirka 50 epoker är teckenfelfrekvensen (CER) 10.72% medan ordfelsfrekvensen (WER) är 26.45% och därmed ordnoggrannheten 73.55%. Några av förutsägelserna kan ses i figuren nedan.

Hur man enkelt gör handskriftsigenkänning med maskininlärning

Modellen kan förutsäga karaktärerna i stor utsträckning men det lider i få fall, så som förutspås förutsägas som anlyst, berättelser förutses som staries. Dessa problem kan lösas genom att använda en språkmodell som ett efterbehandlingssteg tillsammans med avkodaren som kan generera meningsfulla ord och rätta till enkla misstag.

Sammanfattning

Även om det har skett betydande utveckling inom teknik som hjälper till att bättre känna igen handskriven text, är HTR långt ifrån ett löst problem jämfört med OCR och är därför ännu inte omfattande i industrin. I takt med teknikutvecklingen och införandet av modeller som transformatorer kan vi dock förvänta oss att HTR-modeller snart blir vanliga.

För att få mer forskning om detta ämne kan du komma igång med här.

Ytterligare läsning

Tidsstämpel:

Mer från AI och maskininlärning