2010-09-09 7 views
6

Ich erstellte eine einfache Testanwendung, um eine Translation durchzuführen (T) und eine Rotation (R) Schätzung von der essentiellen Matrix.T- und R-Schätzung von essentieller Matrix

  1. generieren 50 zufällig Punkte.
  2. Berechnen Sie die Projektion pointSet1. Verwandeln
  3. Punkte über Matrix (R | T).
  4. Berechnen Sie die neue Projektion pointSet2.
  5. Berechnen Sie dann die Grundmatrix F.
  6. Extrahieren Sie wichtige Matrix wie E = K2^T F K1 (K1, K210 - interne Kameramatrizen).
  7. Verwenden Sie SVD, um UDV^T zu erhalten.

Und berechnen restoredR1 = UWV^T, restoredR2 = UW^T. Und sehen Sie, dass einer von ihnen gleich R ist.

Aber wenn ich Übersetzungsvektor berechnen, restoredT = UZU^T, bekomme ich normalisiert T.

restoredT*max(T.x, T.y, T.z) = T

Wie korrekte Übersetzung Vektor wiederherzustellen?

Antwort

1

Ich verstehe! Ich brauche keine echte Längenschätzung für diesen Schritt. Wenn ich das erste Bild erhalte, muss ich die metrische Transformation (Skalierungsfaktor) einstellen oder aus der Kalibrierung von einem bekannten Objekt abschätzen. Nachdem ich das zweite Bild empfangen habe, berechne ich das normierte T und benutze bekannte 3D-Koordinaten vom ersten Bild, um die Gleichung zu lösen (sx2, sy2, 1) = K (R | T) (X, Y, Z); und finden Sie Lambda - als Lambda T wird korrekt sein metric translation ...

Ich überprüfe es, und das ist wahr/So ... vielleicht wer mehr einfache Lösung wissen?

+0

Das klingt nach der von Bae et al. in * Computational Re-Photography * (2010) habe ich gegoogelt und keinen anderen Ansatz gefunden. – oarfish

Verwandte Themen