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'"points_3d""points_3d""points_3d""points_3d""points_3d".

3D-Punktrekonstruktion mit 'points_3d'"points_3d""points_3d""points_3d""points_3d""points_3d".

Für die Rekonstruktion von Oberflächen stehen zwei Methoden zur Auswahl: 'surface_pairwise'"surface_pairwise""surface_pairwise""surface_pairwise""surface_pairwise""surface_pairwise" und 'surface_fusion'"surface_fusion""surface_fusion""surface_fusion""surface_fusion""surface_fusion". Detaillierte Informationen zu beiden Methoden können in der Referenz von reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo 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'"surface_pairwise""surface_pairwise""surface_pairwise""surface_pairwise""surface_pairwise". (2) Oberflächenrekonstruktion mit 'surface_fusion'"surface_fusion""surface_fusion""surface_fusion""surface_fusion""surface_fusion". (3) Oberflächenrekonstruktion mit 'surface_fusion'"surface_fusion""surface_fusion""surface_fusion""surface_fusion""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_stereoReconstructSurfaceStereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo 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'"bounding box""bounding box""bounding box""bounding box""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_paramSetStereoModelParamSetStereoModelParamSetStereoModelParamset_stereo_model_param 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'"surface_fusion""surface_fusion""surface_fusion""surface_fusion""surface_fusion" in create_stereo_modelcreate_stereo_modelCreateStereoModelCreateStereoModelCreateStereoModelcreate_stereo_model verwendet wird, sollten dennoch zuerst die Parameter der 'surface_pairwise'"surface_pairwise""surface_pairwise""surface_pairwise""surface_pairwise""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""persistence"-Modus mit set_stereo_model_paramset_stereo_model_paramSetStereoModelParamSetStereoModelParamSetStereoModelParamset_stereo_model_param aktiviert wurde.

Mit

können die Zwischenergebnisse der Oberflächenrekonstruktion von reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo 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_stereoReconstructSurfaceStereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo unter Verwendung der Methode 'surface_fusion'"surface_fusion""surface_fusion""surface_fusion""surface_fusion""surface_fusion" abgespeichert wurde.


Liste der Operatoren

clear_stereo_modelClearStereoModelclear_stereo_modelClearStereoModelclear_stereo_model
Freigeben des vom Stereomodell angelegten Speichers.
create_stereo_modelCreateStereoModelcreate_stereo_modelCreateStereoModelcreate_stereo_model
Anlegen eines HALCON-Stereomodells.
get_stereo_model_image_pairsGetStereoModelImagePairsget_stereo_model_image_pairsGetStereoModelImagePairsget_stereo_model_image_pairs
Liste der im Stereomodell gesetzten Bildpaare zurückgeben.
get_stereo_model_objectGetStereoModelObjectget_stereo_model_objectGetStereoModelObjectget_stereo_model_object
Ikonische Zwischenergebnisse der Stereorekonstruktion abfragen.
get_stereo_model_object_model_3dGetStereoModelObjectModel3dget_stereo_model_object_model_3dGetStereoModelObjectModel3dget_stereo_model_object_model_3d
3D-Objektmodell als Zwischenergebnis der Stereorekonstruktion abfragen.
get_stereo_model_paramGetStereoModelParamget_stereo_model_paramGetStereoModelParamget_stereo_model_param
Stereomodellparameter abfragen
reconstruct_points_stereoReconstructPointsStereoreconstruct_points_stereoReconstructPointsStereoreconstruct_points_stereo
3D-Punktrekonstruktion mit kalibriertem Mehrbild-Stereoaufbau.
reconstruct_surface_stereoReconstructSurfaceStereoreconstruct_surface_stereoReconstructSurfaceStereoreconstruct_surface_stereo
Oberflächenrekonstruktion mit kalibriertem Mehrbild-Stereoaufbau.
set_stereo_model_image_pairsSetStereoModelImagePairsset_stereo_model_image_pairsSetStereoModelImagePairsset_stereo_model_image_pairs
Definition der Bildpaare für Oberflächenrekonstruktion
set_stereo_model_paramSetStereoModelParamset_stereo_model_paramSetStereoModelParamset_stereo_model_param
Parameter eines Stereomodells setzen.