#include <classify.h>
Public Member Functions | |
Classify () | |
virtual | ~Classify () |
virtual Dict & | getDict () |
const ShapeTable * | shape_table () const |
void | SetStaticClassifier (ShapeClassifier *static_classifier) |
void | AddLargeSpeckleTo (int blob_length, BLOB_CHOICE_LIST *choices) |
bool | LargeSpeckle (const TBLOB &blob) |
ADAPT_TEMPLATES | NewAdaptedTemplates (bool InitFromUnicharset) |
int | GetFontinfoId (ADAPT_CLASS Class, uint8_t ConfigId) |
int | PruneClasses (const INT_TEMPLATES_STRUCT *int_templates, int num_features, int keep_this, const INT_FEATURE_STRUCT *features, const uint8_t *normalization_factors, const uint16_t *expected_num_features, GenericVector< CP_RESULT_STRUCT > *results) |
void | ReadNewCutoffs (TFile *fp, CLASS_CUTOFF_ARRAY Cutoffs) |
void | PrintAdaptedTemplates (FILE *File, ADAPT_TEMPLATES Templates) |
void | WriteAdaptedTemplates (FILE *File, ADAPT_TEMPLATES Templates) |
ADAPT_TEMPLATES | ReadAdaptedTemplates (TFile *File) |
float | ComputeNormMatch (CLASS_ID ClassId, const FEATURE_STRUCT &feature, bool DebugMatch) |
void | FreeNormProtos () |
NORM_PROTOS * | ReadNormProtos (TFile *fp) |
void | ConvertProto (PROTO Proto, int ProtoId, INT_CLASS Class) |
INT_TEMPLATES | CreateIntTemplates (CLASSES FloatProtos, const UNICHARSET &target_unicharset) |
void | LearnWord (const char *fontname, WERD_RES *word) |
void | LearnPieces (const char *fontname, int start, int length, float threshold, CharSegmentationType segmentation, const char *correct_text, WERD_RES *word) |
void | InitAdaptiveClassifier (TessdataManager *mgr) |
void | InitAdaptedClass (TBLOB *Blob, CLASS_ID ClassId, int FontinfoId, ADAPT_CLASS Class, ADAPT_TEMPLATES Templates) |
void | AmbigClassifier (const GenericVector< INT_FEATURE_STRUCT > &int_features, const INT_FX_RESULT_STRUCT &fx_info, const TBLOB *blob, INT_TEMPLATES templates, ADAPT_CLASS *classes, UNICHAR_ID *ambiguities, ADAPT_RESULTS *results) |
void | MasterMatcher (INT_TEMPLATES templates, int16_t num_features, const INT_FEATURE_STRUCT *features, const uint8_t *norm_factors, ADAPT_CLASS *classes, int debug, int matcher_multiplier, const TBOX &blob_box, const GenericVector< CP_RESULT_STRUCT > &results, ADAPT_RESULTS *final_results) |
void | ExpandShapesAndApplyCorrections (ADAPT_CLASS *classes, bool debug, int class_id, int bottom, int top, float cp_rating, int blob_length, int matcher_multiplier, const uint8_t *cn_factors, UnicharRating *int_result, ADAPT_RESULTS *final_results) |
double | ComputeCorrectedRating (bool debug, int unichar_id, double cp_rating, double im_rating, int feature_misses, int bottom, int top, int blob_length, int matcher_multiplier, const uint8_t *cn_factors) |
void | ConvertMatchesToChoices (const DENORM &denorm, const TBOX &box, ADAPT_RESULTS *Results, BLOB_CHOICE_LIST *Choices) |
void | AddNewResult (const UnicharRating &new_result, ADAPT_RESULTS *results) |
int | GetAdaptiveFeatures (TBLOB *Blob, INT_FEATURE_ARRAY IntFeatures, FEATURE_SET *FloatFeatures) |
void | DebugAdaptiveClassifier (TBLOB *Blob, ADAPT_RESULTS *Results) |
PROTO_ID | MakeNewTempProtos (FEATURE_SET Features, int NumBadFeat, FEATURE_ID BadFeat[], INT_CLASS IClass, ADAPT_CLASS Class, BIT_VECTOR TempProtoMask) |
int | MakeNewTemporaryConfig (ADAPT_TEMPLATES Templates, CLASS_ID ClassId, int FontinfoId, int NumFeatures, INT_FEATURE_ARRAY Features, FEATURE_SET FloatFeatures) |
void | MakePermanent (ADAPT_TEMPLATES Templates, CLASS_ID ClassId, int ConfigId, TBLOB *Blob) |
void | PrintAdaptiveMatchResults (const ADAPT_RESULTS &results) |
void | RemoveExtraPuncs (ADAPT_RESULTS *Results) |
void | RemoveBadMatches (ADAPT_RESULTS *Results) |
void | SetAdaptiveThreshold (float Threshold) |
void | ShowBestMatchFor (int shape_id, const INT_FEATURE_STRUCT *features, int num_features) |
STRING | ClassIDToDebugStr (const INT_TEMPLATES_STRUCT *templates, int class_id, int config_id) const |
int | ClassAndConfigIDToFontOrShapeID (int class_id, int int_result_config) const |
int | ShapeIDToClassID (int shape_id) const |
UNICHAR_ID * | BaselineClassifier (TBLOB *Blob, const GenericVector< INT_FEATURE_STRUCT > &int_features, const INT_FX_RESULT_STRUCT &fx_info, ADAPT_TEMPLATES Templates, ADAPT_RESULTS *Results) |
int | CharNormClassifier (TBLOB *blob, const TrainingSample &sample, ADAPT_RESULTS *adapt_results) |
int | CharNormTrainingSample (bool pruner_only, int keep_this, const TrainingSample &sample, GenericVector< UnicharRating > *results) |
UNICHAR_ID * | GetAmbiguities (TBLOB *Blob, CLASS_ID CorrectClass) |
void | DoAdaptiveMatch (TBLOB *Blob, ADAPT_RESULTS *Results) |
void | AdaptToChar (TBLOB *Blob, CLASS_ID ClassId, int FontinfoId, float Threshold, ADAPT_TEMPLATES adaptive_templates) |
void | DisplayAdaptedChar (TBLOB *blob, INT_CLASS_STRUCT *int_class) |
bool | AdaptableWord (WERD_RES *word) |
void | EndAdaptiveClassifier () |
void | SettupPass1 () |
void | SettupPass2 () |
void | AdaptiveClassifier (TBLOB *Blob, BLOB_CHOICE_LIST *Choices) |
void | ClassifyAsNoise (ADAPT_RESULTS *Results) |
void | ResetAdaptiveClassifierInternal () |
void | SwitchAdaptiveClassifier () |
void | StartBackupAdaptiveClassifier () |
int | GetCharNormFeature (const INT_FX_RESULT_STRUCT &fx_info, INT_TEMPLATES templates, uint8_t *pruner_norm_array, uint8_t *char_norm_array) |
void | ComputeCharNormArrays (FEATURE_STRUCT *norm_feature, INT_TEMPLATES_STRUCT *templates, uint8_t *char_norm_array, uint8_t *pruner_array) |
bool | TempConfigReliable (CLASS_ID class_id, const TEMP_CONFIG &config) |
void | UpdateAmbigsGroup (CLASS_ID class_id, TBLOB *Blob) |
bool | AdaptiveClassifierIsFull () const |
bool | AdaptiveClassifierIsEmpty () const |
bool | LooksLikeGarbage (TBLOB *blob) |
void | RefreshDebugWindow (ScrollView **win, const char *msg, int y_offset, const TBOX &wbox) |
void | ClearCharNormArray (uint8_t *char_norm_array) |
void | ComputeIntCharNormArray (const FEATURE_STRUCT &norm_feature, uint8_t *char_norm_array) |
void | ComputeIntFeatures (FEATURE_SET Features, INT_FEATURE_ARRAY IntFeatures) |
INT_TEMPLATES | ReadIntTemplates (TFile *fp) |
void | WriteIntTemplates (FILE *File, INT_TEMPLATES Templates, const UNICHARSET &target_unicharset) |
CLASS_ID | GetClassToDebug (const char *Prompt, bool *adaptive_on, bool *pretrained_on, int *shape_id) |
void | ShowMatchDisplay () |
UnicityTable< FontInfo > & | get_fontinfo_table () |
const UnicityTable< FontInfo > & | get_fontinfo_table () const |
UnicityTable< FontSet > & | get_fontset_table () |
void | NormalizeOutlines (LIST Outlines, float *XScale, float *YScale) |
FEATURE_SET | ExtractOutlineFeatures (TBLOB *Blob) |
FEATURE_SET | ExtractPicoFeatures (TBLOB *Blob) |
FEATURE_SET | ExtractIntCNFeatures (const TBLOB &blob, const INT_FX_RESULT_STRUCT &fx_info) |
FEATURE_SET | ExtractIntGeoFeatures (const TBLOB &blob, const INT_FX_RESULT_STRUCT &fx_info) |
void | LearnBlob (const STRING &fontname, TBLOB *Blob, const DENORM &cn_denorm, const INT_FX_RESULT_STRUCT &fx_info, const char *blob_text) |
bool | WriteTRFile (const STRING &filename) |
BOOL_VAR_H (allow_blob_division, true, "Use divisible blobs chopping") | |
BOOL_VAR_H (prioritize_division, FALSE, "Prioritize blob division over chopping") | |
INT_VAR_H (tessedit_single_match, FALSE, "Top choice only from CP") | |
BOOL_VAR_H (classify_enable_learning, true, "Enable adaptive classifier") | |
INT_VAR_H (classify_debug_level, 0, "Classify debug level") | |
INT_VAR_H (classify_norm_method, character, "Normalization Method ...") | |
double_VAR_H (classify_char_norm_range, 0.2, "Character Normalization Range ...") | |
double_VAR_H (classify_min_norm_scale_x, 0.0, "Min char x-norm scale ...") | |
double_VAR_H (classify_max_norm_scale_x, 0.325, "Max char x-norm scale ...") | |
double_VAR_H (classify_min_norm_scale_y, 0.0, "Min char y-norm scale ...") | |
double_VAR_H (classify_max_norm_scale_y, 0.325, "Max char y-norm scale ...") | |
double_VAR_H (classify_max_rating_ratio, 1.5, "Veto ratio between classifier ratings") | |
double_VAR_H (classify_max_certainty_margin, 5.5, "Veto difference between classifier certainties") | |
BOOL_VAR_H (tess_cn_matching, 0, "Character Normalized Matching") | |
BOOL_VAR_H (tess_bn_matching, 0, "Baseline Normalized Matching") | |
BOOL_VAR_H (classify_enable_adaptive_matcher, 1, "Enable adaptive classifier") | |
BOOL_VAR_H (classify_use_pre_adapted_templates, 0, "Use pre-adapted classifier templates") | |
BOOL_VAR_H (classify_save_adapted_templates, 0, "Save adapted templates to a file") | |
BOOL_VAR_H (classify_enable_adaptive_debugger, 0, "Enable match debugger") | |
BOOL_VAR_H (classify_nonlinear_norm, 0, "Non-linear stroke-density normalization") | |
INT_VAR_H (matcher_debug_level, 0, "Matcher Debug Level") | |
INT_VAR_H (matcher_debug_flags, 0, "Matcher Debug Flags") | |
INT_VAR_H (classify_learning_debug_level, 0, "Learning Debug Level: ") | |
double_VAR_H (matcher_good_threshold, 0.125, "Good Match (0-1)") | |
double_VAR_H (matcher_reliable_adaptive_result, 0.0, "Great Match (0-1)") | |
double_VAR_H (matcher_perfect_threshold, 0.02, "Perfect Match (0-1)") | |
double_VAR_H (matcher_bad_match_pad, 0.15, "Bad Match Pad (0-1)") | |
double_VAR_H (matcher_rating_margin, 0.1, "New template margin (0-1)") | |
double_VAR_H (matcher_avg_noise_size, 12.0, "Avg. noise blob length: ") | |
INT_VAR_H (matcher_permanent_classes_min, 1, "Min # of permanent classes") | |
INT_VAR_H (matcher_min_examples_for_prototyping, 3, "Reliable Config Threshold") | |
INT_VAR_H (matcher_sufficient_examples_for_prototyping, 5, "Enable adaption even if the ambiguities have not been seen") | |
double_VAR_H (matcher_clustering_max_angle_delta, 0.015, "Maximum angle delta for prototype clustering") | |
double_VAR_H (classify_misfit_junk_penalty, 0.0, "Penalty to apply when a non-alnum is vertically out of " "its expected textline position") | |
double_VAR_H (rating_scale, 1.5, "Rating scaling factor") | |
double_VAR_H (certainty_scale, 20.0, "Certainty scaling factor") | |
double_VAR_H (tessedit_class_miss_scale, 0.00390625, "Scale factor for features not used") | |
double_VAR_H (classify_adapted_pruning_factor, 2.5, "Prune poor adapted results this much worse than best result") | |
double_VAR_H (classify_adapted_pruning_threshold, -1.0, "Threshold at which classify_adapted_pruning_factor starts") | |
INT_VAR_H (classify_adapt_proto_threshold, 230, "Threshold for good protos during adaptive 0-255") | |
INT_VAR_H (classify_adapt_feature_threshold, 230, "Threshold for good features during adaptive 0-255") | |
BOOL_VAR_H (disable_character_fragments, TRUE, "Do not include character fragments in the" " results of the classifier") | |
double_VAR_H (classify_character_fragments_garbage_certainty_threshold, -3.0, "Exclude fragments that do not match any whole character" " with at least this certainty") | |
BOOL_VAR_H (classify_debug_character_fragments, FALSE, "Bring up graphical debugging windows for fragments training") | |
BOOL_VAR_H (matcher_debug_separate_windows, FALSE, "Use two different windows for debugging the matching: " "One for the protos and one for the features.") | |
STRING_VAR_H (classify_learn_debug_str, "", "Class str to debug learning") | |
INT_VAR_H (classify_class_pruner_threshold, 229, "Class Pruner Threshold 0-255") | |
INT_VAR_H (classify_class_pruner_multiplier, 15, "Class Pruner Multiplier 0-255: ") | |
INT_VAR_H (classify_cp_cutoff_strength, 7, "Class Pruner CutoffStrength: ") | |
INT_VAR_H (classify_integer_matcher_multiplier, 10, "Integer Matcher Multiplier 0-255: ") | |
INT_VAR_H (il1_adaption_test, 0, "Don't adapt to i/I at beginning of word") | |
BOOL_VAR_H (classify_bln_numeric_mode, 0, "Assume the input is numbers [0-9].") | |
double_VAR_H (speckle_large_max_size, 0.30, "Max large speckle size") | |
double_VAR_H (speckle_rating_penalty, 10.0, "Penalty to add to worst rating for noise") | |
Public Member Functions inherited from tesseract::CCStruct | |
CCStruct ()=default | |
virtual | ~CCStruct () |
Public Member Functions inherited from tesseract::CUtil | |
CUtil ()=default | |
virtual | ~CUtil () |
void | read_variables (const char *filename, bool global_only) |
Public Member Functions inherited from tesseract::CCUtil | |
CCUtil () | |
virtual | ~CCUtil () |
void | main_setup (const char *argv0, const char *basename) |
CCUtil::main_setup - set location of tessdata and name of image. More... | |
ParamsVectors * | params () |
Static Public Member Functions | |
static void | SetupBLCNDenorms (const TBLOB &blob, bool nonlinear_norm, DENORM *bl_denorm, DENORM *cn_denorm, INT_FX_RESULT_STRUCT *fx_info) |
static void | ExtractFeatures (const TBLOB &blob, bool nonlinear_norm, GenericVector< INT_FEATURE_STRUCT > *bl_features, GenericVector< INT_FEATURE_STRUCT > *cn_features, INT_FX_RESULT_STRUCT *results, GenericVector< int > *outline_cn_counts) |
Public Attributes | |
INT_TEMPLATES | PreTrainedTemplates |
ADAPT_TEMPLATES | AdaptedTemplates |
ADAPT_TEMPLATES | BackupAdaptedTemplates |
BIT_VECTOR | AllProtosOn |
BIT_VECTOR | AllConfigsOn |
BIT_VECTOR | AllConfigsOff |
BIT_VECTOR | TempProtoMask |
bool | EnableLearning |
NORM_PROTOS * | NormProtos |
UnicityTable< FontInfo > | fontinfo_table_ |
UnicityTable< FontSet > | fontset_table_ |
Public Attributes inherited from tesseract::CCUtil | |
STRING | datadir |
STRING | imagebasename |
STRING | lang |
STRING | language_data_path_prefix |
UNICHARSET | unicharset |
UnicharAmbigs | unichar_ambigs |
STRING | imagefile |
STRING | directory |
tesseract::IntParam | ambigs_debug_level |
tesseract::BoolParam | use_definite_ambigs_for_classifier |
tesseract::BoolParam | use_ambigs_for_adaption |
Protected Attributes | |
IntegerMatcher | im_ |
FEATURE_DEFS_STRUCT | feature_defs_ |
ShapeTable * | shape_table_ |
Private Attributes | |
Dict | dict_ |
ShapeClassifier * | static_classifier_ |
int | NumAdaptationsFailed |
STRING | tr_file_data_ |
uint16_t | CharNormCutoffs [MAX_NUM_CLASSES] |
uint16_t | BaselineCutoffs [MAX_NUM_CLASSES] |
GenericVector< uint16_t > | shapetable_cutoffs_ |
ScrollView * | learn_debug_win_ |
ScrollView * | learn_fragmented_word_debug_win_ |
ScrollView * | learn_fragments_debug_win_ |
Additional Inherited Members | |
Static Public Attributes inherited from tesseract::CCStruct | |
static const double | kDescenderFraction = 0.25 |
static const double | kXHeightFraction = 0.5 |
static const double | kAscenderFraction = 0.25 |
static const double | kXHeightCapRatio |
tesseract::Classify::Classify | ( | ) |
|
virtual |
bool tesseract::Classify::AdaptableWord | ( | WERD_RES * | word | ) |
Return TRUE if the specified word is acceptable for adaptation.
Globals: none
word | current word |
void tesseract::Classify::AdaptiveClassifier | ( | TBLOB * | Blob, |
BLOB_CHOICE_LIST * | Choices | ||
) |
This routine calls the adaptive matcher which returns (in an array) the class id of each class matched.
It also returns the number of classes matched. For each class matched it places the best rating found for that class into the Ratings array.
Bad matches are then removed so that they don't need to be sorted. The remaining good matches are then sorted and converted to choices.
This routine also performs some simple speckle filtering.
Blob | blob to be classified | |
[out] | Choices | List of choices found by adaptive matcher. filled on return with the choices found by the class pruner and the ratings therefrom. Also contains the detailed results of the integer matcher. |
|
inline |
|
inline |
void tesseract::Classify::AdaptToChar | ( | TBLOB * | Blob, |
CLASS_ID | ClassId, | ||
int | FontinfoId, | ||
float | Threshold, | ||
ADAPT_TEMPLATES | adaptive_templates | ||
) |
Blob | blob to add to templates for ClassId |
ClassId | class to add blob to |
FontinfoId | font information from pre-trained templates |
Threshold | minimum match rating to existing template |
adaptive_templates | current set of adapted templates |
Globals:
void tesseract::Classify::AddLargeSpeckleTo | ( | int | blob_length, |
BLOB_CHOICE_LIST * | choices | ||
) |
void tesseract::Classify::AddNewResult | ( | const UnicharRating & | new_result, |
ADAPT_RESULTS * | results | ||
) |
This routine adds the result of a classification into Results. If the new rating is much worse than the current best rating, it is not entered into results because it would end up being stripped later anyway. If the new rating is better than the old rating for the class, it replaces the old rating. If this is the first rating for the class, the class is added to the list of matched classes in Results. If the new rating is better than the best so far, it becomes the best so far.
Globals:
new_result | new result to add | |
[out] | results | results to add new result to |
void tesseract::Classify::AmbigClassifier | ( | const GenericVector< INT_FEATURE_STRUCT > & | int_features, |
const INT_FX_RESULT_STRUCT & | fx_info, | ||
const TBLOB * | blob, | ||
INT_TEMPLATES | templates, | ||
ADAPT_CLASS * | classes, | ||
UNICHAR_ID * | ambiguities, | ||
ADAPT_RESULTS * | results | ||
) |
This routine is identical to CharNormClassifier() except that it does no class pruning. It simply matches the unknown blob against the classes listed in Ambiguities.
Globals:
blob | blob to be classified | |
templates | built-in templates to classify against | |
classes | adapted class templates | |
ambiguities | array of unichar id's to match against | |
[out] | results | place to put match results |
int_features | ||
fx_info |
UNICHAR_ID * tesseract::Classify::BaselineClassifier | ( | TBLOB * | Blob, |
const GenericVector< INT_FEATURE_STRUCT > & | int_features, | ||
const INT_FX_RESULT_STRUCT & | fx_info, | ||
ADAPT_TEMPLATES | Templates, | ||
ADAPT_RESULTS * | Results | ||
) |
This routine extracts baseline normalized features from the unknown character and matches them against the specified set of templates. The classes which match are added to Results.
Globals:
Blob | blob to be classified |
Templates | current set of adapted templates |
Results | place to put match results |
int_features | |
fx_info |
tesseract::Classify::BOOL_VAR_H | ( | allow_blob_division | , |
true | , | ||
"Use divisible blobs chopping" | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | prioritize_division | , |
FALSE | , | ||
"Prioritize blob division over chopping" | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | classify_enable_learning | , |
true | , | ||
"Enable adaptive classifier" | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | tess_cn_matching | , |
0 | , | ||
"Character Normalized Matching" | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | tess_bn_matching | , |
0 | , | ||
"Baseline Normalized Matching" | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | classify_enable_adaptive_matcher | , |
1 | , | ||
"Enable adaptive classifier" | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | classify_use_pre_adapted_templates | , |
0 | , | ||
"Use pre-adapted classifier templates" | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | classify_save_adapted_templates | , |
0 | , | ||
"Save adapted templates to a file" | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | classify_enable_adaptive_debugger | , |
0 | , | ||
"Enable match debugger" | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | classify_nonlinear_norm | , |
0 | , | ||
"Non-linear stroke-density normalization" | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | disable_character_fragments | , |
TRUE | , | ||
"Do not include character fragments in the" " results of the classifier" | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | classify_debug_character_fragments | , |
FALSE | , | ||
"Bring up graphical debugging windows for fragments training" | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | matcher_debug_separate_windows | , |
FALSE | , | ||
"Use two different windows for debugging the matching: " "One for the protos and one for the features." | |||
) |
tesseract::Classify::BOOL_VAR_H | ( | classify_bln_numeric_mode | , |
0 | , | ||
"Assume the input is numbers ." | [0-9] | ||
) |
int tesseract::Classify::CharNormClassifier | ( | TBLOB * | blob, |
const TrainingSample & | sample, | ||
ADAPT_RESULTS * | adapt_results | ||
) |
This routine extracts character normalized features from the unknown character and matches them against the specified set of templates. The classes which match are added to Results.
blob | blob to be classified |
sample | templates to classify unknown against |
adapt_results | place to put match results |
Globals:
int tesseract::Classify::CharNormTrainingSample | ( | bool | pruner_only, |
int | keep_this, | ||
const TrainingSample & | sample, | ||
GenericVector< UnicharRating > * | results | ||
) |
int tesseract::Classify::ClassAndConfigIDToFontOrShapeID | ( | int | class_id, |
int | int_result_config | ||
) | const |
STRING tesseract::Classify::ClassIDToDebugStr | ( | const INT_TEMPLATES_STRUCT * | templates, |
int | class_id, | ||
int | config_id | ||
) | const |
void tesseract::Classify::ClassifyAsNoise | ( | ADAPT_RESULTS * | results | ) |
This routine computes a rating which reflects the likelihood that the blob being classified is a noise blob. NOTE: assumes that the blob length has already been computed and placed into Results.
results | results to add noise classification to |
Globals:
void tesseract::Classify::ClearCharNormArray | ( | uint8_t * | char_norm_array | ) |
For each class in the unicharset, clears the corresponding entry in char_norm_array. char_norm_array is indexed by unichar_id.
Globals:
char_norm_array | array to be cleared |
void tesseract::Classify::ComputeCharNormArrays | ( | FEATURE_STRUCT * | norm_feature, |
INT_TEMPLATES_STRUCT * | templates, | ||
uint8_t * | char_norm_array, | ||
uint8_t * | pruner_array | ||
) |
double tesseract::Classify::ComputeCorrectedRating | ( | bool | debug, |
int | unichar_id, | ||
double | cp_rating, | ||
double | im_rating, | ||
int | feature_misses, | ||
int | bottom, | ||
int | top, | ||
int | blob_length, | ||
int | matcher_multiplier, | ||
const uint8_t * | cn_factors | ||
) |
void tesseract::Classify::ComputeIntCharNormArray | ( | const FEATURE_STRUCT & | norm_feature, |
uint8_t * | char_norm_array | ||
) |
For each class in unicharset, computes the match between norm_feature and the normalization protos for that class. Converts this number to the range from 0 - 255 and stores it into char_norm_array. CharNormArray is indexed by unichar_id.
Globals:
norm_feature | character normalization feature | |
[out] | char_norm_array | place to put results of size unicharset.size() |
void tesseract::Classify::ComputeIntFeatures | ( | FEATURE_SET | Features, |
INT_FEATURE_ARRAY | IntFeatures | ||
) |
This routine converts each floating point pico-feature in Features into integer format and saves it into IntFeatures.
Globals:
Features | floating point pico-features to be converted | |
[out] | IntFeatures | array to put converted features into |
float tesseract::Classify::ComputeNormMatch | ( | CLASS_ID | ClassId, |
const FEATURE_STRUCT & | feature, | ||
bool | DebugMatch | ||
) |
This routine compares Features against each character normalization proto for ClassId and returns the match rating of the best match.
ClassId | id of class to match against |
feature | character normalization feature |
DebugMatch | controls dump of debug info |
Globals: NormProtos character normalization prototypes
void tesseract::Classify::ConvertMatchesToChoices | ( | const DENORM & | denorm, |
const TBOX & | box, | ||
ADAPT_RESULTS * | Results, | ||
BLOB_CHOICE_LIST * | Choices | ||
) |
The function converts the given match ratings to the list of blob choices with ratings and certainties (used by the context checkers). If character fragments are present in the results, this function also makes sure that there is at least one non-fragmented classification included. For each classification result check the unicharset for "definite" ambiguities and modify the resulting Choices accordingly.
This routine converts Proto to integer format and installs it as ProtoId in Class.
Proto | floating-pt proto to be converted to integer format |
ProtoId | id of proto |
Class | integer class to add converted proto to |
INT_TEMPLATES tesseract::Classify::CreateIntTemplates | ( | CLASSES | FloatProtos, |
const UNICHARSET & | target_unicharset | ||
) |
This routine converts from the old floating point format to the new integer format.
FloatProtos | prototypes in old floating pt format |
target_unicharset | the UNICHARSET to use |
void tesseract::Classify::DebugAdaptiveClassifier | ( | TBLOB * | blob, |
ADAPT_RESULTS * | Results | ||
) |
blob | blob whose classification is being debugged |
Results | results of match being debugged |
Globals: none
void tesseract::Classify::DisplayAdaptedChar | ( | TBLOB * | blob, |
INT_CLASS_STRUCT * | int_class | ||
) |
void tesseract::Classify::DoAdaptiveMatch | ( | TBLOB * | Blob, |
ADAPT_RESULTS * | Results | ||
) |
This routine performs an adaptive classification. If we have not yet adapted to enough classes, a simple classification to the pre-trained templates is performed. Otherwise, we match the blob against the adapted templates. If the adapted templates do not match well, we try a match against the pre-trained templates. If an adapted template match is found, we do a match to any pre-trained templates which could be ambiguous. The results from all of these classifications are merged together into Results.
Blob | blob to be classified |
Results | place to put match results |
Globals:
tesseract::Classify::double_VAR_H | ( | classify_char_norm_range | , |
0. | 2, | ||
"Character Normalization Range ..." | |||
) |
tesseract::Classify::double_VAR_H | ( | classify_min_norm_scale_x | , |
0. | 0, | ||
"Min char x-norm scale ..." | |||
) |
tesseract::Classify::double_VAR_H | ( | classify_max_norm_scale_x | , |
0. | 325, | ||
"Max char x-norm scale ..." | |||
) |
tesseract::Classify::double_VAR_H | ( | classify_min_norm_scale_y | , |
0. | 0, | ||
"Min char y-norm scale ..." | |||
) |
tesseract::Classify::double_VAR_H | ( | classify_max_norm_scale_y | , |
0. | 325, | ||
"Max char y-norm scale ..." | |||
) |
tesseract::Classify::double_VAR_H | ( | classify_max_rating_ratio | , |
1. | 5, | ||
"Veto ratio between classifier ratings" | |||
) |
tesseract::Classify::double_VAR_H | ( | classify_max_certainty_margin | , |
5. | 5, | ||
"Veto difference between classifier certainties" | |||
) |
tesseract::Classify::double_VAR_H | ( | matcher_good_threshold | , |
0. | 125, | ||
"Good Match (0-1)" | |||
) |
tesseract::Classify::double_VAR_H | ( | matcher_reliable_adaptive_result | , |
0. | 0, | ||
"Great Match (0-1)" | |||
) |
tesseract::Classify::double_VAR_H | ( | matcher_perfect_threshold | , |
0. | 02, | ||
"Perfect Match (0-1)" | |||
) |
tesseract::Classify::double_VAR_H | ( | matcher_bad_match_pad | , |
0. | 15, | ||
"Bad Match Pad (0-1)" | |||
) |
tesseract::Classify::double_VAR_H | ( | matcher_rating_margin | , |
0. | 1, | ||
"New template margin (0-1)" | |||
) |
tesseract::Classify::double_VAR_H | ( | matcher_avg_noise_size | , |
12. | 0, | ||
"Avg. noise blob length: " | |||
) |
tesseract::Classify::double_VAR_H | ( | matcher_clustering_max_angle_delta | , |
0. | 015, | ||
"Maximum angle delta for prototype clustering" | |||
) |
tesseract::Classify::double_VAR_H | ( | classify_misfit_junk_penalty | , |
0. | 0, | ||
"Penalty to apply when a non-alnum is vertically out of " "its expected textline position" | |||
) |
tesseract::Classify::double_VAR_H | ( | rating_scale | , |
1. | 5, | ||
"Rating scaling factor" | |||
) |
tesseract::Classify::double_VAR_H | ( | certainty_scale | , |
20. | 0, | ||
"Certainty scaling factor" | |||
) |
tesseract::Classify::double_VAR_H | ( | tessedit_class_miss_scale | , |
0. | 00390625, | ||
"Scale factor for features not used" | |||
) |
tesseract::Classify::double_VAR_H | ( | classify_adapted_pruning_factor | , |
2. | 5, | ||
"Prune poor adapted results this much worse than best result" | |||
) |
tesseract::Classify::double_VAR_H | ( | classify_adapted_pruning_threshold | , |
-1. | 0, | ||
"Threshold at which classify_adapted_pruning_factor starts" | |||
) |
tesseract::Classify::double_VAR_H | ( | classify_character_fragments_garbage_certainty_threshold | , |
-3. | 0, | ||
"Exclude fragments that do not match any whole character" " with at least this certainty" | |||
) |
tesseract::Classify::double_VAR_H | ( | speckle_large_max_size | , |
0. | 30, | ||
"Max large speckle size" | |||
) |
tesseract::Classify::double_VAR_H | ( | speckle_rating_penalty | , |
10. | 0, | ||
"Penalty to add to worst rating for noise" | |||
) |
void tesseract::Classify::EndAdaptiveClassifier | ( | ) |
This routine performs cleanup operations on the adaptive classifier. It should be called before the program is terminated. Its main function is to save the adapted templates to a file.
Globals:
void tesseract::Classify::ExpandShapesAndApplyCorrections | ( | ADAPT_CLASS * | classes, |
bool | debug, | ||
int | class_id, | ||
int | bottom, | ||
int | top, | ||
float | cp_rating, | ||
int | blob_length, | ||
int | matcher_multiplier, | ||
const uint8_t * | cn_factors, | ||
UnicharRating * | int_result, | ||
ADAPT_RESULTS * | final_results | ||
) |
|
static |
FEATURE_SET tesseract::Classify::ExtractIntCNFeatures | ( | const TBLOB & | blob, |
const INT_FX_RESULT_STRUCT & | fx_info | ||
) |
blob | blob to extract features from |
fx_info |
FEATURE_SET tesseract::Classify::ExtractIntGeoFeatures | ( | const TBLOB & | blob, |
const INT_FX_RESULT_STRUCT & | fx_info | ||
) |
blob | blob to extract features from |
fx_info |
FEATURE_SET tesseract::Classify::ExtractOutlineFeatures | ( | TBLOB * | Blob | ) |
Convert each segment in the outline to a feature and return the features.
Blob | blob to extract pico-features from |
FEATURE_SET tesseract::Classify::ExtractPicoFeatures | ( | TBLOB * | Blob | ) |
Operation: Dummy for now.
Globals:
Blob | blob to extract pico-features from |
void tesseract::Classify::FreeNormProtos | ( | ) |
|
inline |
|
inline |
|
inline |
int tesseract::Classify::GetAdaptiveFeatures | ( | TBLOB * | Blob, |
INT_FEATURE_ARRAY | IntFeatures, | ||
FEATURE_SET * | FloatFeatures | ||
) |
This routine sets up the feature extractor to extract baseline normalized pico-features.
The extracted pico-features are converted to integer form and placed in IntFeatures. The original floating-pt. features are returned in FloatFeatures.
Globals: none
Blob | blob to extract features from | |
[out] | IntFeatures | array to fill with integer features |
[out] | FloatFeatures | place to return actual floating-pt features |
UNICHAR_ID * tesseract::Classify::GetAmbiguities | ( | TBLOB * | Blob, |
CLASS_ID | CorrectClass | ||
) |
This routine matches blob to the built-in templates to find out if there are any classes other than the correct class which are potential ambiguities.
Blob | blob to get classification ambiguities for |
CorrectClass | correct class for Blob |
Globals:
int tesseract::Classify::GetCharNormFeature | ( | const INT_FX_RESULT_STRUCT & | fx_info, |
INT_TEMPLATES | templates, | ||
uint8_t * | pruner_norm_array, | ||
uint8_t * | char_norm_array | ||
) |
This routine calls the integer (Hardware) feature extractor if it has not been called before for this blob.
The results from the feature extractor are placed into globals so that they can be used in other routines without re-extracting the features.
It then copies the char norm features into the IntFeatures array provided by the caller.
templates | used to compute char norm adjustments |
pruner_norm_array | Array of factors from blob normalization process |
char_norm_array | array to fill with dummy char norm adjustments |
fx_info | Globals: |
CLASS_ID tesseract::Classify::GetClassToDebug | ( | const char * | Prompt, |
bool * | adaptive_on, | ||
bool * | pretrained_on, | ||
int * | shape_id | ||
) |
This routine prompts the user with Prompt and waits for the user to enter something in the debug window.
Prompt | prompt to print while waiting for input from window |
adaptive_on | |
pretrained_on | |
shape_id |
|
inlinevirtual |
Reimplemented in tesseract::Tesseract.
int tesseract::Classify::GetFontinfoId | ( | ADAPT_CLASS | Class, |
uint8_t | ConfigId | ||
) |
void tesseract::Classify::InitAdaptedClass | ( | TBLOB * | Blob, |
CLASS_ID | ClassId, | ||
int | FontinfoId, | ||
ADAPT_CLASS | Class, | ||
ADAPT_TEMPLATES | Templates | ||
) |
This routine creates a new adapted class and uses Blob as the model for the first config in that class.
Blob | blob to model new class after |
ClassId | id of the class to be initialized |
FontinfoId | font information inferred from pre-trained templates |
Class | adapted class to be initialized |
Templates | adapted templates to add new class to |
Globals:
void tesseract::Classify::InitAdaptiveClassifier | ( | TessdataManager * | mgr | ) |
This routine reads in the training information needed by the adaptive classifier and saves it into global variables. Parameters: load_pre_trained_templates Indicates whether the pre-trained templates (inttemp, normproto and pffmtable components) should be loaded. Should only be set to true if the necessary classifier components are present in the [lang].traineddata file. Globals: BuiltInTemplatesFile file to get built-in temps from BuiltInCutoffsFile file to get avg. feat per class from classify_use_pre_adapted_templates enables use of pre-adapted templates
tesseract::Classify::INT_VAR_H | ( | tessedit_single_match | , |
FALSE | , | ||
"Top choice only from CP" | |||
) |
tesseract::Classify::INT_VAR_H | ( | classify_debug_level | , |
0 | , | ||
"Classify debug level" | |||
) |
tesseract::Classify::INT_VAR_H | ( | classify_norm_method | , |
character | , | ||
"Normalization Method ..." | |||
) |
tesseract::Classify::INT_VAR_H | ( | matcher_debug_level | , |
0 | , | ||
"Matcher Debug Level" | |||
) |
tesseract::Classify::INT_VAR_H | ( | matcher_debug_flags | , |
0 | , | ||
"Matcher Debug Flags" | |||
) |
tesseract::Classify::INT_VAR_H | ( | classify_learning_debug_level | , |
0 | , | ||
"Learning Debug Level: " | |||
) |
tesseract::Classify::INT_VAR_H | ( | matcher_permanent_classes_min | , |
1 | , | ||
"Min # of permanent classes" | |||
) |
tesseract::Classify::INT_VAR_H | ( | matcher_min_examples_for_prototyping | , |
3 | , | ||
"Reliable Config Threshold" | |||
) |
tesseract::Classify::INT_VAR_H | ( | matcher_sufficient_examples_for_prototyping | , |
5 | , | ||
"Enable adaption even if the ambiguities have not been seen" | |||
) |
tesseract::Classify::INT_VAR_H | ( | classify_adapt_proto_threshold | , |
230 | , | ||
"Threshold for good protos during adaptive 0-255" | |||
) |
tesseract::Classify::INT_VAR_H | ( | classify_adapt_feature_threshold | , |
230 | , | ||
"Threshold for good features during adaptive 0-255" | |||
) |
tesseract::Classify::INT_VAR_H | ( | classify_class_pruner_threshold | , |
229 | , | ||
"Class Pruner Threshold 0-255" | |||
) |
tesseract::Classify::INT_VAR_H | ( | classify_class_pruner_multiplier | , |
15 | , | ||
"Class Pruner Multiplier 0-255: " | |||
) |
tesseract::Classify::INT_VAR_H | ( | classify_cp_cutoff_strength | , |
7 | , | ||
"Class Pruner CutoffStrength: " | |||
) |
tesseract::Classify::INT_VAR_H | ( | classify_integer_matcher_multiplier | , |
10 | , | ||
"Integer Matcher Multiplier 0-255: " | |||
) |
tesseract::Classify::INT_VAR_H | ( | il1_adaption_test | , |
0 | , | ||
"Don't adapt to i/I at beginning of word" | |||
) |
bool tesseract::Classify::LargeSpeckle | ( | const TBLOB & | blob | ) |
void tesseract::Classify::LearnBlob | ( | const STRING & | fontname, |
TBLOB * | Blob, | ||
const DENORM & | cn_denorm, | ||
const INT_FX_RESULT_STRUCT & | fx_info, | ||
const char * | blob_text | ||
) |
void tesseract::Classify::LearnPieces | ( | const char * | fontname, |
int | start, | ||
int | length, | ||
float | threshold, | ||
CharSegmentationType | segmentation, | ||
const char * | correct_text, | ||
WERD_RES * | word | ||
) |
void tesseract::Classify::LearnWord | ( | const char * | fontname, |
WERD_RES * | word | ||
) |
bool tesseract::Classify::LooksLikeGarbage | ( | TBLOB * | blob | ) |
int tesseract::Classify::MakeNewTemporaryConfig | ( | ADAPT_TEMPLATES | Templates, |
CLASS_ID | ClassId, | ||
int | FontinfoId, | ||
int | NumFeatures, | ||
INT_FEATURE_ARRAY | Features, | ||
FEATURE_SET | FloatFeatures | ||
) |
Templates | adapted templates to add new config to |
ClassId | class id to associate with new config |
FontinfoId | font information inferred from pre-trained templates |
NumFeatures | number of features in IntFeatures |
Features | features describing model for new config |
FloatFeatures | floating-pt representation of features |
PROTO_ID tesseract::Classify::MakeNewTempProtos | ( | FEATURE_SET | Features, |
int | NumBadFeat, | ||
FEATURE_ID | BadFeat[], | ||
INT_CLASS | IClass, | ||
ADAPT_CLASS | Class, | ||
BIT_VECTOR | TempProtoMask | ||
) |
This routine finds sets of sequential bad features that all have the same angle and converts each set into a new temporary proto. The temp proto is added to the proto pruner for IClass, pushed onto the list of temp protos in Class, and added to TempProtoMask.
Features | floating-pt features describing new character |
NumBadFeat | number of bad features to turn into protos |
BadFeat | feature id's of bad features |
IClass | integer class templates to add new protos to |
Class | adapted class templates to add new protos to |
TempProtoMask | proto mask to add new protos to |
Globals: none
void tesseract::Classify::MakePermanent | ( | ADAPT_TEMPLATES | Templates, |
CLASS_ID | ClassId, | ||
int | ConfigId, | ||
TBLOB * | Blob | ||
) |
Templates | current set of adaptive templates |
ClassId | class containing config to be made permanent |
ConfigId | config to be made permanent |
Blob | current blob being adapted to |
Globals: none
void tesseract::Classify::MasterMatcher | ( | INT_TEMPLATES | templates, |
int16_t | num_features, | ||
const INT_FEATURE_STRUCT * | features, | ||
const uint8_t * | norm_factors, | ||
ADAPT_CLASS * | classes, | ||
int | debug, | ||
int | matcher_multiplier, | ||
const TBOX & | blob_box, | ||
const GenericVector< CP_RESULT_STRUCT > & | results, | ||
ADAPT_RESULTS * | final_results | ||
) |
Factored-out calls to IntegerMatcher based on class pruner results. Returns integer matcher results inside CLASS_PRUNER_RESULTS structure.
ADAPT_TEMPLATES tesseract::Classify::NewAdaptedTemplates | ( | bool | InitFromUnicharset | ) |
Allocates memory for adapted tempates. each char in unicharset to the newly created templates
InitFromUnicharset | if true, add an empty class for |
void tesseract::Classify::NormalizeOutlines | ( | LIST | Outlines, |
float * | XScale, | ||
float * | YScale | ||
) |
This routine normalizes every outline in Outlines according to the currently selected normalization method. It also returns the scale factors that it used to do this scaling. The scale factors returned represent the x and y sizes in the normalized coordinate system that correspond to 1 pixel in the original coordinate system.
Globals:
Outlines | list of outlines to be normalized |
XScale | x-direction scale factor used by routine |
YScale | y-direction scale factor used by routine |
void tesseract::Classify::PrintAdaptedTemplates | ( | FILE * | File, |
ADAPT_TEMPLATES | Templates | ||
) |
void tesseract::Classify::PrintAdaptiveMatchResults | ( | const ADAPT_RESULTS & | results | ) |
int tesseract::Classify::PruneClasses | ( | const INT_TEMPLATES_STRUCT * | int_templates, |
int | num_features, | ||
int | keep_this, | ||
const INT_FEATURE_STRUCT * | features, | ||
const uint8_t * | normalization_factors, | ||
const uint16_t * | expected_num_features, | ||
GenericVector< CP_RESULT_STRUCT > * | results | ||
) |
Runs the class pruner from int_templates on the given features, returning the number of classes output in results.
int_templates | Class pruner tables |
num_features | Number of features in blob |
features | Array of features |
normalization_factors | Array of fudge factors from blob normalization process (by CLASS_INDEX) |
expected_num_features | Array of expected number of features for each class (by CLASS_INDEX) |
results | Sorted Array of pruned classes. Must be an array of size at least int_templates->NumClasses. |
keep_this |
ADAPT_TEMPLATES tesseract::Classify::ReadAdaptedTemplates | ( | TFile * | fp | ) |
Read a set of adapted templates from file and return a ptr to the templates.
fp | open text file to read adapted templates from |
INT_TEMPLATES tesseract::Classify::ReadIntTemplates | ( | TFile * | fp | ) |
void tesseract::Classify::ReadNewCutoffs | ( | TFile * | fp, |
CLASS_CUTOFF_ARRAY | Cutoffs | ||
) |
Open file, read in all of the class-id/cutoff pairs and insert them into the Cutoffs array. Cutoffs are indexed in the array by class id. Unused entries in the array are set to an arbitrarily high cutoff value.
fp | file containing cutoff definitions |
Cutoffs | array to put cutoffs into |
NORM_PROTOS * tesseract::Classify::ReadNormProtos | ( | TFile * | fp | ) |
This routine allocates a new data structure to hold a set of character normalization protos. It then fills in the data structure by reading from the specified File.
fp | open text file to read normalization protos from Globals: none |
void tesseract::Classify::RefreshDebugWindow | ( | ScrollView ** | win, |
const char * | msg, | ||
int | y_offset, | ||
const TBOX & | wbox | ||
) |
void tesseract::Classify::RemoveBadMatches | ( | ADAPT_RESULTS * | Results | ) |
This routine steps through each matching class in Results and removes it from the match list if its rating is worse than the BestRating plus a pad. In other words, all good matches get moved to the front of the classes array.
Results | contains matches to be filtered |
Globals:
void tesseract::Classify::RemoveExtraPuncs | ( | ADAPT_RESULTS * | Results | ) |
This routine discards extra digits or punctuation from the results. We keep only the top 2 punctuation answers and the top 1 digit answer if present.
Results | contains matches to be filtered |
void tesseract::Classify::ResetAdaptiveClassifierInternal | ( | ) |
void tesseract::Classify::SetAdaptiveThreshold | ( | float | Threshold | ) |
This routine resets the internal thresholds inside the integer matcher to correspond to the specified threshold.
Threshold | threshold for creating new templates |
Globals:
void tesseract::Classify::SetStaticClassifier | ( | ShapeClassifier * | static_classifier | ) |
void tesseract::Classify::SettupPass1 | ( | ) |
This routine prepares the adaptive matcher for the start of the first pass. Learning is enabled (unless it is disabled for the whole program).
Globals:
void tesseract::Classify::SettupPass2 | ( | ) |
This routine prepares the adaptive matcher for the start of the second pass. Further learning is disabled.
Globals:
|
static |
|
inline |
int tesseract::Classify::ShapeIDToClassID | ( | int | shape_id | ) | const |
void tesseract::Classify::ShowBestMatchFor | ( | int | shape_id, |
const INT_FEATURE_STRUCT * | features, | ||
int | num_features | ||
) |
This routine displays debug information for the best config of the given shape_id for the given set of features.
shape_id | classifier id to work with |
features | features of the unknown character |
num_features | Number of features in the features array. |
void tesseract::Classify::ShowMatchDisplay | ( | ) |
This routine sends the shapes in the global display lists to the match debugger window.
Globals:
void tesseract::Classify::StartBackupAdaptiveClassifier | ( | ) |
tesseract::Classify::STRING_VAR_H | ( | classify_learn_debug_str | , |
"" | , | ||
"Class str to debug learning" | |||
) |
void tesseract::Classify::SwitchAdaptiveClassifier | ( | ) |
bool tesseract::Classify::TempConfigReliable | ( | CLASS_ID | class_id, |
const TEMP_CONFIG & | config | ||
) |
void tesseract::Classify::UpdateAmbigsGroup | ( | CLASS_ID | class_id, |
TBLOB * | Blob | ||
) |
void tesseract::Classify::WriteAdaptedTemplates | ( | FILE * | File, |
ADAPT_TEMPLATES | Templates | ||
) |
void tesseract::Classify::WriteIntTemplates | ( | FILE * | File, |
INT_TEMPLATES | Templates, | ||
const UNICHARSET & | target_unicharset | ||
) |
This routine writes Templates to File. The format is an efficient binary format. File must already be open for writing.
File | open file to write templates to |
Templates | templates to save into File |
target_unicharset | the UNICHARSET to use |
bool tesseract::Classify::WriteTRFile | ( | const STRING & | filename | ) |
ADAPT_TEMPLATES tesseract::Classify::AdaptedTemplates |
BIT_VECTOR tesseract::Classify::AllConfigsOff |
BIT_VECTOR tesseract::Classify::AllConfigsOn |
BIT_VECTOR tesseract::Classify::AllProtosOn |
ADAPT_TEMPLATES tesseract::Classify::BackupAdaptedTemplates |
|
private |
|
private |
|
private |
bool tesseract::Classify::EnableLearning |
|
protected |
UnicityTable<FontInfo> tesseract::Classify::fontinfo_table_ |
UnicityTable<FontSet> tesseract::Classify::fontset_table_ |
|
protected |
|
private |
|
private |
|
private |
NORM_PROTOS* tesseract::Classify::NormProtos |
|
private |
INT_TEMPLATES tesseract::Classify::PreTrainedTemplates |
|
protected |
|
private |
|
private |
BIT_VECTOR tesseract::Classify::TempProtoMask |
|
private |