| Operatoren |
do_ocr_word_svm — Klassifikation einer Zeichengruppe mit einem OCR-Klassifikator.
do_ocr_word_svm(Character, Image : : OCRHandle, Expression, NumAlternatives, NumCorrections : Class, Word, Score)
do_ocr_word_svm verhält sich wie do_ocr_multi_class_svm, indem es mit dem durch OCRHandle gegebenen OCR-Klassifikator zu den durch die Regionen Character und die Grauwerte Image gegebenen Zeichen die jeweils beste Klasse berechnet und diese in Class zurückgibt.
Im Gegensatz zu do_ocr_multi_class_svm behandelt do_ocr_word_svm die Zeichengruppe als eine Einheit, die durch Aneinanderhängen von Klassennamen für jedes einzelne Zeichen ein Wort Word liefert. Dies ermöglicht die Einschränkung der erlaubten Klassifikationsergebnisse auf Textebene durch Angabe eines Ausdrucks Expression, der das erwartete Wort beschreibt.
Ein Ausdruck kann das Wort auf ein festes Lexikon, welches zuvor durch create_lexicon oder import_lexicon erzeugt wurde, einschränken, indem der Name des Lexikons in spitzen Klammern wie in '<meinlexikon>' angegeben wird. Ist der Ausdruck nicht von dieser Form, so wird er als regulärer Ausdruck mit derselben Syntax wie für tuple_regexp_match interpretiert. Bei Verwendung von Quantifikatoren wie '*' sollte man normalerweise mit einem Ausdruck der Form '^...'$'' dafür sorgen, dass das gesamte Wort verwendet wird.
Im Gegensatz zu tuple_regexp_match erlaubt do_ocr_word_svm keine Angabe von zusätzlichen Optionen für Expression in einem Tupel.
Falls das aus den jeweils besten Klassen abgeleitete Wort dem Ausdruck nicht genügt, versucht do_ocr_word_svm eine Korrektur durch Berücksichtigung der NumAlternatives besten Klassen für jedes Zeichen, so wie sie von do_ocr_single_class_svm für ein einzelnes Zeichen bestimmt werden. Hierzu werden alle möglichen Korrekturen ausprobiert, bei denen die Klassifikation von höchstens NumCorrections Zeichenregionen geändert wird.
Falls der Ausdruck ein Lexikon beschreibt und die obige Prozedur nicht zum Erfolg führte, so wird das ähnlichste Wort aus dem Lexikon zurückgegeben, solange für die Korrektur weniger als NumCorrections Editieroperationen benötigt werden (siehe suggest_lexicon).
Das Ergebnis wird mit einer Score zwischen 0.0 (keine Korrektur gefunden) und 1.0 (ursprüngliches Wort war schon korrekt) bewertet, welche im Wesentlichen von der Anzahl der korrigierten Zeichen bestimmt ist, aber auch kleinere Strafen für das Ignorieren der zweitbesten oder gar aller Klassen beinhaltet.
Zu erkennende Zeichen.
Grauwerte der Zeichen.
Handle des OCR-Klassifikators.
Ausdruck, der die erlaubte Wortstruktur beschreibt
Anzahl der Klassen pro Zeichen, die für die interne Wortkorrektur berücksichtigt werden.
Defaultwert: 3
Wertevorschläge: 3, 4, 5
Typischer Wertebereich: 1 ≤ NumAlternatives
Maximale Anzahl der korrigierten Zeichen.
Defaultwert: 2
Wertevorschläge: 1, 2, 3, 4, 5
Typischer Wertebereich: 0 ≤ NumCorrections
Ergebnis der Klassifikation der Zeichen durch die SVM.
Parameteranzahl: Class == Character
Text des Wortes nach Klassifikation und Korrektur.
Ähnlichkeitsmaß von korrigiertem Wort zum Original.
Die Komplexität des Prüfens aller möglichen Korrekturen hat die Größenordnung , wobei a die Anzahl der Alternativen, n die Anzahl der Zeichenregionen und c die Anzahl der erlaubten Korrekturen ist. Als Absicherung gegen quasi-unendliche Schleifen im Falle von großem n wird der Wert von c intern beschränkt auf 5, 3, oder 1, falls a*n >= 30, 60, bzw. 90.
Sind die Parameterwerte korrekt, dann liefert do_ocr_word_svm den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
trainf_ocr_class_svm, read_ocr_class_svm
create_ocr_class_svm, classify_class_svm
OCR/OCV
| Operatoren |