Struktur aus Bewegung, Rekonstruieren der 3D-Punktwolke bei gegebener 2D-Bildpunktkorrespondenz

Anwendungsfall

Ein Objekt dreht sich mit unterschiedlicher Geschwindigkeit um sein ZentrumEine feste Kamera schaut auf das ObjektBei gegebener 2D-Bildpunktkorrespondenz wird die 3D-Punktwolke rekonstruiertWenn sich das Objekt dreht, sieht die Kamera einen anderen Teil davon, und somit werden verschiedene Punkte und Übereinstimmungen erkannt.


Szene

ein. N Bilder
b. N-1 Bildpaare
c. N-1 2D-Punkt-Korrespondenz (zwei 2D-Punkt-Arrays)


Implementierung

Für jede der (N-1) 2D-Punktkorrespondenzen

Kamerarelative Pose berechnenTriangulieren, um die 3D-Punkte zu erhaltenLeiten Sie für jeweils 2 3D-Punkte-Arrays die Korrespondenz mithilfe der 2D-Korrespondenz ab, die unter [c] angegeben ist.Leiten Sie mithilfe der von @ [3] abgeleiteten 3D-Korrespondenz die Spur jedes 3D-Objektpunkts ab, und erhalten Sie eine einzelne Spur für jeden der Objektpunkte / -scheitelpunkte


Ergebnis:

A (N – 2) 3D-Punktarrays, Korrespondenzen, Kameraposen und Spuren (eine Spur für jeden Objektpunkt)


Ansatz zur Behebung des Problems:

Berechnen Sie die Punktwolke, da das Triangulationsergebnis bis zu einer Skala genau ist.
A. Jedes der Triangulationsergebnisse und die kamerarelativen Übersetzungen sind
ausgedrückt in nicht homogenen Koordinaten (jedes Ergebnis hat eine andere Skala).
B. Unter der Annahme, dass die Objektstruktur solide ist und sich somit nicht ändert,
Der Abstand der 3D-Punkte zu ihrer Mitte sollte für alle Kamerapositionen identisch sein.
C. Unter Berücksichtigung von [B] alle triangulierten 3D-Punkte bei [A] und Kameraübersetzungen
kann in ein homogenes Koordinatensystem umgewandelt werden.
D. Wählen Sie eine der Kameraposen und transformieren Sie den ersten Punkt in jeder Spur (definiert mit @ [4]).
zu dieser Kamerapose (Transformation durch die Umkehrung der akkumulierten Kamera)
Pose), woraus sich der erwartete Punkt ergeben könnte.

Ist der obige Ansatz der richtige, um die Punktwolke aus der 2D-Punktkorrespondenz zu erzeugen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage