KlassenKlassenKlassenKlassen | | | | Operatoren

create_ocr_class_svmT_create_ocr_class_svmCreateOcrClassSvmcreate_ocr_class_svmCreateOcrClassSvmCreateOcrClassSvm (Operator)

Name

create_ocr_class_svmT_create_ocr_class_svmCreateOcrClassSvmcreate_ocr_class_svmCreateOcrClassSvmCreateOcrClassSvm — Erzeugen eines OCR-Klassifikators unter Verwendung einer Support-Vektor-Maschine.

Signatur

create_ocr_class_svm( : : WidthCharacter, HeightCharacter, Interpolation, Features, Characters, KernelType, KernelParam, Nu, Mode, Preprocessing, NumComponents : OCRHandle)

Herror T_create_ocr_class_svm(const Htuple WidthCharacter, const Htuple HeightCharacter, const Htuple Interpolation, const Htuple Features, const Htuple Characters, const Htuple KernelType, const Htuple KernelParam, const Htuple Nu, const Htuple Mode, const Htuple Preprocessing, const Htuple NumComponents, Htuple* OCRHandle)

Herror create_ocr_class_svm(const HTuple& WidthCharacter, const HTuple& HeightCharacter, const HTuple& Interpolation, const HTuple& Features, const HTuple& Characters, const HTuple& KernelType, const HTuple& KernelParam, const HTuple& Nu, const HTuple& Mode, const HTuple& Preprocessing, const HTuple& NumComponents, Hlong* OCRHandle)

void HOCRSvm::CreateOcrClassSvm(const HTuple& WidthCharacter, const HTuple& HeightCharacter, const HTuple& Interpolation, const HTuple& Features, const HTuple& Characters, const HTuple& KernelType, const HTuple& KernelParam, const HTuple& Nu, const HTuple& Mode, const HTuple& Preprocessing, const HTuple& NumComponents)

void CreateOcrClassSvm(const HTuple& WidthCharacter, const HTuple& HeightCharacter, const HTuple& Interpolation, const HTuple& Features, const HTuple& Characters, const HTuple& KernelType, const HTuple& KernelParam, const HTuple& Nu, const HTuple& Mode, const HTuple& Preprocessing, const HTuple& NumComponents, HTuple* OCRHandle)

void HOCRSvm::HOCRSvm(Hlong WidthCharacter, Hlong HeightCharacter, const HString& Interpolation, const HTuple& Features, const HTuple& Characters, const HString& KernelType, double KernelParam, double Nu, const HString& Mode, const HString& Preprocessing, Hlong NumComponents)

void HOCRSvm::HOCRSvm(Hlong WidthCharacter, Hlong HeightCharacter, const HString& Interpolation, const HString& Features, const HTuple& Characters, const HString& KernelType, double KernelParam, double Nu, const HString& Mode, const HString& Preprocessing, Hlong NumComponents)

void HOCRSvm::HOCRSvm(Hlong WidthCharacter, Hlong HeightCharacter, const char* Interpolation, const char* Features, const HTuple& Characters, const char* KernelType, double KernelParam, double Nu, const char* Mode, const char* Preprocessing, Hlong NumComponents)

void HOCRSvm::CreateOcrClassSvm(Hlong WidthCharacter, Hlong HeightCharacter, const HString& Interpolation, const HTuple& Features, const HTuple& Characters, const HString& KernelType, double KernelParam, double Nu, const HString& Mode, const HString& Preprocessing, Hlong NumComponents)

void HOCRSvm::CreateOcrClassSvm(Hlong WidthCharacter, Hlong HeightCharacter, const HString& Interpolation, const HString& Features, const HTuple& Characters, const HString& KernelType, double KernelParam, double Nu, const HString& Mode, const HString& Preprocessing, Hlong NumComponents)

void HOCRSvm::CreateOcrClassSvm(Hlong WidthCharacter, Hlong HeightCharacter, const char* Interpolation, const char* Features, const HTuple& Characters, const char* KernelType, double KernelParam, double Nu, const char* Mode, const char* Preprocessing, Hlong NumComponents)

void HOperatorSetX.CreateOcrClassSvm(
[in] VARIANT WidthCharacter, [in] VARIANT HeightCharacter, [in] VARIANT Interpolation, [in] VARIANT Features, [in] VARIANT Characters, [in] VARIANT KernelType, [in] VARIANT KernelParam, [in] VARIANT Nu, [in] VARIANT Mode, [in] VARIANT Preprocessing, [in] VARIANT NumComponents, [out] VARIANT* OCRHandle)

