Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

Želite narediti ročno OCR? Ta spletni dnevnik je obsežen pregled najnovejših metod prepoznavanja rokopisa z uporabo globokega učenja. Pregledali smo najnovejše raziskave in članke ter iz nič izdelali bralnik rokopisa.


Nanoneti API za OCR ima veliko zanimivega primeri uporabe. Če želite izvedeti več, se pogovorite s strokovnjakom za umetno inteligenco Nanonets.


Predstavitev

Pričakuje se, da bo obseg trga optičnega prepoznavanja znakov (OCR) do leta 13.38 znašal 2025 milijarde USD z medletno rastjo v višini 13.7 %. To rast spodbuja hitra digitalizacija poslovnih procesov z uporabo OCR za zmanjšanje njihovih stroškov dela in prihranek dragocenih delovnih ur. Čeprav je OCR veljal za rešen problem, obstaja ena njegova ključna komponenta, prepoznavanje rokopisa (Handwriting OCR) ali prepoznavanje rokopisnega besedila (HTR), ki še vedno velja za zahtevno navedbo problema. Velike razlike v slogih rokopisa med ljudmi in slaba kakovost rokopisnega besedila v primerjavi s tiskanim predstavljajo velike ovire pri pretvorbi v strojno berljivo besedilo. Kljub temu je to ključna težava, ki jo je treba rešiti za več panog, kot so zdravstvo, zavarovalništvo in bančništvo.

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja
Vir: - https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

Nedavni napredek v globokem učenju, kot je pojav transformatorskih arhitektur, je pospešil naš napredek pri razbijanju prepoznavanja ročno napisanega besedila. Prepoznavanje ročno napisanega besedila se imenuje inteligentno prepoznavanje znakov (ICR) zaradi dejstva, da algoritmi, potrebni za reševanje ICR, potrebujejo veliko več inteligence kot reševanje splošnega OCR.

V tem članku bomo spoznali nalogo prepoznavanja rokopisnega besedila, njene zapletenosti in kako jo lahko rešimo s tehnikami globokega učenja.


Želite pridobiti podatke iz ročno napisanih obrazcev? Pojdite na Nanoneti in začnite brezplačno graditi modele OCR za rokopis!


Izzivi pri prepoznavanju rokopisa

  1. Velika variabilnost in dvoumnost potez od osebe do osebe
  2. Tudi stil pisave posamezne osebe se sčasoma spreminja in je nedosleden
  3. Slaba kakovost izvornega dokumenta/slike zaradi poslabšanja sčasoma
  4. Besedilo v tiskanih dokumentih je v ravni črti, medtem ko ljudem ni treba napisati vrstice besedila v ravni črti na bel papir
  5. Zaradi kurzivnega rokopisa je ločevanje in prepoznavanje znakov zahtevno
  6. Rokopisno besedilo ima lahko spremenljiv zasuk v desno, kar je v nasprotju z natisnjenim besedilom, kjer je vse besedilo pokončno
  7. Zbiranje dobrega označenega nabora podatkov za učenje ni poceni v primerjavi s sintetičnimi podatki

Uporabite primeri

Zdravstvo in farmacevtski izdelki

Digitalizacija receptov za bolnike je glavna težava v zdravstveni/farmacevtski industriji. Na primer, Roche dnevno obdeluje milijone petabajtov zdravstvenih PDF-jev. Drugo področje, kjer ima zaznavanje ročno napisanega besedila ključen vpliv, je vpis pacientov in digitalizacija obrazcev. Bolnišnice/farmacevtiki lahko z dodajanjem prepoznavanja rokopisa svojemu naboru storitev znatno izboljšajo uporabniško izkušnjo

Zavarovanje

Velika zavarovalniška panoga prejme več kot 20 milijonov dokumentov na dan in zamuda pri obdelavi zahtevka lahko močno vpliva na podjetje. Dokument o zahtevkih lahko vsebuje različne sloge rokopisa in čista ročna avtomatizacija obdelave zahtevkov bo popolnoma upočasnila cevovod

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja
Vir: - https://www.researchgate.net/figure/mages-of-handwritten-bank-cheques-from-different-countries-a-Brazilian-1-b-American_fig2_226705617

Bančništvo

