Se l'oggetto ha 6 punti noti (coordinate 3D conosciute, e Z ) è possibile calcolare la posizione della telecamera relativa al sistema di coordinate degli oggetti.X,YZ
Innanzitutto alcune nozioni di base.
(X,Y,Z)ωX=ω[XYZ1]Tω=1X←Xωx=ω[XY1]ω,X,YZ
3×4
x=PX
xX
Ricordiamo che il prodotto incrociato tra due 3 vettori può essere definito come moltiplicazione di matrici vettoriali in modo tale che:
v×u=(v)xu=⎡⎣⎢0v3−v2−v30v1v2−v10⎤⎦⎥u
v×v=0
Px
(x)xx=(x)xPX=0
Aha! Il risultato deve essere zero vettore. Se ora apriamo l'equazione otteniamo:
⎡⎣⎢0w−y−w0xy−x0⎤⎦⎥⎡⎣⎢P1,1P2,1P3,1P1,2P2,2P3,2P1,3P2,3P3,3P1,4P2,4P3,4⎤⎦⎥X=⎡⎣⎢P3,4Wy−P2,1Xw−P2,2Yw−P2,4Ww+P3,1Xy−P2,3Zw+P3,2Yy+P3,3ZyP1,4Ww+P1,1Xw−P3,4Wx+P1,2Yw−P3,1Xx+P1,3Zw−P3,2Yx−P3,3ZxP2,4Wx+P2,1Xx−P1,4Wy−P1,1Xy+P2,2Yx−P1,2Yy+P2,3Zx−P1,3Zy⎤⎦⎥=0
P
⎡⎣⎢⎢⎢0Xw−Xy0Yw−Yy0Zw−Zy0Ww−Wy−Xw0Xx−Yw0Yx−Zw0Zx−Ww0WxXy−Xx0Yy−Yx0Zy−Zx0Wy−Wx0⎤⎦⎥⎥⎥⎡⎣⎢⎢P1P2P3⎤⎦⎥⎥=0
PnnP
Piccola pausa in modo da poter raccogliere le nostre difficoltà. Si noti che la precedente equazione matriciale deve essere formata per ogni corrispondenza 3D-> 2D nota (devono essercene almeno 6).
2×12A
A⎡⎣⎢P1P2P3⎤⎦⎥=0
⎡⎣⎢P1P2P3⎤⎦⎥=0
Fortunatamente possiamo usare la decomposizione a valore singolare (SVD) per forzare
∥⎡⎣⎢P1P2P3⎤⎦⎥∥=1
Quindi, per risolvere le equazioni, calcola SVD della matrice e scegli il vettore singolare corrispondente al valore di autovena più piccolo. Questo vettore è il vettore nullo della matrice A e anche la soluzione per la matrice telecamera . Basta unstack il e la forma .AP[P1P2P3]TP
Ora volevi sapere la distanza dall'oggetto. è definito come:P
P=K[R−RC]
dove è la posizione della telecamera relativa all'origine degli oggetti. Può essere risolto da calcolando il vettore null di s.CPP
(Hartley, Zisserman - Geometria a vista multipla in Computer Vision)
Infine, quando si calcola la posizione delle telecamere per due fotogrammi, è possibile calcolare le posizioni degli oggetti sconosciuti (o le posizioni di alcuni dei punti dell'oggetto) risolvendo due equazioni per :X
x1=P1Xx2=P2X
Il che va più o meno allo stesso modo in cui abbiamo risolto le matrici della fotocamera:
(x1)xP1X=0(x2)xP2X=0
E così via.