void HOCRSvmX.CreateOcrClassSvm(
[in] Hlong WidthCharacter, [in] Hlong HeightCharacter, [in] BSTR Interpolation, [in] VARIANT Features, [in] VARIANT Characters, [in] BSTR KernelType, [in] double KernelParam, [in] double Nu, [in] BSTR Mode, [in] BSTR Preprocessing, [in] Hlong NumComponents)

static void HOperatorSet.CreateOcrClassSvm(HTuple widthCharacter, HTuple heightCharacter, HTuple interpolation, HTuple features, HTuple characters, HTuple kernelType, HTuple kernelParam, HTuple nu, HTuple mode, HTuple preprocessing, HTuple numComponents, out HTuple OCRHandle)

public HOCRSvm(int widthCharacter, int heightCharacter, string interpolation, HTuple features, HTuple characters, string kernelType, double kernelParam, double nu, string mode, string preprocessing, int numComponents)

public HOCRSvm(int widthCharacter, int heightCharacter, string interpolation, string features, HTuple characters, string kernelType, double kernelParam, double nu, string mode, string preprocessing, int numComponents)

void HOCRSvm.CreateOcrClassSvm(int widthCharacter, int heightCharacter, string interpolation, HTuple features, HTuple characters, string kernelType, double kernelParam, double nu, string mode, string preprocessing, int numComponents)

void HOCRSvm.CreateOcrClassSvm(int widthCharacter, int heightCharacter, string interpolation, string features, HTuple characters, string kernelType, double kernelParam, double nu, string mode, string preprocessing, int numComponents)

Beschreibung

create_ocr_class_svmcreate_ocr_class_svmCreateOcrClassSvmcreate_ocr_class_svmCreateOcrClassSvmCreateOcrClassSvm erzeugt einen OCR-Klassifikator unter Verwendung einer Support-Vektor-Maschine (SVM). Der Handle des OCR-Klassifikators wird in OCRHandleOCRHandleOCRHandleOCRHandleOCRHandleOCRHandle zurückgegeben.

Für eine Beschreibung der Funktionsweise einer SVM siehe create_class_svmcreate_class_svmCreateClassSvmcreate_class_svmCreateClassSvmCreateClassSvm. create_ocr_class_svmcreate_ocr_class_svmCreateOcrClassSvmcreate_ocr_class_svmCreateOcrClassSvmCreateOcrClassSvm erzeugt eine SVM für die Klassifikation mit dem Modus ModeModeModeModeModemode. Die Länge des Merkmalsvektors der SVM (NumFeatures in create_class_svmcreate_class_svmCreateClassSvmcreate_class_svmCreateClassSvmCreateClassSvm) wird aus den für die OCR zu verwendenden Merkmalen, die in FeaturesFeaturesFeaturesFeaturesFeaturesfeatures übergeben werden, festgelegt. Die Merkmale sind unten beschrieben. Die Kernelfunktion und ihre Parametrisierung wird in KernelTypeKernelTypeKernelTypeKernelTypeKernelTypekernelType, KernelParamKernelParamKernelParamKernelParamKernelParamkernelParam und NuNuNuNuNunu analog zu create_class_svmcreate_class_svmCreateClassSvmcreate_class_svmCreateClassSvmCreateClassSvm angegeben. Die Anzahl der Klassen der SVM (NumClasses in create_class_svmcreate_class_svmCreateClassSvmcreate_class_svmCreateClassSvmCreateClassSvm) wird aus den für die OCR zu verwendenden Namen der Zeichen, die in CharactersCharactersCharactersCharactersCharacterscharacters übergeben werden, festgelegt. Wie bei create_class_svmcreate_class_svmCreateClassSvmcreate_class_svmCreateClassSvmCreateClassSvm beschrieben, kann mit PreprocessingPreprocessingPreprocessingPreprocessingPreprocessingpreprocessing und NumComponentsNumComponentsNumComponentsNumComponentsNumComponentsnumComponents eine Vorverarbeitung der Daten (Merkmalsvektoren) festgelegt werden. Um die numerische Stabilität zu erhöhen, soll hier im Normalfall 'normalization'"normalization""normalization""normalization""normalization""normalization" angegeben werden. Um die Klassifikationszeit zu beschleunigen, eignet sich insbesondere 'principal_components'"principal_components""principal_components""principal_components""principal_components""principal_components", da die Anzahl der Eingabefeatures in den Klassifikator deutlich reduziert werden kann, ohne dass sich die Erkennungsrate verschlechtert.

Die zur Klassifikation zu verwendenden Merkmale werden in FeaturesFeaturesFeaturesFeaturesFeaturesfeatures angegeben. Dabei kann FeaturesFeaturesFeaturesFeaturesFeaturesfeatures ein Tupel mit mehreren Merkmalsnamen beinhalten. Jeder dieser Merkmalsnamen führt zur Berechnung von einem oder mehreren Merkmalen für den Klassifikator. Einige der Merkmalsnamen erzeugen Grauwertmerkmale (z.B. 'pixel_invar'"pixel_invar""pixel_invar""pixel_invar""pixel_invar""pixel_invar"). Da ein Klassifikator immer eine konstante Anzahl von Merkmalen (Eingabevariablen) benötigt, wird ein zu klassifizierendes Zeichen auf eine Standardgröße transformiert, die durch WidthCharacterWidthCharacterWidthCharacterWidthCharacterWidthCharacterwidthCharacter und HeightCharacterHeightCharacterHeightCharacterHeightCharacterHeightCharacterheightCharacter festgelegt wird. Die bei der Transformation anzuwendende Interpolation wird mit InterpolationInterpolationInterpolationInterpolationInterpolationinterpolation festgelegt. Sie hat dieselbe Bedeutung wie bei affine_trans_imageaffine_trans_imageAffineTransImageaffine_trans_imageAffineTransImageAffineTransImage. Die Interpolation sollte so gewählt werden, dass bei der Transformation keine Aliasing-Effekte auftreten. Im Normalfall sollte InterpolationInterpolationInterpolationInterpolationInterpolationinterpolation = 'constant'"constant""constant""constant""constant""constant" verwendet werden. Bei der Wahl der Größe des transformierten Zeichens ist zu beachten, dass die Größe nicht zu groß gewählt wird, da die Generalisierungseigenschaften des Klassifikators sonst sehr schlecht werden können. Insbesondere können bei großen Größen kleine Segmentierungsfehler einen großen Einfluss auf die berechneten Merkmale haben, wenn Grauwertmerkmale verwendet werden, da sich durch die Segmentierungsfehler das umschließende Rechteck des Zeichens ändern kann, was dazu führt, dass das Zeichen anders als trainiert skaliert wird. Im Normalfall sollten Größen zwischen 6x8 und 10x14 verwendet werden.

Mit FeaturesFeaturesFeaturesFeaturesFeaturesfeatures können die folgenden Merkmalsnamen zur Erkennung der Zeichen ausgewählt werden.

'default'"default""default""default""default""default"

'ratio'"ratio""ratio""ratio""ratio""ratio" und 'pixel_invar'"pixel_invar""pixel_invar""pixel_invar""pixel_invar""pixel_invar" werden ausgewählt.

'pixel'"pixel""pixel""pixel""pixel""pixel"

Grauwerte des Zeichens (WidthCharacterWidthCharacterWidthCharacterWidthCharacterWidthCharacterwidthCharacter x HeightCharacterHeightCharacterHeightCharacterHeightCharacterHeightCharacterheightCharacter Merkmale).

'pixel_invar'"pixel_invar""pixel_invar""pixel_invar""pixel_invar""pixel_invar"

Grauwerte des Zeichens mit automatischer maximaler Grauwertspreizung (WidthCharacterWidthCharacterWidthCharacterWidthCharacterWidthCharacterwidthCharacter x HeightCharacterHeightCharacterHeightCharacterHeightCharacterHeightCharacterheightCharacter Merkmale).

'pixel_binary'"pixel_binary""pixel_binary""pixel_binary""pixel_binary""pixel_binary"

Region des Zeichens als Binärbild auf eine Größe von WidthCharacterWidthCharacterWidthCharacterWidthCharacterWidthCharacterwidthCharacter x HeightCharacterHeightCharacterHeightCharacterHeightCharacterHeightCharacterheightCharacter skaliert. (WidthCharacterWidthCharacterWidthCharacterWidthCharacterWidthCharacterwidthCharacter x HeightCharacterHeightCharacterHeightCharacterHeightCharacterHeightCharacterheightCharacter Merkmale).

