Я думаю, что нашел решение для этого. Структура из алгоритмов движения относится к случаю, когда камеры не откалиброваны, но в этом случае известны все внутренние и внешние параметры.
Проблема деградирует в линейной задачи наименьших квадратов:
Мы должны вычислить координаты для одной точки объекта:
X = [x, y, z, 1]'
C = [x, y, z]'
X = [[C], [1]]
Мы данной п изображения, которые имеют эти матрицы преобразования :
Pi = Ki * [Ri|ti]
Эти матрицы уже известны. Точка объекта проецируется на изображение в
U = [ui, vi]
можно записать в однородных координатах (оператор * представляет собой как матричное умножение, скалярное произведение и скалярное умножение):
[ui * wi, vi * wi, wi]' = Pi * X
Pi = [[p11i, p12i, p13i, p14i],
[p21i, p22i, p23i, p24i],
[p31i, p32i, p33i, p34i]]
Давайте определим следующим образом:
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
Тогда мы можем написать:
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
Аналогично для VI:
(vi * p3i - p2i) * Q = a2i - a3i
И это справедливо для я = 1..n.Мы можем записать это в матричной форме:
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]]
Поскольку G и б известны из Pi матриц, а точки изображения [Ui, VI], мы можем вычислить Псевдообратный G (назовем его g_), и вычислить:
Q = G_ * b
спасибо, мне удалось понять это сам, но ваш ответ был полезным! – icguy
приветствуется, но обычно вы можете обеспечить встроенные камеры для подходов SfM для улучшения результата (по крайней мере, расслоение может оценить их самостоятельно, но в зависимости от количества изображений результат был хуже) ... вот почему я подумал SfM проще для вас, чем разместить шахматную доску рядом с вашим объектом (и разместить ее таким образом, что это видно на каждом изображении) ... – gfkri