OCR pro rucne psany text s doucovanim

Máte nějaký nápad o kterýse chcete podělit, nebo radu kterou chcete přispět ostatním v jejich genealogickém úsilí? Můžete ji napsat sem.

Re: OCR pro rucne psany text s doucovanim

Příspěvekod Davidh » pát dub 09, 2021 9:36

Co se týče psaní -- můžete psát zde, na email, popř. se můžeme domluvit i na jiném způsobu, pokud budete chtít.

Zpřeházení skenů:
Zkoušel jsem nahrát několik skenů a poté nahrát dalších několik skenů do stejného datasetu. Skeny se nahrály ve správné pořadí, každý sken má název, který má mít. V seznamu obrázků datasetu jsou akorát dva skeny prohozené, protože nahrávání jednoho skenu předběhlo nahrávání druhého skenu (skeny jsou seřazeny podle času nahrání). Chybu, kterou popisujete se mi tedy nepodařilo nasimulovat.

Přepisy řádků pro OCR:
Pro OCR je důležité aby na řádek byl přepsán tak jak je, tedy zkratky a pod. nerozepisovat. Zároveň je potřeba pamatovat na abecedu, které dané OCR "rozumí". Aplikace podporuje dva typy OCR modelů (Tesseract, CRNN). CRNN je mnou vytvořené OCR, které má výstupní abecedu limitovanou na malé, velké znaky anglické abecedy, české znaky s diakritikou, čísla, interpunkci, německé ostré "s", německé znaky s dvojtečkou. Některé znaky, které jste psal toto OCR stejně nepřečte. Tesseract OCR je OCR dlouho vyvíjené Googlem, a má podstatně větší abecedu, takže by tyto speciální znaky mohl rozpoznat. Otázka je, jestli je důležité aby OCR přečetlo např. à.

Anotátor:
Souhlasím, že je potřeba umožnit editaci bodů řádků a regionů, budu na tom pracovat. Regiony slouží pouze pro seskupování řádků, popř. pro správný "reading order", který ale nemá vliv na OCR. OCR ovlivňují pouze potvrzené přepisy řádků.
Davidh
 
Příspěvky: 46
Registrován: čtv dub 08, 2021 13:25

Re: OCR pro rucne psany text s doucovanim

Příspěvekod zburget » pát dub 09, 2021 10:38

O.K. - koukněte na ftp.burgnet.cz, do složky /usr/zburget/ProOCR
je tam sada deseti skenů, které jsem terď zkusil nahrát do nového datasetu "Test". Pořadí jmen souborů v datasetu je správné (podle abecedy), ale nesedí obrázky a jejich jména.
Zkuste nahrát těch deset skenů od sebe, jestli se vám taky zpřehážou a nebo to od vás půjde dobře.

ad znakové sady a přepisy:
Při trénování čtení mám tedy používat model CRNN a nebo můžu použít i ten Tesseract? Co je pro vás přínosnější? Nebo je to jedno? Nebo mám zkusit text přečíst oběma dvěma modely?
Pro tu latinu jsou znaky Æ a æ dost důležité. Jestli můžete, tak je do té znakové sady přidejte - těchhle ligatur jsou latinské texty opravdu plné a nelze je ignorovat. Můžeme je rozepisovat, jako ae, ale jak si s tím to OCR poradí, když nějaký konkrétní znak na skenu bude mít přepisovat dvěma znaky?
Jak přepisovat zkratky, které jsou značené nějakým speciálním symbolem - jako třeba to zmíněné usque a nebo tehdy, když je zkratka značená svislou vlnovkou nad slovem? Typicky se třeba slovo est zkracuje, jako e se svislou vlnovkou. Přepsat jen e není úplně dobře, nebude možné sledovat případný kontext věty a v přepisu se ztratí ona informace o zkratce. Jenže neexistuje znak, kterým by se tohle dalo ošetřit. Zrovna včera jsme řešili zkratku Adm. Kdyby byla zapsaná, jako Adm, znamenala by Administrator. Ale protože byla zapsaná, jako Ad~m, znamenala Admodum (což je pak potřeba zjistit i z kontextu). Zkratky jmen typu Jo~es = Joannes by asi problém nebyl. Každý ví, co je to Joes :-)
Ukázka takové zkratky s vlnovkou, i když ne úplně čistě napsaná, je na tom skenu 10 na 4. řádku odspodu - je tam napsáno Konics, nad c je svislá vlnovka. Znamená to Konicensis (z Konice, doslova Konický).

S OCR samotným budu moct začít experimentovat, až budu moct editovat ty body v regionech a řádcích.

Bude možné nakreslit regiony ručně a potom nechat automaticky detekovat řádky? Nebo se na to mám takhle vybodnout a řešit jen OCR samotné? Pak by bylo dobré mít možnost editovat pořadí regionů kvůli onomu správnému "reading order".
Zbyněk Burget
zburget
 