'gradient_8dir'"gradient_8dir""gradient_8dir""gradient_8dir""gradient_8dir""gradient_8dir"

Die Gradienten des Zeichens werden berechnet. Die Gradientenrichtungen werden in 8 Richtungen diskretisiert. Das Amplitudenbild wird entsprechend der diskretisierten Richtungen in 8 Kanäle aufgeteilt. In jedem der 8 Kanäle werden auf einem 5x5 Gitter Stichproben entnommen. Diese Stichproben bilden die Merkmale (200 Merkmale).

'projection_horizontal'"projection_horizontal""projection_horizontal""projection_horizontal""projection_horizontal""projection_horizontal"

Horizontale Projektion der Grauwerte (siehe gray_projectionsgray_projectionsGrayProjectionsgray_projectionsGrayProjectionsGrayProjections, HeightCharacterHeightCharacterHeightCharacterHeightCharacterHeightCharacterheightCharacter Merkmale).

'projection_horizontal_invar'"projection_horizontal_invar""projection_horizontal_invar""projection_horizontal_invar""projection_horizontal_invar""projection_horizontal_invar"

Horizontale Projektion der Grauwerte, die maximal gespreizt sind (HeightCharacterHeightCharacterHeightCharacterHeightCharacterHeightCharacterheightCharacter Merkmale).

'projection_vertical'"projection_vertical""projection_vertical""projection_vertical""projection_vertical""projection_vertical"

Vertikale Projektion der Grauwerte (siehe gray_projectionsgray_projectionsGrayProjectionsgray_projectionsGrayProjectionsGrayProjections, WidthCharacterWidthCharacterWidthCharacterWidthCharacterWidthCharacterwidthCharacter Merkmale).

'projection_vertical_invar'"projection_vertical_invar""projection_vertical_invar""projection_vertical_invar""projection_vertical_invar""projection_vertical_invar"

Vertikale Projektion der Grauwerte, die maximal gespreizt sind (WidthCharacterWidthCharacterWidthCharacterWidthCharacterWidthCharacterwidthCharacter Merkmale).

'ratio'"ratio""ratio""ratio""ratio""ratio"

Seitenverhältnis des Zeichens (1 Merkmal).

'anisometry'"anisometry""anisometry""anisometry""anisometry""anisometry"

Formmerkmal Anisometrie (siehe eccentricityeccentricityEccentricityeccentricityEccentricityEccentricity, 1 Merkmal).

'width'"width""width""width""width""width"

Breite des Zeichens vor der Normierung auf die Standardgröße (nicht skalierungsinvariant, siehe smallest_rectangle1smallest_rectangle1SmallestRectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1, 1 Merkmal).

'height'"height""height""height""height""height"

Höhe des Zeichens vor der Normierung auf die Standardgröße (nicht skalierungsinvariant, siehe smallest_rectangle1smallest_rectangle1SmallestRectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1, 1 Merkmal).

'zoom_factor'"zoom_factor""zoom_factor""zoom_factor""zoom_factor""zoom_factor"

Größenunterschied zwischen aktuellem Zeichen und den Werten von WidthCharacterWidthCharacterWidthCharacterWidthCharacterWidthCharacterwidthCharacter und HeightCharacterHeightCharacterHeightCharacterHeightCharacterHeightCharacterheightCharacter (nicht skalierungsinvariant, 1 Merkmal).

'foreground'"foreground""foreground""foreground""foreground""foreground"

Relativer Anteil der Vordergrund-Pixel (1 Merkmal).

'foreground_grid_9'"foreground_grid_9""foreground_grid_9""foreground_grid_9""foreground_grid_9""foreground_grid_9"

Relativer Anteil der Vordergrund-Pixel in einem 3x3 Raster innerhalb des umschließenden Rechtecks des Zeichens (9 Merkmale).

'foreground_grid_16'"foreground_grid_16""foreground_grid_16""foreground_grid_16""foreground_grid_16""foreground_grid_16"

Relativer Anteil der Vordergrund-Pixel in einem 4x4 Raster innerhalb des umschließenden Rechtecks des Zeichens (16 Merkmale).

'compactness'"compactness""compactness""compactness""compactness""compactness"

