trainf_ocr_class_mlp_protectedT_trainf_ocr_class_mlp_protectedTrainfOcrClassMlpProtectedTrainfOcrClassMlpProtectedtrainf_ocr_class_mlp_protected (算子)

名称

trainf_ocr_class_mlp_protectedT_trainf_ocr_class_mlp_protectedTrainfOcrClassMlpProtectedTrainfOcrClassMlpProtectedtrainf_ocr_class_mlp_protected — 使用(受保护的)训练文件中的数据训练 OCR 分类器。

签名

trainf_ocr_class_mlp_protected( : : OCRHandle, TrainingFile, Password, MaxIterations, WeightTolerance, ErrorTolerance : Error, ErrorLog)

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)

void TrainfOcrClassMlpProtected(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)

static void HOperatorSet.TrainfOcrClassMlpProtected(HTuple OCRHandle, HTuple trainingFile, HTuple password, HTuple maxIterations, HTuple weightTolerance, HTuple errorTolerance, out HTuple error, out HTuple errorLog)

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)

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]]

描述

trainf_ocr_class_mlp_protectedtrainf_ocr_class_mlp_protectedTrainfOcrClassMlpProtectedTrainfOcrClassMlpProtectedTrainfOcrClassMlpProtectedtrainf_ocr_class_mlp_protected trains the OCR classifier OCRHandleOCRHandleOCRHandleOCRHandleOCRHandleocrhandle with the training data stored in the OCR training files given by TrainingFileTrainingFileTrainingFileTrainingFiletrainingFiletraining_file. Its functionality corresponds to the functionality of trainf_ocr_class_mlptrainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlpTrainfOcrClassMlptrainf_ocr_class_mlp, with the addition that trainf_ocr_class_mlp_protectedtrainf_ocr_class_mlp_protectedTrainfOcrClassMlpProtectedTrainfOcrClassMlpProtectedTrainfOcrClassMlpProtectedtrainf_ocr_class_mlp_protected can process unprotected and protected training files. Protected training files can be used only with the correct user password PasswordPasswordPasswordPasswordpasswordpassword. If the number of passwords PasswordPasswordPasswordPasswordpasswordpassword equals 1, then every input file TrainingFileTrainingFileTrainingFileTrainingFiletrainingFiletraining_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_mlptrainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlpTrainfOcrClassMlptrainf_ocr_class_mlp。The concept of protecting OCR training data in HALCON is described in protect_ocr_trainfprotect_ocr_trainfProtectOcrTrainfProtectOcrTrainfProtectOcrTrainfprotect_ocr_trainf

执行信息

此算子修改后续输入参数的状态:

在执行此算子时,若该参数值需在多个线程间使用,则必须对其访问进行同步。

参数

OCRHandleOCRHandleOCRHandleOCRHandleOCRHandleocrhandle (输入控制,状态被修改)  ocr_mlp HOCRMlp, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle of the OCR classifier.

TrainingFileTrainingFileTrainingFileTrainingFiletrainingFiletraining_file (输入控制)  filename.read(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Names of the training files.

默认值: 'ocr.trf' "ocr.trf" "ocr.trf" "ocr.trf" "ocr.trf" "ocr.trf"

File extension: .trf, .otr

PasswordPasswordPasswordPasswordpasswordpassword (输入控制)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Passwords for protected training files.

MaxIterationsMaxIterationsMaxIterationsMaxIterationsmaxIterationsmax_iterations (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Maximum number of iterations of the optimization algorithm.

默认值: 200

建议值: 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300

WeightToleranceWeightToleranceWeightToleranceWeightToleranceweightToleranceweight_tolerance (输入控制)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

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

默认值: 1.0

建议值: 1.0, 0.1, 0.01, 0.001, 0.0001, 0.00001

限制: WeightTolerance >= 1.0e-8

ErrorToleranceErrorToleranceErrorToleranceErrorToleranceerrorToleranceerror_tolerance (输入控制)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

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

默认值: 0.01

建议值: 1.0, 0.1, 0.01, 0.001, 0.0001, 0.00001

限制: ErrorTolerance >= 1.0e-8

ErrorErrorErrorErrorerrorerror (输出控制)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Mean error of the MLP on the training data.

ErrorLogErrorLogErrorLogErrorLogerrorLogerror_log (输出控制)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

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

结果

如果参数有效,算子 trainf_ocr_class_mlp_protectedtrainf_ocr_class_mlp_protectedTrainfOcrClassMlpProtectedTrainfOcrClassMlpProtectedTrainfOcrClassMlpProtectedtrainf_ocr_class_mlp_protected 返回值 2 ( H_MSG_TRUE )。如有必要,则抛出异常。

trainf_ocr_class_mlp_protectedtrainf_ocr_class_mlp_protectedTrainfOcrClassMlpProtectedTrainfOcrClassMlpProtectedTrainfOcrClassMlpProtectedtrainf_ocr_class_mlp_protected may return the error 9211 (Matrix is not positive definite) if PreprocessingPreprocessingPreprocessingPreprocessingpreprocessingpreprocessing = 'canonical_variates'"canonical_variates""canonical_variates""canonical_variates""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 PreprocessingPreprocessingPreprocessingPreprocessingpreprocessingpreprocessing to 'normalization'"normalization""normalization""normalization""normalization""normalization". Another solution can be to add more training samples.

可能的前趋

create_ocr_class_mlpcreate_ocr_class_mlpCreateOcrClassMlpCreateOcrClassMlpCreateOcrClassMlpcreate_ocr_class_mlp, write_ocr_trainfwrite_ocr_trainfWriteOcrTrainfWriteOcrTrainfWriteOcrTrainfwrite_ocr_trainf, append_ocr_trainfappend_ocr_trainfAppendOcrTrainfAppendOcrTrainfAppendOcrTrainfappend_ocr_trainf, write_ocr_trainf_imagewrite_ocr_trainf_imageWriteOcrTrainfImageWriteOcrTrainfImageWriteOcrTrainfImagewrite_ocr_trainf_image, protect_ocr_trainfprotect_ocr_trainfProtectOcrTrainfProtectOcrTrainfProtectOcrTrainfprotect_ocr_trainf

可能的后继

do_ocr_single_class_mlpdo_ocr_single_class_mlpDoOcrSingleClassMlpDoOcrSingleClassMlpDoOcrSingleClassMlpdo_ocr_single_class_mlp, do_ocr_multi_class_mlpdo_ocr_multi_class_mlpDoOcrMultiClassMlpDoOcrMultiClassMlpDoOcrMultiClassMlpdo_ocr_multi_class_mlp, write_ocr_class_mlpwrite_ocr_class_mlpWriteOcrClassMlpWriteOcrClassMlpWriteOcrClassMlpwrite_ocr_class_mlp

替代

read_ocr_class_mlpread_ocr_class_mlpReadOcrClassMlpReadOcrClassMlpReadOcrClassMlpread_ocr_class_mlp

另见

trainf_ocr_class_mlptrainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlpTrainfOcrClassMlptrainf_ocr_class_mlp, train_class_mlptrain_class_mlpTrainClassMlpTrainClassMlpTrainClassMlptrain_class_mlp

模块

光学字符识别/光学字符验证