Příspěvky: 12615
Registrován: pon dub 30, 2018 17:15
Bydliště: Nezamyslice [okr. Prostějov]
Oblast pátrání: Konicko, Protivanovsko (okres Prostějov)
Boskovicko

Re: OCR pro rucne psany text s doucovanim

Příspěvekod Davidh » pát dub 09, 2021 10:49

Zatím, prosím, používejte jen Tesseract OCR. U CRNN OCR momentálně rozšiřuji tu znakovou sadu (přidal jsem znaky jako äüößàèêù~). Pokud přepíšete Æ jako ae, myslím, že by se to OCR mohlo naučit. Editaci bodů v regionech a řádcích se budu snažit vyřešit. Nakreslit ručně region a potom nechat detekovat řádky by znamenalo větší zásah, na který momentálně bohužel nemám prostor. Jak jsem se díval na detekované řádky, tak pro účely mého OCR jsou dostačující (samozřejmě někdy se stane, že špatně rozdělí některé věty, ale většina se mi zdá v pořádku).

Zkusím nahrát Vaše skeny a dám vědět. Díky.
Davidh
 
Příspěvky: 46
Registrován: čtv dub 08, 2021 13:25

Re: OCR pro rucne psany text s doucovanim

Příspěvekod Davidh » pát dub 09, 2021 11:07

Nějak se na ten FTP server neumím dostat. Mohl byste je nahrát někde jinde?
Davidh
 
Příspěvky: 46
Registrován: čtv dub 08, 2021 13:25

Re: OCR pro rucne psany text s doucovanim

Příspěvekod zburget » pát dub 09, 2021 12:49

FTP - měl jsem chybu v konfiguraci po upgradu OS, nefungovalo anonymní přihlášení, už by to mělo být v pořádku. Omlouvám se.
Zbyněk Burget
zburget
 
Příspěvky: 12615
Registrován: pon dub 30, 2018 17:15
Bydliště: Nezamyslice [okr. Prostějov]
Oblast pátrání: Konicko, Protivanovsko (okres Prostějov)
Boskovicko

Re: OCR pro rucne psany text s doucovanim

Příspěvekod zburget » pát dub 09, 2021 12:51

Kdyby to šlo, přimlouval bych se za přidání i těch Æ a æ - v latině je to opravdu velice běžný a častý znak.
Zbyněk Burget
zburget
 
Příspěvky: 12615
Registrován: pon dub 30, 2018 17:15
Bydliště: Nezamyslice [okr. Prostějov]
Oblast pátrání: Konicko, Protivanovsko (okres Prostějov)
Boskovicko

Re: OCR pro rucne psany text s doucovanim

Příspěvekod zburget » pát dub 09, 2021 12:58

Jo, ještě k těm zkratkám - zvládlo by to, kdybych ty zkratky s vlnovkou nad slovem přepisoval třeba jako Jo~es, Ad~m, v případě toho odkazovaného Konicensis jako Konice~s - ono by to mělo asi celkem logiku, ale nevím, co by vám to udělalo s tréningem té neuronové sítě. S různými diakritickými znaménky to pak bude vůbec asi dost veselé. Občas jsou posunuta i až tak ± 2 písmena. Tady u těch zkatek taky není úplně na první dobrou jasné, kam by ta vlnovka měla patřit.
Ještě u latiny veledůležitá a všudypřítomná zkratka - závěrečné -us. Psáno jako závěrečné -g. Chtělo by to, aby se k těm přepisům vyjádřil někdo, kdo by to měl rozhodnout (verdoucí práce?).
Jde tedy v latině o tyhle otázky - jak přepisovat:
koncovku -ii, které je zapisována, jako -ij (-ij je jazykový nesmysl)
koncovku -us, která je zapisována, jako -g
koncovku -que, která je zapisována, jako jakési -g3
předponu con-, která je zapisována, jako g-
zkratky "vlnovkou", např. Jo[ann]es, Jo[ann]is, e[st], Ad[modu]m, D[omi]nus, D[omi]na, R[everen]dus, kde je nad zkráceným slovem svislá vlnovka. V přepisu by měla být zkratka nějak naznačena, protože jinak se může zásadně změnit smysl slova (zkratky) - např. Ad~m = Ad[modu]m versus Adm. = Adm[inistrator].

Zajímavé řešení by bylo, kdyby si to OCR tvořilo i nějaký slovník a třeba u matrik dokázalo odhadovat kontext - protože záznamy pasné později německy a česky mají poměrně dost přesnou strukturu, o kterou se dá při luštění dobře opřít. Jenže to by to OCR muselo vědět, jestli čte matriku nebo něco jiného a ještě jak stará ta matrika je. Protože ce struktura těch zápisů v čase mění… Ale to už by bylo asi na jinou diplomku :-)
Zbyněk Burget
zburget
 
