У меня есть одна калиброванная камера (известны известные внутренние параметры, то есть матрица камеры K, а также коэффициенты искажения).реконструкция движения с одной камеры
Я хотел бы восстановить 3d-траекторию камеры. Нет никаких априорных знаний о сцене.
Упрощение проблемы путем представления двух изображений, которые выглядят на одной и той же сцене, и извлечения из них двух наборов соответствующих совпадающих точек функции (SIFT, SURF, ORB и т. Д.) Моя проблема заключается в том, как вычислить внешние параметры камеры (т. е. матрицу поворота R и вектор трансляции t) между точками зрения?
Мне удалось вычислить фундаментальную матрицу, и так как K знает, то и основную матрицу. с помощью David Nister's efficient solution to the Five-Point Relative Pose Problem мне удалось получить 4 возможное решение, но:
ограничение на существенной матрицы E ~ U * диаг (s, s, 0) * V»не всегда применяется - вызывает неправильные результаты , [РЕДАКТИРОВАТЬ]: получение среднего сингулярного значения, похоже, исправить результаты :) один вниз
Как я могу определить, какой из четырех является правильным?
Благодаря
Это именно то, что я пытаюсь понять. для каждой комбинации R/R 'и t/-t я триангулирует точки и получаю набор трехмерных точек. Я рисую камеру таким образом, что их фокус находится в точке t и смотрит в направлении оси Z, повернутой R. Я ожидал, что в правильной комбинации все точки будут лежать перед двумя камерами - и в некоторых случаях это никогда не бывает. Я думаю, что мой заговор ошибочен. И еще один вопрос, если можно: в результатах я всегда получаю, что | t | (норма t) всегда 1, нежелательное ограничение, так как расстояние между камерами может быть различным, чем 1 ... – Mercury
Я обновил свой ответ, чтобы ответить на ваши вопросы, так как я не думал, что смогу получить все это в комментарий. Дайте мне знать, если это не имеет смысла. – beaker
Отлично! :))) спасибо! – Mercury