Texturinspektion

Liste der Operatoren ↓

Dieses Kapitel beschreibt Operatoren für die Texturinspektion.

Konzept der Texturinspektion

Mit der Texturinspektion können mit wenigen Parametereinstellungen texturierte Oberflächen auf Fehler überprüft werden. Der Algorithmus benötigt ein Training mit Bildern von fehlerfreier Textur. Bei dem Training werden Texturmerkmale aus den Trainingsbildern extrahiert und dazu genutzt, auf der Basis eines Gaussian Mixture Model (GMM) Klassifikators ein Texturinspektionsmodell zu trainieren. Nach dem erfolgreichen Training können Bilder der gleichen Textur mit dem Texturinspektionsmodell verglichen werden und somit potentielle Fehler identifiziert werden. Texturinspektion arbeitet auf einer Bildpyramide, so dass unterschiedliche Frequenzbereiche der Textur untersucht werden.

Im Folgenden werden die einzelnen Schritte, die zur Texturinspektion benötigt werden, kurz beschrieben.

Anlegen eines Texturinspektionsmodells:

Zuerst wird ein Texturinspektionsmodell mit

angelegt oder mit

eingelesen.

Hinzufügen von Trainingsdaten:

Der Operator

fügt dem Texturinspektionsmodell neue Trainingsbilder hinzu.

Bild einer texturierten Oberfläche, dass zum Trainieren eines Texturinspektionsmodells genutzt wird.

Die mit add_texture_inspection_model_imageadd_texture_inspection_model_imageAddTextureInspectionModelImageAddTextureInspectionModelImageAddTextureInspectionModelImage zugefügten Bilder können mit einem Aufruf von get_texture_inspection_model_imageget_texture_inspection_model_imageGetTextureInspectionModelImageGetTextureInspectionModelImageGetTextureInspectionModelImage wieder abgefragt werden. Falls alle oder ein Teil der Bilder nicht mehr zur Texturinspektion verwendet werden sollen, so können diese Bilder mit Hilfe des Operators remove_texture_inspection_model_imageremove_texture_inspection_model_imageRemoveTextureInspectionModelImageRemoveTextureInspectionModelImageRemoveTextureInspectionModelImage aus dem Modell entfernt werden.

Trainieren des Texturinspektionsmodells:

Das Texturinspektionsmodell wird mit

trainiert.

Während des Trainings wird eine Bildpyramide erzeugt. Für jede Pyramidenstufe wird ein Gaussian Mixture Model (GMM) trainiert und eine Fehlerschwelle ('novelty_threshold'"novelty_threshold""novelty_threshold""novelty_threshold""novelty_threshold") bestimmt. Diese Schwelle ermöglicht beim Anwenden der Texturinspektion die Klassifikation von jedem Pixel in fehlerhafte und fehlerfreie Textur. Nach dem Training können die Fehlerschwellen mit get_texture_inspection_model_paramget_texture_inspection_model_paramGetTextureInspectionModelParamGetTextureInspectionModelParamGetTextureInspectionModelParam abgefragt werden.

Verschiedene Parameter beeinflussen das Training. Sie können mit

gesetzt werden.

Das folgende Vorgehen für das Training wird empfohlen:

Anwenden des Texturinspektionsmodells:

Nach dem erfolgreichen Training kann das Texturinspektionsmodell dazu verwendet werden, texturierte Oberflächen zu klassifizieren. Jedes Testbild kann mit

mit dem Texturinspektionsmodell verglichen werden.

Testbild mit Fehlern.

Für jedes Testbild gibt der Operator eine Fehlerregion ('novelty_region'"novelty_region""novelty_region""novelty_region""novelty_region") zurück, die anzeigt, wo das Bild größere Abweichungen von den trainierten Trainingsdaten aufweist. Die Fehlerregion wird durch die Kombination der Fehlerregionen der unterschiedlichen Bildpyramidenstufen erzeugt. Dabei werden die Fehlerregionen von benachbarten Skalen miteinander geschnitten. Dadurch wird die Robustheit gegenüber Rauschen erhöht. Die so entstandenen Schnittflächen werden in der 'novelty_region'"novelty_region""novelty_region""novelty_region""novelty_region" vereinigt. Falls es keine benachbarte Level gibt, wird die Fehlerregion der entsprechenden Level direkt zu der 'novelty_region'"novelty_region""novelty_region""novelty_region""novelty_region" hinzugefügt. Setzt man zum Beispiel 'num_levels'"num_levels""num_levels""num_levels""num_levels" auf 1, so gibt es keine benachbarten Skalen und die Fehlerregion vom ersten Level wird in 'novelty_region'"novelty_region""novelty_region""novelty_region""novelty_region" zurückgegeben.

