HTR · 02

Praktický postup: jak natrénovat první HTR model

Vydáno: Aktualizováno: Vydavatel: Vestigia Scriptorium

Vytvoření vlastního HTR (Handwritten Text Recognition) modelu nemusí vyžadovat znalost programování nebo strojového učení. Základní princip spočívá v tom, že systému předložíme dostatečný počet obrazů řádků rukopisu společně s jejich správným přepisem. Tato dvojice – obraz dokumentu a jeho ověřená transkripce – tvoří tzv. Ground Truth (GT), tedy referenční data, z nichž se model učí.[1]

Následující postup je zaměřen především na Transkribus, protože umožňuje celý proces provést v grafickém prostředí. Stejný základní princip však používají také otevřené nástroje, například eScriptorium s rozpoznávacím systémem Kraken.[2]

1. Nejprve si vymezte materiál

Než začnete vytvářet trénovací data, je vhodné určit, co má budoucí model vlastně umět číst. Model určený například pro české úřední knihy z 18. století řeší jiný problém než model pro osobní korespondenci z počátku 20. století.

Pro první experiment je výhodné zvolit relativně homogenní soubor:

  • dokumenty přibližně ze stejného období,
  • stejný jazyk,
  • podobný typ písma,
  • pokud možno jednoho písaře nebo malý počet písařů,
  • kvalitativně podobné snímky.

Čím různorodější materiál modelu předkládáme, tím více trénovacích dat zpravidla potřebujeme. Transkribus proto doporučuje, aby trénovací soubor reprezentoval různé druhy rukopisu, jazyků a dalších vlastností, které má model později rozpoznávat.[3]

2. Vyberte reprezentativní stránky

Není vhodné jednoduše vzít prvních několik desítek stran knihy. Lepší je vybrat stránky, které reprezentují materiál, jenž budeme později zpracovávat.

Pokud například archivní kniha obsahuje běžné zápisy, tabulky, nadpisy, poznámky na okrajích a několik různých písařů, měli bychom si předem rozhodnout, které z těchto prvků má model zvládat.

Pro první model není nutné připravovat stovky stran. Současná dokumentace Transkribusu uvádí podle charakteru materiálu přibližně 5 000 až 15 000 slov, což odpovídá zhruba 25–75 stranám.[4] U rukopisů je množství potřebných dat závislé zejména na jejich variabilitě. Novější návod Transkribusu uvádí jako orientační minimum kolem 10 000 slov na jeden rukopis („hand“).[1]

Tato čísla je třeba chápat jako orientační, nikoli jako pevnou hranici.

3. Vyzkoušejte nejprve existující model

Před vytvářením vlastního modelu je vhodné ověřit, zda již neexistuje model vhodný pro daný materiál. Transkribus nabízí veřejné modely vytvořené jak jeho vývojáři, tak uživatelskou komunitou. Lze je vyhledávat například podle jazyka, období nebo typu písma.[5]

Existující model nemusí poskytovat dokonalý přepis. Pokud však vytváří použitelný základ, může výrazně urychlit přípravu Ground Truth: místo ručního přepisování celé stránky pouze opravujeme automaticky vytvořenou transkripci.

4. Proveďte analýzu rozvržení stránky

HTR systém potřebuje vědět, kde se na stránce nachází jednotlivé řádky textu. Proto rozpoznání textu předchází segmentace neboli analýza layoutu.

U běžné stránky systém zpravidla automaticky vytvoří textové oblasti a tzv. baselines – základní linie jednotlivých řádků. Ty je třeba zkontrolovat.

Chybně umístěné, spojené nebo chybějící řádky mohou negativně ovlivnit trénovací data. Transkribus výslovně upozorňuje, že správnost baselines je při vytváření kvalitního modelu důležitá.[6]

5. Vytvořte přesnou transkripci

Nyní přichází nejpracnější část celého procesu.

Každý řádek musí mít správný textový přepis. Můžeme jej vytvořit ručně nebo nejprve použít existující HTR model a jeho výsledek následně opravit.