Příspěvky: 12615
Registrován: pon dub 30, 2018 17:15
Bydliště: Nezamyslice [okr. Prostějov]
Oblast pátrání: Konicko, Protivanovsko (okres Prostějov)
Boskovicko

Re: OCR pro rucne psany text s doucovanim

Příspěvekod zburget » pát dub 09, 2021 17:14

Tak - ještě pár otázek k OCR samotnému:
Nahraju skeny, nechám udělat anotace.
Teď mám anotace projít a nesmyslné regiony a řádky smazat a nebo je tam mám prostě nechat?
Když budu spokojený s anotacemi, mám něco přepisovat ručně a nebo máým zkusit spustit OCR a to pak opravovat?
Když budu spouštět OCR, vyberu model Tesseract, jakou mám vybrat instanci? Mám si udělat svoji, abych něco nepizdil a nebo mám používat nějakou nastavenou globální?
Zbyněk Burget
zburget
 
Příspěvky: 12615
Registrován: pon dub 30, 2018 17:15
Bydliště: Nezamyslice [okr. Prostějov]
Oblast pátrání: Konicko, Protivanovsko (okres Prostějov)
Boskovicko

Re: OCR pro rucne psany text s doucovanim

Příspěvekod zburget » sob dub 10, 2021 8:41

Ještě drobnost - nebylo by možné spustit anotace jen nad jednou konkrétní stránkou?
Stejně tak nebylo by možné spustit OCR jen nad jednou konkrétní stránkou? Že bych třeba stránku přepsal, pak nad druhou zkusil spustit OCR. Opravil bych druhou a spustil OCR nad třetí. Pokud je to stejný rukopis, mohlo by byýt vidět nějaké zlepšení čtení už po několika stranách? A nebo i při stejném rukopisu a identické struktuře jednotlivých zápisu (stále se opakující slova) musím počítat třeba s desítkami přepsaných stran, než se objeví nějaké zlepšení?
Zbyněk Burget
zburget
 
Příspěvky: 12615
Registrován: pon dub 30, 2018 17:15
Bydliště: Nezamyslice [okr. Prostějov]
Oblast pátrání: Konicko, Protivanovsko (okres Prostějov)
Boskovicko

Re: OCR pro rucne psany text s doucovanim

Příspěvekod Davidh » sob dub 10, 2021 12:03

Skeny jsem si stáhl a zkusil nahrát. Potvrzuji, že se nahrály ve špatném pořadí. Chybu vyřeším.

Kontext OCR:
OCR, které jsou v aplikaci, nerozpoznávají každý znak odděleně. Využívají se rekurentní sítě, které se nejdříve snaží zachytit kontext celého rozpoznávaného řádku. Kontext na úrovni jednotlivých matrik se dá zajistit tak, že se pro každou matriku natrénuje speciální instance OCR.

Otázka k obsluze aplikace:
Pro vylepšování OCR je důležité získat co nejvíce potvrzených přepsaných anotací řádků. Základní způsob jak získat potvrzené přepisy řádků je ručně oklikat jednotlivé řádky, ty přepsat a potvrdit. Tento způsob je ale celkem zdlouhavý, proto jsem přidal možnost automatické detekce řádků. Já využívám aplikaci tak, že nahraju skeny, nechám si zdetekovat řádky a textové regiony a poté si nechám jednotlivé řádky přepsat pomocí některého OCR. Poté procházím jednotlivé skeny a potvrzuji správně přepsané řádky (pokud není přepis správný, tak jej nejdříve opravím).

Aplikace využívá k trénování OCR pouze potvrzené přepisy řádků. Pokud si necháte zdetekovat nějakou matriku a pak na ni spustíte OCR, výsledné přepsané řádky Vám slouží pouze pro usnadnění přepisování a potvrzování řádků. Tzn vy si můžete zkusit přepsat řádky kterýmkoliv OCR, které vám co nejvíce pak ulehčí opravu a potvrzení přepisů. Zároveň pokud nějaký přepis řádku potvrdíte, dalším spuštěním OCR se už nepřepíše.

Některé instance OCR jsou globální, což znamená, že je uživatelé nemohou sami trénovat (tyto instance se trénují automaticky přes noc na všech přepisech). Globální instance lze použít pouze pro inferenci (přepis řádků) nebo "zdědění" při vytváření nové instance.
Davidh
 
Příspěvky: 46
Registrován: čtv dub 08, 2021 13:25

Re: OCR pro rucne psany text s doucovanim

Příspěvekod zburget » sob dub 10, 2021 13:28

