Skip to content

trainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvmtrainf_ocr_class_svmT_trainf_ocr_class_svm🔗

Short description🔗

trainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvmtrainf_ocr_class_svmT_trainf_ocr_class_svm — Train an OCR classifier.

Signature🔗

trainf_ocr_class_svm( ocr_svm OCRHandle, filename.read TrainingFile, real Epsilon, number TrainMode )void TrainfOcrClassSvm( const HTuple& OCRHandle, const HTuple& TrainingFile, const HTuple& Epsilon, const HTuple& TrainMode )static void HOperatorSet.TrainfOcrClassSvm( HTuple OCRHandle, HTuple trainingFile, HTuple epsilon, HTuple trainMode )def trainf_ocr_class_svm( ocrhandle: HHandle, training_file: MaybeSequence[str], epsilon: float, train_mode: Union[str, int] ) -> None

Herror T_trainf_ocr_class_svm( const Htuple OCRHandle, const Htuple TrainingFile, const Htuple Epsilon, const Htuple TrainMode )

void HOCRSvm::TrainfOcrClassSvm( const HTuple& TrainingFile, double Epsilon, const HTuple& TrainMode ) const

void HOCRSvm::TrainfOcrClassSvm( const HString& TrainingFile, double Epsilon, const HString& TrainMode ) const

void HOCRSvm::TrainfOcrClassSvm( const char* TrainingFile, double Epsilon, const char* TrainMode ) const

void HOCRSvm::TrainfOcrClassSvm( const wchar_t* TrainingFile, double Epsilon, const wchar_t* TrainMode ) const (Windows only)

void HOCRSvm.TrainfOcrClassSvm( HTuple trainingFile, double epsilon, HTuple trainMode )

void HOCRSvm.TrainfOcrClassSvm( string trainingFile, double epsilon, string trainMode )

Description🔗

trainf_ocr_class_svmTrainfOcrClassSvm trains the OCR classifier OCRHandleOCRHandleocrhandle with the training characters stored in the OCR training files given by TrainingFiletrainingFiletraining_file. The training files must have been created, e.g., using write_ocr_trainfWriteOcrTrainf, before calling trainf_ocr_class_svmTrainfOcrClassSvm. The parameters Epsilonepsilonepsilon and TrainModetrainModetrain_mode have the same meaning as in train_class_svmTrainClassSvm. Please, note that training characters that have no corresponding class in the classifier OCRHandleOCRHandleocrhandle are discarded.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Processed without parallelization.

This operator modifies the state of the following input parameter:

During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.

Parameters🔗

OCRHandleOCRHandleocrhandle (input_control, state is modified) ocr_svm → (handle)HTuple (HHandle)HOCRSvm, HTuple (IntPtr)HHandleHtuple (handle)

Handle of the OCR classifier.

TrainingFiletrainingFiletraining_file (input_control) filename.read(-array) → (string)HTuple (HString)HTuple (string)MaybeSequence[str]Htuple (char*)

Names of the training files.

Default: 'ocr.trf'"ocr.trf"
File extension: .trf, .otr

Epsilonepsilonepsilon (input_control) real → (real)HTuple (double)HTuple (double)floatHtuple (double)

Stop parameter for training.

Default: 0.0010.001
Suggested values: 0.00001, 0.0001, 0.001, 0.01, 0.10.00001, 0.0001, 0.001, 0.01, 0.1

TrainModetrainModetrain_mode (input_control) number → (string / integer)HTuple (HString / Hlong)HTuple (string / int / long)Union[str, int]Htuple (char* / Hlong)

Mode of training.

Default: 'default'"default"
List of values: 'add_sv_to_train_set', 'default'"add_sv_to_train_set", "default"

Example🔗

(HDevelop)

* Train an OCR classifier
read_ocr_trainf_names ('ocr.trf', CharacterNames, CharacterCount)
create_ocr_class_svm (8, 10, 'constant', 'default', CharacterNames, \
                      'rbf', 0.01, 0.01, 'one-versus-one', \
                      'normalization', 81, OCRHandle)
trainf_ocr_class_svm (OCRHandle, 'ocr.trf', 0.001, 'default')
write_ocr_class_svm (OCRHandle, 'ocr.osc')

Result🔗

If the parameters are valid the operator trainf_ocr_class_svmTrainfOcrClassSvm returns the value 2 (H_MSG_TRUE). If necessary, an exception is raised.

trainf_ocr_class_svmTrainfOcrClassSvm may return the error 9211 (Matrix is not positive definite) if Preprocessingpreprocessingpreprocessing \(=\) 'canonical_variates'"canonical_variates" is used. This typically indicates that not enough training samples have been stored for each class. In this case we recommend to change Preprocessingpreprocessingpreprocessing to 'normalization'"normalization". Another solution can be to add more training samples.

Combinations with other operators🔗

Combinations

Possible predecessors

create_ocr_class_svmCreateOcrClassSvm, write_ocr_trainfWriteOcrTrainf, append_ocr_trainfAppendOcrTrainf, write_ocr_trainf_imageWriteOcrTrainfImage

Possible successors

do_ocr_single_class_svmDoOcrSingleClassSvm, do_ocr_multi_class_svmDoOcrMultiClassSvm, write_ocr_class_svmWriteOcrClassSvm

Alternatives

read_ocr_class_svmReadOcrClassSvm

See also

train_class_svmTrainClassSvm

Module🔗

OCR/OCV