Formmerkmal Kompaktheit (siehe compactnesscompactnessCompactnesscompactnessCompactnessCompactness, 1 Merkmal).

'convexity'"convexity""convexity""convexity""convexity""convexity"

Formmerkmal Konvexität (siehe convexityconvexityConvexityconvexityConvexityConvexity, 1 Merkmal).

'moments_region_2nd_invar'"moments_region_2nd_invar""moments_region_2nd_invar""moments_region_2nd_invar""moments_region_2nd_invar""moments_region_2nd_invar"

Normierte zweite geometrische Momente der Region (siehe moments_region_2nd_invarmoments_region_2nd_invarMomentsRegion2ndInvarmoments_region_2nd_invarMomentsRegion2ndInvarMomentsRegion2ndInvar, 3 Merkmale).

'moments_region_2nd_rel_invar'"moments_region_2nd_rel_invar""moments_region_2nd_rel_invar""moments_region_2nd_rel_invar""moments_region_2nd_rel_invar""moments_region_2nd_rel_invar"

Normierte zweite relative geometrische Momente der Region (siehe moments_region_2nd_rel_invarmoments_region_2nd_rel_invarMomentsRegion2ndRelInvarmoments_region_2nd_rel_invarMomentsRegion2ndRelInvarMomentsRegion2ndRelInvar, 2 Merkmale).

'moments_region_3rd_invar'"moments_region_3rd_invar""moments_region_3rd_invar""moments_region_3rd_invar""moments_region_3rd_invar""moments_region_3rd_invar"

Normierte dritte geometrische Momente der Region (siehe moments_region_3rd_invarmoments_region_3rd_invarMomentsRegion3rdInvarmoments_region_3rd_invarMomentsRegion3rdInvarMomentsRegion3rdInvar, 4 Merkmale).

'moments_central'"moments_central""moments_central""moments_central""moments_central""moments_central"

Normierte zentrale geometrische Momente der Region (siehe moments_region_centralmoments_region_centralMomentsRegionCentralmoments_region_centralMomentsRegionCentralMomentsRegionCentral, 4 Merkmale).

'moments_gray_plane'"moments_gray_plane""moments_gray_plane""moments_gray_plane""moments_gray_plane""moments_gray_plane"

Normierte Grauwertmomente und die Winkel der Grauwertebene (siehe moments_gray_planemoments_gray_planeMomentsGrayPlanemoments_gray_planeMomentsGrayPlaneMomentsGrayPlane, 4 Merkmale)

'phi'"phi""phi""phi""phi""phi"

Orientierung (Winkel) des Zeichens (siehe elliptic_axiselliptic_axisEllipticAxiselliptic_axisEllipticAxisEllipticAxis, 1 Merkmal).

'num_connect'"num_connect""num_connect""num_connect""num_connect""num_connect"

Anzahl der Zusammenhangskomponenten (siehe connect_and_holesconnect_and_holesConnectAndHolesconnect_and_holesConnectAndHolesConnectAndHoles, 1 Merkmal).

'num_holes'"num_holes""num_holes""num_holes""num_holes""num_holes"

Anzahl der Hohlflächen (siehe connect_and_holesconnect_and_holesConnectAndHolesconnect_and_holesConnectAndHolesConnectAndHoles, 1 Merkmal).

'cooc'"cooc""cooc""cooc""cooc""cooc"

Werte der binären Cooccurrence-Matrix (siehe gen_cooc_matrixgen_cooc_matrixGenCoocMatrixgen_cooc_matrixGenCoocMatrixGenCoocMatrix, 12 Merkmale).

'num_runs'"num_runs""num_runs""num_runs""num_runs""num_runs"

Anzahl der Sehnen der Region normiert auf die Höhe (1 Merkmal).

'chord_histo'"chord_histo""chord_histo""chord_histo""chord_histo""chord_histo"

Häufigkeit der Sehnen pro Zeile (nicht skalierungsinvariant, HeightCharacterHeightCharacterHeightCharacterHeightCharacterHeightCharacterheightCharacter Merkmale).