O.K. - rozumím. Jen s tím opisem, co jsem si nachystal, budu muset počkat na možnost editace těch regionů/řádků. Možná bude rychlejší si ty anotace nakreslit ručně, než se spoléhat na ten automat. Ten tam vyrobí tolik nesmyslů, že než to opravím, ml bych to snad nakreslené ručně dřív. Občas je nesmyslně roztržený řádek do úplně samostatnách regionů, občas je roztrhané i jedno písmeno na několik regionů, občas v řádku zase kousek chybí (políčko končí ještě před koncem textu…
Vzhledem k propití inkoustu skrz papír to najde hromadu dalších řádků, které musím mazat - ale to je spíš problém kvality skenu, než toho anotátoru.
Existuje někdo, s kým by se dalo spojit a ten anotátor řešit? Nožná by pomohlo, kdyby k němu existovala nějaká ne úplně automatická, ale třeba i poloautomatická verze - představa je, že by navrhl regiony, člověk by odsouhlasil, případně opravil a následně by se spustila detekce řádků, kde by zase mohla být možnost to nějak usměrnit - většinou ukázat, že písmeno je větší, než si anotátor myslí, nebo že je řádek delší nebo že je něco jeden text a nemá se to rozdělit…

Když jsem si text nechal jen tak svičně přečíst, byly z toho takové zmatky, že se nedalo použít nic. Přepsal jsem stránku, ale OCR mě mezi tím odhlásilo, takže přepis zmizel (i s opravami regionů) :-( Zatím jsem si jen částečně upravil regiony a zkusím to přepsat ještě jednou. Tak snad mě to zase neodhlásí.
Zbyněk Burget
zburget
 
Příspěvky: 12615
Registrován: pon dub 30, 2018 17:15
Bydliště: Nezamyslice [okr. Prostějov]
Oblast pátrání: Konicko, Protivanovsko (okres Prostějov)
Boskovicko

Re: OCR pro rucne psany text s doucovanim

Příspěvekod zburget » sob dub 10, 2021 14:01

Při trénování na potvrzených přepisech mám nechat nastavení tak, jak je, předpokládám - tedy 10 epoch a Learning rate 0.0002. Nebo mám něco nějak poupravit?
Zbyněk Burget
zburget
 
Příspěvky: 12615
Registrován: pon dub 30, 2018 17:15
Bydliště: Nezamyslice [okr. Prostějov]
Oblast pátrání: Konicko, Protivanovsko (okres Prostějov)
Boskovicko

Re: OCR pro rucne psany text s doucovanim

Příspěvekod Davidh » ned dub 11, 2021 9:55

Ano, ale zatím prosím používejte jen Tesseract OCR. Děkuji.

To, co popisujete s detekcí stránek by bylo možné, ale momentálně nemám prostor abych toto řešil. Za měsíc mám deadline pro odevzdání :) Pokud se bude aplikace používat, klidně to tam můžu poté přidat.
Davidh
 
Příspěvky: 46
Registrován: čtv dub 08, 2021 13:25

Re: OCR pro rucne psany text s doucovanim

Příspěvekod zburget » ned dub 11, 2021 10:12

O.K. - tak já se pokusím to nějak natrénovat na tom opisu, jestli to pak bude schopné číst aspoň trochu rozumně. Zatím jsem ručně přepsal dva skeny (tři stránky) a zatím to tedy nic moc nečte. Jedno z cca 50 slov je podobné tomu, co by tam mělo být :-) Ale to při tak malém vzorku přepsaného textu asi není žádné překvapení.
Spíš mi přijde divné, že některé řádky to nepřečte vůbec. Jako že po proběhnutí OCR je takový řádek úplně prázdný.
Zkusím přepsat ještě pár stran, uvidíme, jestli se to při čtení začne aspoň trochu lepšit.
Zbyněk Burget
zburget
 
Příspěvky: 12615
Registrován: pon dub 30, 2018 17:15
Bydliště: Nezamyslice [okr. Prostějov]
Oblast pátrání: Konicko, Protivanovsko (okres Prostějov)
Boskovicko

Re: OCR pro rucne psany text s doucovanim

Příspěvekod zburget » ned dub 11, 2021 10:25

Ještě dotaz - ta editace řádků/regionů je reálná a nebo to teď do odevzdání nezvládnete - jde mi o to, jak moc na to mám čekat a spoléhat a nebo se musím nějak poprat s tím, co je k dispozici.
Zbyněk Burget
zburget
 
Příspěvky: 12615
Registrován: pon dub 30, 2018 17:15
Bydliště: Nezamyslice [okr. Prostějov]
Oblast pátrání: Konicko, Protivanovsko (okres Prostějov)
Boskovicko

PředchozíDalší

Zpět na Nápady

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník