| Operatoren |
get_prep_info_ocr_class_svm — Berechnung des Informationsgehaltes der vorverarbeiteten Merkmalsvektoren eines OCR-Klassifikators.
get_prep_info_ocr_class_svm( : : OCRHandle, TrainingFile, Preprocessing : InformationCont, CumInformationCont)
get_prep_info_ocr_class_svm berechnet den Informationsgehalt der mit der durch Preprocessing gegebenen Vorverarbeitung transformierten Komponenten der Trainingsvektoren. Preprocessing kann auf 'principal_components' oder 'canonical_variates' gesetzt werden. Der OCR-Klassifikator OCRHandle muss mit create_ocr_class_svm erzeugt worden sein. Die zugrundeliegenden Vorverarbeitungen sind bei create_class_svm beschrieben. Der Informationsgehalt wird aus die Variation der transformierten Komponenten der Trainingsvektoren berechnet, d.h. er wird rein aufgrund der Trainingsdaten unabhängig von einer Fehlerrate bei einer Klassifikation der Trainingsdaten berechnet. Der Informationsgehalt wird für alle relevanten Komponenten der transformierten Merkmalsvektoren (NumFeatures für 'principal_components' und min(NumClasses - 1, NumFeatures) für 'canonical_variates', siehe create_class_svm) in InformationCont zurückgegeben. Der Informationsgehalt wird als eine Zahl zwischen 0 und 1 dargestellt. Ein prozentualer Informationsgehalt kann leicht durch Multiplikation mit 100 berechnet werden. Der kumulierte Informationsgehalt der ersten n Komponenten wird in der n-ten Komponente von CumInformationCont zurückgegeben, d.h. CumInformationCont enthält die Summen der ersten n Elemente von InformationCont. Um get_prep_info_ocr_class_svm verwenden zu können, müssen Trainingsmuster in den durch TrainingFile angegebenen Trainingsdateien abgespeichert werden (siehe write_ocr_trainf).
InformationCont und CumInformationCont können dazu verwendet werden, um zu entscheiden, wieviele Komponenten der transformierten Merkmalsvektoren relevante Information enthalten. Ein oft verwendetes Kriterium ist z.B. zu verlangen, dass die transformierten Daten x% (z.B. 90%) der Daten enthalten sollten. Dies kann leicht anhand des ersten Wertes von CumInformationCont, der über x% liegt, bestimmt werden. Der so erhaltene Wert kann bei einem neuerlichen Aufruf von create_ocr_class_svm als NumComponents verwendet werden. Da zum Aufruf von get_prep_info_ocr_class_svm schon ein Klassifikator mit create_ocr_class_svm erzeugt werden muss, also auch ein initialer Wert von NumComponents bei create_ocr_class_svm angegeben werden muss, aber bei Verwendung von get_prep_info_ocr_class_svm typischerweise noch nicht bekannt ist, wieviele Komponenten relevant sind, empfiehlt sich folgendes zweistufiges Vorgehen, um NumComponents zu bestimmen: In einem ersten Schritt wird ein Klassifikator mit der maximalen Anzahl von NumComponents (NumFeatures für 'principal_components' und min(NumClasses - 1, NumFeatures) für 'canonical_variates') erzeugt. Dann werden die Trainingsmuster mit write_ocr_trainf in einer Datei gespeichert. Anschließend wird mit get_prep_info_ocr_class_svm der Informationsgehalt der Komponenten und somit NumComponents bestimmt. Danach wird ein neuer Klassifikator mit der gewünschten Anzahl Komponenten erzeugt und der Klassifikator mit trainf_ocr_class_svm trainiert.
Handle des OCR-Klassifikators.
Name(n) der Trainingsdatei(en).
Defaultwert: 'ocr.trf'
Dateiendung: .trf, .otr
Art der Vorverarbeitung (Transformation) der Merkmalsvektoren.
Defaultwert: 'principal_components'
Werteliste: 'canonical_variates', 'principal_components'
Relativer Informationsgehalt der transformierten Merkmalsvektoren.
Kumulierter Informationsgehalt der transformierten Merkmalsvektoren.
* Create the initial 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', \
'principal_components', 81, OCRHandle)
* Get the information content of the transformed feature vectors.
get_prep_info_ocr_class_svm (OCRHandle, 'ocr.trf', 'principal_components', \
InformationCont, CumInformationCont)
* Determine the number of transformed components.
* NumComp = [...]
clear_ocr_class_svm (OCRHandle)
* Create the final OCR classifier.
create_ocr_class_svm (8, 10, 'constant', 'default', CharacterNames, \
'rbf', 0.01, 0.01,'one-versus-one', \
'principal_components', NumComp, OCRHandle)
* Train the final classifier.
trainf_ocr_class_svm (OCRHandle, 'ocr.trf', 0.001, 'default')
write_ocr_class_svm (OCRHandle, 'ocr.osc')
clear_ocr_class_svm (OCRHandle)
Sind die Parameterwerte korrekt, dann liefert get_prep_info_ocr_class_svm den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Falls get_prep_info_ocr_class_svm den Fehler 9211 (Matrix ist nicht positiv definit) bei Preprocessing = 'canonical_variates' zurückliefert, bedeutet dies typischerweise, dass für die verschiedenen Klassen zu wenige Trainingsmuster gespeichert worden sind.
create_ocr_class_svm, write_ocr_trainf, append_ocr_trainf, write_ocr_trainf_image
clear_ocr_class_svm, create_ocr_class_svm
OCR/OCV
| Operatoren |