Ljudje redno pišejo čeke in čeki še vedno igrajo pomembno vlogo pri večini negotovinskih transakcij. V mnogih državah v razvoju sedanji postopek obdelave čekov zahteva, da bančni uslužbenec prebere in ročno vnese podatke na čeku ter preveri vnose, kot sta podpis in datum. Ker je treba v banki vsak dan obdelati veliko število čekov, lahko sistem za prepoznavanje rokopisnega besedila prihrani stroške in ure človeškega dela

Spletne knjižnice

Ogromne količine zgodovinskega znanja se digitalizirajo z nalaganjem skeniranih slik za dostop do celega sveta. Toda to prizadevanje ni zelo uporabno, dokler ni mogoče identificirati besedila na slikah, ki ga je mogoče indeksirati, poizvedovati in brskati. Prepoznavanje rokopisa ima ključno vlogo pri oživljanju srednjeveških dokumentov in dokumentov 20. stoletja, razglednic, raziskovalnih študij itd.

Metode

Metode prepoznavanja rokopisa lahko na splošno razvrstimo v spodnji dve vrsti

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja
  1. Spletne metode :- Spletne metode vključujejo digitalno pero/pisalo in imajo dostop do informacij o črtah, lokaciji peresa med pisanjem besedila, kot je prikazano na zgornji desni sliki. Ker imajo običajno veliko informacij o toku zapisanega besedila, jih je mogoče razvrstiti z precej visoko natančnostjo in razmejitev med različnimi znaki v besedilu postane veliko jasnejša
  2. Metode brez povezave :- Metode brez povezave vključujejo prepoznavanje besedila, ko je zapisano, in zato ne bodo imele informacij o potezah/smerih med pisanjem z morebitnim dodatkom hrupa v ozadju iz vira, tj. papirja.

V resničnem svetu ni vedno mogoče/razširljivo nositi digitalnega peresa s senzorji za zajemanje informacij o potezah, zato je naloga prepoznavanja besedila brez povezave veliko pomembnejša težava. Tako bomo zdaj razpravljali o različnih tehnikah za rešitev problema prepoznavanja besedila brez povezave.

Tehnike

Začetni pristopi k reševanju prepoznavanja rokopisa so vključevali metode strojnega učenja, kot so skriti Markovljevi modeli (HMM), SVM itd. Ko je začetno besedilo predhodno obdelano, se izvede ekstrakcija funkcij za identifikacijo ključnih informacij, kot so zanke, prevojne točke, razmerje stranic itd. individualnega značaja. Te ustvarjene značilnosti se zdaj posredujejo klasifikatorju, recimo HMM, da dobi rezultate. Učinkovitost modelov strojnega učenja je precej omejena zaradi ročne faze ekstrakcije funkcij in njihove omejene zmogljivosti učenja. Korak ekstrakcije funkcij se razlikuje za vsak posamezni jezik in zato ni prilagodljiv. S prihodom globokega učenja so prišle izjemne izboljšave v natančnosti prepoznavanja rokopisa. Razpravljajmo o nekaterih pomembnih raziskavah na področju globokega učenja za prepoznavanje rokopisa

Večdimenzionalne ponavljajoče se nevronske mreže

RNN/LSTM, kot vemo, lahko obravnava zaporedne podatke za prepoznavanje časovnih vzorcev in ustvarjanje rezultatov. Vendar so omejeni na obravnavanje 1D podatkov in zato ne bodo neposredno uporabni za slikovne podatke. Za rešitev tega problema so avtorji v tem članku predlagali večdimenzionalno strukturo RNN/LSTM, kot je prikazano na spodnji sliki

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

V nadaljevanju je prikazana razlika med splošnim RNN in večdimenzionalnim RNN. V splošnem RNN skrita plast recimo i prejme stanje iz prejšnje skrite plasti v času i-1. V večdimenzionalnem RNN, na primer dvodimenzionalnem RNN, skrita plast (i, j) sprejema stanja iz več predhodnih skritih plasti, tj. (i-2, j) in (i, j-1) in tako zajame kontekst iz obeh višino in širino na sliki, kar je ključnega pomena za jasno razumevanje lokalne regije v omrežju. To je nadalje razširjeno, da pridobi informacije ne samo iz prejšnjih plasti, temveč tudi iz prihodnjih plasti, podobno kot BI-LSTM prejema informacije iz t-1 in t+1. Podobno lahko 1D MDRNN skrita plast i zdaj sprejema informacije (i-2, j), (i, j-1), (i+1, j), (i, j+1) in tako zajema kontekst v vseh smereh

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

