Als Maß hatte ich dort die Worterkennungsrate verwendet, da diese im Vergleich zur Zeichenerkennungsrate genauer ist. Gerade bei Verfahren, die intern Wörterbücher verwenden, kann die Zeichenerkennungsrate hoch sein, der Text bleibt dennoch unleserlich.
Um die Erkennungsqualität von Tesseract 3.02 zu verbessern habe ich mir die Beschreibung der Konfigurationsoptionen unter http://www.sk-spell.sk.cx/tesseract-ocr-parameters-in-302-version angeschaut.
Folgende Werte hatte ich bisher in der Datei deu-frak.config stehen:
enable_new_segsearch 1
textord_space_size_is_variable 1
load_bigram_dawg 1
Die Worterkennungsrate betrug damit 86% (die Diskrepanz zum Wert 60% aus Blogpost rührt daher, daß die Wörter der benutzten Seite da noch nicht im fürs Training verwendeten Wörterbuch steckten. Dies zeigt, wie wichtig die Pflege eines korrekten Wörterbuches für die Erkennungsrate von Tesseract ist).
Im ersten Schritt habe ich nur einzelne der ff. Parameter (* zeigt Default an) verändert:
Parameter | 0 | 1 |
---|---|---|
enable_new_search | 92% | (*) 86% |
language_model_ngram | (*) 86% | 36% |
textord_old_baselines | 89% | (*) 86% |
Die Werte textord_space_size_is_variable, load_bigram_dawg, edges_use_new_outline_complexity, permute_script_word, ngram_permuter_activated, use_new_state_cost führten zu keiner Änderung der Erkennungsrate von 86%.
Warum die Erkennungsrate bei language_model_ngram so stark einbricht, verstehe ich noch nicht.
Im zweiten Schritt habe ich die beiden Parameter, die eine Verbesserung zeigten, kombiniert. Voila!, die Worterkennungsrate steigt auf 93%!
Wer noch Hinweise für sinnvolle Kombinationsmöglichkeiten anderer Parameter hat, immer her damit! :)