Zum Debuggen kann der Parameter 'gen_result_handle'"gen_result_handle""gen_result_handle""gen_result_handle""gen_result_handle" mit set_texture_inspection_model_paramset_texture_inspection_model_paramSetTextureInspectionModelParamSetTextureInspectionModelParamSetTextureInspectionModelParam auf 'true'"true""true""true""true" gesetzt werden. Auf diese Weise werden die Novelty-Score-Bilder und die Fehlerregionen der einzelnen Bildpyramidenstufen in einem Ergebnis-Handle gespeichert, aus welchem sie wieder mit

ausgelesen werden können. Generell beschreiben die Novelty-Score-Bilder wie gut jedes Pixel zu dem Texturinspektionsmodell passt, welches im Trainingsprozess entstanden ist. Die Fehlerregionen der einzelnen Pyramidenstufen werden dann durch das Anwenden der Fehlerschwelle ('novelty_threshold'"novelty_threshold""novelty_threshold""novelty_threshold""novelty_threshold") auf die jeweiligen Novelty-Score-Bilder berechnet.

Das Inspizieren der Novelty-Score-Bilder und der Fehlerregionen kann Aufschluss darüber geben, welche Art von Fehlern auf welchen Pyramidenstufen gefunden werden können. Darauf basierend kann entschieden werden, ob Parameter für das Training und die Klassifizierung angepasst werden sollten, z.B., ob es sinnvoll ist, explizit nur bestimmte Pyramidenstufen durch das Setzen des Parameters 'levels'"levels""levels""levels""levels" auszuwählen.

(1) (2)
Das resultierende Novelty-Score Bild (1) und die resultierende Fehlerregion (2) für das obige Testbild.

Weitere Operatoren

Die Funktionalität der Texturinspektion wird durch verschiedene Parameter beeinflusst. Die Parameterwerte können mit get_texture_inspection_model_paramget_texture_inspection_model_paramGetTextureInspectionModelParamGetTextureInspectionModelParamGetTextureInspectionModelParam abgefragt und mit set_texture_inspection_model_paramset_texture_inspection_model_paramSetTextureInspectionModelParamSetTextureInspectionModelParamSetTextureInspectionModelParam geändert werden.

Ein Texturinspektionsmodell kann mit dem Operator write_texture_inspection_modelwrite_texture_inspection_modelWriteTextureInspectionModelWriteTextureInspectionModelWriteTextureInspectionModel abgespeichert werden. Dabei wird nur das Texturinspektionsmodell und nicht dem Modell hinzugefügte Bilder gespeichert. Die hinzugefügten Bilder können mit get_texture_inspection_model_imageget_texture_inspection_model_imageGetTextureInspectionModelImageGetTextureInspectionModelImageGetTextureInspectionModelImage abgefragt und mit einem Aufruf von write_objectwrite_objectWriteObjectWriteObjectWriteObject separat abgespeichert werden.

Um den Speicherbedarf des Texturinspektionsmodells zu verringern, können dem Model bereits hinzugefügte Bilder wieder herausgelöscht werden. Dies erfolgt durch den Operator remove_texture_inspection_model_imageremove_texture_inspection_model_imageRemoveTextureInspectionModelImageRemoveTextureInspectionModelImageRemoveTextureInspectionModelImage.

Außerdem kann das Modell mit serialize_texture_inspection_modelserialize_texture_inspection_modelSerializeTextureInspectionModelSerializeTextureInspectionModelSerializeTextureInspectionModel und deserialize_texture_inspection_modeldeserialize_texture_inspection_modelDeserializeTextureInspectionModelDeserializeTextureInspectionModelDeserializeTextureInspectionModel serialisiert bzw. deserialisiert werden.

