KlassenKlassenKlassenKlassen | | | | Operatoren

do_ocr_word_mlpdo_ocr_word_mlpDoOcrWordMlpdo_ocr_word_mlpDoOcrWordMlpDoOcrWordMlp (Operator)

Name

do_ocr_word_mlpdo_ocr_word_mlpDoOcrWordMlpdo_ocr_word_mlpDoOcrWordMlpDoOcrWordMlp — Klassifikation einer Zeichengruppe mit einem OCR-Klassifikator.

Signatur

do_ocr_word_mlp(Character, Image : : OCRHandle, Expression, NumAlternatives, NumCorrections : Class, Confidence, Word, Score)

Herror do_ocr_word_mlp(const Hobject Character, const Hobject Image, const Hlong OCRHandle, const char* Expression, const Hlong NumAlternatives, const Hlong NumCorrections, char* Class, double* Confidence, char* Word, double* Score)

Herror T_do_ocr_word_mlp(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)

Herror do_ocr_word_mlp(Hobject Character, Hobject Image, const HTuple& OCRHandle, const HTuple& Expression, const HTuple& NumAlternatives, const HTuple& NumCorrections, char* Class, double* Confidence, char* Word, double* Score)

Herror do_ocr_word_mlp(Hobject Character, 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 HTuple& Expression, const HTuple& NumAlternatives, const HTuple& NumCorrections, double* Confidence, char* Word, double* Score) const

HTuple HRegionArray::DoOcrWordMlp(const HImage& Image, const HOCRMlp& OCRHandle, const HTuple& Expression, const HTuple& NumAlternatives, const HTuple& NumCorrections, HTuple* Confidence, HTuple* Word, HTuple* Score) const

HTuple HOCRMlp::DoOcrWordMlp(const HRegionArray& Character, const HImage& Image, const HTuple& Expression, const HTuple& NumAlternatives, const HTuple& NumCorrections, HTuple* Confidence, HTuple* Word, HTuple* Score) const

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

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

void HOperatorSetX.DoOcrWordMlp(
[in] IHUntypedObjectX* Character, [in] IHUntypedObjectX* Image, [in] VARIANT OCRHandle, [in] VARIANT Expression, [in] VARIANT NumAlternatives, [in] VARIANT NumCorrections, [out] VARIANT* Class, [out] VARIANT* Confidence, [out] VARIANT* Word, [out] VARIANT* Score)

VARIANT HRegionX.DoOcrWordMlp(
[in] IHImageX* Image, [in] IHOCRMlpX* OCRHandle, [in] BSTR Expression, [in] Hlong NumAlternatives, [in] Hlong NumCorrections, [out] VARIANT* Confidence, [out] BSTR* Word, [out] double* Score)

VARIANT HOCRMlpX.DoOcrWordMlp(
[in] IHRegionX* Character, [in] IHImageX* Image, [in] BSTR Expression, [in] Hlong NumAlternatives, [in] Hlong NumCorrections, [out] VARIANT* Confidence, [out] BSTR* Word, [out] double* Score)

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_mlpdo_ocr_word_mlpDoOcrWordMlpdo_ocr_word_mlpDoOcrWordMlpDoOcrWordMlp verhält sich wie do_ocr_multi_class_mlpdo_ocr_multi_class_mlpDoOcrMultiClassMlpdo_ocr_multi_class_mlpDoOcrMultiClassMlpDoOcrMultiClassMlp, indem es mit dem durch OCRHandleOCRHandleOCRHandleOCRHandleOCRHandleOCRHandle gegebenen OCR-Klassifikator zu den durch die Regionen CharacterCharacterCharacterCharacterCharactercharacter und die Grauwerte ImageImageImageImageImageimage gegebenen Zeichen die jeweils beste Klasse berechnet, und die Klassen in ClassClassClassClassClassclassVal und die zugehörigen Konfidenzen (Wahrscheinlichkeiten) der Klassen in ConfidenceConfidenceConfidenceConfidenceConfidenceconfidence zurückgibt.

Im Gegensatz zu do_ocr_multi_class_mlpdo_ocr_multi_class_mlpDoOcrMultiClassMlpdo_ocr_multi_class_mlpDoOcrMultiClassMlpDoOcrMultiClassMlp behandelt do_ocr_word_mlpdo_ocr_word_mlpDoOcrWordMlpdo_ocr_word_mlpDoOcrWordMlpDoOcrWordMlp die Zeichengruppe als eine Einheit, die durch Aneinanderhängen von Klassennamen für jedes einzelne Zeichen ein Wort WordWordWordWordWordword liefert. Dies ermöglicht die Einschränkung der erlaubten Klassifikationsergebnisse auf Textebene durch Angabe eines Ausdrucks ExpressionExpressionExpressionExpressionExpressionexpression, der das erwartete Wort beschreibt.

