Вопрос

В Matlab я рассчитал Фундаментальная матрица (из двух изображений), используя нормализованные Восемь точечного алгоритма. Отказ От этого мне нужно треугольник Соответствующие точки изображения в трехмерном пространстве. Из того, что я понимаю, чтобы сделать это мне понадобится ротация и перевод камер. Самый простой способ, конечно, был бы калибровать камеры Сначала возьмите изображения, но это слишком сжимается для моего приложения, так как это потребует этого дополнительного шага.

Так что это оставляет меня с Авто (Self) калибровка камеры. Отказ Я вижу упоминания о регулировка пучка, Однако, однако в Приглашение к 3D Vision Похоже, это требует начального перевода и вращения, что заставляет меня думать, что необходима калиброванная камера или мое понимание сокращается.

Поэтому мой вопрос в том, как я могу автоматически извлечь вращение / перевод, чтобы я мог перепроектировать / треугольствовать точки изображения в 3D-пространство. Любой код MatLab или псевдокод был бы фантастическим.

Это было полезно?

Решение

Вы можете использовать фундаментальную матрицу для восстановления матриц камеры и триангулируют 3D-точки от их изображений. Тем не менее, вы должны знать, что реконструкция, которую вы получите, станут проективной реконструкцией, а не евклидовой. Это полезно, если ваша цель состоит в том, чтобы измерить проектные инварианты на оригинальной сцене, такой как перекрестный соотношение, линия пересечения линии и т. Д. Но этого не будет достаточно для измерения углов и расстояний (вам придется калибровать камеры для этого).

Если у вас есть доступ к Учебник Hartley и Zisserman, Вы можете проверить раздел 9.5.3, где вы найдете то, что вам нужно отправиться из фундаментальной матрицы в пару матриц камеры, которые позволят вам вычистить проективную реконструкцию (я считаю, что тот же контент появляется в разделе 6.4 книги Yi MA ). Поскольку Исходный код для алгоритмов книги доступен онлайн, вы можете проверить функции vgg_p_from_f, vgg_x_from_xp_lin и vgg_x_from_xp_nonlin.

Другие советы

Код MatLab Peter будет очень полезен для вас, я думаю:

http://www.csse.uwa.edu.au/~pk/research/matlabfns/

Питер опубликовал ряд фундаментальных матричных решений. Оригинальные алгоритмы были упомянуты в книге Zisserman

http://www.amazon.com/exece/obidos/tg/detail/-/0521540518/qid=1126195435/SR=8-1/REF=PD_BBS_1/103-8055115-0657421?v=LANCE&s=books&n=507846.

Кроме того, пока вы на нем, не забудьте увидеть фундаментальную песню Matrix:

http://danielwege.com/fmatrix/

Один изысканный состав в моем честном мнении!

Если ваше 3D-пространство можно выбрать произвольно, вы можете установить свою первую матрицу камеры как

P = [I | 0]

Нет перевода, без вращения. Это оставило бы вас с системой координат, определенной из камеры 1., то не должно быть слишком сложно, чтобы калибровать вторую камеру.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top