Celotna struktura omrežja je prikazana zgoraj. Uporablja se MDLSTM, ki ni nič drugega kot zamenjava bloka RNN z blokom LSTM iz zgornje razprave o MDRNN. Vnos je razdeljen na bloke velikosti 3 × 4, ki se zdaj podajo v sloje MDSTM. Omrežje ima hierarhično strukturo slojev MDLSTM, ki jim v tandemu sledijo sloji za naprej (ANN). Nato se končni izhod pretvori v 1D vektor in se dodeli funkciji CTC za ustvarjanje izhoda

Konekcionistična časovna klasifikacija (CTC) je algoritem, ki se uporablja za obravnavo nalog, kot je prepoznavanje govora, prepoznavanje rokopisa itd., kjer so na voljo samo vhodni podatki in izhodni prepis, vendar ni zagotovljenih podrobnosti o poravnavi, tj. kako določena regija v zvoku za govor ali določena regija v slikah za rokopis je usklajen z določenim znakom. Preprosta hevristika, kot je dodelitev istega območja vsakemu znaku, ne bo delovala, saj se količina prostora, ki ga vsak znak zavzame, razlikuje glede na rokopis od osebe do osebe in od časa do časa.

Za naš primer uporabe prepoznavanja rokopisa upoštevajte področja vhodne slike za določen stavek kot vnos X=[x1,x2,…,x**T] medtem ko je pričakovan rezultat kot Y=[y1,y2,…,y**U] . Glede na X naj bi našli natančen Y. Algoritem CTC deluje tako, da vzame vhodni podatek X in poda porazdelitev na vse možne Y-je, s pomočjo katerih lahko naredimo napoved za končni rezultat.

CTC uporablja recimo osnovni znak – za razlikovanje med podvojenimi znaki in ponavljajočimi se znaki v vnosnem območju. Določen znak lahko na primer obsega več območij vnosa in tako bi CTC zaporedno izpisal isti znak. Primer: - Vhod james in izhod CTC je jjaammmees. Končni izhod je izpeljan s strnitvijo ponovljenih izhodov in tako dobimo james. Toda zdaj, da predstavimo podvojene znake, ki pravijo 'l' v pozdravu, moramo imeti nameščeno ločevanje, zato so vsi izhodi ločeni z vezajem (-). Zdaj bi lahko bil izhod za hello h-ee-ll-lll-oo, ki bo, če se strne, postal hello in ne helo. Več informacij o delovanju CTC si lahko ogledate tukaj CTC.

Med dekodiranjem izhoda CTC na podlagi preproste hevristike največje verjetnosti za vsako pozicijo lahko dobimo rezultate, ki v resničnem svetu morda nimajo smisla. Da bi to rešili, lahko uporabimo drug dekoder, da izboljšamo rezultate. Pogovorimo se o različnih vrstah dekodiranja

  1. Dekodiranje najboljše poti :- To je generično dekodiranje, o katerem smo razpravljali doslej. Na vsaki poziciji vzamemo izhod modela in najdemo rezultat z največjo verjetnostjo.
  2. Dekodiranje iskanja snopa :- Namesto vzetja enega samega izhoda iz omrežja vsakič, ko iskanje snopa predlaga ohranjanje več izhodnih poti z najvišjo vsako verjetnostjo in razširitev verige z novimi izhodi in spuščajočimi potmi z manjšo verjetnostjo, da ohranite konstantno velikost snopa. Rezultati, pridobljeni s tem pristopom, so bolj natančni kot s pohlepnim pristopom
  3. Iskanje snopa z jezikovnim modelom :- Iskanje po žarku zagotavlja natančnejše rezultate kot iskanje po mreži, vendar še vedno ne bo rešilo težave s pomembnimi rezultati. Da bi to rešili, lahko uporabimo jezikovni model skupaj z iskanjem po žarku z uporabo obeh verjetnosti iz modela in jezikovnega modela za ustvarjanje končnih rezultatov.

Več podrobnosti o ustvarjanju natančnih rezultatov dekodiranja si lahko ogledate v tem članek

