vector_to_fundamental_matrixT_vector_to_fundamental_matrixVectorToFundamentalMatrixVectorToFundamentalMatrix — Bestimmung der Fundamental-Matrix unter Verwendung vorgegebener
Punktkorrespondenzen sowie Rekonstruktion der 3D Raumpunkte.
am besten erfüllt.
Zu beachten ist hier die Position von Spalte bzw. Zeile in den
Punktkoordinaten. Da die Fundamental-Matrix die projektive Beziehung zweier
Stereobilder im 3D Raum wiedergibt, muss die X/Y Notation mit dem
Kamera-Koordinaten-System konform sein. (X,Y) Koordinaten
entsprechen daher einem (Column,Row) Paar.
Für eine beliebige relative Lage der Kameras zueinander ist die
minimale Anzahl an Punktkorrespondenzen acht.
MethodMethodMethodMethodmethod ist dann gleich 'normalized_dlt'"normalized_dlt""normalized_dlt""normalized_dlt""normalized_dlt" oder
'gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard" zu wählen.
Sind linke und rechte Kamera identisch und ist zusätzlich die relative
Lage zwischen den Kameras eine reine Translation, so ist MethodMethodMethodMethodmethod
gleich 'trans_normalized_dlt'"trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt" oder 'trans_gold_standard'"trans_gold_standard""trans_gold_standard""trans_gold_standard""trans_gold_standard"
zu wählen. In diesem speziellen Fall ist die minimale Anzahl an
korrespondierenden Punkte nur zwei.
Die Fundamental-Matrix wird so berechnet, dass ein Fehlermaß minimiert wird.
Um dieses Ergebnis zu erreichen, sind verschiedene Algorithmen verfügbar.
Welches Verfahren verwendet
werden soll, kann ebenfalls mittels des Parameters MethodMethodMethodMethodmethod gesteuert
werden. Für MethodMethodMethodMethodmethod gleich 'normalized_dlt'"normalized_dlt""normalized_dlt""normalized_dlt""normalized_dlt" bzw.
'trans_normalized_dlt'"trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt" wird ein lineares Verfahren verwendet,
das einen algebraischen Fehler basierend auf obigen Epipolargleichungen
minimiert. Dieses Verfahren bietet im allgemeinen einen guten Kompromiss
zwischen Geschwindigkeit und Genauigkeit.
Für MethodMethodMethodMethodmethod gleich 'gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard" bzw.
'trans_gold_standard'"trans_gold_standard""trans_gold_standard""trans_gold_standard""trans_gold_standard" wird eine mathematisch
optimale, dafür aber langsamere, Optimierung durchgeführt, die den
geometrischen Projektionsfehler von rekonstruierten projektiven
3D Punkten minimiert. In diesem Fall werden neben der Kovarianz-Matrix
CovFMatCovFMatCovFMatCovFMatcovFMat der Fundamental-Matrix auch die projektiven Koordinaten
(XXXXx,YYYYy,ZZZZz,WWWWw) der rekonstruierten Punkte
inklusive ihrer Kovarianzen CovXYZWCovXYZWCovXYZWCovXYZWcovXYZW zurückgegeben.
Sei n die Anzahl der Punkte, dann werden die
aneinandergehängten Kovarianzen in einem 16xn Tuple
übergeben.
Die Größe ErrorErrorErrorErrorerror ist ein Gütemaß für die Schätzung der Fundamental-
Matrix und gibt den mittleren euklidischen Abstand in Pixeln zwischen den
Punkten und ihren korrespondierenden Epipolarlinien an.
Falls die Methode 'gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard" bzw.
'trans_gold_standard'"trans_gold_standard""trans_gold_standard""trans_gold_standard""trans_gold_standard" verwendet wird
und die Punkte mit
einem Operator wie points_foerstnerpoints_foerstnerPointsFoerstnerPointsFoerstnerPointsFoerstner, der die Kovarianzmatrix
für jeden Punkt zurückliefert, extrahiert wurden, kann dies in der
Berechnung berücksichtigt werden, indem die Kovarianzen in
CovRR1CovRR1CovRR1CovRR1covRR1, CovRC1CovRC1CovRC1CovRC1covRC1, CovCC1CovCC1CovCC1CovCC1covCC1 für die Punkte des
ersten Bildes und in CovRR2CovRR2CovRR2CovRR2covRR2, CovRC2CovRC2CovRC2CovRC2covRC2,
CovCC2CovCC2CovCC2CovCC2covCC2 für die Punkte des zweiten Bildes übergeben werden.
Die Kovarianzmatrizen sind symmetrische 2x2
Matrizen. CovRR1CovRR1CovRR1CovRR1covRR1/CovRR2CovRR2CovRR2CovRR2covRR2 und
CovCC1CovCC1CovCC1CovCC1covCC1/CovCC2CovCC2CovCC2CovCC2covCC2 sind dabei die Diagonalelemente der
Matrizen, während CovRC1CovRC1CovRC1CovRC1covRC1/CovRC2CovRC2CovRC2CovRC2covRC2 die beiden nicht diagonalen
Elemente angeben.
Sind die Kovarianzen unbekannt und wird die 'gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard" bzw.
'trans_gold_standard'"trans_gold_standard""trans_gold_standard""trans_gold_standard""trans_gold_standard" Methode
verwendet, so werden zur Berechnung intern Einheits-Kovarianzmatrixen
angenommen. Falls 'normalized_dlt'"normalized_dlt""normalized_dlt""normalized_dlt""normalized_dlt" bzw.
'trans_normalized_dlt'"trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt" verwendet wird oder die Kovarianzen
unbekannt sind, können in den Kovarianzparametern leere Tupel übergeben
werden.
Richard Hartley, Andrew Zisserman: „Multiple View Geometry in
Computer Vision“; Cambridge University Press, Cambridge; 2000.
Olivier Faugeras, Quang-Tuan Luong: „The Geometry of Multiple
Images: The Laws That Govern the Formation of Multiple Images of a
Scene and Some of Their Applications“; MIT Press, Cambridge, MA;
2001.