Ideen muß man haben: Texterkennung mit Scrypto

Seit einigen Monaten ist es ruhig um die professionellen Texterkennungsprogramme geworden. Jetzt ist ein Programm auf dem PD-Markt, das durch einige kluge Features frischen Wind in die müden Segel der Profiprogrammierer bläst.

Das Kind lernt fix

Während die Flut der Textverarbeitungs- und Grafikprogramme mit mehr oder weniger professionellen Eigenschaften den PD-Fans die Wahl zur Qual macht, kommen nur selten gute Spezialanwendungen in die Regale der Händler. So auch Texterkennungsprogramme. Das ist um so mehr zu bedauern, als doch immer wieder gute Ideen der PD-Programmierer von den Profis aufgenommen werden. Und neue Ideen könnten gerade in diesem Bereich der kommerziellen Software zugute kommen.

»Scrypto« von Dieter v. Spreter gehört zu jenen Neuerscheinungen, die den Profientwicklern neue Impulse geben könnten. Um es vorweg zu nehmen: Das Programm steckt noch in den Kinderschuhen. Es gibt zu viele Beschränkungen, als daß es kommerziellen Produkten Konkurrenz machen könnte. Aber das Kind hat Ideen. Und für erste Versuche in Sachen OCR ist es gut zu gebrauchen.

Alle Texterkennungsprogramme arbeiten nach dem gleichen Prinzip: Ein Text wird als Grafik eingescannt. Das Bild teilt die Software im nächsten Schritt in Zeilen auf. Danach folgt die Isolierung der einzelnen Zeichen, die später als Buchstaben erkannt werden sollen. Jedes isolierte Zeichen bildet einen Grafikbereich, der analysiert und dann mit den Mustern einer Bibliothek verglichen wird. Der erkannte Text wird später als ASCII-Datei gespeichert. Unterschiede gibt es lediglich bei der Art der Analyse. Modern konzipierte Systeme erfassen die Eigenschaften der Zeichen, wie etwa Rundungen, Linien oder Winkel. Die werden dann mit den Eigenschaften bereits gelernter Zeichen einer Musterbibliothek verglichen.

Scrypto vergleicht aber die Pixelkonstellation eines isolierten Buchstabens der Grafik mit den verschiedenen Pixelmustern einer Bibliothek. Diese Muster sind in einer Datei zusammengefaßt, die während der Analyse um neue Muster erweitert werden kann. Durch den Pixelvergleich ist das Programm in der Lage, sogar kursive Schriften zu verarbeiten.

Leider können Sie nicht direkt aus dem Programm heraus scannen. Die Bilddatei muß schon vorhanden sein. Aber da das Programm das Image-Format unterstützt, dürften hier keine Probleme auftauchen.

Buchstaben lernen

Wie bei den meisten OCR-Programmen muß der Teil des Bildes, der erkannt werden soll, zunächst exakt bestimmt werden. In Scrypto wird dieser Bildteil nicht durch das Aufziehen eines Rahmens ermittelt; Sie markieren lediglich den linken oberen Anfangs- und den rechten unteren Endpunkt eines rechteckigen Grafikbereichs.

Störende Teile eines Bildes können gelöscht werden. Möglich ist hier nicht nur das Löschen von Linien, sondern auch eines Rechteckbereichs der Grafik.

Während des Erkennungsvorgangs befindet sich das Programm ständig im Lernmodus. Nicht erkannte Zeichen werden in einer Dialogbox angezeigt und können dann einem Buchstaben zugeordnet oder auch übersprungen werden. Das Erkennen zusammenhängender Zeichen, sog. Ligaturen, meistert Scrypto problemlos. Maximal drei Zeichen können Sie einem Pixelmuster zuweisen.

Die Stärken des Programms offenbaren sich beim Aufbau der Bibliothek und bei der Simultankorrektur des erkannten Textes. Sie können zu jeder Zeit des Erkennungsvorganges die Analyse unterbrechen, um die vorhandene Bibliothek zu bearbeiten. Bei Fehleingaben steht eine Funktion zur Verfügung, die Ihnen die letzten drei eingegebenen Zeichen der Bibliothek vorlegt. Die Pixelmuster können dann in einer Dialogbox neu zugeordnet werden.

Sollten Sie eine Fehleingabe erst später bemerken, stehen Ihnen zwei weitere Korrekturmöglichkeiten offen: entweder blättern Sie die komplette Bibliothek durch oder Sie erreichen den gewünschten Buchstaben direkt über die Tastatur. Allerdings wird nur die Bibliothek korrigiert, der bereits erkannte Text bleibt davon unberührt.

Da Scrypto sofort alle erkannten Buchstaben aus der Grafik löscht, können Sie nach jeder Unterbrechung mit der Analyse fortfahren. Das Programm findet automatisch den nächsten zu erkennenden Buchstaben.

Bibliotheken schnell bearbeiten

Zusammenhänge erkennen

Mittlerweile gehört eine »Kontextanalyse«, bei der bereits erkannter Text analysiert und korrigiert wird, zum Standard fast aller kommerziellen OCR-Programme. Dabei wird z. B. untersucht, ob sich eine Zahl mitten im Wort befindet. Ist diese eine »1«, wird die Zahl automatisch durch ein »1« ersetzt, da Ziffern nur in Sonderfällen mitten im Wort stehen dürften. Allerdings gestalten die Profiprogramme diese »Spellchecker«-Funktion recht unflexibel. Meist stehen nur einige Möglichkeiten in einer Dialogbox zur Wahl.

Scrypto geht da neue Wege. Zusätzlich zur Bibliothek wird ein Spellchecker geladen, der editiert werden kann! Das Prinzip ist so simpel wie effektiv: Einer bestimmten Zeichenfolge wird eine zweite Zeichenfolge zugeordnet. Während der Erkennung analysiert das Programm die bereits erkannten Zeichengruppen und vergleicht sie mit den Einträgen im Spellchecker.

Ist der Vergleich positiv, wird die Zeichenfolge durch den zweiten Eintrag des Spellcheckers ersetzt.

Ein klassisches Beispiel: Schlechte Vorlagen ergeben in der Grafik oft unterbrochene Buchstaben. So wird ein »m« von OCR-Programmen dann als zwei getrennte Zeichen analysiert. Im schlechtesten Fall wird der erste Teil des »m« als »n« erkannt, der zweite Teil als unbekannt nachgefragt. Beim Analysieren ordnen Sie dem zweiten Teil ein Sonderzeichen, z. B. ein »%«, zu. Wenn Sie nun im Scrypto-Spellchecker der Zeichenfolge »n%« ein »m« zuweisen, wird das Programm automatisch jedes »n%« durch ein »m« ersetzen. Maximal drei Zeichen erlaubt das Programm pro Spellchecker-Eintrag. Diese automatische Korrekturfunktion spart viel Aufwand, den eine Nachbearbeitung des erkannten Textes erfordern würde. Mit einem solchen Feature wären auch Profi-Programme gut beraten.

Ein zu geringer Zeilenabstand stellt die meisten kommerziellen Produkte ebenfalls vor scheinbar unlösbare Probleme. In solchen Fällen isolieren die Programme den unteren Teil der oberen Zeile und den oberen Teil der unteren Zeile. Dem Anwender wird dieser Pixelmüll dann als einzelnes Zeichen vorgelegt. Scrypto läßt Sie auch hier nicht allein. Sie können zwischen solche Zeilen eine Leerzeile einfügen. Danach werden die Zeichen korrekt isoliert.

Die Erkennungsrate ist bei gut gefüllter Bibliothek und passabler Vorlagenqualtität sehr gut. Das gilt auch für die Segmentierung, also die Aufteilung der Grafik in einzelne Zeichen. Das heißt, daß die Analyse einer Seite, deren Zeichen bereits gelernt wurden, lediglich ein bis zwei erneute Nachfragen zur Folge hat. Da schneiden auch kommerzielle Programme nicht besser ab.

Dennoch wollen wir die Schwachpunkte nicht verschweigen: In der kompilierten Version, das Programm wurde in Omikron-Basic geschrieben, kann es nur ein einziges Bild verarbeiten. Für jede neue gescannte Seite müssen Sie das Programm beenden und wieder starten. Mit einer Festplatte ist das noch hinzunehmen. Wer aber nur ein Diskettenlaufwerk zur Verfügung hat, wird ob der langen Ladezeiten schnell die Geduld verlieren. Außerdem zeigt sich das Programm bei schief gescannten Vorlagen wenig tolerant. Sie werden abgewiesen. Arbeiten Sie mit einem Handscanner, sollten Sie eine ruhige Hand haben.

Fazit: Das Programm zeigt interessante Features, die wir bei mancher kommerzieller OCR-Software vermissen. Geschwindigkeit und Trefferquote brauchen den Vergleich nicht zu scheuen. Lediglich die Einschränkungen, sei es nun die fehlende Scannerunterstützung oder die Beschränkung auf ein Bild pro Arbeitssitzung, machen es für die Erkennung umfangreicher Texte unbrauchbar. Für den Gelegenheitsscan ist es aber hervorragend geeignet. (thl)

Innovativ: editierbarer Spellchecker

Detlef Fabian
Links

Copyright-Bestimmungen: siehe Über diese Seite