Encoder-Decoder in Attention Networks

Modeli Seq2Seq, ki imajo omrežja kodirnika-dekoderja, so bili nedavno priljubljeni za reševanje nalog prepoznavanja govora, strojnega prevajanja itd., zato so bili razširjeni za reševanje primera uporabe prepoznavanja rokopisa z uvedbo dodatnega mehanizma pozornosti. Pogovorimo se o nekaterih temeljnih raziskavah na tem področju

Skenirajte, spremljajte in berite

V tem temeljnem delu Scan, Attend and Read (SAR) avtorji predlagajo uporabo modela, ki temelji na pozornosti, za prepoznavanje rokopisa od konca do konca. Glavni prispevek raziskave je samodejni prepis besedila brez segmentacije v vrstice kot korak predprocesiranja in tako lahko skenira celotno stran in daje rezultate.

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

SAR uporablja arhitekturo, ki temelji na MDLSTM, podobno tisti, o kateri smo razpravljali zgoraj, z eno majhno spremembo na zadnji plasti. Po zadnjem linearnem sloju, tj. končnem bloku Sum na zgornji sliki, se zemljevidi funkcij strnejo v navpični dimenziji in za pridobitev izhodov se uporabi končna funkcija softmax.

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

Arhitektura SAR je sestavljena iz arhitekture MDLSTM, ki deluje kot ekstraktor funkcij. Končni kolapsirani modul z izhodom softmax in izgubo CTC je nadomeščen z modulom pozornosti in dekoderjem LSTM. Uporabljeni model pozornosti je hibridna kombinacija pozornosti, ki temelji na vsebini, in pozornosti, ki temelji na lokaciji, kar je podrobneje pojasnjeno v naslednjem članku. Moduli dekodirnika LSTM vzamejo prejšnje stanje, prejšnji zemljevid pozornosti in funkcije kodirnika, da ustvarijo končni izhodni znak in vektor stanja za naslednjo napoved.

Konvolviraj, spremljaj in črkuj

Ta članek predlaga model od zaporedja do zaporedja, ki temelji na pozornosti, za prepoznavanje rokopisnih besed. Predlagana arhitektura ima tri glavne dele: kodirnik, ki ga sestavljata CNN in dvosmerni GRU, mehanizem pozornosti, namenjen osredotočenju na pomembne lastnosti, in dekoder, ki ga tvori enosmerni GRU, ki lahko črkuje ustrezno besedo, znak za znakom.

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

Kodirnik uporablja CNN za pridobivanje vizualnih funkcij. Kot ekstraktor funkcij se uporablja vnaprej pripravljena arhitektura VGG-19-BN. Vhodna slika se pretvori v zemljevid funkcij X, ki se nato preoblikuje v X' z razdelitvijo vseh kanalov po stolpcih in njihovim združevanjem, da se pridobijo zaporedne informacije. X' se nadalje pretvori v H z uporabo dvosmernega GRU. GRU je po naravi podobna nevronska mreža LSTM in lahko zajema časovne informacije.

Nadalje se med napovedovanjem izhoda iz dekoderja uporablja model pozornosti. Prispevek obravnava dve različni vrsti raziskanih mehanizmov pozornosti.

  1. Pozornost glede na vsebino :- Ideja za tem je najti podobnost med trenutnim skritim stanjem dekoderja in zemljevidom funkcij iz kodirnika. Najbolj korelirane vektorje značilnosti lahko najdemo v zemljevidu značilnosti kodirnika, ki ga lahko uporabimo za napovedovanje trenutnega znaka v trenutnem časovnem koraku. Več podrobnosti o delovanju mehanizma pozornosti si lahko ogledate tukaj pozornost
  2. Pozornost na podlagi lokacije :- Glavna pomanjkljivost mehanizmov lokacije na podlagi vsebine je, da obstaja implicitna predpostavka, da so informacije o lokaciji vdelane v izhod kodirnika. V nasprotnem primeru ni mogoče razlikovati med izhodi znakov, ki se ponavljajo iz dekoderja. Vzemite na primer besedo Charmander, znak a se v njej dvakrat ponovi in ​​brez informacij o lokaciji jih dekoder ne bo mogel predvideti kot ločenih znakov. Da bi to ublažili, sta trenutni znak in njegova poravnava predvidena z uporabo izhoda kodirnika in prejšnje poravnave. Oglejte si več podrobnosti o tem, kako deluje prisotnost na podlagi lokacije tukaj.

