Name
do_ocr_word_svmdo_ocr_word_svmDoOcrWordSvmdo_ocr_word_svmDoOcrWordSvmDoOcrWordSvm — Klassifikation einer Zeichengruppe mit einem OCR-Klassifikator.
Herror do_ocr_word_svm(const Hobject Character, const Hobject Image, const Hlong OCRHandle, const char* Expression, const Hlong NumAlternatives, const Hlong NumCorrections, char* Class, char* Word, double* Score)
Herror T_do_ocr_word_svm(const Hobject Character, const Hobject Image, const Htuple OCRHandle, const Htuple Expression, const Htuple NumAlternatives, const Htuple NumCorrections, Htuple* Class, Htuple* Word, Htuple* Score)
Herror do_ocr_word_svm(Hobject Character, Hobject Image, const HTuple& OCRHandle, const HTuple& Expression, const HTuple& NumAlternatives, const HTuple& NumCorrections, char* Class, char* Word, double* Score)
Herror do_ocr_word_svm(Hobject Character, Hobject Image, const HTuple& OCRHandle, const HTuple& Expression, const HTuple& NumAlternatives, const HTuple& NumCorrections, HTuple* Class, HTuple* Word, HTuple* Score)
HTuple HRegion::DoOcrWordSvm(const HImage& Image, const HOCRSvm& OCRHandle, const HTuple& Expression, const HTuple& NumAlternatives, const HTuple& NumCorrections, char* Word, double* Score) const
HTuple HRegionArray::DoOcrWordSvm(const HImage& Image, const HOCRSvm& OCRHandle, const HTuple& Expression, const HTuple& NumAlternatives, const HTuple& NumCorrections, HTuple* Word, HTuple* Score) const
HTuple HOCRSvm::DoOcrWordSvm(const HRegionArray& Character, const HImage& Image, const HTuple& Expression, const HTuple& NumAlternatives, const HTuple& NumCorrections, HTuple* Word, HTuple* Score) const
void DoOcrWordSvm(const HObject& Character, const HObject& Image, const HTuple& OCRHandle, const HTuple& Expression, const HTuple& NumAlternatives, const HTuple& NumCorrections, HTuple* Class, HTuple* Word, HTuple* Score)
HTuple HRegion::DoOcrWordSvm(const HImage& Image, const HOCRSvm& OCRHandle, const HString& Expression, Hlong NumAlternatives, Hlong NumCorrections, HString* Word, double* Score) const
HTuple HRegion::DoOcrWordSvm(const HImage& Image, const HOCRSvm& OCRHandle, const char* Expression, Hlong NumAlternatives, Hlong NumCorrections, HString* Word, double* Score) const
HTuple HOCRSvm::DoOcrWordSvm(const HRegion& Character, const HImage& Image, const HString& Expression, Hlong NumAlternatives, Hlong NumCorrections, HString* Word, double* Score) const
HTuple HOCRSvm::DoOcrWordSvm(const HRegion& Character, const HImage& Image, const char* Expression, Hlong NumAlternatives, Hlong NumCorrections, HString* Word, double* Score) const
void HOperatorSetX.DoOcrWordSvm(
[in] IHUntypedObjectX* Character, [in] IHUntypedObjectX* Image, [in] VARIANT OCRHandle, [in] VARIANT Expression, [in] VARIANT NumAlternatives, [in] VARIANT NumCorrections, [out] VARIANT* Class, [out] VARIANT* Word, [out] VARIANT* Score)
VARIANT HRegionX.DoOcrWordSvm(
[in] IHImageX* Image, [in] IHOCRSvmX* OCRHandle, [in] BSTR Expression, [in] Hlong NumAlternatives, [in] Hlong NumCorrections, [out] BSTR* Word, [out] double* Score)
VARIANT HOCRSvmX.DoOcrWordSvm(
[in] IHRegionX* Character, [in] IHImageX* Image, [in] BSTR Expression, [in] Hlong NumAlternatives, [in] Hlong NumCorrections, [out] BSTR* Word, [out] double* Score)
static void HOperatorSet.DoOcrWordSvm(HObject character, HObject image, HTuple OCRHandle, HTuple expression, HTuple numAlternatives, HTuple numCorrections, out HTuple classVal, out HTuple word, out HTuple score)
HTuple HRegion.DoOcrWordSvm(HImage image, HOCRSvm OCRHandle, string expression, int numAlternatives, int numCorrections, out string word, out double score)
HTuple HOCRSvm.DoOcrWordSvm(HRegion character, HImage image, string expression, int numAlternatives, int numCorrections, out string word, out double score)
do_ocr_word_svmdo_ocr_word_svmDoOcrWordSvmdo_ocr_word_svmDoOcrWordSvmDoOcrWordSvm verhält sich wie do_ocr_multi_class_svmdo_ocr_multi_class_svmDoOcrMultiClassSvmdo_ocr_multi_class_svmDoOcrMultiClassSvmDoOcrMultiClassSvm,
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 diese in
ClassClassClassClassClassclassVal zurückgibt.
Im Gegensatz zu do_ocr_multi_class_svmdo_ocr_multi_class_svmDoOcrMultiClassSvmdo_ocr_multi_class_svmDoOcrMultiClassSvmDoOcrMultiClassSvm behandelt
do_ocr_word_svmdo_ocr_word_svmDoOcrWordSvmdo_ocr_word_svmDoOcrWordSvmDoOcrWordSvm 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_svmdo_ocr_word_svmDoOcrWordSvmdo_ocr_word_svmDoOcrWordSvmDoOcrWordSvm 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_svmdo_ocr_word_svmDoOcrWordSvmdo_ocr_word_svmDoOcrWordSvmDoOcrWordSvm eine Korrektur durch
Berücksichtigung der NumAlternativesNumAlternativesNumAlternativesNumAlternativesNumAlternativesnumAlternatives besten Klassen für
jedes Zeichen, so wie sie von do_ocr_single_class_svmdo_ocr_single_class_svmDoOcrSingleClassSvmdo_ocr_single_class_svmDoOcrSingleClassSvmDoOcrSingleClassSvm 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.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
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
NumAlternatives
NumAlternatives
NumAlternatives
NumAlternatives
numAlternatives
Maximale Anzahl der korrigierten Zeichen.
Defaultwert: 2
Wertevorschläge: 1, 2, 3, 4, 5
Typischer Wertebereich: 0
≤
NumCorrections
NumCorrections
NumCorrections
NumCorrections
NumCorrections
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
O((n*a)^min(c,n)),
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_svmdo_ocr_word_svmDoOcrWordSvmdo_ocr_word_svmDoOcrWordSvmDoOcrWordSvm den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird
eine Fehlerbehandlung durchgeführt.
trainf_ocr_class_svmtrainf_ocr_class_svmTrainfOcrClassSvmtrainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvm,
read_ocr_class_svmread_ocr_class_svmReadOcrClassSvmread_ocr_class_svmReadOcrClassSvmReadOcrClassSvm
do_ocr_multi_class_svmdo_ocr_multi_class_svmDoOcrMultiClassSvmdo_ocr_multi_class_svmDoOcrMultiClassSvmDoOcrMultiClassSvm
create_ocr_class_svmcreate_ocr_class_svmCreateOcrClassSvmcreate_ocr_class_svmCreateOcrClassSvmCreateOcrClassSvm,
classify_class_svmclassify_class_svmClassifyClassSvmclassify_class_svmClassifyClassSvmClassifyClassSvm
OCR/OCV