Operatoren |
Dieses Kapitel beschreibt Operatoren für die samplebasierte Identifikation.
Mit der samplebasierten Identifikation können eintrainierte Objekte anhand von charakteristischen Merkmalen wie Textur oder Farbe identifiziert werden. Dies ermöglicht es, Objekte zu identifizieren, die nicht mit einem Barcode oder einem Datacode markiert sind. Verglichen mit den Klassifikationsverfahren aus Kapitel Klassifikation, ist die Vorbereitung und das Training für die samplebasierte Identifikation sehr komfortabel, da hier kein komplexes Parametertuning nötig ist. Mit der samplebasierten Identifikation können sehr viele Objekte voneinander unterschieden werden. Die Identifikation ist robust gegenüber Rotation, Skalierung und Beleuchtungsänderungen sowie gegenüber Verdeckungen, Störungen und moderaten perspektivischen Verzerrungen. Darüber hinaus ist die Identifikation robust gegenüber moderaten Deformationen des Objekts und sie erlaubt in gewissen Grenzen auch die Identifikation von Schüttgut. Andererseits bedeutet dies, dass Objekte nicht unterschieden werden können, die sich sehr ähnlich sind oder sich nur in einem der Punkte unterscheiden, gegenüber denen die samplebasierte Identifikation robust ist. Zu beachten ist, dass die samplebasierte Identifikation nur mit texturierten Objekten funktioniert.
Mit der samplebasierten Identifikation kann immer nur ein Objekt pro Bild identifiziert werden. Das bedeutet, dass jedes Suchbild, oder genauer gesagt die Domain jedes Suchbildes nur ein Objekt enthalten darf.
(1) | (2) |
(3) | (4) |
Im Folgenden werden die einzelnen Schritte, die zur Benutzung der samplebasierten Identifikation benötigt werden, kurz beschrieben.
Zuerst muss ein Sample-Identifikator bereitgestellt werden. Dies erfolgt durch das Anlegen und Vorbereiten mit den Operatoren
Der Schritt der Vorbereitung ist notwendig, um die internen Datenstrukturen des Sample-Identifikators an die Art der Objekte anzupassen, die unterschieden werden sollen. Alternativ dazu kann ein bereits verfügbarer Sample-Identifikator, der mit write_sample_identifier in eine Datei geschrieben wurde, mit dem Operator read_sample_identifier von Datei eingelesen werden. Einen vorbereiteten Sample-Identifikator kann man sich in gewisser Weise wie eine Lagerhalle vorstellen, die für die Lagerung einer bestimmten Art von Produkten ausgelegt ist.
Im Anschluss an die Vorbereitung muss der Sample-Identifikator mit Samples der zu unterscheidenden Objekte trainiert werden. Dies erfolgt mit den Operatoren
Es ist jederzeit möglich, den Sample-Identifikator nachzutrainieren. Hierfür können Samples aus dem Sample-Identifikator mit dem Operator remove_sample_identifier_training_data gelöscht werden und es können neue Samples mit dem Operator add_sample_identifier_training_data hinzugefügt werden. Sofern sich die Art der zu unterscheidenden Objekte nicht zu stark ändert, ist es nicht notwendig, die Vorbereitung des Sample-Identifikator erneut durchzuführen. Das Training entspricht - um im obigen Bild zu bleiben - dem Auffüllen der Lagerhalle.
Nun kann der trainierte Sample-Identifikator verwendet werden um Objekte zu identifizieren. Das Identifizieren erfolgt mit dem Operator
Zusätzlich zu den oben genannten Operatoren können folgende weitere Operatoren zur Administration des Sample-Identifikator verwendet werden. Mit remove_sample_identifier_preparation_data und remove_sample_identifier_training_data können die Daten, die zur Vorbereitung bzw. zum Training des Sample-Identifikator hinzugefügt wurden, wieder gelöscht werden. Sie werden dann bei einer weiteren Vorbereitung bzw. einem weiteren Training nicht mehr verwendet. Die Operatoren set_sample_identifier_object_info und get_sample_identifier_object_info können dazu verwendet werden, die einzelnen Objekte mit einem Namen oder einer anderen Beschreibung zu kennzeichnen. Darüber hinaus können mit dem Operator get_sample_identifier_object_info weitere Informationen über die Anzahl der Objekte, die für die Vorbereitung bzw. das Training zur Verfügung stehen abgefragt werden. Mit den Operatoren set_sample_identifier_param und get_sample_identifier_param können Steuerparameter gesetzt und abgefragt werden.
Im Folgenden werden die wichtigsten Begriffe, die im Umfeld der samplebasierten Identifikation verwendet werden, beschrieben:
Ein Objekt, das mit der samplebasierten Identifikation identifiziert werden soll.
Der Index eines Objekts. Der Index ist eine eindeutige Kennzeichnung des Objekts, der im SampleIdentifier im Zuge des Hinzufügens von Daten für die Vorbereitung bzw. das Training gesetzt wird. Der Objektindex ist auch das wesentliche Ergebnis des Operators apply_sample_identifier. Mit dem Operator set_sample_identifier_object_info kann für jedes Objekt auch ein beschreibender Name gesetzt werden, der die Interpretation der Ergebnisse erleichtert.
Ein Sample oder eine Ansicht eines Objekts. Manchmal wird hierfür auch der Begriff „Samplebild´´ verwendet.
Dieser Begriff wird als Synonym für Objektsample verwendet, insbesondere dann, wenn der Schwerpunkt auf dem Bild liegt.
Der Index eines Objektsamples. Dieser Index wird für jedes Objekt getrennt vergeben. Er startet für jedes Objekt bei 0. Daher ist der Objektsampleindex nur zusammen mit dem entsprechenden Objektindex eindeutig.
Die Anpassung der internen Datenstruktur des Sample-Identifikators an die Merkmale eines Satzes von Objektsamples. Diese Satz sollte die bei der Anwendung der Identifikation zu erwartenden Objektsamples beispielhaft abdecken.
Ein Objekt, das dem Sample-Identifikator mit dem Operator add_sample_identifier_preparation_data hinzugefügt wurde.
Ein Objektsample eines Vorbereitungsobjekts. Die Vorbereitung des Sample-Identifikators wird typischerweise mit mehreren Samples für die Vorbereitung pro Vorbereitungsobjekt durchgeführt.
Die Menge aller Samples für die Vorbereitung.
Das Training des Sample-Identifikators. Bei diesem Schritt lernt der Sample-Identifikator die vorgegebenen Objekte zu unterscheiden.
Ein Objekt, das dem Sample-Identifikator mit dem Operator add_sample_identifier_training_data hinzugefügt wurde oder das aus der Wiederverwendung der Vorbereitungsdaten entstanden ist. Im Gegensatz zu Vorbereitungsobjekten müssen alle Trainingsobjekte mit einem eindeutigen Objektindex gekennzeichnet sein.
Ein Objektsample eines Trainingsobjekts. Das Training des Sample-Identifikators wird typischerweise mit mehreren Samples für das Training pro Trainingsobjekt durchgeführt.
Die Menge aller Samples für das Training.
Ein Bild, das ein Objekt enthält, welches mit dem Sample-Identifikator identifiziert werden soll.
Operatoren |