Ein Ausdruck kann das Wort auf ein festes Lexikon, welches zuvor durch create_lexiconcreate_lexiconCreateLexiconcreate_lexiconCreateLexiconCreateLexicon oder import_lexiconimport_lexiconImportLexiconimport_lexiconImportLexiconImportLexicon erzeugt wurde, einschränken, indem der Name des Lexikons in spitzen Klammern wie in '<meinlexikon>'"<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_matchtuple_regexp_matchTupleRegexpMatchtuple_regexp_matchTupleRegexpMatchTupleRegexpMatch 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_matchtuple_regexp_matchTupleRegexpMatchtuple_regexp_matchTupleRegexpMatchTupleRegexpMatch erlaubt do_ocr_word_mlpdo_ocr_word_mlpDoOcrWordMlpdo_ocr_word_mlpDoOcrWordMlpDoOcrWordMlp keine Angabe von zusätzlichen Optionen für ExpressionExpressionExpressionExpressionExpressionexpression in einem Tupel.

Falls das aus den jeweils besten Klassen abgeleitete Wort dem Ausdruck nicht genügt, versucht do_ocr_word_mlpdo_ocr_word_mlpDoOcrWordMlpdo_ocr_word_mlpDoOcrWordMlpDoOcrWordMlp eine Korrektur durch Berücksichtigung der NumAlternativesNumAlternativesNumAlternativesNumAlternativesNumAlternativesnumAlternatives besten Klassen für jedes Zeichen, so wie sie von do_ocr_single_class_mlpdo_ocr_single_class_mlpDoOcrSingleClassMlpdo_ocr_single_class_mlpDoOcrSingleClassMlpDoOcrSingleClassMlp für ein einzelnes Zeichen bestimmt werden. Hierzu werden alle möglichen Korrekturen ausprobiert, bei denen die Klassifikation von höchstens NumCorrectionsNumCorrectionsNumCorrectionsNumCorrectionsNumCorrectionsnumCorrections 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 NumCorrectionsNumCorrectionsNumCorrectionsNumCorrectionsNumCorrectionsnumCorrections Editieroperationen benötigt werden (siehe suggest_lexiconsuggest_lexiconSuggestLexiconsuggest_lexiconSuggestLexiconSuggestLexicon).

Das Ergebnis wird mit einer ScoreScoreScoreScoreScorescore 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. Diese Bewertung ist rein kombinatorisch und berücksichtigt nicht die ursprünglichen Konfidenzen der besten Klassen.

Parallelisierung

Parameter

CharacterCharacterCharacterCharacterCharactercharacter (input_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject

Zu erkennende Zeichen.

ImageImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte / uint2)

Grauwerte der Zeichen.

OCRHandleOCRHandleOCRHandleOCRHandleOCRHandleOCRHandle (input_control)  ocr_mlp HOCRMlp, HTupleHTupleHOCRMlp, HTupleHOCRMlpX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle des OCR-Klassifikators.

ExpressionExpressionExpressionExpressionExpressionexpression (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Ausdruck, der die erlaubte Wortstruktur beschreibt

NumAlternativesNumAlternativesNumAlternativesNumAlternativesNumAlternativesnumAlternatives (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (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 numAlternatives

NumCorrectionsNumCorrectionsNumCorrectionsNumCorrectionsNumCorrectionsnumCorrections (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Maximale Anzahl der korrigierten Zeichen.

Defaultwert: 2

Wertevorschläge: 1, 2, 3, 4, 5

Typischer Wertebereich: 0 ≤ NumCorrections NumCorrections NumCorrections NumCorrections NumCorrections numCorrections

ClassClassClassClassClassclassVal (output_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Ergebnis der Klassifikation der Zeichen durch das MLP.

Parameteranzahl: Class == Character

ConfidenceConfidenceConfidenceConfidenceConfidenceconfidence (output_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Konfidenz der Klasse der Zeichen.

Parameteranzahl: Confidence == Character

WordWordWordWordWordword (output_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Text des Wortes nach Klassifikation und Korrektur.

ScoreScoreScoreScoreScorescore (output_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (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_mlpdo_ocr_word_mlpDoOcrWordMlpdo_ocr_word_mlpDoOcrWordMlpDoOcrWordMlp den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

trainf_ocr_class_mlptrainf_ocr_class_mlpTrainfOcrClassMlptrainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlp, read_ocr_class_mlpread_ocr_class_mlpReadOcrClassMlpread_ocr_class_mlpReadOcrClassMlpReadOcrClassMlp

Alternativen

do_ocr_multi_class_mlpdo_ocr_multi_class_mlpDoOcrMultiClassMlpdo_ocr_multi_class_mlpDoOcrMultiClassMlpDoOcrMultiClassMlp

Siehe auch

create_ocr_class_mlpcreate_ocr_class_mlpCreateOcrClassMlpcreate_ocr_class_mlpCreateOcrClassMlpCreateOcrClassMlp, classify_class_mlpclassify_class_mlpClassifyClassMlpclassify_class_mlpClassifyClassMlpClassifyClassMlp

Modul

OCR/OCV


KlassenKlassenKlassenKlassen | | | | Operatoren