Nachdem der Klassifikator erzeugt wurde, wird er mit trainf_ocr_class_svmtrainf_ocr_class_svmTrainfOcrClassSvmtrainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvm trainiert. Daraufhin kann der Klassifikator mit write_ocr_class_svmwrite_ocr_class_svmWriteOcrClassSvmwrite_ocr_class_svmWriteOcrClassSvmWriteOcrClassSvm abgespeichert werden. Alternativ können auch sofort nach dem Training Zeichen mit do_ocr_single_class_svmdo_ocr_single_class_svmDoOcrSingleClassSvmdo_ocr_single_class_svmDoOcrSingleClassSvmDoOcrSingleClassSvm oder do_ocr_multi_class_svmdo_ocr_multi_class_svmDoOcrMultiClassSvmdo_ocr_multi_class_svmDoOcrMultiClassSvmDoOcrMultiClassSvm klassifiziert werden.

Ein Vergleich zwischen SVM und mehrschichtigem Perzeptron (engl.: multilayer perceptron, MLP; siehe create_ocr_class_mlpcreate_ocr_class_mlpCreateOcrClassMlpcreate_ocr_class_mlpCreateOcrClassMlpCreateOcrClassMlp) zeigt typischerweise, dass SVMs generell schneller trainiert werden, insbesondere bei großen Trainingsdatensätzen, und eine leicht verbesserte Erkennungsrate haben. Das MLP weist schnellere Klassifikationszeiten auf und sollte daher in zeitkritischen Anwendungen verwendet werden. Es ist zu beachten, dass der Vergleich von optimal abgestimmten Parametern ausgeht.

Parallelisierung

Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.

Parameter

