trainf_ocr_class_svmT_trainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvmtrainf_ocr_class_svm (算子)
名称
trainf_ocr_class_svmT_trainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvmtrainf_ocr_class_svm — 训练 OCR 分类器。
签名
void TrainfOcrClassSvm(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)
描述
trainf_ocr_class_svmtrainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvmTrainfOcrClassSvmtrainf_ocr_class_svm trains the OCR classifier
OCRHandleOCRHandleOCRHandleOCRHandleOCRHandleocrhandle with the training characters stored in the OCR
training files given by TrainingFileTrainingFileTrainingFileTrainingFiletrainingFiletraining_file. The training files
must have been created, e.g., using write_ocr_trainfwrite_ocr_trainfWriteOcrTrainfWriteOcrTrainfWriteOcrTrainfwrite_ocr_trainf, before
calling trainf_ocr_class_svmtrainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvmTrainfOcrClassSvmtrainf_ocr_class_svm. The parameters
EpsilonEpsilonEpsilonEpsilonepsilonepsilon and TrainModeTrainModeTrainModeTrainModetrainModetrain_mode have the same meaning as in
train_class_svmtrain_class_svmTrainClassSvmTrainClassSvmTrainClassSvmtrain_class_svm。Please, note that training characters that have
no corresponding class in the classifier OCRHandleOCRHandleOCRHandleOCRHandleOCRHandleocrhandle are discarded.
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子修改后续输入参数的状态:
在执行此算子时,若该参数值需在多个线程间使用,则必须对其访问进行同步。
参数
OCRHandleOCRHandleOCRHandleOCRHandleOCRHandleocrhandle (输入控制,状态被修改) ocr_svm → HOCRSvm, 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
EpsilonEpsilonEpsilonEpsilonepsilonepsilon (输入控制) real → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Stop parameter for training.
默认值:
0.001
建议值:
0.00001, 0.0001, 0.001, 0.01, 0.1
TrainModeTrainModeTrainModeTrainModetrainModetrain_mode (输入控制) number → HTupleUnion[str, int]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
Mode of training.
默认值:
'default'
"default"
"default"
"default"
"default"
"default"
值列表:
'add_sv_to_train_set'"add_sv_to_train_set""add_sv_to_train_set""add_sv_to_train_set""add_sv_to_train_set""add_sv_to_train_set", 'default'"default""default""default""default""default"
示例(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')
结果
如果参数有效,算子 trainf_ocr_class_svmtrainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvmTrainfOcrClassSvmtrainf_ocr_class_svm 返回值 2 ( H_MSG_TRUE )。如有必要,则抛出异常。
trainf_ocr_class_svmtrainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvmTrainfOcrClassSvmtrainf_ocr_class_svm 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_svmcreate_ocr_class_svmCreateOcrClassSvmCreateOcrClassSvmCreateOcrClassSvmcreate_ocr_class_svm,
write_ocr_trainfwrite_ocr_trainfWriteOcrTrainfWriteOcrTrainfWriteOcrTrainfwrite_ocr_trainf,
append_ocr_trainfappend_ocr_trainfAppendOcrTrainfAppendOcrTrainfAppendOcrTrainfappend_ocr_trainf,
write_ocr_trainf_imagewrite_ocr_trainf_imageWriteOcrTrainfImageWriteOcrTrainfImageWriteOcrTrainfImagewrite_ocr_trainf_image
可能的后继
do_ocr_single_class_svmdo_ocr_single_class_svmDoOcrSingleClassSvmDoOcrSingleClassSvmDoOcrSingleClassSvmdo_ocr_single_class_svm,
do_ocr_multi_class_svmdo_ocr_multi_class_svmDoOcrMultiClassSvmDoOcrMultiClassSvmDoOcrMultiClassSvmdo_ocr_multi_class_svm,
write_ocr_class_svmwrite_ocr_class_svmWriteOcrClassSvmWriteOcrClassSvmWriteOcrClassSvmwrite_ocr_class_svm
替代
read_ocr_class_svmread_ocr_class_svmReadOcrClassSvmReadOcrClassSvmReadOcrClassSvmread_ocr_class_svm
另见
train_class_svmtrain_class_svmTrainClassSvmTrainClassSvmTrainClassSvmtrain_class_svm
模块
光学字符识别/光学字符验证