Mehrbild-Stereo

Liste der Operatoren ↓

Diese Kapitel enthält Operatoren für die Mehrbild-Stereo 3D-Rekonstruktion.

Konzept der Mehrbild-Stereo 3D-Rekonstruktion

Mit der Mehrbild-Stereo 3D-Rekonstruktion ist es möglich, aus 2D-Bildern von mehreren Kameras 3D-Objekte zu generieren. Es kann entweder die komplette 3D-Oberfläche eines Objekts rekonstruiert werden, oder es können auch nur einzelne 3D-Punkte rekonstruiert werden.

Im Folgenden werden kurz die notwendigen Schritte beschrieben, um 3D-Oberflächen oder 3D-Punkte zu rekonstruieren. Beachten Sie, dass ein gut kalibriertes Kamerasetup die Grundvoraussetzung für eine präzise 3D-Rekonstruktion ist; siehe dazu Kalibrierung für mehr Details. Außerdem wird in dem HDevelop Beispiel reconstruct_surface_mixed_camera_types.hdev der typische Ablauf einer Kalibrierung nachvollzogen (vom Kalibrierdatenmodell über das Kameraaufbaumodell hin zum Stereomodell).

Erstellen des Stereomodells:

Zuerst muss das Stereomodell erstellt werden. Dies geschieht mit dem Operator

Falls 3D-Punkte rekonstruiert werden sollen, wählen Sie die Methode 'points_3d'.

3D-Punktrekonstruktion mit 'points_3d'.

Für die Rekonstruktion von Oberflächen stehen zwei Methoden zur Auswahl: 'surface_pairwise' und 'surface_fusion'. Detaillierte Informationen zu beiden Methoden können in der Referenz von reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoReconstructSurfaceStereo nachgelesen werden.

(1) (2) (3)
Diese drei 3D-Bilder werden für die Oberflächenrekonstruktion verwendet, deren Ergebnisse in den Bildern unten zu sehen sind.
(1) (2) (3)
(1) Oberflächenrekonstruktion mit 'surface_pairwise'. (2) Oberflächenrekonstruktion mit 'surface_fusion'. (3) Oberflächenrekonstruktion mit 'surface_fusion', wobei die Farbinformationen aus den verwendeten 2D-Bildern extrahiert wurden. In dem HDevelop Beispiel reconstruct_surface_mixed_camera_types.hdev kann die hier gezeigte 3D-Rekonstruktion nachvollzogen werden.
Setzen der Bildpaare (nur für Oberflächenrekonstruktion):

Bei der 3D-Rekonstruktion von Oberflächen werden mehrere binokulare Stereorekonstruktionen ausgeführt und dann kombiniert. Für diese binokulare Rekonstruktion müssen Bildpaare spezifiziert werden. Beispielsweise könnten die Bildpaare für die Bilder oben [0,1] und [1,2] sein. Die Bildpaare können mit

spezifiziert, und mit

abgefragt werden.

Mehr Informationen können in den Referenzen von reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoReconstructSurfaceStereo und den oben genannten Operatoren nachgelesen werden.

Modifizieren der Stereomodell-Parameter:

Mit

können die Einstellungen der 3D-Rekonstruktion für das jeweils individuelle Setup optimiert werden.

Bei der Rekonstruktion von Oberflächen ist es sehr empfehlenswert, die 3D-Rekonstruktion mit einem umschließenden Quader (einer 'bounding box') einzuschränken. Diese sollte das zu rekonstruierende Objekt so eng wie möglich umschließen.

Der umschließende Quader, der mit set_stereo_model_paramset_stereo_model_paramSetStereoModelParamSetStereoModelParamSetStereoModelParam spezifiziert wurde, schränkt den Bereich ein, in welchem das Objekt rekonstruiert wird. So kann die Laufzeit stark reduziert werden.

Wenn die Methode 'surface_fusion' in create_stereo_modelcreate_stereo_modelCreateStereoModelCreateStereoModelCreateStereoModel verwendet wird, sollten dennoch zuerst die Parameter der 'surface_pairwise'-Methode optimiert werden, da deren Ergebnis als Grundlage hergenommen wird. Die einzelnen Parameter werden in den Beispielen reconstruct_surface_stereo_pairwise_workflow.hdev und reconstruct_surface_stereo_fusion_workflow.hdev näher betrachtet.

Die Parameter können mit

abgefragt werden.

Ausführen der 3D-Rekonstruktion:

Um dann die eigentliche Rekonstruktion auszuführen, stehen

zur Verfügung.

Erhalten von Zwischenergebnissen (nur für Oberflächenrekonstruktion):

Es ist zu beachten, dass die Zwischenergebnisse nur abgerufen werden können, wenn der 'persistence'"persistence""persistence""persistence""persistence"-Modus mit set_stereo_model_paramset_stereo_model_paramSetStereoModelParamSetStereoModelParamSetStereoModelParam aktiviert wurde.

Mit

können die Zwischenergebnisse der Oberflächenrekonstruktion von reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoReconstructSurfaceStereo abgerufen und inspiziert werden. Diese Bilder können benutzt werden, wenn ein Problem in der Rekonstruktion zurückverfolgt werden muss.

Mit

kann das 3D-Objektmodell abgerufen werden, dass als Zwischenergebnis mit reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoReconstructSurfaceStereo unter Verwendung der Methode 'surface_fusion'"surface_fusion""surface_fusion""surface_fusion""surface_fusion" abgespeichert wurde.


Liste der Operatoren

clear_stereo_modelClearStereoModelClearStereoModelclear_stereo_model
Freigeben des vom Stereomodell angelegten Speichers.
create_stereo_modelCreateStereoModelCreateStereoModelcreate_stereo_model
Anlegen eines HALCON-Stereomodells.
get_stereo_model_image_pairsGetStereoModelImagePairsGetStereoModelImagePairsget_stereo_model_image_pairs
Liste der im Stereomodell gesetzten Bildpaare zurückgeben.
get_stereo_model_objectGetStereoModelObjectGetStereoModelObjectget_stereo_model_object
Ikonische Zwischenergebnisse der Stereorekonstruktion abfragen.
get_stereo_model_object_model_3dGetStereoModelObjectModel3dGetStereoModelObjectModel3dget_stereo_model_object_model_3d
3D-Objektmodell als Zwischenergebnis der Stereorekonstruktion abfragen.
get_stereo_model_paramGetStereoModelParamGetStereoModelParamget_stereo_model_param
Stereomodellparameter abfragen
reconstruct_points_stereoReconstructPointsStereoReconstructPointsStereoreconstruct_points_stereo
3D-Punktrekonstruktion mit kalibriertem Mehrbild-Stereoaufbau.
reconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
Oberflächenrekonstruktion mit kalibriertem Mehrbild-Stereoaufbau.
set_stereo_model_image_pairsSetStereoModelImagePairsSetStereoModelImagePairsset_stereo_model_image_pairs
Definition der Bildpaare für Oberflächenrekonstruktion
set_stereo_model_paramSetStereoModelParamSetStereoModelParamset_stereo_model_param
Parameter eines Stereomodells setzen.