Inkrementelle Akquisition von 3D-Objektmodellen - Institut für ...
Inkrementelle Akquisition von 3D-Objektmodellen - Institut für ...
Inkrementelle Akquisition von 3D-Objektmodellen - Institut für ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
IR-INI 2006–01, c○ 2006 <strong>Institut</strong> <strong>für</strong> Neuroinformatik, Ruhr-Universität Bochum, FRG 51<br />
Distanzen genau der Summe der quadrierten Differenzen der einzelnen Koordinaten entspricht.<br />
Die Jacobi-Matrix J berechnen wir numerisch. Ihre Spalten bestehen aus partiellen Ableitungen<br />
∂f<br />
∂p i<br />
die numerisch berechnet werden durch<br />
f(p) − f(p ′ i)<br />
δ<br />
mit δ ∈ R, δ sollte in der Größenordnung 10 −4 bewählt werden. p ′ i geht aus p hervor, indem<br />
der i-te Parameter um δ auf p ′ i = p i + δ erhöht wird. Die Einträge der Jacobi-Matrix, die auf die<br />
Projektionen nicht sichtbarer Raumpunkte bezogen sind, werden auf Null gesetzt.<br />
Somit können wir Gleichung (8.13) aufstellen, nach ∆ lösen und damit den Levenberg-Marquardt-<br />
Algorithmus anwenden. Diese Berechnung ist jedoch aufgrund der großen Jacobi-Matrix J sehr<br />
aufwändig.<br />
8.2.3 Eine schnelle Variante des Levenberg-Marquardt-Algorithmus <strong>für</strong><br />
das Bundle Adjustment<br />
Der in Abschnitt 8.2.2 vorgestellte Algorithmus soll nun so modifiziert werden, dass er in akzeptabler<br />
Laufzeit ausgeführt werden kann. Dies wird dadurch möglich, dass die Jacobi-Matrix eine<br />
spärlich besetzte Matrix ist und wir das ausnutzen können.<br />
Im Folgenden sei x unser Zielvektor, also der Vektor der gemessenen Bildpunkte, und ˆx = f(p) sei<br />
der Vektor der aus den Parametern berechneten Bildpunkte. x und ˆx sind also zusammengesetzt<br />
aus 2 × 1 - Vektoren x ij bzw. ˆx ij , die die gemessenen bzw. berechneten Bildpunkte im j-ten Bild<br />
zum i-ten Raumpunkt repräsentieren. Der Fehlervektor an der Stelle p wird kurz als ɛ bezeichnet<br />
und ist aus Vektoren ɛ ij zusammengesetzt, die die Differenz zwischen x ij und ˆx ij angeben.<br />
Der erste Schritt des Algorithmus liegt in einer Partitionierung der Parameter.<br />
8.2.3.1 Partitionierung der Parameter<br />
Wir partitionieren den Parametervektor p durch p = (a T , b T ) T in zwei Vektoren a und b, so dass<br />
a die Kameraparameter enthält und b die Raumkoordinaten der Punkte. Dadurch partitioniert<br />
sich auch ∆ in ∆ = (∆ T a , ∆ T b )T . Die Jacobi-Matrix J = ∂f<br />
∂p<br />
hat dann die Form J = [ A | B ] mit<br />
und<br />
A = ∂f<br />
∂a<br />
B = ∂f<br />
∂b<br />
Dadurch nimmt Gleichung (8.13) folgende Form an:<br />
[( ) ] ( ) ( )<br />
A T A A T B<br />
∆a A<br />
B T A B T + λI = −<br />
T ɛ<br />
B<br />
∆ b B T ɛ<br />
Dies können wir schreiben als<br />
( ) ( ) ( )<br />
U<br />
∗<br />
W ∆a ɛA<br />
W T V ∗ = −<br />
∆ b ɛ B<br />
(8.14)<br />
mit U = A T A, V = B T B, W = A T B, ɛ A = A T ɛ und ɛ B = B T ɛ. U ∗ und V ∗ gehen aus U und V<br />
hervor, indem ihre diagonalen Einträge mit dem Faktor 1 + λ multipliziert werden.