Il team di Transkribus collabora con il team di Pattern Recognition dell'Università di Erlangen-Nürnberg (anche membro di READ-COOP SCE) e i colleghi sono stati così grandi da fare un esperimento interessante: addestrare il loro classificatore per discriminare automaticamente le righe di testo stampato e scritto a mano. Ci sono principalmente due casi d'uso: (1) migliorare i risultati di riconoscimento se specifici modelli HTR sono applicati a specifici tipi di scrittura. Tuttavia, abbiamo fatto l'esperienza che i motori HTR di solito possono trattare piuttosto bene con un gran numero di scritture internamente, quindi il beneficio effettivo potrebbe non essere così alto come ci si aspetta. (2) per trovare linee scritte a mano in libri stampati. Ad esempio, se personaggi famosi hanno fatto delle note nei loro libri privati, lo strumento descritto di seguito le troverà con una precisione sorprendente!
Il seguente testo è stato fornito da Matthias Seuret e Vincent Christlein del Squadra di riconoscimento dei modelli e leggermente adattato per questo post:
La difficoltà nella classificazione delle righe di testo come stampate o scritte a mano non risiede tanto nell'uso delle reti neurali convoluzionali (CNN) o nella progettazione della loro architettura, ma nell'acquisizione e preparazione dei dati. Infatti, le moderne reti neurali artificiali (ANN) sono ormai in grado di trattare dati molto complessi (come ImageNet, che comprende 90 diverse razze di cani da discriminare), e per una grande varietà di compiti, presentare abbastanza esempi alla ANN è sufficiente per farle raggiungere una discreta precisione.
È necessario notare che le ANN (e altri sistemi di intelligenza artificiale) sono estremamente influenzati dai dati utilizzati per addestrarli. Per questo motivo, i dati di addestramento dovrebbero essere scelti con attenzione per garantire che il modo più semplice per classificare correttamente le immagini sia quello di risolvere il compito. Per esempio, se tutte (o la maggior parte) le linee di testo scritte a mano sono su carta giallastra, mentre il materiale stampato è su carta bianca, allora la RNA imparerà semplicemente a separare il giallo dal bianco, e risponderà che ogni linea di testo stampato su carta giallastra è scritta a mano. Naturalmente, una RNA può imparare varie altre proprietà indesiderate dei dati, come la risoluzione e la qualità dell'immagine, la consistenza della carta, o il colore o il contrasto dell'inchiostro. Pertanto, è della massima importanza utilizzare dati di addestramento il più possibile simili a quelli che la RNA dovrà affrontare.
Il sistema che abbiamo sviluppato per questo compito è basato sul classificatore di gruppi di caratteri (stampati) sviluppato per il progetto OCR-D (http://www.ocr-d.de/). Consiste in una DenseNet-121 avvolta in alcune classi di utilità, ed è stata adattata per la classificazione binaria di testo scritto a mano e stampato. La DenseNet-121 è una rete neurale convoluzionale con 121 strati, la maggior parte dei quali sono in 4 blocchi densamente connessi. Ha comunque una quantità relativamente piccola di parametri per una rete della sua dimensione, e quindi richiede meno dati per essere addestrata rispetto alle architetture con più parametri.
Le linee di testo sono pre-elaborate in due modi. In primo luogo, tutte sono ridimensionate ad un'altezza di 150 pixel, e il loro rapporto di aspetto è conservato. Questo è utile per la RNA, in quanto non dovrà imparare a trattare con una grande diversità di dimensioni del testo. In secondo luogo, i metodi di aumento dei dati applicati alle immagini di allenamento. Questo significa che alcune piccole modifiche, come la tosatura o la modifica della tonalità, vengono applicate alle immagini di allenamento ogni volta che vengono mostrate alla rete neurale durante l'allenamento. L'obiettivo è quello di far sì che la rete impari a ignorare queste variazioni e si comporti su dati non visti.
Abbiamo addestrato la nostra rete su linee di testo provenienti da due fonti diverse. Circa 40'000 righe di testo stampato sono state estratte automaticamente dal dataset presentato in "Dataset of Pages from Early Printed Books with Multiple Font Groups" (https://doi.org/10.5281/zenodo.3366685), e 9'577 campioni scritti a mano forniti da READ. Inoltre, 1'562 righe di testo da ogni classe sono state utilizzate per il test - nessuna di esse proveniva da una pagina utilizzata per i dati di allenamento. Mentre la nostra rete ha raggiunto un'accuratezza di classificazione del 97,5% sui dati di test, bisogna tenere a mente che questo vale solo per questi dati specifici. Il codice sorgente del nostro metodo e la CNN addestrata, così come il codice che permette a chiunque di riaddestrare facilmente la CNN sui propri dati, è disponibile al seguente indirizzo: https://github.com/seuretm/printed-vs-handwritten
Nota: Se sei interessato a creare dati di allenamento per questo scopo in Transkribus puoi usare la funzione "Structural tagging" e marcare le linee come "scritte a mano" o "stampate" nei tuoi documenti. Il classificatore vero e proprio deve essere eseguito al di fuori di Transkribus, tuttavia, se c'è un forte sostegno da parte della comunità di utenti siamo felici di includere lo strumento anche nella piattaforma Transkribus.