do_ocr_word_cnn T_do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn (Operator)
Name
do_ocr_word_cnn T_do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn
— Klassifikation einer Zeichengruppe mit einem CNN-basiertem
OCR-Klassifikator.
Signatur
void DoOcrWordCnn (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 ::DoOcrWordCnn (const HImage& Image , const HOCRCnn& OCRHandle , const HString& Expression , Hlong NumAlternatives , Hlong NumCorrections , HTuple* Confidence , HString* Word , double* Score ) const
HString HRegion ::DoOcrWordCnn (const HImage& Image , const HOCRCnn& OCRHandle , const HString& Expression , Hlong NumAlternatives , Hlong NumCorrections , double* Confidence , HString* Word , double* Score ) const
HString HRegion ::DoOcrWordCnn (const HImage& Image , const HOCRCnn& OCRHandle , const char* Expression , Hlong NumAlternatives , Hlong NumCorrections , double* Confidence , HString* Word , double* Score ) const
HString HRegion ::DoOcrWordCnn (const HImage& Image , const HOCRCnn& OCRHandle , const wchar_t* Expression , Hlong NumAlternatives , Hlong NumCorrections , double* Confidence , HString* Word , double* Score ) const
(Nur Windows)
HTuple HOCRCnn ::DoOcrWordCnn (const HRegion& Character , const HImage& Image , const HString& Expression , Hlong NumAlternatives , Hlong NumCorrections , HTuple* Confidence , HString* Word , double* Score ) const
HString HOCRCnn ::DoOcrWordCnn (const HRegion& Character , const HImage& Image , const HString& Expression , Hlong NumAlternatives , Hlong NumCorrections , double* Confidence , HString* Word , double* Score ) const
HString HOCRCnn ::DoOcrWordCnn (const HRegion& Character , const HImage& Image , const char* Expression , Hlong NumAlternatives , Hlong NumCorrections , double* Confidence , HString* Word , double* Score ) const
HString HOCRCnn ::DoOcrWordCnn (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 .DoOcrWordCnn (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 .DoOcrWordCnn (HImage image , HOCRCnn OCRHandle , string expression , int numAlternatives , int numCorrections , out HTuple confidence , out string word , out double score )
string HRegion .DoOcrWordCnn (HImage image , HOCRCnn OCRHandle , string expression , int numAlternatives , int numCorrections , out double confidence , out string word , out double score )
HTuple HOCRCnn .DoOcrWordCnn (HRegion character , HImage image , string expression , int numAlternatives , int numCorrections , out HTuple confidence , out string word , out double score )
string HOCRCnn .DoOcrWordCnn (HRegion character , HImage image , string expression , int numAlternatives , int numCorrections , out double confidence , out string word , out double score )
Beschreibung
do_ocr_word_cnn do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn DoOcrWordCnn
verhält sich wie do_ocr_multi_class_cnn do_ocr_multi_class_cnn DoOcrMultiClassCnn DoOcrMultiClassCnn DoOcrMultiClassCnn
,
indem es zu den durch die Regionen Character Character Character Character character
und die Grauwerte
Image Image Image Image image
gegebenen Zeichen mit dem durch OCRHandle OCRHandle OCRHandle OCRHandle OCRHandle
gegebenen
OCR-Klassifikator 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_cnn do_ocr_multi_class_cnn DoOcrMultiClassCnn DoOcrMultiClassCnn DoOcrMultiClassCnn
behandelt
do_ocr_word_cnn do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn DoOcrWordCnn
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_cnn do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn DoOcrWordCnn
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_cnn do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn DoOcrWordCnn
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_cnn do_ocr_single_class_cnn DoOcrSingleClassCnn DoOcrSingleClassCnn DoOcrSingleClassCnn
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_cnn →
HOCRCnn , 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_cnn do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn DoOcrWordCnn
den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird
eine Fehlerbehandlung durchgeführt.
Vorgänger
read_ocr_class_cnn read_ocr_class_cnn ReadOcrClassCnn ReadOcrClassCnn ReadOcrClassCnn
Alternativen
do_ocr_multi_class_cnn do_ocr_multi_class_cnn DoOcrMultiClassCnn DoOcrMultiClassCnn DoOcrMultiClassCnn
Modul
OCR/OCV