3D-соответствия из фундаментальной матрицы
В MATLAB я вычислил Фундаментальная матрица (из двух изображений) с использованием нормализованного восьмиточечный алгоритм. Из этого мне нужно триангуляция соответствующих точек изображения в трехмерном пространстве. Насколько я понимаю, для этого мне понадобится поворот и перевод изображений. Самым простым способом было бы сначала откалибровать камеры, а затем сделать изображения, но это слишком сжимает для моего приложения, так как это потребует дополнительных шаг.
Таким образом, это оставляет меня с автоматической (само) калибровкой камеры. Я вижу упоминание настройка узла, однако в Приглашение к 3D Vision кажется, что для этого требуется первоначальный перевод и ротация, что заставляет меня думать, что требуется калиброванная камера или мое понимание падает.
Итак, мой вопрос в том, как я могу автоматически извлечь поворот/перевод, чтобы я мог перепрограммировать/триангулировать точки изображения в 3D-пространстве. Любой код MATLAB или псевдокод будет фантастическим.
Ответы
Ответ 1
Вы можете использовать основную матрицу для восстановления матриц камеры и триангуляции трехмерных точек от их изображений. Однако вы должны знать, что реконструкция, которую вы получите, будет проективной реконструкцией, а не евклидовой. Это полезно, если ваша цель - измерить проективные инварианты в исходной сцене, такие как поперечное отношение, пересечения линий и т.д., Но этого будет недостаточно для измерения углов и расстояний (вам придется откалибровать камеры для этого).
Если у вас есть доступ к учебнику Hartley и Zisserman, вы можете проверить раздел 9.5.3, где вы найдете то, что вам нужно, чтобы перейти от фундаментальной матрицы к паре матриц камеры, которые позволят вам вычислить проективную реконструкцию (я считаю, что то же самое содержание содержится в разделе 6.4 книги Yi Ma). Поскольку исходный код для алгоритмов книги доступен в Интернете, вы можете проверить функции vgg_P_from_F, vgg_X_from_xP_lin и vgg_X_from_xP_nonlin.
Ответ 2
Код Peter MATLAB был бы очень полезен для вас, я думаю:
http://www.csse.uwa.edu.au/~pk/research/matlabfns/
Питер опубликовал ряд фундаментальных матричных решений. Оригинальные алгоритмы были упомянуты в книге zisserman
http://www.amazon.com/exec/obidos/tg/detail/-/0521540518/qid=1126195435/sr=8-1/? исх = pd_bbs_1/103-8055115-0657421 V = взгляда & s = книги & п = 507846
Кроме того, пока вы на нем, не забудьте увидеть основную матричную песню:
http://danielwedge.com/fmatrix/
один прекрасный состав в моем честном мнении!
Ответ 3
Если ваше 3D-пространство можно выбрать произвольно, вы можете установить первую матрицу камеры как
P = [I | 0]
Нет перевода, нет вращения. Это оставило бы вас с системой координат, определенной с камеры 1. Тогда не должно быть слишком сложно выполнить калибровку второй камеры.