Dekoder je enosmerni večplastni GRU. Pri vsakem časovnem koraku t prejme vhod iz prejšnjega časovnega koraka in kontekstni vektor iz modula pozornosti. Multinomsko dekodiranje in glajenje oznak se raziskujeta na usposabljanju za izboljšanje zmožnosti posploševanja.

Modeli transformatorjev

Čeprav so bila omrežja kodirnikov-dekodirnikov precej dobra pri doseganju rezultatov za prepoznavanje rokopisa, imajo ozko grlo pri usposabljanju zaradi vključenih plasti LSTM in jih zato ni mogoče vzporediti. V zadnjem času so bili transformatorji precej uspešni in so nadomestili LSTM pri reševanju različnih jezikovnih nalog. Pogovorimo se zdaj o tem, kako lahko modele, ki temeljijo na transformatorju, uporabimo za prepoznavanje rokopisa.

Bodite pozorni na to, kar berete

V tem delu so avtorji predlagali uporabo arhitekture, ki temelji na transformatorju, z uporabo slojev samopozornosti z več glavami na vizualni in besedilni stopnji in se tako lahko naučijo tako prepoznavanja znakov kot tudi z jezikom povezanih odvisnosti zaporedij znakov, ki jih je treba dekodirati. Ker je jezikovno znanje vgrajeno v sam model, ni potrebe po dodatnem koraku naknadne obdelave z uporabo jezikovnega modela, zato ima možnost predvidevanja rezultatov, ki niso del besedišča. Da bi dosegli to kodiranje besedila, poteka na ravni znakov in ne na ravni besed. Ker transformatorska arhitektura omogoča vzporedno usposabljanje modela za vsako regijo ali lik, je proces usposabljanja precej poenostavljen.

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

Arhitektura omrežja je sestavljena iz naslednjih komponent

  1. Vizualni kodirnik :- Za ekstrakcijo ustreznih funkcij in uporabo večglave vizualne samopozornosti na različnih lokacijah znakov
  2. Transcriber besedila :- Opravlja nalogo sprejemanja vnosa besedila, njegovega kodiranja, uporabe večstranske jezikovne samopozornosti in uporabe medsebojne pozornosti na vizualnih in besedilnih funkcijah.
Vizualni kodirnik

Hrbtenica Resnet50 se uporablja za dodatne funkcije, kot je razvidno iz zgornje slike. Izhod tridimenzionalne karte funkcij iz Resnet3 Fc se posreduje modulu za časovno kodiranje, ki se preoblikuje v 50d z ohranjanjem enake širine in s tem oblike (fxh, w). To se vnese v popolnoma povezano plast, da se oblika zmanjša na (f, w), rezultat pa je Fc'. Poleg tega je Fc' dodano pozicijsko kodiranje TE za ohranitev informacij o položaju, kot je omenjeno v dokumentu Transformer avtorja Vaswanija. Več informacij o oblikovanju transformatorske arhitekture je na voljo tukaj. Izhod gre skozi popolnoma povezano plast, da dobimo končni zemljevid funkcij z obliko (f, w). Končni izhod gre skozi večglavni modul pozornosti z 8 glavami, da dobimo vizualno bogat zemljevid funkcij

Transcriber besedila

Vhodno besedilo se prenese skozi kodirnik, ki generira vdelave na ravni znakov. Te vdelave so združene s časovno lokacijo, podobno kot v Visual Encoder z uporabo modula Temporal Encoder. Ta rezultat se nato posreduje modulu samopozornosti z več glavami, ki je podoben modulu pozornosti v vizualnem kodirniku. Besedilne funkcije, ustvarjene skupaj z vizualnimi značilnostmi iz vizualnega kodirnika, se posredujejo modulu vzajemne pozornosti, katerega naloga je uskladiti in združiti naučene funkcije slik in besedilnih vnosov. Izhod je posredovan skozi funkcijo softmax, da dobimo končni rezultat.

