Dienstag, 25. Juni 2013

Binarisierung

Vorwort


Mit der Binarisierung ist das Überführen eines Farb- oder Graustufenbildes in eine monochrome, dh. nur schwarze oder weiße Pixel enthaltene Dartsellung.

Gescannte Vorlagen binarisiert man aus zwei Gründen, zum einen sparen monochrome Bilder Speicherplatz, zum anderen soll mit der Binarisierung versucht werden, den Kontrast der Scanvorlagen so zu erhöhen, daß eine eindeutige Zuordnung zwischen Vordergrund und Hintergrund möglich ist.

Schwierig bis unsinnig ist die Binarisierung dann, wenn man mehrfarbige Schrift ev. sogar auf mehrfarbige Hintergründe hat. Auf dieses Problem gehe ich in einem zukünftigen Beitrag ein. Nicht sinnvoll ist Binarisierung von Photos (abgesehen von einer künstlerisch gewollten Gestaltung).

Schwellwert-Variante


Das einfachste Verfahren ist das Schwellwertverfahren. Dazu wandeln wir das Eingangsbild im RGB-Modus zum Beispiel nach der Formel

  Y = 0.212671 * R + 0.715160 * G + 0.072169 * B;


in ein Graustufenbild um.
(aus: ITU-R Recommendation BT.709, Basic Parameter Values for the HDTV
Standard for the Studio and for International Programme Exchange (1990),
[formerly CCIR Rec. 709], ITU, 1211 Geneva 20, Switzerland.)

Wenn wir nun einen geeigneten Schwellwert zwischen 0.0 und 1.0 finden, haben wir eine einfache Binarisierung erreicht, wie sie zum Beispiel Gimp anbietet.

Globale vs. lokale Anwendung


Der Nachteil des Schwellwertverfahrens wird dann deutlich, wenn wir annehmen der optimale Schwellwert wäre 0.5 und die Schrift ist grau mit Wert 0,5 auf dunklem Hintergrund im ersten Teil des Bildes und weiß mit Wert 1,0 auf hellem Hintergrund mit Wert 0,5 des anderen Teil des Bildes. Würden wir einen globalen Schwellwert anwenden, würde ein Teil der Schrift dann untergehen.
Graustufenbild s/w-Bild mit globalem Threshold
Würden wir stattdessen immer die lokale Umgebung eines Pixels betrachten, zB. 30x30 Pixel um den aktuellen herum, würde das Ergebnis so aussehen:
lokaler Threshold

Nachteilig bei lokalen Verfahren ist die deutlich höhere Rechenzeit, da für jeden Pixel die nähere Umgebung angeschaut werden muß.

Verschiedene Verfahren

Es gibt etliche Verfahren, den "optimalen" Schwellwert, sowohl global, wie auch lokal zu bestimmen. Als Test habe ich das oben schon gezeigte Eingangsbild genommen. In der Praxis hat sich lokales Sauvola mit Fenster von 30x30 Pixeln bewährt.

Hier die Ergebnisse:

gescannt
niblack local 30x30, 0,2
Sauvola global
Sauvola local, 30x30
Gimp, threshold







Kurzfassung Algorithmus Niblack

Beim niblack-Algorithmus, wird der Mittelwert m und die Standardabweichung s über alle Pixelwerte gebildet und nach folgender Vorschrift angewandt:

T = m + K* s

mit K=0,2

Wenn der Pixelwert P > T ist wird er weiß eingefärbt, sonst schwarz.

Kurzfassung Algorithmus Sauvola

Bei Sauvola sieht die Formel ein klein wenig anders aus:

T = m + ( 1 + (0,6 * (s / r - 1.0))

mit r = 128 für 256 Grauwerte.

Weiterführende Infos

Ebenfalls einen guten Eindruck der verschiedenen Verfahren bietet Stackoverflow.
Und  bei Sezgin and Sankur findet man im "Survey over image thresholding techniques and quantitive performance evaluation", Journal of Electronic Imaging 13(1), 146-165 (January 2004) eine Überblicksanalyse.


Montag, 17. Juni 2013

Die Festung Königstein

Nach längerer Zeit mal wieder ein Text von Alfred Leuschke (1845–1932, Oberlehrer und Vorsitzender des Dresdner Lehrervereins), der im Rahmen meines Projektes »Bunte Bilder aus dem Sachsenlande«  (Bd. I, 1902, Neunte Auflage, S.112–116) fertig korrigiert wurde.

Die Feſtung Königſtein.

Einer der intereſſanteſten Gipfel der Felſenwelt der ſächſiſchen Schweiz iſt der Königſtein, zugleich auch eine der berühmteſten und merkwürdigſten Berg-feſtungen Deutſchlands. Beſpült an ſeinem Fuße von den Fluten des lieblichen Elbſtroms, liegt der Königſtein, ein freiſtehender Felskegel, gegenüber ſeinem auf der rechten Seite der Elbe aus dem Thale mächtig emporſteigenden Zwillings–bruder, dem durch kühne, hochaufſtrebende Formen ſich auszeichnenden Lilienſtein.
Schon aus weiter Ferne durch die weißſchimmernden Felſenwände und die auf der Plattform befindlichen Gebäude erkennbar, gleicht der Königſtein einem Felſenneſte, das durch ſeine drohend ins Thal hinabſchauenden Kanonen den Elbſtrom und die Böhmiſche Bahn gegen eine durch das Elbthal vordringende feindliche Armee beherrſcht.

Schon in den älteſten Zeiten hat der Königſtein als wichtiger Punkt gegolten.
Als in grauer Vorzeit die Sorben, immer weiter nach Weſten vordringend, ihre Wohnplätze in unſerm jetzigen Vaterlande aufſchlugen, befeſtigten ſie verſchiedene Punkte an der Elbe, auch den „Stain“ oder „Kunygenſtein“, wie dieſer Felſen in alten Urkunden genannt wurde. In jener Zeit erhob ſich aber auf dem „Stain“ noch keine Burg, ſondern aufgehäufte Steinhaufen, übereinandergeſchichtete Baumſtämme und  Balken, aus Reiſig und Steinen errichtete Verhaue bildeten die Befeſtigungen, hinter welchen die Sorben den Angriffen ihrer Feinde Widerſtand zu leiſten verſuchten. Erſt ſpäter wurde auf der Plattform des „Stains“ eine Steinburg errichtet. Oft wechſelten die Beſitzer, und der „Stain“ bildete in jener Zeit vielfach den Gegenſtand der Fehde. Lange iſt der Berg mit der darauf errichteten Burg im Beſitze der Böhmen geweſen. Den mächtigen Burggrafen zu Dohna gehörte er als böhmiſches Lehen, bis er endlich in den bleibenden Beſitz der Markgrafen von Meißen kam.

Die Huſſiten, die jahrelang raubend, ſengend und brennend durch die ſächſiſchen Lande zogen, Städte Und Dörfer unbarmherzig zerſtörten und die fruchtbaren Fluren verwüſteten, hatten auch das alte Schloß auf dem Königſtein niedergebrannt. Man hielt die Wiederherſtellung der Burg für unnötig, weil der ſtarkbefeſtigte Sonnenſtein bei Pirna als Hauptfeſtung gegen Böhmen von jetzt an dienen ſollte.

Georg der Bärtige, zwar ein Zeitgenoſſe des großen Reformators Luther und Friedrichs des Weiſen, trotzdem aber ein eifriger Gegner der neuen Lehre und ein gehorſamer, treuer Sohn der katholiſchen Kirche, erbaute auf dem Felſen ein Cöleſtinerkloſter, in das er zwölf Mönche aus dem Kloſter Oybin bei Zittau berief. Dieſes Kloſter ſollte aber nicht von langem Beſtande ſein; denn im Herzogtume Sachſen gewann die Reformation trotz der außerordentlichen Strenge, mit der Georg die Anhänger der neuen Lehre verfolgte, immer mehr Boden, das Morgenrot einer neuen Zeit leuchtete auch in die Zellen des auf einſamer Höhe gelegenen Kloſters, und bewegt von dem wunderbaren Geſange der Wittenberger Nachtigal und mächtig ergriffen durch die kühnen, weltbewegenden Worte des Wittenberger Mönchs, deſſen gewaltige Hammerſchläge auch an die Thore des Cöleſtinerkloſters vernehmlich gepocht hatten, verließ die kleine Schar der Mönche, der würdige Prior an der Spitze, das Kloſter auf dem Königſtein und zog mit Jauchzen und Frohlocken durch die finſtere Kloſterpforte hinaus in Gottes ſchöne, weite Welt.

Das Kloſter wurde geſchloſſen, und da, wo vor kurzem noch das Kloſterglöckchen die Beter aus dem Thale hinauf nach der Kapelle gerufen, die Mönche ihre Meſſe geleſen und das Ave Maria gebetet hatten, ertönte jetzt das Klirren der Sporen und das Raſſeln der Säbel. Die mutigen Söhne des Mars hatten auf der alten Veſte ihren Einzug gehalten und ſich in den alten Kloſtergebäuden häuslich niedergelaſſen, wo ſie ſich wohler fühlten als vor ihnen die Männer mit der Tonſur und der langen Kutte.

Durch Vater Auguſt erhielt der Königſtein zuerſt ſeine große Bedeutung als Feſtung, und unter ſeinen Nachfolgern wurde auf die weitere Befeſtigung immer mehr Sorgfalt verwendet. Ein in die Felſen gearbeitetes Thor bildete den Zugang zur Feſtung. Bei Aufführung der großen, mächtigen Wände wurden teilweiſe die ſteilen Felſen mit benutzt. Eine größere Anzahl Gebäude, wie die Georgenburg, die Friedrichs— oder Chriſtiansburg, nach ihren fürſtlichen Erbauern
genannt, wurden auf der Plattform des Felſens errichtet. Bombenfeſte, in die Felſen gearbeitete gewölbte Kaſematten wurden angelegt, in welchen bei einer Belagerung die Beſatzung vor den feindlichen Kugeln geſchützt ſein ſollte. Außerdem errichtete man rings um den Felſen am Rande der Plattform zahlreiche Baſtionen und hohe Bruſtwehren, durch deren Schießſcharten die Mündungen der Kanonen lugen, aus denen in Zeiten des Krieges die Tod und Verderben bringenden Kugeln hinab ins friedliche, blühende Thal geſchleudert werden. Liebliche Gärten mit den duftigſten Blumen und blühenden Obſtbäumen, welche die Wohnungen der Offiziere und Beamten umgeben, und gut gepflegte Anlagen mit lauſchigen Plätzen laſſen auf Augenblicke ganz vergeſſen, daß man ſich auf einer Bergveſte befindet.

Beſonders erwähnenswert iſt der auf Anordnung des Kurfürſten Auguſt I. angelegte Brunnen, deſſen Ausführung wegen der vereinzelten Lage des Felſens und der Durchläſſigkeit der Sandſteinſchichten große Schwierigkeiten verurſachte, und der gewiß als eins der großartigſten Werke dieſer Gattung bezeichnet werden darf. Er iſt durchaus in Sandſteinfelſen gehauen. Seine Tiefe beträgt 187 m, der Waſſerſtand 17 m, und zu ſeiner Herſtellung war ein Zeitraum von 40 Jahren erforderlich.

Steht man am Fuße der Feſtung und ſchaut an den hohen, ſenkrechten, ſtellenweiſe ſogar überhängenden Felſen empor, ſo wird man es begreiflich finden, daß die Feſtung früher für unüberwindlich gehalten wurde. Ein Aushungern ſchien ebenſo unmöglich zu ſein wie eine Erſtürmung; denn die in den Kaſematten untergebrachten Vorräte konnten nicht vernichtet, der Erſatz infolge der Möglichkeit eigener Wiederherſtellung nicht verhindert und das Brunnenwaſſer nicht abgegraben werden. Die Feſtung iſt denn auch in keinem der vielen Kriege, in welchen Sachſen als Kriegsſchauplatz diente, von Feindeshand genommen worden. Daß ſie auch heute noch den weittragenden Geſchützen widerſtehen könne, wird allerdings bezweifelt. Hat aber auch der Königſtein infolge der großartigen Verbeſſerung der Geſchütze und der heutigen Kriegsführung nicht mehr ſeine frühere Bedeutung, ſo ſcheint man doch in militäriſchen Kreiſen dieſem Felſenneſte noch heute einen nahen Wert beizumeſſen, da die Feſtung ſtets in gutem Zuſtande erhalten wird und erſt neuerdings bedeutende bauliche Veränderungen und Wiederherſtellungen ſowohl im Innern, als auch an den Mauern der Feſtung vorgenommen worden ſind.

Einmal iſt allerdings die Einnehmbarkeit der Feſtung bewieſen worden. Ein Schornſteinfeger ſtieg im Jahre 1848 an der Südſeite, in einer Felsſpalte aufwärtsklimmend, empor und erreichte glücklich, wenn auch mit blutenden Händen und Füßen, die Bruſtwehr.

In Kriegszeiten dient die Feſtung zur Aufnahme der Archive und der Schätze des Staates; wiederholt wurden hier oben die wertvollen und berühmten Kunſtſammlungen der Hauptſtadt, z. B. die Schätze des Grünen Gewölbes, geborgen. Auch die königliche Familie hat mehrfach in den Zeiten der Gefahr auf dem Königſtein eine ſichere Zufluchtsſtätte gefunden.

In früherer Zeit diente die Georgenburg auf der Feſtung als Staatsgefängnis. Einer der bedeutendſten Gefangenen war Nikolaus Crell, einſt allmächtiger Kanzler des Kurfürſten Chriſtian I., der mit Gewalt die reformierte Lehre in Sachſen einzuführen ſich bemühte und die härteſten Maßregeln gegen die Lutheraner anwandte. Crell wurde zehn Jahre lang in grauſamer Gefangenſchaft gehalten, bevor er durch Henkers Beil auf dem Neumarkte in Dresden hingerichtet wurde. Auch der Kanzliſt Menzel, der Friedrich dem Großen wichtige Papiere aus der kurfürſtlichen Kanzlei zukommen ließ, mußte hier oben dreiunddreißig Jahre lang den an ſeinem Vaterlande begangenen Verrat büßen.

Ein bequemer Weg, welcher prächtige Ausblicke auf das liebliche Elbthal bietet, fährt aus der am Fuße der Feſtung gelegenen freundlichen Stadt Königſtein hinauf nach der Feſtung. Über Brücken, durch Thore, auch durch einen in den Felſen gehauenen langen gewölbten Gang gelangt man in den
inneren Raum derſelben.

Nur in Begleitung eines Soldaten iſt es geſtattet, die Sehenswürdigkeiten der Feſtung in Augenſchein zu nehmen und einen Rundgang auf der Plattform zu machen, von der man eine wahrhaft entzückende Ausſicht auf den klaren Spiegel des Elbſtroms und die Berge und Thäler der ſächſiſchen Schweiz hat.

Die große Anzahl der buntbewimpelten Zillen und Kähne, welche die reichen Produkte Böhmens zu Thal fahren, die ſchmucken, grünweißen Raddampfer mit Hunderten von Vergnügungsreiſenden an Bord, welche die Schönheiten des Gebirges und die lieblichen Gelände der Elbe bewundern, und die von kundiger Hand geführten, langgeſtreckten böhmiſchen Holzflöße bieten ein ungemein belebtes und bewegtes Bild. Um den Königſtein aber gruppieren ſich viele andere mit prächtigem Walde bewachſene Berge und Bergkuppen und durch die mannigfaltigſten Formen ſich auszeichnende kahle Felſen und Wände. Die Berge der  Lauſitz, die ſtolzen Kegel des Böhmerlandes und des Erzgebirges, ſie alle ſchauen herüber aus weiter Ferne, und über alle die grünen Wälder, Wieſen und wogen den Saatenfelder ſchweift das Auge hinab in die Ebene, aus welcher uns bei klarem Wetter im Scheine der goldenen Abendſonne die Türme der königlichen Reſidenz begrüßen.

Alfred Leuſchke.

Mittwoch, 5. Juni 2013

Teil 9, Selbstversuch Ebook - Befreiung am Beispiel "Bunte Bilder aus dem Sachsenlande", Verbesserung Tesseracts Erkennungsrate

Im letzten Blogpost "OCR Qualität bestimmen" habe ich grob beschrieben, wie man beurteilen kann, wie gut die Erkennungsqualität der verschiedenen OCR-Engines ist.
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:

Parameter01
enable_new_search92%(*) 86%
language_model_ngram(*) 86%36%
textord_old_baselines89%(*) 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! :)

