Je pense que j'ai trouvé une solution pour cela. La structure des algorithmes de mouvement traite du cas où les caméras ne sont pas calibrées, mais dans ce cas tous les paramètres intrinsèques et extrinsèques sont connus.
Le problème se dégrade en un problème des moindres carrés linéaire:
Il faut calculer les coordonnées d'un point unique de l'objet:
X = [x, y, z, 1]'
C = [x, y, z]'
X = [[C], [1]]
On donne n images, qui ont ces matrices de transformation :
Pi = Ki * [Ri|ti]
Ces matrices sont déjà connues . Le point d'objet est projeté sur les images à
U = [ui, vi]
On peut écrire en coordonnées homogènes (l'opérateur * représente à la fois la multiplication de la matrice, le produit scalaire et multiplication scalaire):
[ui * wi, vi * wi, wi]' = Pi * X
Pi = [[p11i, p12i, p13i, p14i],
[p21i, p22i, p23i, p24i],
[p31i, p32i, p33i, p34i]]
Définissons les éléments suivants:
p1i = [p11i, p12i, p13i] (the first row of Pi missing the last element)
p2i = [p21i, p22i, p23i] (the second row of Pi missing the last element)
p3i = [p31i, p32i, p33i] (the third row of Pi missing the last element)
a1i = p14i
a2i = p24i
a3i = p34i
Ensuite, nous pouvons écrire:
Q = [x, y, z]
wi = p3i * Q + a3i
ui = (p1i * Q + a1i)/wi =
= (p1i * Q + a1i)/(p3i * Q + a3i)
ui * p3i * Q + ui * a3i - p1i * Q - a1i = 0
(ui * p3i - p1i) * Q = a1i - a3i
De même pour vi:
(vi * p3i - p2i) * Q = a2i - a3i
Et cela vaut pour i = 1..n.Nous pouvons écrire ce sous forme matricielle:
G * Q = b
G = [[u1 * p31 - p11],
[v1 * p31 - p21],
[u2 * p32 - p12],
[v2 * p32 - p22],
...
[un * p3n - p1n],
[vn * p3n - p2n]]
b = [[a11 - a31 * u1],
[a21 - a31 * v1],
[a12 - a32 * u2],
[a22 - a32 * v2],
...
[a1n - a3n * un],
[a2n - a3n * vn]]
Depuis G et b sont connus des Pi matrices, et les points d'image [ui, vi], on peut calculer la pseudo de G (appeler G_) et compute:
Q = G_ * b
merci, je réussi à comprendre moi-même, mais votre réponse m'a été utile! – icguy
vous êtes les bienvenus, mais généralement vous pouvez fournir des caméras intrinsèques pour les approches SfM pour améliorer le résultat (au moins bundler est capable de les estimer lui-même, mais en fonction de la quantité d'images le résultat était pire) ... SfM est plus facile pour vous que de mettre un damier à côté de votre objet (et de le placer de manière visible dans chaque image) ... – gfkri