Pri ocenjevanju na podlagi testnih podatkov transkripcije niso na voljo. Tako se kot vhod posreduje samo začetni žeton < S >, prvi predvideni znak pa se vrne sistemu, ki izpiše drugi predvideni znak. Ta postopek sklepanja se ponavlja v zanki, dokler ni proizveden simbol konca zaporedja < E > ali ko je dosežena največja izhodna dolžina N.

Generiranje besedila z rokopisom

Ustvarjanje besedila z rokopisom je naloga ustvarjanja resničnega videza rokopisnega besedila in se tako lahko uporabi za razširitev obstoječih naborov podatkov. Kot vemo, globoko učenje zahteva veliko podatkov za usposabljanje, medtem ko je pridobivanje ogromnega korpusa označenih slik rokopisa za različne jezike okorna naloga. Za rešitev tega lahko uporabimo Generative Adversarial Networks za ustvarjanje podatkov o usposabljanju. Razpravljajmo o eni taki arhitekturi tukaj

ScrabbleGAN

ScrabbleGAN sledi delno nadzorovanemu pristopu za sintetiziranje ročno napisanih besedilnih slik, ki so vsestranske tako v slogu kot leksikonu. Ima zmožnost ustvarjanja slik različnih dolžin. Generator lahko tudi manipulira z nastalim slogom besedila, kar nam omogoča, da se odločimo, ali mora biti besedilo napisano ali pove, kako debela/tanka mora biti poteza peresa

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

Arhitekturo sestavlja popolnoma konvolucijski generator, ki temelji na BigGAN. Za vsak znak v vhodu je izbran ustrezen filter in vse vrednosti so združene skupaj, ki se nato pomnožijo z vektorjem hrupa z, ki nadzoruje ustvarjeni slog besedila. Kot je razvidno zgoraj, se regije, ustvarjene za vsak posamezen znak, prekrivajo in tako pomagajo pri ustvarjanju povezanega rekurzivnega besedila ter omogočajo prilagodljivost različnih velikosti znakov. Na primer m zavzame veliko prostora, medtem ko e in t zavzameta omejeno površino. Da bi ohranili enak slog za celotno besedo ali stavek, je slogovni vektor z konstanten za vse znake.

Konvolucijski diskriminator, ki temelji na arhitekturi BigGAN, se uporablja za razvrščanje, ali je ustvarjeni slog slik videti lažen ali resničen. Diskriminator se ne zanaša na opombe na ravni znakov in zato ne temelji na razrednem pogojnem GAN. Prednost tega je, da ni potrebe po označenih podatkih, zato je mogoče za usposabljanje diskriminatorja uporabiti podatke iz nevidnega korpusa, ki ni del podatkov za usposabljanje. Skupaj z diskriminatorjem je prepoznavalec besedila R usposobljen za razvrščanje, ali ima ustvarjeno besedilo smisel v resničnem svetu ali če je bedarija. Prepoznavalec temelji na arhitekturah CRNN z odstranjeno ponavljajočo se glavo, da je razpoznavalec nekoliko šibkejši in ne prepozna besedila, tudi če je nejasno. Besedilo, ustvarjeno v izhodu R, se primerja z vhodnim besedilom, danim generatorju, in ustrezna kazen se doda funkciji izgube.

Izhodi, ki jih ustvari ScrabbleGAN, so prikazani spodaj

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

Nabori podatkov: -

  1. IAM :- Nabor podatkov IAM vsebuje približno 100k slik besed iz angleškega jezika z besedami, ki jih je napisalo 657 različnih avtorjev. Komplet za usposabljanje, preizkus in validacijo vsebuje besede, ki so jih napisali avtorji, ki se med seboj izključujejo. Povezava: - http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. CVL :- Podatkovni niz CVL je sestavljen iz sedmih ročno napisanih dokumentov, ki jih je napisalo približno 310 udeležencev, rezultat pa je približno 83 izrezkov besed, razdeljenih v nabore za usposabljanje in teste. Povezava :- https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. RIMES :- Vsebuje besede iz francoskega jezika s približno 60 slikami, ki jih je napisalo 1300 avtorjev, kar ustreza približno 5 e-poštnim sporočilom, ki jih je napisala vsaka oseba. Povezava :- http://www.a2ialab.com/doku.php?id=rimes_database:start

Meritve: -

