vector_to_rel_poseT_vector_to_rel_poseVectorToRelPoseVectorToRelPose — Bestimmung der relativen Orientierung zweier Kameras unter
Verwendung vorgegebener Punktkorrespondenzen und bekannter
Kameraparameter sowie Rekonstruktion der 3D Raumpunkte.
vector_to_rel_posevector_to_rel_poseVectorToRelPoseVectorToRelPoseVectorToRelPose ermittelt aus im allgemeinen mindestens sechs
vorgegebenen Punktkorrespondenzen eines Stereobildpaares die
relative Orientierung der beiden Kameras zueinander.
RelPoseRelPoseRelPoseRelPoserelPose gibt die Orientierung der Kamera 1 relative zur
Kamera 2 an (Siehe create_posecreate_poseCreatePoseCreatePoseCreatePose für weitere Information
über die Beschreibung von Orientierungen.).
Dies steht in Übereinstimmung mit der expliziten Kalibrierung einer
Stereokonfiguration mit dem Operator calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras.
Sei R,t die Rotation beziehungsweise Translation der relativen
Orientierung. Die Essential-Matrix E ist dann durch
definiert,
wobei eine 3x3 schiefsymmetrische
Matrix ist, welche das Kreuzprodukt mit dem Vektor t beschreibt.
Die gesuchte Orientierung kann mittels der Epipolar-Gleichungen
bestimmt werden:
Zu beachten ist, dass die Essential-Matrix eine homogene Größe ist, d.h. sie
ist bis auf einen Skalierungsfaktor bestimmt. Somit kann der
Translationsvektor der relativen Orientierung auch nur bis auf eine
Skalierung berechnet werden. Der Operator wird diesen Vektor
auf die Länge eins normiert berechnen. Als Konsequenz ergibt sich, dass
die Rekonstruktion der betrachteten Szene, hier in Form der Punkte
gegeben durch deren 3D Koordinaten
(XXXXx,YYYYy,ZZZZz), auch nur
bis auf einen globalen Skalierungsfaktor durchgeführt werden
kann. Sollen die absoluten 3D Koordinaten der Szenenpunkte
rekonstruiert werden, so ist es notwendig in beiden Bildern einen
bekannten Maßstab zu sehen. In der Praxis kann dieser Maßstab
z.B. durch den Abstand zweier beliebiger Punkte gegeben sein.
Der Parameter MethodMethodMethodMethodmethod gibt an, ob die Kameras sich in einer
besonderen relativen Orientierung zueinander befinden, und bestimmt auch das
Berechnungsverfahren. Für 'normalized_dlt'"normalized_dlt""normalized_dlt""normalized_dlt""normalized_dlt" und
'gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard" kann die relative Lage der Kameras zueinander
beliebig sein.
Für 'trans_normalized_dlt'"trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt" und 'trans_gold_standard'"trans_gold_standard""trans_gold_standard""trans_gold_standard""trans_gold_standard" ist
die relative Lage eine reine Translation. In diesem speziellen Fall ist die
minimale Anzahl an notwendigen Punktkorrespondenzen nicht sechs, sondern nur
zwei.
Wird 'normalized_dlt'"normalized_dlt""normalized_dlt""normalized_dlt""normalized_dlt" oder 'trans_normalized_dlt'"trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt"
gewählt, so ist das Berechnungsverfahren ein lineares Verfahren.
Wird 'gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard" oder 'trans_gold_standard'"trans_gold_standard""trans_gold_standard""trans_gold_standard""trans_gold_standard"
gewählt, so ist das Berechnungsverfahren im statistischen Sinne optimal.
Beide Verfahren liefern die Koordinaten (XXXXx,YYYYy,ZZZZz)
der rekonstruierten Raumpunkte.
Die optimalen Verfahren berechnen zusätzlich die 3x3
Kovarianzmatrizen CovXYZCovXYZCovXYZCovXYZcovXYZ der Raumpunkte.
Ist n die Anzahl der Korrespondenzen, so
werden diese Kovarianzen in einem 9xn Tupel
aneinandergehängt.
Weiterhin geben die optimalen Verfahren auch die Kovarianz der relativen
Lage CovRelPoseCovRelPoseCovRelPoseCovRelPosecovRelPose an, welche eine 6x6 Matrix ist.
Die Größe ErrorErrorErrorErrorerror ist ein Gütemaß für die Berechnung der
relativen Lage und gibt den mittleren euklidischen Abstand in Pixeln
zwischen den Punkten und ihren korrespondierenden Epipolarlinien an.
Bei dem Operator vector_to_rel_posevector_to_rel_poseVectorToRelPoseVectorToRelPoseVectorToRelPose ist folgender
Spezialfall zu beachten:
Liegen alle abgebildeten Raumpunkte in einer einzigen Ebene und liegen
zusätzlich alle Raumpunkte näher zu einer der beiden Kameras,
so gibt es insgesamt zwei Lösungen. Das heißt, dass in diesem Fall das
Problem der Berechnung der relativen Lage nicht eindeutig lösbar ist.
Es werden daher auch beide Lösungen ausgegeben. Das bedeutet, dass
alle Ausgabeparameter von doppelter Länge sind, wobei die Werte der
zweiten Lösung an die Werte der ersten Lösung hinten angehängt sind.
Richard Hartley, Andrew Zisserman: „Multiple View Geometry in
Computer Vision“; Cambridge University Press, Cambridge; 2003.
J.Chris McGlone (editor): „Manual of Photogrammetry“;
American Society for Photogrammetry and Remote Sensing ; 2004.