trainf_ocr_class_svmT_trainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvm (Operator)
Name
trainf_ocr_class_svmT_trainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvm
— Train an OCR classifier.
Signature
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)
Description
trainf_ocr_class_svmtrainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvmTrainfOcrClassSvm
trains the OCR classifier
OCRHandleOCRHandleOCRHandleOCRHandleOCRHandle
with the training characters stored in the OCR
training files given by TrainingFileTrainingFileTrainingFileTrainingFiletrainingFile
. The training files
must have been created, e.g., using write_ocr_trainfwrite_ocr_trainfWriteOcrTrainfWriteOcrTrainfWriteOcrTrainf
, before
calling trainf_ocr_class_svmtrainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvmTrainfOcrClassSvm
. The parameters
EpsilonEpsilonEpsilonEpsilonepsilon
and TrainModeTrainModeTrainModeTrainModetrainMode
have the same meaning as in
train_class_svmtrain_class_svmTrainClassSvmTrainClassSvmTrainClassSvm
. Please, note that training characters that have
no corresponding class in the classifier OCRHandleOCRHandleOCRHandleOCRHandleOCRHandle
are discarded.
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:
The value of this parameter may not be shared across multiple threads without external synchronization.
Parameters
OCRHandleOCRHandleOCRHandleOCRHandleOCRHandle
(input_control, state is modified) ocr_svm →
HOCRSvm, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle of the OCR classifier.
TrainingFileTrainingFileTrainingFileTrainingFiletrainingFile
(input_control) filename.read(-array) →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Names of the training files.
Default value:
'ocr.trf'
"ocr.trf"
"ocr.trf"
"ocr.trf"
"ocr.trf"
File extension: .trf
, .otr
EpsilonEpsilonEpsilonEpsilonepsilon
(input_control) real →
HTupleHTupleHtuple (real) (double) (double) (double)
Stop parameter for training.
Default value: 0.001
Suggested values: 0.00001, 0.0001, 0.001, 0.01, 0.1
TrainModeTrainModeTrainModeTrainModetrainMode
(input_control) number →
HTupleHTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
Mode of training.
Default value:
'default'
"default"
"default"
"default"
"default"
List of values: '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"
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_svmtrainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvmTrainfOcrClassSvm
returns the value 2 (H_MSG_TRUE). If necessary,
an exception is raised.
trainf_ocr_class_svmtrainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvmTrainfOcrClassSvm
may return the error 9211 (Matrix is
not positive definite) if Preprocessing
=
'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 Preprocessing
to
'normalization'"normalization""normalization""normalization""normalization". Another solution can be to add more
training samples.
Possible Predecessors
create_ocr_class_svmcreate_ocr_class_svmCreateOcrClassSvmCreateOcrClassSvmCreateOcrClassSvm
,
write_ocr_trainfwrite_ocr_trainfWriteOcrTrainfWriteOcrTrainfWriteOcrTrainf
,
append_ocr_trainfappend_ocr_trainfAppendOcrTrainfAppendOcrTrainfAppendOcrTrainf
,
write_ocr_trainf_imagewrite_ocr_trainf_imageWriteOcrTrainfImageWriteOcrTrainfImageWriteOcrTrainfImage
Possible Successors
do_ocr_single_class_svmdo_ocr_single_class_svmDoOcrSingleClassSvmDoOcrSingleClassSvmDoOcrSingleClassSvm
,
do_ocr_multi_class_svmdo_ocr_multi_class_svmDoOcrMultiClassSvmDoOcrMultiClassSvmDoOcrMultiClassSvm
,
write_ocr_class_svmwrite_ocr_class_svmWriteOcrClassSvmWriteOcrClassSvmWriteOcrClassSvm
Alternatives
read_ocr_class_svmread_ocr_class_svmReadOcrClassSvmReadOcrClassSvmReadOcrClassSvm
See also
train_class_svmtrain_class_svmTrainClassSvmTrainClassSvmTrainClassSvm
Module
OCR/OCV