Glossar

Im Folgenden werden die wichtigsten Begriffe, die im Umfeld der Texturinspektion verwendet werden, beschrieben:

Trainingsbilder

Bilder, die für das Training verwendet werden.

Testbilder

Bilder, die mit dem trainierten Texturinspektionsmodell verglichen werden.

Patch

Menge von benachbarten Pixeln.

Texturmerkmal

Grauwerte der Pixel innerhalb eines Patches.

Trainingsdaten

Texturmerkmale, die in einem Trainingsprozess genutzt werden.

Neuheitswert

Im Testprozess werden die Texturmerkmale der Testbilder mit dem Texturinspektionsmodell verglichen und ihr Neuheitswert (Novelty Score) wird berechnet. Je höher dieser Wert ist, desto wahrscheinlicher ist es, dass das Texturmerkmal nicht zu dem Texturinspektionsmodell passt.

Fehlerschwelle

Die Fehlerschwelle (Novelty Threshold) wird im Trainingsprozess geschätzt. Texturmerkmale mit einem Neuheitswert unter der Fehlerschwelle passen zum Texturinspektionsmodell, Texturmerkmale mit einem höheren Neuheitswert passen nicht.


Liste der Operatoren

add_texture_inspection_model_imageAddTextureInspectionModelImageAddTextureInspectionModelImageadd_texture_inspection_model_image
Hinzufügen von Trainingsbildern zu einem Texturinspektionsmodell.
apply_texture_inspection_modelApplyTextureInspectionModelApplyTextureInspectionModelapply_texture_inspection_model
Inspizieren der Textur in einem Bild.
clear_texture_inspection_modelClearTextureInspectionModelClearTextureInspectionModelclear_texture_inspection_model
Löschen eines Texturinspektionsmodells und Freigabe des verwendeten Speichers.
clear_texture_inspection_resultClearTextureInspectionResultClearTextureInspectionResultclear_texture_inspection_result
Löschen eines Texturinspektionsergebnisses und Freigabe des verwendeten Speichers.
create_texture_inspection_modelCreateTextureInspectionModelCreateTextureInspectionModelcreate_texture_inspection_model
Erzeugen eines Texturinspektionsmodells.
deserialize_texture_inspection_modelDeserializeTextureInspectionModelDeserializeTextureInspectionModeldeserialize_texture_inspection_model
Deserialisieren eines Texturinspektionsmodells.
get_texture_inspection_model_imageGetTextureInspectionModelImageGetTextureInspectionModelImageget_texture_inspection_model_image
Abfragen der Bilder eines Texturinspektionsmodells.
get_texture_inspection_model_paramGetTextureInspectionModelParamGetTextureInspectionModelParamget_texture_inspection_model_param
Abfragen von Parametern eines Texturinspektionsmodells.
get_texture_inspection_result_objectGetTextureInspectionResultObjectGetTextureInspectionResultObjectget_texture_inspection_result_object
Abfragen von ikonischen Ergebnissen einer Texturinspektion.
read_texture_inspection_modelReadTextureInspectionModelReadTextureInspectionModelread_texture_inspection_model
Lesen eines Texturinspektionsmodells aus einer Datei.
remove_texture_inspection_model_imageRemoveTextureInspectionModelImageRemoveTextureInspectionModelImageremove_texture_inspection_model_image
Löschen ausgewählter oder aller Bilder eines Texturinspektionsmodells.
serialize_texture_inspection_modelSerializeTextureInspectionModelSerializeTextureInspectionModelserialize_texture_inspection_model
Serialisieren eines Texturinspektionsmodells.
set_texture_inspection_model_paramSetTextureInspectionModelParamSetTextureInspectionModelParamset_texture_inspection_model_param
Setzen von Parametern eines Texturinspektionsmodells.
train_texture_inspection_modelTrainTextureInspectionModelTrainTextureInspectionModeltrain_texture_inspection_model
Trainieren eines Texturinspektionsmodells.
write_texture_inspection_modelWriteTextureInspectionModelWriteTextureInspectionModelwrite_texture_inspection_model
Abspeichern eines Texturinspektionsmodells in einer Datei.