Ž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.
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
- Velika variabilnost in dvoumnost potez od osebe do osebe
- Tudi stil pisave posamezne osebe se sčasoma spreminja in je nedosleden
- Slaba kakovost izvornega dokumenta/slike zaradi poslabšanja sčasoma
- Besedilo v tiskanih dokumentih je v ravni črti, medtem ko ljudem ni treba napisati vrstice besedila v ravni črti na bel papir
- Zaradi kurzivnega rokopisa je ločevanje in prepoznavanje znakov zahtevno
- Rokopisno besedilo ima lahko spremenljiv zasuk v desno, kar je v nasprotju z natisnjenim besedilom, kjer je vse besedilo pokončno
- 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
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
- 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
- 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
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
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
- 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.
- 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
- 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.
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.
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.
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.
- 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
- 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.
Arhitektura omrežja je sestavljena iz naslednjih komponent
- Vizualni kodirnik :- Za ekstrakcijo ustreznih funkcij in uporabo večglave vizualne samopozornosti na različnih lokacijah znakov
- 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
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
Nabori podatkov: -
- 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
- 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/
- 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)
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)
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.
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
- a01-000u-01-00 -> ID besede za vrstico v obliki a01-000u
- ok/napaka -> Indikator kakovosti izhoda segmentacije
- 156 -> sivina za binarizacijo vrstice, ki vsebuje to besedo
- 395 932 441 100 -> omejevalni okvir okoli te besede v formatu x,y,w,h
- VBG -> slovnična oznaka za to besedo. Tukaj je glagolski gerund
- 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.
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.
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
- 100
- 100k
- 7
- O meni
- dostop
- natančna
- čez
- Dodatne
- napredek
- Prednost
- AI
- algoritem
- algoritmi
- vsi
- Dovoli
- Čeprav
- Dvoumnost
- znesek
- zneski
- Še ena
- primerno
- Uporaba
- pristop
- Arhitektura
- OBMOČJE
- okoli
- članek
- pričakuje
- audio
- Avtorji
- Avtomatizacija
- Na voljo
- ozadje
- Banka
- Bančništvo
- Osnova
- Širina
- postanejo
- počutje
- Billion
- Block
- Blog
- meja
- Pasovi
- Building
- poslovni
- Lahko dobiš
- kapaciteta
- primeri
- wrestling
- spremenite
- kanali
- terjatve
- CNN
- Koda
- Stolpec
- kombinacija
- kombinirani
- podjetje
- v primerjavi z letom
- komponenta
- Vsebuje
- vsebina
- stroški
- bi
- države
- rastline
- ključnega pomena
- Trenutna
- datum
- dan
- dc
- ponudba
- deliti
- zamuda
- uvajanja
- Podatki
- Odkrivanje
- razvoju
- razvoju
- drugačen
- digitalni
- digitalizacija
- Dimenzije
- razpravlja
- razdalja
- distribucija
- Dokumenti
- navzdol
- vozi
- enostavno
- Angleščina
- evolucija
- Primer
- Ekskluzivno
- Razširi
- pričakovati
- Pričakuje
- ponaredek
- Feature
- Lastnosti
- Fed
- Slika
- prva
- prilagodljivost
- Pretok
- Osredotočite
- osredotočena
- sledi
- po
- obrazec
- Obrazci
- francosko
- funkcija
- Prihodnost
- splošno
- ustvarjajo
- pridobivanje
- GitHub
- Giving
- dogaja
- dobro
- veliko
- Mreža
- Rast
- Ravnanje
- ob
- Glava
- zdravstveno varstvo
- višina
- pomoč
- tukaj
- visoka
- zgodovinski
- Kako
- Kako
- HTTPS
- velika
- Ljudje
- Ovir
- Hybrid
- Ideja
- identificirati
- slika
- vpliv
- izboljšanje
- individualna
- industrij
- Industrija
- info
- Podatki
- zavarovanje
- Intelligence
- Inteligentna
- zapletenosti
- vključeni
- Vprašanja
- IT
- vzdrževanje
- Ključne
- znanje
- dela
- jezik
- jeziki
- velika
- Zadnji
- UČITE
- naučili
- učenje
- Stopnja
- Limited
- vrstica
- LINK
- malo
- lokalna
- kraj aktivnosti
- Pogledal
- si
- stroj
- strojno učenje
- velika
- moški
- Navodilo
- ročno
- map
- Zemljevidi
- Tržna
- medicinski
- Srednjeveško
- srednje
- milijonov
- milijoni
- Model
- modeli
- Najbolj
- pomnoži
- Narava
- mreža
- omrežij
- hrup
- Številka
- na spletu
- Da
- Ostalo
- drugače
- bolečina
- Papir
- Udeleženci
- ljudje
- performance
- faza
- ključno
- Predvajaj
- slaba
- Popular
- mogoče
- napoved
- Napovedi
- Prescription
- predstaviti
- precej
- problem
- Postopek
- Procesi
- Proizvedeno
- ugledni
- predlaga
- zagotavlja
- kakovost
- Bralec
- resnični svet
- prejeti
- priznajo
- zmanjša
- Registracija
- registriranih
- redni
- nadomesti
- obvezna
- Raziskave
- Rezultati
- skala
- razširljive
- skeniranje
- Iskalnik
- segmentacija
- Občutek
- Storitve
- nastavite
- nastavitev
- pomemben
- Podoben
- Enostavno
- Velikosti
- majhna
- So
- SOLVE
- Vesolje
- Začetek
- začel
- Država
- Izjava
- Države
- zgodbe
- Študije
- slog
- uspešno
- sistem
- Pogovor
- Naloge
- tehnike
- Tehnologija
- Test
- Vir
- skozi
- čas
- skupaj
- žeton
- usposabljanje
- Transakcije
- Transform
- prevod
- ogromno
- us
- ameriški dolar
- uporaba
- primeri uporabe
- W
- Kaj
- ali
- brez
- besede
- delo
- deluje
- svet
- pisanje
- X
- leto