do_ocr_word_mlp T_do_ocr_word_mlp DoOcrWordMlp DoOcrWordMlp (Operator)
Name
do_ocr_word_mlp T_do_ocr_word_mlp DoOcrWordMlp DoOcrWordMlp
— Klassifikation einer Zeichengruppe mit einem OCR-Klassifikator.
Signatur
void DoOcrWordMlp (const HObject& Character , const HObject& Image , const HTuple& OCRHandle , const HTuple& Expression , const HTuple& NumAlternatives , const HTuple& NumCorrections , HTuple* Class , HTuple* Confidence , HTuple* Word , HTuple* Score )
HTuple HRegion ::DoOcrWordMlp (const HImage& Image , const HOCRMlp& OCRHandle , const HString& Expression , Hlong NumAlternatives , Hlong NumCorrections , HTuple* Confidence , HString* Word , double* Score ) const
HString HRegion ::DoOcrWordMlp (const HImage& Image , const HOCRMlp& OCRHandle , const HString& Expression , Hlong NumAlternatives , Hlong NumCorrections , double* Confidence , HString* Word , double* Score ) const
HString HRegion ::DoOcrWordMlp (const HImage& Image , const HOCRMlp& OCRHandle , const char* Expression , Hlong NumAlternatives , Hlong NumCorrections , double* Confidence , HString* Word , double* Score ) const
HString HRegion ::DoOcrWordMlp (const HImage& Image , const HOCRMlp& OCRHandle , const wchar_t* Expression , Hlong NumAlternatives , Hlong NumCorrections , double* Confidence , HString* Word , double* Score ) const
(Nur Windows)
HTuple HOCRMlp ::DoOcrWordMlp (const HRegion& Character , const HImage& Image , const HString& Expression , Hlong NumAlternatives , Hlong NumCorrections , HTuple* Confidence , HString* Word , double* Score ) const
HString HOCRMlp ::DoOcrWordMlp (const HRegion& Character , const HImage& Image , const HString& Expression , Hlong NumAlternatives , Hlong NumCorrections , double* Confidence , HString* Word , double* Score ) const
HString HOCRMlp ::DoOcrWordMlp (const HRegion& Character , const HImage& Image , const char* Expression , Hlong NumAlternatives , Hlong NumCorrections , double* Confidence , HString* Word , double* Score ) const
HString HOCRMlp ::DoOcrWordMlp (const HRegion& Character , const HImage& Image , const wchar_t* Expression , Hlong NumAlternatives , Hlong NumCorrections , double* Confidence , HString* Word , double* Score ) const
(Nur Windows)
static void HOperatorSet .DoOcrWordMlp (HObject character , HObject image , HTuple OCRHandle , HTuple expression , HTuple numAlternatives , HTuple numCorrections , out HTuple classVal , out HTuple confidence , out HTuple word , out HTuple score )
HTuple HRegion .DoOcrWordMlp (HImage image , HOCRMlp OCRHandle , string expression , int numAlternatives , int numCorrections , out HTuple confidence , out string word , out double score )
string HRegion .DoOcrWordMlp (HImage image , HOCRMlp OCRHandle , string expression , int numAlternatives , int numCorrections , out double confidence , out string word , out double score )
HTuple HOCRMlp .DoOcrWordMlp (HRegion character , HImage image , string expression , int numAlternatives , int numCorrections , out HTuple confidence , out string word , out double score )
string HOCRMlp .DoOcrWordMlp (HRegion character , HImage image , string expression , int numAlternatives , int numCorrections , out double confidence , out string word , out double score )
Beschreibung
do_ocr_word_mlp do_ocr_word_mlp DoOcrWordMlp DoOcrWordMlp DoOcrWordMlp
verhält sich wie do_ocr_multi_class_mlp do_ocr_multi_class_mlp DoOcrMultiClassMlp DoOcrMultiClassMlp DoOcrMultiClassMlp
,
indem es mit dem durch OCRHandle OCRHandle OCRHandle OCRHandle OCRHandle
gegebenen OCR-Klassifikator zu
den durch die Regionen Character Character Character Character character
und die Grauwerte Image Image Image Image image
gegebenen Zeichen die jeweils beste Klasse berechnet, und die Klassen in
Class Class Class Class classVal
und die zugehörigen Konfidenzen (Wahrscheinlichkeiten)
der Klassen in Confidence Confidence Confidence Confidence confidence
zurückgibt.
Im Gegensatz zu do_ocr_multi_class_mlp do_ocr_multi_class_mlp DoOcrMultiClassMlp DoOcrMultiClassMlp DoOcrMultiClassMlp
behandelt
do_ocr_word_mlp do_ocr_word_mlp DoOcrWordMlp DoOcrWordMlp DoOcrWordMlp
die Zeichengruppe als eine Einheit, die
durch Aneinanderhängen von Klassennamen für jedes einzelne Zeichen
ein Wort Word Word Word Word word
liefert. Dies ermöglicht die Einschränkung
der erlaubten Klassifikationsergebnisse auf Textebene durch Angabe
eines Ausdrucks Expression Expression Expression Expression expression
, der das erwartete Wort beschreibt.
Ein Ausdruck kann das Wort auf ein festes Lexikon, welches
zuvor durch create_lexicon create_lexicon CreateLexicon CreateLexicon CreateLexicon
oder import_lexicon import_lexicon ImportLexicon ImportLexicon ImportLexicon
erzeugt wurde, einschränken, indem der Name des Lexikons in
spitzen Klammern wie in '<meinlexikon>' "<meinlexikon>" "<meinlexikon>" "<meinlexikon>" "<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 tuple_regexp_match TupleRegexpMatch TupleRegexpMatch TupleRegexpMatch
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 tuple_regexp_match TupleRegexpMatch TupleRegexpMatch TupleRegexpMatch
erlaubt
do_ocr_word_mlp do_ocr_word_mlp DoOcrWordMlp DoOcrWordMlp DoOcrWordMlp
keine Angabe von
zusätzlichen Optionen für Expression Expression Expression Expression expression
in einem Tupel.
Falls das aus den jeweils besten Klassen abgeleitete Wort dem Ausdruck
nicht genügt, versucht do_ocr_word_mlp do_ocr_word_mlp DoOcrWordMlp DoOcrWordMlp DoOcrWordMlp
eine Korrektur durch
Berücksichtigung der NumAlternatives NumAlternatives NumAlternatives NumAlternatives numAlternatives
besten Klassen für
jedes Zeichen, so wie sie von do_ocr_single_class_mlp do_ocr_single_class_mlp DoOcrSingleClassMlp DoOcrSingleClassMlp DoOcrSingleClassMlp
für
ein einzelnes Zeichen bestimmt werden. Hierzu werden alle möglichen
Korrekturen ausprobiert, bei denen die Klassifikation von höchstens
NumCorrections NumCorrections NumCorrections NumCorrections numCorrections
Zeichenregionen geändert wird.
Zu beachten ist hierbei, dass NumAlternatives NumAlternatives NumAlternatives NumAlternatives numAlternatives
und
NumCorrections NumCorrections NumCorrections NumCorrections numCorrections
Auswirkungen auf die Komplexität des Algorithmus
haben und daher in manchen Fällen intern beschränkt werden müssen. Für
weitere Informationen siehe den Abschnitt 'Komplexität' weiter unten.
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 NumCorrections NumCorrections NumCorrections numCorrections
Editieroperationen benötigt werden (siehe suggest_lexicon suggest_lexicon SuggestLexicon SuggestLexicon SuggestLexicon
).
Das Ergebnis wird mit einem Score Score Score Score score
zwischen 0.0 (keine Korrektur
gefunden) und 1.0 (ursprüngliches Wort war schon korrekt) bewertet.
Verringert wird der Score Score Score Score score
durch das Anbringen einer Strafe
entsprechend der Anzahl korrigierter Zeichen und einer (kleineren)
Strafe für das Ignorieren von Klassen mit höherer Konfidenz um einen
Ausdruck Expression Expression Expression Expression expression
zu erhalten:
wobei num_corr
die Anzahl tatsächlich angebrachter Korrekturen und
num_alt
die Anzahl ignorierter Alternativen ist.
Diese Bewertung ist rein kombinatorisch und
berücksichtigt nicht die ursprünglichen Konfidenzen
der besten Klassen.
Eine Zeichenkette des Zahlenwertes
'\032' "\032" "\032" "\032" "\032" (alternativ
als '\0x1A' "\0x1A" "\0x1A" "\0x1A" "\0x1A" dargestellt) im
Resultat Class Class Class Class classVal
bedeutet, dass die Region als Rückweisungsklasse
klassifiziert wurde.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Wird ohne Parallelisierung verarbeitet.
Parameter
Character Character Character Character character
(input_object) region(-array) →
object HRegion HRegion Hobject
Zu erkennende Zeichen.
Image Image Image Image image
(input_object) singlechannelimage →
object HImage HImage Hobject (byte / uint2)
Grauwerte der Zeichen.
OCRHandle OCRHandle OCRHandle OCRHandle OCRHandle
(input_control) ocr_mlp →
HOCRMlp , HTuple HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Handle des OCR-Klassifikators.
Expression Expression Expression Expression expression
(input_control) string →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Ausdruck, der die erlaubte Wortstruktur beschreibt
NumAlternatives NumAlternatives NumAlternatives NumAlternatives numAlternatives
(input_control) integer →
HTuple HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
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
NumAlternatives
NumAlternatives
NumAlternatives
numAlternatives
NumCorrections NumCorrections NumCorrections NumCorrections numCorrections
(input_control) integer →
HTuple HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Maximale Anzahl der korrigierten Zeichen.
Defaultwert: 2
Wertevorschläge: 1, 2, 3, 4, 5
Typischer Wertebereich: 0
≤
NumCorrections
NumCorrections
NumCorrections
NumCorrections
numCorrections
Class Class Class Class classVal
(output_control) string(-array) →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Ergebnis der Klassifikation der Zeichen durch
das MLP.
Parameteranzahl: Class == Character
Confidence Confidence Confidence Confidence confidence
(output_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Konfidenz der Klasse der Zeichen.
Parameteranzahl: Confidence == Character
Word Word Word Word word
(output_control) string →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Text des Wortes nach Klassifikation und Korrektur.
Score Score Score Score score
(output_control) real →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Ähnlichkeitsmaß von korrigiertem Wort zum Original.
Komplexität
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.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert
do_ocr_word_mlp do_ocr_word_mlp DoOcrWordMlp DoOcrWordMlp DoOcrWordMlp
den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird
eine Fehlerbehandlung durchgeführt.
Vorgänger
trainf_ocr_class_mlp trainf_ocr_class_mlp TrainfOcrClassMlp TrainfOcrClassMlp TrainfOcrClassMlp
,
read_ocr_class_mlp read_ocr_class_mlp ReadOcrClassMlp ReadOcrClassMlp ReadOcrClassMlp
Alternativen
do_ocr_multi_class_mlp do_ocr_multi_class_mlp DoOcrMultiClassMlp DoOcrMultiClassMlp DoOcrMultiClassMlp
Siehe auch
create_ocr_class_mlp create_ocr_class_mlp CreateOcrClassMlp CreateOcrClassMlp CreateOcrClassMlp
,
classify_class_mlp classify_class_mlp ClassifyClassMlp ClassifyClassMlp ClassifyClassMlp
Modul
OCR/OCV