apply_texture_inspection_model — Inspizieren der Textur in einem Bild.
apply_texture_inspection_model(Image : NoveltyRegion : TextureInspectionModel : TextureInspectionResultID)
Der Operator apply_texture_inspection_model vergleicht die Textur in
einem Bild Image mit dem trainierten Texturinspektionsmodell
TextureInspectionModel. Image kann ein einzelnes oder ein
Tupel von Bildern sein. Dabei ist es möglich Grauwertbilder oder
Mehrkanalbilder zu übergeben. Der Operator erwartet, dass die übergebenen
Bilder in Image die gleiche Anzahl von Kanälen haben, wie die Bilder
mit denen das Modell trainiert wurde. Die Laufzeit von
apply_texture_inspection_model skaliert etwa linear mit der Anzahl
der Bildkanäle. Modelle, die farbige Bilder verwenden, sind jedoch im
Allgemeinen besser in der Lage, farbige Texturdefekte zu erkennen.
Regionen im Bild die nicht zum Texturinspektionsmodell passen, werden in
der Fehlerregion NoveltyRegion zurückgegeben. Außerdem gibt der
Operator, falls 'gen_result_handle' mit
set_texture_inspection_model_param auf 'true' gesetzt
wurde, im Handle TextureInspectionResultID detailliertere
Informationen zur Texturklassifikation zurück. Ist
'gen_result_handle' auf 'false' gesetzt, bleibt
TextureInspectionResultID leer.
Das Konzept der Texturinspektion ist bei der Einleitung zum Kapitel Inspektion / Texturinspektion beschrieben.
Für jede Pyramidenstufe werden Texturmerkmale extrahiert und mit dem
entsprechenden GMM-Klassifikator klassifiziert. Der sich ergebende
Neuheitswert ('novelty_score') wird mit der Fehlerschwelle
('novelty_threshold') dieser Pyramidenstufe verglichen und als
fehlerhaft oder fehlerfrei klassifiziert. Die fehlerhaften Pixel werden
zunächst in einer
Fehlerregion für jede Pyramidenstufe gesammelt und anschließend zu der
endgültigen Fehlerregion kombiniert, die in NoveltyRegion
zurückgegeben wird. 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' vereinigt. Falls es keine benachbarte Level gibt,
wird die Fehlerregion der entsprechenden Level direkt zu der
'novelty_region' hinzugefügt. Setzt man zum
Beispiel 'num_levels' auf 1, so gibt es keine benachbarten Skalen
und die Fehlerregion vom ersten Level wird in 'novelty_region'
zurückgegeben.
Ist 'gen_result_handle' mit
set_texture_inspection_model_param auf 'true' gesetzt
worden, enthält TextureInspectionResultID Novelty-Score-Bilder
und die daraus resultierenden Fehlerregionen für jede Pyramidenstufe.
Diese Informationen können beim Debuggen und beim Anpassen der Modellparameter
(z.B. der Fehlerschwellen) helfen und werden mit
get_texture_inspection_result_object abgefragt.
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.
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.
Image (input_object) (multichannel-)image-array → object (byte / uint2 / real)
Bild(er) der zu inspizierenden Textur.
NoveltyRegion (output_object) region-array → object
Detektierte Fehlerregion.
TextureInspectionModel (input_control) texture_inspection_model → (handle)
Handle des Texturinspektionsmodells.
TextureInspectionResultID (output_control, Zustand wird modifiziert) texture_inspection_result → (handle)
Handle des Inspektionsergebnisses.
* Create texture inspection model
create_texture_inspection_model ('basic', TextureInspectionModel)
* Set parameters
set_texture_inspection_model_param (TextureInspectionModel, \
'gen_result_handle', 'true')
* Make this short example fast:
set_texture_inspection_model_param (TextureInspectionModel, \
'gmm_em_max_iter', 1)
* Read and add training images
read_image (TrainImage, 'carpet/carpet_01')
add_texture_inspection_model_image (TrainImage, TextureInspectionModel, \
Indices)
* Train the model
train_texture_inspection_model (TextureInspectionModel)
* Read and apply a test image
read_image (TestImage, 'carpet/carpet_02')
apply_texture_inspection_model (TestImage, DefectCandidates, \
TextureInspectionModel, \
TextureInspectionResultID)
Der Operator apply_texture_inspection_model gibt TRUE zurück, sofern
alle Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung
ausgelöst.
train_texture_inspection_model
get_texture_inspection_result_object,
get_texture_inspection_model_param,
clear_texture_inspection_result,
clear_texture_inspection_model
Matching