trainf_ocr_class_mlpT_trainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlp (Operator)
Name
trainf_ocr_class_mlpT_trainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlp
— Trainieren eines OCR-Klassifikators.
Signatur
void TrainfOcrClassMlp(const HTuple& OCRHandle, const HTuple& TrainingFile, const HTuple& MaxIterations, const HTuple& WeightTolerance, const HTuple& ErrorTolerance, HTuple* Error, HTuple* ErrorLog)
double HOCRMlp::TrainfOcrClassMlp(const HTuple& TrainingFile, Hlong MaxIterations, double WeightTolerance, double ErrorTolerance, HTuple* ErrorLog) const
double HOCRMlp::TrainfOcrClassMlp(const HString& TrainingFile, Hlong MaxIterations, double WeightTolerance, double ErrorTolerance, HTuple* ErrorLog) const
double HOCRMlp::TrainfOcrClassMlp(const char* TrainingFile, Hlong MaxIterations, double WeightTolerance, double ErrorTolerance, HTuple* ErrorLog) const
double HOCRMlp::TrainfOcrClassMlp(const wchar_t* TrainingFile, Hlong MaxIterations, double WeightTolerance, double ErrorTolerance, HTuple* ErrorLog) const
(Nur Windows)
static void HOperatorSet.TrainfOcrClassMlp(HTuple OCRHandle, HTuple trainingFile, HTuple maxIterations, HTuple weightTolerance, HTuple errorTolerance, out HTuple error, out HTuple errorLog)
double HOCRMlp.TrainfOcrClassMlp(HTuple trainingFile, int maxIterations, double weightTolerance, double errorTolerance, out HTuple errorLog)
double HOCRMlp.TrainfOcrClassMlp(string trainingFile, int maxIterations, double weightTolerance, double errorTolerance, out HTuple errorLog)
Beschreibung
trainf_ocr_class_mlptrainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlpTrainfOcrClassMlp
trainiert den OCR-Klassifikator
OCRHandleOCRHandleOCRHandleOCRHandleOCRHandle
mit den Trainingszeichen, die in den durch
TrainingFileTrainingFileTrainingFileTrainingFiletrainingFile
angegebenen OCR-Trainingsdateien enthalten
sind. Die Trainingsdateien müssen zuvor, z.B. mit
write_ocr_trainfwrite_ocr_trainfWriteOcrTrainfWriteOcrTrainfWriteOcrTrainf
, erzeugt worden sein.
Die restlichen Parameter haben dieselbe Bedeutung wie bei
train_class_mlptrain_class_mlpTrainClassMlpTrainClassMlpTrainClassMlp
und sind dort ausführlich beschrieben. Eine
Regularisierung des OCR-Klassifikators und eine automatische
Bestimmung der Regularisierungsparameter (siehe
set_regularization_params_ocr_class_mlpset_regularization_params_ocr_class_mlpSetRegularizationParamsOcrClassMlpSetRegularizationParamsOcrClassMlpSetRegularizationParamsOcrClassMlp
) wird beim Training
berücksichtigt. Weiterhin werden vor dem eigentlichen Training die
Trainingsdaten für die Rückweisungsklasse erzeugt, falls eine
Rückweisungsklasse mittels
set_rejection_params_ocr_class_mlpset_rejection_params_ocr_class_mlpSetRejectionParamsOcrClassMlpSetRejectionParamsOcrClassMlpSetRejectionParamsOcrClassMlp
spezifiziert wurde.
Es ist zu beachten, dass Trainingszeichen, die keine entsprechende
Klasse im Klassifikator OCRHandleOCRHandleOCRHandleOCRHandleOCRHandle
haben, verworfen werden.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf interner Datenebene.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
Parameter
OCRHandleOCRHandleOCRHandleOCRHandleOCRHandle
(input_control, Zustand wird modifiziert) ocr_mlp →
HOCRMlp, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle des OCR-Klassifikators.
TrainingFileTrainingFileTrainingFileTrainingFiletrainingFile
(input_control) filename.read(-array) →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Namen der Trainingsdateien.
Defaultwert:
'ocr.trf'
"ocr.trf"
"ocr.trf"
"ocr.trf"
"ocr.trf"
Dateiendung: .trf
, .otr
MaxIterationsMaxIterationsMaxIterationsMaxIterationsmaxIterations
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Maximale Anzahl von Iterationen des
Optimierungsverfahrens.
Defaultwert: 200
Wertevorschläge: 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300
WeightToleranceWeightToleranceWeightToleranceWeightToleranceweightTolerance
(input_control) real →
HTupleHTupleHtuple (real) (double) (double) (double)
Schwellwert für den Unterschied der Gewichte
des MLP zwischen zwei Iterationen des
Optimierungsverfahrens.
Defaultwert: 1.0
Wertevorschläge: 1.0, 0.1, 0.01, 0.001, 0.0001, 0.00001
Restriktion: WeightTolerance >= 1.0e-8
ErrorToleranceErrorToleranceErrorToleranceErrorToleranceerrorTolerance
(input_control) real →
HTupleHTupleHtuple (real) (double) (double) (double)
Schwellwert für den Unterschied des mittleren
Fehlers des MLP auf den Trainingsdaten zwischen
zwei Iterationen des Optimierungsverfahrens.
Defaultwert: 0.01
Wertevorschläge: 1.0, 0.1, 0.01, 0.001, 0.0001, 0.00001
Restriktion: ErrorTolerance >= 1.0e-8
ErrorErrorErrorErrorerror
(output_control) real →
HTupleHTupleHtuple (real) (double) (double) (double)
Mittlerer Fehler des MLP auf den Trainingsdaten.
ErrorLogErrorLogErrorLogErrorLogerrorLog
(output_control) real-array →
HTupleHTupleHtuple (real) (double) (double) (double)
Mittlerer Fehler des MLP auf den Trainingsdaten
pro Iteration des Optimierungsverfahrens.
Beispiel (HDevelop)
* Train an OCR classifier
read_ocr_trainf_names ('ocr.trf', CharacterNames, CharacterCount)
create_ocr_class_mlp (8, 10, 'constant', 'default', CharacterNames, 80, \
'none', 81, 42, OCRHandle)
trainf_ocr_class_mlp (OCRHandle, 'ocr.trf', 100, 1, 0.01, Error, ErrorLog)
write_ocr_class_mlp (OCRHandle, 'ocr.omc')
Ergebnis
Sind die Parameterwerte korrekt, dann liefert
trainf_ocr_class_mlptrainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlpTrainfOcrClassMlp
den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird
eine Fehlerbehandlung durchgeführt.
Falls trainf_ocr_class_mlptrainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlpTrainfOcrClassMlp
den Fehler 9211 (Matrix ist nicht
positiv definit) bei Preprocessing
=
'canonical_variates'"canonical_variates""canonical_variates""canonical_variates""canonical_variates" zurückliefert, bedeutet dies
typischerweise, dass für die verschiedenen Klassen zu wenige
Trainingsmuster gespeichert worden sind.
Für diesen Fall ist es sinnvoll, Preprocessing
auf
'normalization'"normalization""normalization""normalization""normalization" zu setzen. Ansonsten ist es auch möglich,
mehr Trainingsmuster hinzuzufügen.
Vorgänger
create_ocr_class_mlpcreate_ocr_class_mlpCreateOcrClassMlpCreateOcrClassMlpCreateOcrClassMlp
,
write_ocr_trainfwrite_ocr_trainfWriteOcrTrainfWriteOcrTrainfWriteOcrTrainf
,
append_ocr_trainfappend_ocr_trainfAppendOcrTrainfAppendOcrTrainfAppendOcrTrainf
,
write_ocr_trainf_imagewrite_ocr_trainf_imageWriteOcrTrainfImageWriteOcrTrainfImageWriteOcrTrainfImage
,
set_regularization_params_ocr_class_mlpset_regularization_params_ocr_class_mlpSetRegularizationParamsOcrClassMlpSetRegularizationParamsOcrClassMlpSetRegularizationParamsOcrClassMlp
Nachfolger
do_ocr_single_class_mlpdo_ocr_single_class_mlpDoOcrSingleClassMlpDoOcrSingleClassMlpDoOcrSingleClassMlp
,
do_ocr_multi_class_mlpdo_ocr_multi_class_mlpDoOcrMultiClassMlpDoOcrMultiClassMlpDoOcrMultiClassMlp
,
write_ocr_class_mlpwrite_ocr_class_mlpWriteOcrClassMlpWriteOcrClassMlpWriteOcrClassMlp
Alternativen
read_ocr_class_mlpread_ocr_class_mlpReadOcrClassMlpReadOcrClassMlpReadOcrClassMlp
Siehe auch
train_class_mlptrain_class_mlpTrainClassMlpTrainClassMlpTrainClassMlp
Modul
OCR/OCV