add_sample_class_gmmT_add_sample_class_gmmAddSampleClassGmmAddSampleClassGmmadd_sample_class_gmm (Operator)

Name

add_sample_class_gmmT_add_sample_class_gmmAddSampleClassGmmAddSampleClassGmmadd_sample_class_gmm — Hinzufügen eines Trainingsmusters zu den Trainingsdaten eines Gaußschen Mischverteilungsmodells.

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)

def add_sample_class_gmm(gmmhandle: HHandle, features: Sequence[float], class_id: int, randomize: float) -> None

Beschreibung

add_sample_class_gmmadd_sample_class_gmmAddSampleClassGmmAddSampleClassGmmAddSampleClassGmmadd_sample_class_gmm fügt ein Trainingsmuster zu dem durch GMMHandleGMMHandleGMMHandleGMMHandleGMMHandlegmmhandle gegebenen Gaußsche Mischverteilungsmodell (GMM) hinzu. Das Trainingsmuster wird durch FeaturesFeaturesFeaturesFeaturesfeaturesfeatures und ClassIDClassIDClassIDClassIDclassIDclass_id beschrieben. FeaturesFeaturesFeaturesFeaturesfeaturesfeatures ist der Merkmalsvektor des Musters und muss folglich die Länge NumDimNumDimNumDimNumDimnumDimnum_dim besitzen, die in create_class_gmmcreate_class_gmmCreateClassGmmCreateClassGmmCreateClassGmmcreate_class_gmm angegeben worden ist. ClassIDClassIDClassIDClassIDclassIDclass_id ist die Klasse des Musters, eine Zahl zwischen 0 und NumClassesNumClassesNumClassesNumClassesnumClassesnum_classes-1 (ebenfalls festgelegt in create_class_gmmcreate_class_gmmCreateClassGmmCreateClassGmmCreateClassGmmcreate_class_gmm).

Im Spezialfall, in dem die FeaturesFeaturesFeaturesFeaturesfeaturesfeatures-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 CentersCentersCentersCenterscenterscenters von train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmmtrain_class_gmm zurückgegeben wird, ungewöhnlich hoch ist, deutet das auf ein solches Verhalten des Algorithmus hin. Um dieses Problem umzugehen, kann der Parameter RandomizeRandomizeRandomizeRandomizerandomizerandomize verwendet werden. Für RandomizeRandomizeRandomizeRandomizerandomizerandomize > 0.0 wird Gaußsches Rauschen mit Mittelwert 0 und Standardabweichung RandomizeRandomizeRandomizeRandomizerandomizerandomize zu jeder Komponente des Trainingsvektors addiert und die Trainingsdaten werden im GMM gespeichert. RandomizeRandomizeRandomizeRandomizerandomizerandomize-Werte kleiner als 1.0 verbessern die Situation nicht. RandomizeRandomizeRandomizeRandomizerandomizerandomize-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 RandomizeRandomizeRandomizeRandomizerandomizerandomize entsprechend der Skalierung der Daten skaliert werden.

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

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

Im Normalfall ist es günstig, die Trainingsmuster mit write_samples_class_gmmwrite_samples_class_gmmWriteSamplesClassGmmWriteSamplesClassGmmWriteSamplesClassGmmwrite_samples_class_gmm 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.

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

GMMHandleGMMHandleGMMHandleGMMHandleGMMHandlegmmhandle (input_control, Zustand wird modifiziert)  class_gmm HClassGmm, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des GMM.

FeaturesFeaturesFeaturesFeaturesfeaturesfeatures (input_control)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Merkmalsvektor des zu speichernden Trainingsmusters.

ClassIDClassIDClassIDClassIDclassIDclass_id (input_control)  number HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Klasse des zu speichernden Trainingsmusters.

RandomizeRandomizeRandomizeRandomizerandomizerandomize (input_control)  real HTuplefloatHTupleHtuple (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_gmmAddSampleClassGmmAddSampleClassGmmAddSampleClassGmmadd_sample_class_gmm den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_class_gmmcreate_class_gmmCreateClassGmmCreateClassGmmCreateClassGmmcreate_class_gmm

Nachfolger

train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmmtrain_class_gmm, write_samples_class_gmmwrite_samples_class_gmmWriteSamplesClassGmmWriteSamplesClassGmmWriteSamplesClassGmmwrite_samples_class_gmm

Alternativen

read_samples_class_gmmread_samples_class_gmmReadSamplesClassGmmReadSamplesClassGmmReadSamplesClassGmmread_samples_class_gmm, add_samples_image_class_gmmadd_samples_image_class_gmmAddSamplesImageClassGmmAddSamplesImageClassGmmAddSamplesImageClassGmmadd_samples_image_class_gmm

Siehe auch

clear_samples_class_gmmclear_samples_class_gmmClearSamplesClassGmmClearSamplesClassGmmClearSamplesClassGmmclear_samples_class_gmm, get_sample_num_class_gmmget_sample_num_class_gmmGetSampleNumClassGmmGetSampleNumClassGmmGetSampleNumClassGmmget_sample_num_class_gmm, get_sample_class_gmmget_sample_class_gmmGetSampleClassGmmGetSampleClassGmmGetSampleClassGmmget_sample_class_gmm

Modul

Foundation