Skip to content

trainf_ocr_class_mlp_protectedTrainfOcrClassMlpProtectedTrainfOcrClassMlpProtectedtrainf_ocr_class_mlp_protectedT_trainf_ocr_class_mlp_protectedπŸ”—

Short descriptionπŸ”—

trainf_ocr_class_mlp_protectedTrainfOcrClassMlpProtectedTrainfOcrClassMlpProtectedtrainf_ocr_class_mlp_protectedT_trainf_ocr_class_mlp_protected β€” Train an OCR classifier with data from a (protected) training file.

SignatureπŸ”—

trainf_ocr_class_mlp_protected( ocr_mlp OCRHandle, filename.read TrainingFile, string Password, integer MaxIterations, real WeightTolerance, real ErrorTolerance, out real Error, out real ErrorLog )void TrainfOcrClassMlpProtected( const HTuple& OCRHandle, const HTuple& TrainingFile, const HTuple& Password, const HTuple& MaxIterations, const HTuple& WeightTolerance, const HTuple& ErrorTolerance, HTuple* Error, HTuple* ErrorLog )static void HOperatorSet.TrainfOcrClassMlpProtected( HTuple OCRHandle, HTuple trainingFile, HTuple password, HTuple maxIterations, HTuple weightTolerance, HTuple errorTolerance, out HTuple error, out HTuple errorLog )def trainf_ocr_class_mlp_protected( ocrhandle: HHandle, training_file: MaybeSequence[str], password: MaybeSequence[str], max_iterations: int, weight_tolerance: float, error_tolerance: float ) -> Tuple[float, Sequence[float]]

Herror T_trainf_ocr_class_mlp_protected( const Htuple OCRHandle, const Htuple TrainingFile, const Htuple Password, const Htuple MaxIterations, const Htuple WeightTolerance, const Htuple ErrorTolerance, Htuple* Error, Htuple* ErrorLog )

double HOCRMlp::TrainfOcrClassMlpProtected( const HTuple& TrainingFile, const HTuple& Password, Hlong MaxIterations, double WeightTolerance, double ErrorTolerance, HTuple* ErrorLog ) const

double HOCRMlp::TrainfOcrClassMlpProtected( const HString& TrainingFile, const HString& Password, Hlong MaxIterations, double WeightTolerance, double ErrorTolerance, HTuple* ErrorLog ) const

double HOCRMlp::TrainfOcrClassMlpProtected( const char* TrainingFile, const char* Password, Hlong MaxIterations, double WeightTolerance, double ErrorTolerance, HTuple* ErrorLog ) const

double HOCRMlp::TrainfOcrClassMlpProtected( const wchar_t* TrainingFile, const wchar_t* Password, Hlong MaxIterations, double WeightTolerance, double ErrorTolerance, HTuple* ErrorLog ) const (Windows only)

double HOCRMlp.TrainfOcrClassMlpProtected( HTuple trainingFile, HTuple password, int maxIterations, double weightTolerance, double errorTolerance, out HTuple errorLog )

double HOCRMlp.TrainfOcrClassMlpProtected( string trainingFile, string password, int maxIterations, double weightTolerance, double errorTolerance, out HTuple errorLog )

DescriptionπŸ”—

trainf_ocr_class_mlp_protectedTrainfOcrClassMlpProtected trains the OCR classifier OCRHandleOCRHandleocrhandle with the training data stored in the OCR training files given by TrainingFiletrainingFiletraining_file. Its functionality corresponds to the functionality of trainf_ocr_class_mlpTrainfOcrClassMlp, with the addition that trainf_ocr_class_mlp_protectedTrainfOcrClassMlpProtected can process unprotected and protected training files. Protected training files can be used only with the correct user password Passwordpasswordpassword. If the number of passwords Passwordpasswordpassword equals 1, then every input file TrainingFiletrainingFiletraining_file is checked with that password, otherwise the number of passwords has to be equal to the number of input files and the input file at position n is checked with the password at position n. For unprotected training files the passwords are ignored.

For a more detailed description of the operator’s functionality see trainf_ocr_class_mlpTrainfOcrClassMlp. The concept of protecting OCR training data in HALCON is described in protect_ocr_trainfProtectOcrTrainf.

Execution informationπŸ”—

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

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

  • Automatically parallelized on internal data level.

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_mlp β†’ (handle)HTuple (HHandle)HOCRMlp, 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

Passwordpasswordpassword (input_control) string(-array) β†’ (string)HTuple (HString)HTuple (string)MaybeSequence[str]Htuple (char*)

Passwords for protected training files.

MaxIterationsmaxIterationsmax_iterations (input_control) integer β†’ (integer)HTuple (Hlong)HTuple (int / long)intHtuple (Hlong)

Maximum number of iterations of the optimization algorithm.

Default: 200200
Suggested values: 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 30020, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300

WeightToleranceweightToleranceweight_tolerance (input_control) real β†’ (real)HTuple (double)HTuple (double)floatHtuple (double)

Threshold for the difference of the weights of the MLP between two iterations of the optimization algorithm.

Default: 1.01.0
Suggested values: 1.0, 0.1, 0.01, 0.001, 0.0001, 0.000011.0, 0.1, 0.01, 0.001, 0.0001, 0.00001
Restriction: WeightTolerance >= 1.0e-8

ErrorToleranceerrorToleranceerror_tolerance (input_control) real β†’ (real)HTuple (double)HTuple (double)floatHtuple (double)

Threshold for the difference of the mean error of the MLP on the training data between two iterations of the optimization algorithm.

Default: 0.010.01
Suggested values: 1.0, 0.1, 0.01, 0.001, 0.0001, 0.000011.0, 0.1, 0.01, 0.001, 0.0001, 0.00001
Restriction: ErrorTolerance >= 1.0e-8

Errorerrorerror (output_control) real β†’ (real)HTuple (double)HTuple (double)floatHtuple (double)

Mean error of the MLP on the training data.

ErrorLogerrorLogerror_log (output_control) real-array β†’ (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)

Mean error of the MLP on the training data as a function of the number of iterations of the optimization algorithm.

ResultπŸ”—

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

trainf_ocr_class_mlp_protectedTrainfOcrClassMlpProtected 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_mlpCreateOcrClassMlp, write_ocr_trainfWriteOcrTrainf, append_ocr_trainfAppendOcrTrainf, write_ocr_trainf_imageWriteOcrTrainfImage, protect_ocr_trainfProtectOcrTrainf

Possible successors

do_ocr_single_class_mlpDoOcrSingleClassMlp, do_ocr_multi_class_mlpDoOcrMultiClassMlp, write_ocr_class_mlpWriteOcrClassMlp

Alternatives

read_ocr_class_mlpReadOcrClassMlp

See also

trainf_ocr_class_mlpTrainfOcrClassMlp, train_class_mlpTrainClassMlp

ModuleπŸ”—

OCR/OCV