Důležitější než rychlost je přesnost a konzistence. Model nerozezná, že chyba v Ground Truth je překlep člověka. Chybný přepis je pro něj jednoduše trénovací informace.[1]

Před zahájením rozsáhlejší transkripce je proto vhodné vytvořit jednoduchá transkripční pravidla. Je například nutné rozhodnout:

  • zda zachováváme původní pravopis,
  • jak zapisujeme velká a malá písmena,
  • jak zacházíme se zkratkami,
  • zda rozepisujeme abreviatury,
  • jak zapisujeme interpunkci,
  • jak zacházíme s přeškrtnutým nebo doplněným textem,
  • zda zachováváme historické znaky.

Pro trénování modelu bývá důležitější konzistentní způsob přepisu než modernizace textu.

6. Označte ověřené stránky jako Ground Truth

Stránku považujeme za Ground Truth až tehdy, když jsme zkontrolovali jak její transkripci, tak její segmentaci.

V Transkribusu lze takto zkontrolovaným stránkám přiřadit stav Ground Truth. Právě z těchto ověřených dat následně vytvoříme trénovací a validační množinu.[1]

Je užitečné nepovažovat automatickou transkripci za Ground Truth pouze proto, že „vypadá docela dobře“. I relativně malé množství systematických chyb může model naučit nežádoucí způsob přepisu.

7. Rozdělte data na trénovací a validační

Model by neměl být hodnocen pouze na stránkách, ze kterých se učil. Část Ground Truth proto vyčleníme jako validation set.

Transkribus doporučuje přibližně 90 % dat pro trénování a 10 % pro validaci.[1][3]

Pokud tedy máme například 50 kvalitně přepsaných stran, orientačně můžeme použít:

45 stran → training data
5 stran → validation data

Validační stránky by měly být reprezentativní. Pokud máme v dokumentech několik písařů, neměli bychom například validační množinu sestavit pouze z nejčitelnějšího z nich.[3]

8. Zvažte použití základního modelu

Model nemusíme vždy trénovat úplně od začátku.

Pokud existuje model vytvořený na podobném jazyce, období a druhu rukopisu, lze jej použít jako base model a přizpůsobit jej vlastním datům. Tento postup, obecně označovaný jako fine-tuning, může snížit množství potřebných dat a zlepšit výsledky.[6]

Podobný princip nabízí také eScriptorium/Kraken, kde lze existující model dále trénovat na vlastních datech.[2]

Pro začátečníka proto bývá rozumné nejprve vyzkoušet vhodný základní model a teprve v případě potřeby experimentovat s trénováním úplně od začátku.

9. Spusťte trénování

Po přípravě dat lze v Transkribusu vytvořit nový Text Recognition Model, vybrat trénovací a validační data, případně základní model, a spustit trénování.[3]

Samotný výpočet již probíhá automaticky. Začátečník tedy nemusí nastavovat neuronovou síť nebo programovat vlastní algoritmus.

Výsledkem je model specializovaný na charakter rukopisu obsažený v Ground Truth.

10. Zkontrolujte CER

Jedním ze základních ukazatelů kvality HTR modelu je Character Error Rate (CER), tedy chybovost na úrovni znaků.

Zjednodušeně řečeno CER vyjadřuje, kolik znakových operací je potřeba k tomu, aby se automatický přepis shodoval se správnou referenční transkripcí. Platí tedy:

nižší CER = přesnější rozpoznání.

CER 10 % například neznamená jednoduše „90 % správných slov“. Jde o metriku založenou na rozdílech mezi znaky referenčního a rozpoznaného textu.

Transkribus uvádí CER pod 10 % jako obecně použitelný výsledek pro vyhledávání a další analýzu; u dobře zvládnutého komplexního rukopisu může být dosaženo i hodnot kolem 5 % nebo nižších.[1][6]

Samotné číslo však není jediným kritériem. Pro archivní práci je důležité podívat se také na charakter chyb. Model může například spolehlivě číst běžný text, ale systematicky chybovat právě ve vlastních jménech, číslech nebo zkratkách, které jsou pro historický výzkum zásadní.

11. Vyzkoušejte model na dosud nepoužitých stránkách

Po natrénování modelu vyberte několik stran, které nebyly součástí training ani validation setu, a proveďte jejich automatické rozpoznání.

Tím získáte praktičtější odpověď na otázku:

„Jak dobře bude tento model fungovat na dalších dokumentech?“

Test na dosud neviděném materiálu doporučuje také návod Transkribusu.[1]

Pokud model na nových stránkách funguje výrazně hůře než na validačních datech, může být problém například v nereprezentativním výběru Ground Truth nebo v příliš velké rozdílnosti rukopisů.

12. Opravujte chyby a vytvořte další Ground Truth

První model nemusí být konečný.

Praktický postup může vypadat následovně:

Ground Truth → první model → automatický přepis dalších stran → ruční oprava → nový Ground Truth → nové trénování → lepší model

Právě iterativní rozšiřování kvalitních trénovacích dat je jedním ze základních způsobů zlepšování vlastního HTR modelu.[7]

Je přitom důležité upozornit na častý omyl: samotná oprava automaticky rozpoznaného textu model automaticky nepřeučuje. Opravené stránky je třeba zahrnout do nových trénovacích dat a spustit další trénování.[8]

Jednoduchý první experiment

Začátečník nemusí hned digitalizovat celý archivní fond. Vhodnější je začít malým kontrolovaným experimentem.

Vyberme například jednu rukopisnou knihu s převážně jedním písařem. Z ní připravíme přibližně 25–50 reprezentativních stran. Provedeme segmentaci, opravíme baselines a vytvoříme přesnou transkripci.

Poté většinu dat použijeme k trénování a přibližně desetinu k validaci. Pokud je k dispozici vhodný veřejný model pro podobný jazyk, období a rukopis, použijeme jej jako základ.

Po natrénování vyzkoušíme vlastní model na několika dalších, dosud nepoužitých stranách.

Chyby neopravujeme pouze mechanicky. Sledujeme jejich příčinu:

Chybuje model u všech znaků?
Pravděpodobně potřebujeme více nebo kvalitnějších Ground Truth dat.

Chybuje především u jednoho písaře?
Tento rukopis může být v trénovacích datech nedostatečně zastoupen.

Chybuje u řádků nebo slučuje text?
Problém může souviset se segmentací a baselines.

Chybuje systematicky u určitého znaku?
Je vhodné zkontrolovat konzistenci jeho přepisu v Ground Truth.

Je CER dobrý, ale model selhává na nových dokumentech?
Trénovací a validační data pravděpodobně dostatečně nereprezentují skutečný materiál.

Teprve po tomto vyhodnocení má smysl přidat další opravené stránky a model znovu natrénovat.

Takový postup má jednu podstatnou výhodu: Ground Truth vytvořený při prvním experimentu není ztracená práce. Je to dlouhodobě využitelný datový základ, který lze postupně rozšiřovat a používat při vytváření dalších verzí modelu.

Použité zdroje

[1] Transkribus: How to train a model in Transkribus, 22. 10. 2025.
https://www.transkribus.org/blog/how-to-train-a-text-recognition-model-in-transkribus

[2] eScriptorium Documentation: Train models.
https://escriptorium-tutorial.readthedocs.io/en/latest/train/

[3] Transkribus Help Center: Model Setup and Training.
https://help.transkribus.org/model-setup-and-training

[4] Transkribus Help Center: How do I train a model?
https://help.transkribus.org/how-do-i-train-a-model

[5] Transkribus Help Center: Public Models.
https://help.transkribus.org/public-models

[6] READ-COOP: How to improve the CER of your model, 16. 4. 2024.
https://blog.transkribus.org/en/how-to-improve-the-cer-of-your-model

[7] READ-COOP: How to retrain a model in Transkribus, 8. 11. 2024.
https://blog.transkribus.org/en/how-to-retrain-a-model-in-transkribus

[8] Transkribus Help Center: Training Text Recognition Models.
https://help.transkribus.org/training-text-recognition-models