add_sample_class_gmmT_add_sample_class_gmmAddSampleClassGmmAddSampleClassGmm (Operator)

Name

add_sample_class_gmmT_add_sample_class_gmmAddSampleClassGmmAddSampleClassGmm — Hinzufügen eines Trainingsmusters zu den Trainingsdaten eines Gaussian Mixture Models.

Signatur

add_sample_class_gmm( : : GMMHandle, Features, ClassID, Randomize : )

Herror T_add_sample_class_gmm(const Htuple GMMHandle, const Htuple Features, const Htuple ClassID, const Htuple Randomize)

void AddSampleClassGmm(const HTuple& GMMHandle, const HTuple& Features, const HTuple& ClassID, const HTuple& Randomize)

void HClassGmm::AddSampleClassGmm(const HTuple& Features, Hlong ClassID, double Randomize) const

static void HOperatorSet.AddSampleClassGmm(HTuple GMMHandle, HTuple features, HTuple classID, HTuple randomize)

void HClassGmm.AddSampleClassGmm(HTuple features, int classID, double randomize)

Beschreibung

add_sample_class_gmmadd_sample_class_gmmAddSampleClassGmmAddSampleClassGmmAddSampleClassGmm fügt ein Trainingsmuster zu dem durch GMMHandleGMMHandleGMMHandleGMMHandleGMMHandle gegebenen Gaussian Mixture Model (GMM) hinzu. Das Trainingsmuster wird durch FeaturesFeaturesFeaturesFeaturesfeatures und ClassIDClassIDClassIDClassIDclassID beschrieben. FeaturesFeaturesFeaturesFeaturesfeatures ist der Merkmalsvektor des Musters und muss folglich die Länge NumDimNumDimNumDimNumDimnumDim besitzen, die in create_class_gmmcreate_class_gmmCreateClassGmmCreateClassGmmCreateClassGmm angegeben worden ist. ClassIDClassIDClassIDClassIDclassID ist die Klasse des Musters, eine Zahl zwischen 0 und NumClassesNumClassesNumClassesNumClassesnumClasses-1 (ebenfalls festgelegt in create_class_gmmcreate_class_gmmCreateClassGmmCreateClassGmmCreateClassGmm).

Im Spezialfall, in dem die FeaturesFeaturesFeaturesFeaturesfeatures-Vektoren vom Typ Integer sind, treten sie im Merkmalsraum in einem Gitter mit Schrittweite 1.0 auf. Wenn zum Beispiel RGB-Merkmale für Farbklassifikation verwendet werden, haben die Daten einen Integerwert von 0 bis 255 je Komponente. Normalerweise kann auch mehr als ein Merkmal denselben Punkt im Raum darstellen. Während des GMM-Trainings mit solchen Daten neigt der Algorithmus dazu, die modellierten Gaußschen Verteilungen zu linear abhängigen Linien oder Ebenen von Punkten, die parallel zu den Gitterrichtungen liegen, anzupassen. Falls die Anzahl von Zentren, die im CentersCentersCentersCenterscenters von train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmm zurückgegeben wird, ungewöhnlich hoch ist, deutet das auf ein solches Verhalten des Algorithmus hin. Um dieses Problem umzugehen, kann der Parameter RandomizeRandomizeRandomizeRandomizerandomize verwendet werden. Für RandomizeRandomizeRandomizeRandomizerandomize > 0.0 wird Gaußsches Rauschen mit Mittelwert 0 und Standardabweichung RandomizeRandomizeRandomizeRandomizerandomize zu jeder Komponente des Trainingsvektors addiert und die Trainingsdaten werden im GMM gespeichert. RandomizeRandomizeRandomizeRandomizerandomize-Werte kleiner als 1.0 verbessern die Situation nicht. RandomizeRandomizeRandomizeRandomizerandomize-Werte deutlich größer als 2.0 beeinflussen die Form der Datenwolke zu viel. Für Integer-Merkmalsvektoren ist es empfehlenswert, Werte zwischen 1.5 und 2.0 zu verwenden. Falls die Daten durch Skalierung aus Integerdaten erzeugt wurden, kann dasselbe Problem auftreten. Hier muss RandomizeRandomizeRandomizeRandomizerandomize entsprechend der Skalierung der Daten skaliert werden.

Bevor das GMM mit train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmm trainiert werden kann, müssen alle Trainingsmuster mit add_sample_class_gmmadd_sample_class_gmmAddSampleClassGmmAddSampleClassGmmAddSampleClassGmm zum GMM hinzugefügt werden.

Die Anzahl der abgespeicherten Trainingsmuster kann mit get_sample_num_class_gmmget_sample_num_class_gmmGetSampleNumClassGmmGetSampleNumClassGmmGetSampleNumClassGmm abgefragt werden. Einzelne Trainingsmuster können mit get_sample_class_gmmget_sample_class_gmmGetSampleClassGmmGetSampleClassGmmGetSampleClassGmm wieder ausgelesen werden.

Im Normalfall ist es günstig, die Trainingsmuster mit write_samples_class_gmmwrite_samples_class_gmmWriteSamplesClassGmmWriteSamplesClassGmmWriteSamplesClassGmm in eine Datei zu speichern, damit sie wiederverwendet werden können. Damit können bei Bedarf neue Trainingsmuster zum Datensatz hinzugefügt werden und ein neu erzeugtes GMM kann mit dem erweiterten Datensatz neu trainiert werden kann.

Ausführungsinformationen

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

GMMHandleGMMHandleGMMHandleGMMHandleGMMHandle (input_control, Zustand wird modifiziert)  class_gmm HClassGmm, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des GMM.

FeaturesFeaturesFeaturesFeaturesfeatures (input_control)  real-array HTupleHTupleHtuple (real) (double) (double) (double)

Merkmalsvektor des zu speichernden Trainingsmusters.

ClassIDClassIDClassIDClassIDclassID (input_control)  number HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Klasse des zu speichernden Trainingsmusters.

RandomizeRandomizeRandomizeRandomizerandomize (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Standardabweichung des Gaußschen Rauschens, das zu den Trainingsdaten hinzugefügt wird.

Defaultwert: 0.0

Wertevorschläge: 0.0, 1.5, 2.0

Restriktion: Randomize >= 0.0

Ergebnis

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

Vorgänger

create_class_gmmcreate_class_gmmCreateClassGmmCreateClassGmmCreateClassGmm

Nachfolger

train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmm, write_samples_class_gmmwrite_samples_class_gmmWriteSamplesClassGmmWriteSamplesClassGmmWriteSamplesClassGmm

Alternativen

read_samples_class_gmmread_samples_class_gmmReadSamplesClassGmmReadSamplesClassGmmReadSamplesClassGmm, add_samples_image_class_gmmadd_samples_image_class_gmmAddSamplesImageClassGmmAddSamplesImageClassGmmAddSamplesImageClassGmm

Siehe auch

clear_samples_class_gmmclear_samples_class_gmmClearSamplesClassGmmClearSamplesClassGmmClearSamplesClassGmm, get_sample_num_class_gmmget_sample_num_class_gmmGetSampleNumClassGmmGetSampleNumClassGmmGetSampleNumClassGmm, get_sample_class_gmmget_sample_class_gmmGetSampleClassGmmGetSampleClassGmmGetSampleClassGmm

Modul

Foundation