sobota, 22 marca 2025

Tesseract w wersji czwartej znacznie lepiej czyta niemiecką frakturę niż poprzednia "trójka"

Optyczne rozpoznawanie tekstu (OCR) znajduje się obecnie na bardzo przyzwoitym poziomie. O ile pod koniec lat dziewięćdziesiątych XX wieku światowym liderem była jeszcze dystrybuowana na pojedynczej dyskietce węgierska Recognita, to w latach późniejszych zaczęło królować narzędzie o nazwie ABBYY FineReader, fenomenalnie dobrze radzące sobie ze "zwykłym" krojem pisma, określanym mianem antykwa. FineReader dopiero od niedawna (od wersji 15) potrafi czytać niemiecką frakturę (= tzw. drukowane pismo gotyckie). 

Recognita i FineReader to jednak narzędzia komercyjne, płatne, czyli kapitalistyczne, a człowiek jako tako oświecony zazwyczaj gardzi karmicznym ścierwem, koncentrując się na darmowych rozwiązaniach typu Open Source, np. niedocenianym programem Tesseract, który już od wersji trzeciej potrafi rozpoznawać niemiecką frakturę, przy czym wspomniana wersja trzecia wymaga skanów bardzo dobrej jakości, aby skuteczność rozpoznania "gotyku" sięgała, powiedzmy, 80 procent całości. Dopiero wydanie wersji czwartej stało się skokiem kwantowym, gdyż dobry content graficzny, tzn. wysokorozdzielczy, przygotowany w postprocessingu (najlepiej znormalizowany/poprawiony optycznie, intensywnie wyostrzony i zapisany jako monochromatyczna mapa jednobitowa, czyli po prostu czarno-biała) jest "czytany" niemalże w stu procentach, o czym przekonałem się przesiadając się wczoraj z "trójki" na "czwórkę", więc szczerze polecam to narzędzie wszystkim potrzebującym.

Tesseract jest zasadniczo programem konsolowym, czyli terminalowym, czyli obsługiwanym z wiersza poleceń, jednak istnieją odpowiednie dedykowane nakładki graficzne, ułatwiające jego obsługę.

Osobiście korzystam z Linuksa, dla którego w przypadku wersji czwartej programu Tesseract chwilowo nie ma odpowiedniej nakładki graficznej (= są tylko GUI dla "trójki"), więc chcąc przeczytać plik graficzny z tekstem gotyckim o nazwie skan1.png w terminalu wydaję takie oto polecenie:

tesseract -l frk skan1.png skan1

A tak toto może wyglądać np. w konsoli/terminalu na Linuksie:

Po krótszej lub dłuższej chwili od momentu "walnięcia w Enter" obok pliku skan1.png pojawi się dokument tekstowy o nazwie skan1.txt z kodowaniem UTF-8, przy czym nagłosowy/śródgłosowy wariant niemieckiej  gotyckiej literki "s" pojawi się tamże jako "ſ", co nie jest takim głupim rozwiązaniem, o ile planujemy wykonać reprint starodruku z zachowaniem kroju frakturowego (po "podłożeniu" stosownej czcionki gotyckiej), z czego mogą chcieć skorzystać np. wydawnictwa czy drukarnie, jednak mocno wkurza to zwykłych użytkowników, dlatego wynikowy plik tekstowy należy jeszcze poddać szybkiej "naprawie", co łatwo można uzyskać poprzez "znajdź i zamień wszystkie" (ot, choćby w windzianym Notatniku, linuksowym Geany'm czy dowolnym "dużym" procesorze tekstu typu Word, OpenOffice Writer, LibreOffice Writer itp.).

Aby Tesseract czytał niemiecką frakturę, należy oczywiście mieć doinstalowany opcjonalny dodatek (w Linuksie występuje on pod nazwą tesseract-ocr-frk):

Najwyższą skuteczność rozpoznania uzyskamy w przypadku tekstów wydrukowanych czcionką frakturową bez wytłuszczenia, a im bardziej szczupły, smukły i filigranowy krój znaków, tym bezbłędność wyższa (np. kaiserowskie wydania leksykonu Meyersa z początku XX stulecia mają krój idealnie filigranowy, czyli ponadprzeciętnie dobrze nadający się do poddania procedurze OCR).


(Marcin Perliński)


Brak komentarzy:

Prześlij komentarz