OCR Qualität bestimmen

wdiff


Mit 'wdiff' habe ich nun mal den Vergleich gemacht zwischen trainiertem Tesseract, trainiertem Ocropus, und Tesseract in Standardauslieferung mit Deutsch (deu).

Dazu habe ich eine Seite als Vergleich herangezogen, die ich schon in http://art1pirat.blogspot.de/2013/01/teil-8-selbstversuch-ebook-befreiung-am.html voll korrigiert hatte.

Der Aufruf sieht so aus: "wdiff -s $CORRECT $OCRED | tail -1"

Ergebnisse


Tesseract (trainiert)
img110_tesseract.txt: 322 Wörter  193 60% gleich  0 0% eingefügt  129 40% verändert

Tesseract (deu)
img110_tesseract.txt: 322 Wörter  62 19% gleich  0 0% eingefügt  260 81% verändert

Ocropus 0.7 (trainiert)
img110_ocropus.txt: 419 Wörter  108 26% gleich  0 0% eingefügt  311 74% verändert


Fazit


Wie man sieht, Training lohnt sich. ;)
 
Ocropus 0.7 stürzt beim Training (sh. http://art1pirat.blogspot.de/2013/05/ocropus-07-training.html) ab, ich habe den letzten funktionierenden Zwischenstand (nach 5190 Schritten) des Modells genommen, den man via ff. Aufruf bekommt:

ocropus-rtrain 'ocropus/*/*.bin.png' -F 30 -d 1 -o bbads_fraktur

Dabei sorgt die Option -F 30 dafür, daß aller 30 Schritte das Modell (bbads_fraktur) gesichert wird.

Tesseract hat noch einen vermutlich für Fraktur besser arbeitenden Trainingsmodus namens Cube. Wer dazu Infos hat, immer her damit.

Ansonsten habe ich jetzt ein Werkzeug an der Hand die Auswirkungen der verschiedenen Optionen der OCR-Engines und der Vorverarbeitungen quantitativ zu überprüfen.