Name
do_ocr_word_cnn T_do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn — Classify a related group of characters with an CNN-based OCR classifier.
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
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
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 )
do_ocr_word_cnn do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn DoOcrWordCnn works like do_ocr_multi_class_cnn do_ocr_multi_class_cnn DoOcrMultiClassCnn DoOcrMultiClassCnn DoOcrMultiClassCnn insofar
as it computes the best class for each of the characters given by the
regions Character Character Character Character character and the gray values Image Image Image Image image with the
OCR classifier OCRHandle OCRHandle OCRHandle OCRHandle OCRHandle , and returns the classes in Class Class Class Class classVal
and the corresponding confidences (probabilities) of the classes
in Confidence Confidence Confidence Confidence confidence .
In contrast to do_ocr_multi_class_cnn do_ocr_multi_class_cnn DoOcrMultiClassCnn DoOcrMultiClassCnn DoOcrMultiClassCnn , do_ocr_word_cnn do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn DoOcrWordCnn
treats the group of characters as an entity which yields a Word Word Word Word word
by concatenating the class names for each character region. This allows
to restrict the allowed classification results on a textual level by
specifying an Expression Expression Expression Expression expression describing the expected word.
The Expression Expression Expression Expression expression may restrict the word to belong to a predefined
lexicon created using create_lexicon create_lexicon CreateLexicon CreateLexicon CreateLexicon or import_lexicon import_lexicon ImportLexicon ImportLexicon ImportLexicon ,
or by specifying the name of the lexicon in angular brackets as in
'<mylexicon>' "<mylexicon>" "<mylexicon>" "<mylexicon>" "<mylexicon>" . If the Expression Expression Expression Expression expression is of any other form, it
is interpreted as a regular expression with the same syntax as specified
for tuple_regexp_match tuple_regexp_match TupleRegexpMatch TupleRegexpMatch TupleRegexpMatch . Note that you will usually want to use an
expression of the form '^...$' when using
variable quantifiers like '*', to ensure that the entire word is used in the
expression. Also note that in contrast to tuple_regexp_match tuple_regexp_match TupleRegexpMatch TupleRegexpMatch TupleRegexpMatch ,
do_ocr_word_cnn do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn DoOcrWordCnn does not support passing extra options in
an expression tuple.
If the word derived from the best class for each character does not match
the Expression Expression Expression Expression expression , do_ocr_word_cnn do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn DoOcrWordCnn attempts to correct it by
considering the NumAlternatives NumAlternatives NumAlternatives NumAlternatives numAlternatives best classes for each character.
The alternatives used are identical to those returned by
do_ocr_single_class_cnn do_ocr_single_class_cnn DoOcrSingleClassCnn DoOcrSingleClassCnn DoOcrSingleClassCnn for a single character. It does so by testing
all possible corrections for which the classification result is changed for
at most NumCorrections NumCorrections NumCorrections NumCorrections numCorrections character regions.
In case the Expression Expression Expression Expression expression is a lexicon and the above procedure did
not yield a result, the most similar word in the lexicon is returned as long
as it requires less than NumCorrections NumCorrections NumCorrections NumCorrections numCorrections edit operations for the
correction (see suggest_lexicon suggest_lexicon SuggestLexicon SuggestLexicon SuggestLexicon ).
The resulting word is graded by a Score Score Score Score score between 0.0 (no correction
found) and 1.0 (original word correct), which is dominated by the number of
corrected characters but also adds a minor penalty for ignoring the second
best class or even all best classes (in case of lexica). Note that this
is a combinatorial score which does not reflect the original
Confidence Confidence Confidence Confidence confidence of the best Class Class Class Class classVal .
The result '\x1A' "\x1A" "\x1A" "\x1A" "\x1A" in
Class Class Class Class classVal signifies that the region has been classified as rejection
class.
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Processed without parallelization.
Characters to be recognized.
Gray values of the characters.
Handle of the OCR classifier.
Expression describing the allowed word structure.
Number of classes per character considered for the
internal word correction.
Default value: 3
Suggested values: 3, 4, 5
Typical range of values: 1
≤
NumAlternatives
NumAlternatives
NumAlternatives
NumAlternatives
numAlternatives
Maximum number of corrected characters.
Default value: 2
Suggested values: 1, 2, 3, 4, 5
Typical range of values: 0
≤
NumCorrections
NumCorrections
NumCorrections
NumCorrections
numCorrections
Result of classifying the characters with the
CNN.
Number of elements: Class == Character
Confidence of the class of the characters.
Number of elements: Confidence == Character
Word text after classification and correction.
Measure of similarity between corrected word
and uncorrected classification results.
The complexity of checking all possible corrections is of magnitude
,
where a is the number of alternatives, n is the
number of character regions, and c is the number of allowed corrections.
However, to guard against a near-infinite loop in case of large n,
c is internally clipped to 5, 3, or 1 if
a*n >= 30, 60, or 90, respectively.
If the parameters are valid, the operator
do_ocr_word_cnn do_ocr_word_cnn DoOcrWordCnn DoOcrWordCnn DoOcrWordCnn returns the value 2 (H_MSG_TRUE). If
necessary, an exception is raised.
read_ocr_class_cnn read_ocr_class_cnn ReadOcrClassCnn ReadOcrClassCnn ReadOcrClassCnn
do_ocr_multi_class_cnn do_ocr_multi_class_cnn DoOcrMultiClassCnn DoOcrMultiClassCnn DoOcrMultiClassCnn
OCR/OCV