WidthCharacterWidthCharacterWidthCharacterWidthCharacterWidthCharacterwidthCharacter (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Breite des Rechtecks, auf die die Grauwerte des segmentierten Zeichens skaliert werden.

Defaultwert: 8

Wertevorschläge: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 20

Typischer Wertebereich: 4 ≤ WidthCharacter WidthCharacter WidthCharacter WidthCharacter WidthCharacter widthCharacter ≤ 20

HeightCharacterHeightCharacterHeightCharacterHeightCharacterHeightCharacterheightCharacter (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Höhe des Rechtecks, auf die die Grauwerte des segmentierten Zeichens skaliert werden.

Defaultwert: 10

Wertevorschläge: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 20

Typischer Wertebereich: 4 ≤ HeightCharacter HeightCharacter HeightCharacter HeightCharacter HeightCharacter heightCharacter ≤ 20

InterpolationInterpolationInterpolationInterpolationInterpolationinterpolation (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Interpolationsmodus bei der Skalierung der Zeichen.

Defaultwert: 'constant' "constant" "constant" "constant" "constant" "constant"

Werteliste: 'bicubic'"bicubic""bicubic""bicubic""bicubic""bicubic", 'bilinear'"bilinear""bilinear""bilinear""bilinear""bilinear", 'constant'"constant""constant""constant""constant""constant", 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor", 'weighted'"weighted""weighted""weighted""weighted""weighted"

FeaturesFeaturesFeaturesFeaturesFeaturesfeatures (input_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Merkmale, die zur Klassifikation verwendet werden.

Defaultwert: 'default' "default" "default" "default" "default" "default"

Werteliste: 'anisometry'"anisometry""anisometry""anisometry""anisometry""anisometry", 'chord_histo'"chord_histo""chord_histo""chord_histo""chord_histo""chord_histo", 'compactness'"compactness""compactness""compactness""compactness""compactness", 'convexity'"convexity""convexity""convexity""convexity""convexity", 'cooc'"cooc""cooc""cooc""cooc""cooc", 'default'"default""default""default""default""default", 'foreground'"foreground""foreground""foreground""foreground""foreground", 'foreground_grid_16'"foreground_grid_16""foreground_grid_16""foreground_grid_16""foreground_grid_16""foreground_grid_16", 'foreground_grid_9'"foreground_grid_9""foreground_grid_9""foreground_grid_9""foreground_grid_9""foreground_grid_9", 'gradient_8dir'"gradient_8dir""gradient_8dir""gradient_8dir""gradient_8dir""gradient_8dir", 'height'"height""height""height""height""height", 'moments_central'"moments_central""moments_central""moments_central""moments_central""moments_central", 'moments_gray_plane'"moments_gray_plane""moments_gray_plane""moments_gray_plane""moments_gray_plane""moments_gray_plane", 'moments_region_2nd_invar'"moments_region_2nd_invar""moments_region_2nd_invar""moments_region_2nd_invar""moments_region_2nd_invar""moments_region_2nd_invar", 'moments_region_2nd_rel_invar'"moments_region_2nd_rel_invar""moments_region_2nd_rel_invar""moments_region_2nd_rel_invar""moments_region_2nd_rel_invar""moments_region_2nd_rel_invar", 'moments_region_3rd_invar'"moments_region_3rd_invar""moments_region_3rd_invar""moments_region_3rd_invar""moments_region_3rd_invar""moments_region_3rd_invar", 'num_connect'"num_connect""num_connect""num_connect""num_connect""num_connect", 'num_holes'"num_holes""num_holes""num_holes""num_holes""num_holes", 'num_runs'"num_runs""num_runs""num_runs""num_runs""num_runs", 'phi'"phi""phi""phi""phi""phi", 'pixel'"pixel""pixel""pixel""pixel""pixel", 'pixel_binary'"pixel_binary""pixel_binary""pixel_binary""pixel_binary""pixel_binary", 'pixel_invar'"pixel_invar""pixel_invar""pixel_invar""pixel_invar""pixel_invar", 'projection_horizontal'"projection_horizontal""projection_horizontal""projection_horizontal""projection_horizontal""projection_horizontal", 'projection_horizontal_invar'"projection_horizontal_invar""projection_horizontal_invar""projection_horizontal_invar""projection_horizontal_invar""projection_horizontal_invar", 'projection_vertical'"projection_vertical""projection_vertical""projection_vertical""projection_vertical""projection_vertical", 'projection_vertical_invar'"projection_vertical_invar""projection_vertical_invar""projection_vertical_invar""projection_vertical_invar""projection_vertical_invar", 'ratio'"ratio""ratio""ratio""ratio""ratio", 'width'"width""width""width""width""width", 'zoom_factor'"zoom_factor""zoom_factor""zoom_factor""zoom_factor""zoom_factor"

CharactersCharactersCharactersCharactersCharacterscharacters (input_control)  string-array HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Alle Zeichen des zu lesenden Zeichensatzes.

Defaultwert: ['0','1','2','3','4','5','6','7','8','9'] ["0","1","2","3","4","5","6","7","8","9"] ["0","1","2","3","4","5","6","7","8","9"] ["0","1","2","3","4","5","6","7","8","9"] ["0","1","2","3","4","5","6","7","8","9"] ["0","1","2","3","4","5","6","7","8","9"]

KernelTypeKernelTypeKernelTypeKernelTypeKernelTypekernelType (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Art des Kernels.

Defaultwert: 'rbf' "rbf" "rbf" "rbf" "rbf" "rbf"

Werteliste: 'linear'"linear""linear""linear""linear""linear", 'polynomial_homogeneous'"polynomial_homogeneous""polynomial_homogeneous""polynomial_homogeneous""polynomial_homogeneous""polynomial_homogeneous", 'polynomial_inhomogeneous'"polynomial_inhomogeneous""polynomial_inhomogeneous""polynomial_inhomogeneous""polynomial_inhomogeneous""polynomial_inhomogeneous", 'rbf'"rbf""rbf""rbf""rbf""rbf"

KernelParamKernelParamKernelParamKernelParamKernelParamkernelParam (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zusätzlicher Parameter für die Kernelfunktion.

Defaultwert: 0.02

Wertevorschläge: 0.01, 0.02, 0.05, 0.1, 0.5

NuNuNuNuNunu (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Regularisierungskonstante der SVM.

Defaultwert: 0.05

Wertevorschläge: 0.0001, 0.001, 0.01, 0.05, 0.1, 0.2, 0.3

Restriktion: Nu > 0.0 && Nu < 1.0

ModeModeModeModeModemode (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Modus der SVM.

Defaultwert: 'one-versus-one' "one-versus-one" "one-versus-one" "one-versus-one" "one-versus-one" "one-versus-one"

Werteliste: 'one-versus-all'"one-versus-all""one-versus-all""one-versus-all""one-versus-all""one-versus-all", 'one-versus-one'"one-versus-one""one-versus-one""one-versus-one""one-versus-one""one-versus-one"

PreprocessingPreprocessingPreprocessingPreprocessingPreprocessingpreprocessing (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Art der Vorverarbeitung (Transformation) der Merkmalsvektoren.

Defaultwert: 'normalization' "normalization" "normalization" "normalization" "normalization" "normalization"

Werteliste: 'canonical_variates'"canonical_variates""canonical_variates""canonical_variates""canonical_variates""canonical_variates", 'none'"none""none""none""none""none", 'normalization'"normalization""normalization""normalization""normalization""normalization", 'principal_components'"principal_components""principal_components""principal_components""principal_components""principal_components"

NumComponentsNumComponentsNumComponentsNumComponentsNumComponentsnumComponents (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Parameter der Vorverarbeitung: Anzahl der transformierten Merkmale (ignoriert bei PreprocessingPreprocessingPreprocessingPreprocessingPreprocessingpreprocessing = 'none'"none""none""none""none""none" und PreprocessingPreprocessingPreprocessingPreprocessingPreprocessingpreprocessing = 'normalization'"normalization""normalization""normalization""normalization""normalization").

Defaultwert: 10

Wertevorschläge: 1, 2, 3, 4, 5, 8, 10, 15, 20, 30, 40, 50, 60, 70, 80, 90, 100

Restriktion: NumComponents >= 1

OCRHandleOCRHandleOCRHandleOCRHandleOCRHandleOCRHandle (output_control)  ocr_svm HOCRSvm, HTupleHTupleHOCRSvm, HTupleHOCRSvmX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle des OCR-Klassifikators.

Beispiel (HDevelop)

read_image (Image, 'letters')
* Segment the image.
binary_threshold(Image,&Region, 'otsu', 'dark', &UsedThreshold);
dilation_circle (Region, RegionDilation, 3.5)
connection (RegionDilation, ConnectedRegions)
intersection (ConnectedRegions, Region, RegionIntersection)
sort_region (RegionIntersection, Characters, 'character', 'true', 'row')
* Generate the training file.
count_obj (Characters, Number)
Classes := []
for J := 0 to 25 by 1
    Classes := [Classes,gen_tuple_const(20,chr(ord('a')+J))]
endfor
Classes := [Classes,gen_tuple_const(20,'.')]
write_ocr_trainf (Characters, Image, Classes, 'letters.trf')
* Generate and train the classifier.
read_ocr_trainf_names ('letters.trf', CharacterNames, CharacterCount)
create_ocr_class_svm (8, 10, 'constant', 'default', CharacterNames, \
                      'rbf', 0.01, 0.01, 'one-versus-all', \
                      'principal_components', 10, OCRHandle)
trainf_ocr_class_svm (OCRHandle, 'letters.trf', 0.001, 'default')
* Re-classify the characters in the image.
do_ocr_multi_class_svm (Characters, Image, OCRHandle, Class)
clear_ocr_class_svm (OCRHandle)

Ergebnis

Sind die Parameterwerte korrekt, dann liefert create_ocr_class_svmcreate_ocr_class_svmCreateOcrClassSvmcreate_ocr_class_svmCreateOcrClassSvmCreateOcrClassSvm den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

trainf_ocr_class_svmtrainf_ocr_class_svmTrainfOcrClassSvmtrainf_ocr_class_svmTrainfOcrClassSvmTrainfOcrClassSvm

Alternativen

create_ocr_class_mlpcreate_ocr_class_mlpCreateOcrClassMlpcreate_ocr_class_mlpCreateOcrClassMlpCreateOcrClassMlp

Siehe auch

do_ocr_single_class_svmdo_ocr_single_class_svmDoOcrSingleClassSvmdo_ocr_single_class_svmDoOcrSingleClassSvmDoOcrSingleClassSvm, do_ocr_multi_class_svmdo_ocr_multi_class_svmDoOcrMultiClassSvmdo_ocr_multi_class_svmDoOcrMultiClassSvmDoOcrMultiClassSvm, clear_ocr_class_svmclear_ocr_class_svmClearOcrClassSvmclear_ocr_class_svmClearOcrClassSvmClearOcrClassSvm, create_class_svmcreate_class_svmCreateClassSvmcreate_class_svmCreateClassSvmCreateClassSvm, train_class_svmtrain_class_svmTrainClassSvmtrain_class_svmTrainClassSvmTrainClassSvm, classify_class_svmclassify_class_svmClassifyClassSvmclassify_class_svmClassifyClassSvmClassifyClassSvm

Modul

OCR/OCV


KlassenKlassenKlassenKlassen | | | | Operatoren