Strukturiertes Licht

Liste der Abschnitte ↓

Dieses Kapitel beinhaltet Operatoren für die Verwendung von strukturiertem Licht.

Konzept von strukturiertem Licht

Das grundlegende Konzept von strukturiertem Licht beruht auf strukturierter Beleuchtung, einer Beleuchtung mit bekannten Mustern. Die Art und Weise, wie diese Muster nach dem Auftreffen auf eine Oberfläche in der Szene erscheinen, lässt eine weitere Analyse oder Rekonstruktion der Oberfläche zu.

Eine Voraussetzung für die Anwendung von strukturiertem Licht ist das Erzeugen eines Modells mittels create_structured_light_modelcreate_structured_light_modelCreateStructuredLightModelCreateStructuredLightModelcreate_structured_light_model. Der Modelltyp wird mit ModelTypeModelTypeModelTypemodelTypemodel_type spezifiziert. Zurzeit werden die Typen 'deflectometry'"deflectometry""deflectometry""deflectometry""deflectometry" und '3d_reconstruction'"3d_reconstruction""3d_reconstruction""3d_reconstruction""3d_reconstruction" unterstützt.

Abhängig von der gewählten Aufgabe sollten verschiedene Beleuchtungen benutzt werden:

Unter Deflektometrie versteht man die Analyse der Reflexionen bekannter Muster von spiegelnden oder halbmatten Oberflächen. Jedes Muster-Bild muss auf einem Display oder Monitor angezeigt werden. Es wird von der zu untersuchenden Oberfläche reflektiert, und ein entsprechendes Kamerabild der Reflexion wird aufgenommen. Verformungen der Muster im Kamerabild werden von der spiegelnden Oberfläche verursacht, so dass Oberflächendefekte detektiert werden können.

Für nicht-spiegelnde Oberflächen kann bei Verwendung eines Projektors, der Licht gerichtet wie eine 'inverse Kamera' projiziert, eine 3D Oberfläche rekonstruiert werden. Für jedes projizierte Muster-Bild wird ein Kamerabild der Projektion auf die Oberfläche aufgenommen. Mithilfe der dekodierten Korrespondenzen zwischen den beleuchtenden Projektorkoordinaten und den Kamerakoordinaten, sowie Kalibrierdaten, wird die 3D Oberfläche rekonstruiert.

Die zur Verwendung von strukturiertem Licht notwendigen Schritte werden im folgendenen kurz erläutert.

Erzeugen eines Modells für strukturiertes Licht:

Im ersten Schritt wird das Modell für strukturiertes Licht mit

erzeugt oder mit

eingelesen.

Setzen der Modellparameter:

Die unterschiedlichen Modellparameter können mit set_structured_light_model_paramset_structured_light_model_paramSetStructuredLightModelParamSetStructuredLightModelParamset_structured_light_model_param gesetzt oder mit get_structured_light_model_paramget_structured_light_model_paramGetStructuredLightModelParamGetStructuredLightModelParamget_structured_light_model_param abgefragt werden. Die Parameter 'pattern_width'"pattern_width""pattern_width""pattern_width""pattern_width", 'pattern_height'"pattern_height""pattern_height""pattern_height""pattern_height", 'pattern_orientation'"pattern_orientation""pattern_orientation""pattern_orientation""pattern_orientation" und 'pattern_type'"pattern_type""pattern_type""pattern_type""pattern_type" spezifizieren, mitsamt den Parametern 'min_stripe_width'"min_stripe_width""min_stripe_width""min_stripe_width""min_stripe_width" und 'single_stripe_width'"single_stripe_width""single_stripe_width""single_stripe_width""single_stripe_width" die Vorgaben der zu erzeugenden Muster-Bilder, welche zur Beleuchtung der Oberfläche benutzt werden. Schließlich kann der Parameter 'persistence'"persistence""persistence""persistence""persistence" gesetzt werden, um die Zwischenergebnisse zu debuggen.

Erzeugen der Muster-Bilder:

Die Muster-Bilder werden mit gen_structured_light_patterngen_structured_light_patternGenStructuredLightPatternGenStructuredLightPatterngen_structured_light_pattern erzeugt, nachdem alle relevanten Parameter gesetzt wurden. Es ist sicherzustellen, dass die erzeugten Muster-Bilder an den Bedarf des jeweiligen Setups angepasst sind.

Beleuchtung der Oberfläche mit Mustern und Aufnahme der Kamerabilder:

In dieser Phase werden die Muster-Bilder auf dem Monitor angezeigt oder projiziert. Für jedes Muster-Bild wird ein Kamerabild der beleuchteten Oberfläche aufgenommen.

Dekodieren der aufgenommenen Bilder:

Die erzeugten Kamerabilder CameraImagesCameraImagesCameraImagescameraImagescamera_images können mit decode_structured_light_patterndecode_structured_light_patternDecodeStructuredLightPatternDecodeStructuredLightPatterndecode_structured_light_pattern dekodiert werden. Nach Aufruf dieses Operators werden die Korrespondenzbilder erzeugt und in dem Modell StructuredLightModelStructuredLightModelStructuredLightModelstructuredLightModelstructured_light_model gespeichert.

Die dekodierten Korrespondenzbilder 'correspondence_image'"correspondence_image""correspondence_image""correspondence_image""correspondence_image" sowie die anderen Ergebnisse können mit get_structured_light_objectget_structured_light_objectGetStructuredLightObjectGetStructuredLightObjectget_structured_light_object abgefragt werden. Weitere Details über die verschiedenen Objekte, die abgefragt werden können, finden sich in der Referenzdokumentation des Operators.

Abrufen der Ergebnisse für Modelle für strukturiertes Licht vom Typ 'deflectometry':

Das Defektbild 'defect_image'"defect_image""defect_image""defect_image""defect_image" kann mit get_structured_light_objectget_structured_light_objectGetStructuredLightObjectGetStructuredLightObjectget_structured_light_object erzeugt und abgerufen werden.

Abrufen der Ergebnisse für Modelle für strukturiertes Licht vom Typ '3d_reconstruction':

Die Kalibrierdaten können mit dem Parameter 'camera_setup_model'"camera_setup_model""camera_setup_model""camera_setup_model""camera_setup_model" von set_structured_light_model_paramset_structured_light_model_paramSetStructuredLightModelParamSetStructuredLightModelParamset_structured_light_model_param gesetzt werden. reconstruct_surface_structured_lightreconstruct_surface_structured_lightReconstructSurfaceStructuredLightReconstructSurfaceStructuredLightreconstruct_surface_structured_light liefert dann die rekonstruierte 3D Oberfläche.

Weitere Operatoren

Das Modell für strukturiertes Licht bietet diverse Operatoren, die dabei helfen, auf Modellparameter zuzugreifen und diese zu aktualisieren.

Mit write_structured_light_modelwrite_structured_light_modelWriteStructuredLightModelWriteStructuredLightModelwrite_structured_light_model kann das Modell für strukturiertes Licht in einer Datei gespeichert werden. Es ist sicherzustellen, dass zuvor generierte Muster-Bilder nicht in dieser Datei gespeichert werden. Mit read_structured_light_modelread_structured_light_modelReadStructuredLightModelReadStructuredLightModelread_structured_light_model kann die Modell-Datei gelesen werden.

Des Weiteren ist es möglich, das Modell mit den Operatoren serialize_structured_light_modelserialize_structured_light_modelSerializeStructuredLightModelSerializeStructuredLightModelserialize_structured_light_model und deserialize_structured_light_modeldeserialize_structured_light_modelDeserializeStructuredLightModelDeserializeStructuredLightModeldeserialize_structured_light_model zu serialisieren und zu deserialisieren.

Weiterführende Informationen

Weitere Details zu strukturiertem Licht finden sich im „Solution Guide Basics“. Eine Liste der Operatoren findet sich in Inspektion / Strukturiertes Licht.


Liste der Abschnitte