Stopnja napak v znakih :- Izračuna se kot Levenshteinova razdalja, ki je vsota zamenjav znakov (Sc), vstavljanj (Ic) in izbrisov (Dc), ki so potrebni za pretvorbo enega niza v drugega, deljeno s skupnim številom znakov v temeljna resnica (Nc)

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

Stopnja napake besed :- Izračuna se kot vsota besednih zamenjav (Sw), vstavljanj (Iw) in izbrisov (Dw), ki so potrebni za pretvorbo enega niza v drugega, deljena s skupnim številom besed v osnovni resnici (Nw)

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

Naučite svoj model prepoznavanja rokopisa

Zdaj pa poglejmo, kako lahko usposobimo lasten model za prepoznavanje rokopisnega besedila. Usposabljali se bomo na naboru podatkov IAM, vendar lahko model usposobite tudi na svojem naboru podatkov. Pogovorimo se o korakih, vključenih v to nastavitev

datum

Za prenos registra nabora podatkov IAM iz tukaj. Ko ste registrirani, prenesite words.tgz iz tukaj. To vsebuje nabor podatkov ročno napisanih besednih slik. Prenesite tudi datoteko pripisov words.txt iz tukaj.

Če želite uporabiti svoj nabor podatkov, morate slediti strukturiranju podatkov nabora podatkov IAM.

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

Zgoraj je prikazana struktura mape nabora podatkov AIM. Tukaj a01, a02 itd. predstavljajo nadrejene mape, od katerih ima vsaka podmape s podatki. Vsaka podmapa ima nabor slik, ki imajo ime mape dodano kot predpono k imenu datoteke.

Poleg tega potrebujemo datoteko z opombami, ki omenja poti do slikovnih datotek in ustreznih transkripcij. Upoštevajte na primer zgornjo sliko z nominacijo besedila, spodnja bi bila predstavitev v datoteki pripisov words.txt

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

  1. a01-000u-01-00 -> ID besede za vrstico v obliki a01-000u
  2. ok/napaka -> Indikator kakovosti izhoda segmentacije
  3. 156 -> sivina za binarizacijo vrstice, ki vsebuje to besedo
  4. 395 932 441 100 -> omejevalni okvir okoli te besede v formatu x,y,w,h
  5. VBG -> slovnična oznaka za to besedo. Tukaj je glagolski gerund
  6. imenovanje -> transkripcija za to besedo

Arhitektura: -

Usposabljali bomo arhitekturo, ki temelji na CRNN z izgubo CTC. CNN se uporablja za ekstrahiranje vizualnih značilnosti, ki se posredujejo RNN, izguba CTC pa se na koncu uporabi s pohlepnim dekoderjem, da se pridobi izhod.

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

usposabljanje

Uporabili bomo kodo CRNN iz tukaj za usposabljanje našega modela. Za pripravo podatkov sledite spodnjim korakom

python checkDirs.py

Zaženite zgornji ukaz in videli bi izhod, kot je spodaj

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

Zdaj ste pripravljeni na začetek treninga.

Pojdite v korenski imenik in izvedite

python main.py --train

Rezultati

Po usposabljanju za približno 50 epoh je stopnja znakovnih napak (CER) 10.72 %, medtem ko je stopnja besednih napak (WER) 26.45 %, zato je natančnost besed 73.55 %. Nekatere napovedi si lahko ogledate na spodnji sliki.

Kako enostavno narediti prepoznavanje rokopisa s pomočjo strojnega učenja

Model lahko v veliki meri natančno napove like, vendar trpi v nekaj primerih, na primer grozno je napovedano kot anfully, zgodbe so napovedane kot staries. Te težave je mogoče rešiti z uporabo jezikovnega modela kot koraka naknadne obdelave skupaj z dekoderjem, ki lahko ustvari smiselne besede in popravi preproste napake.

Povzetek

Čeprav je prišlo do pomembnega napredka v tehnologiji, ki pomaga pri boljšem prepoznavanju ročno napisanega besedila, HTR še zdaleč ni rešen problem v primerjavi z OCR in se zato še ne uporablja v veliki meri v industriji. Kljub hitrosti tehnološkega razvoja in uvajanju modelov, kot so transformatorji, lahko pričakujemo, da bodo modeli HTR kmalu postali običajni.

Za več raziskav o tej temi lahko začnete tukaj

Nadaljnje branje

Časovni žig:

Več od AI in strojno učenje