Оценка T и R на основе основной матрицы

Я создал простое тестовое приложение для выполнения оценки перемещения ( T ) и поворота ( R ) из основной матрицы.

  1. Сгенерировать 50 случайных чисел. Точки .
  2. Вычислить проекцию pointSet1 .
  3. Преобразовать точки с помощью матрицы ( R | T ).
  4. Вычислить новую проекцию pointSet2 .
  5. Затем вычислите фундаментальную матрицу F .
  6. Извлеките основную матрицу, например E = K2 ^ TF K1 ( K1, K2 - внутренние матрицы камеры).
  7. Используйте SVD, чтобы получить UDV ^ T .

И вычислите восстановлено R1 = UWV ^ T , восстановлено R2 = UW ^ T . И увидите, что один из них равен исходному R .

Но когда я вычисляю вектор трансляции, восстановил T = UZU ^ T , я получаю нормализованное T .

RestoredT * max (Tx, Ty, Tz) = T

Как восстановить правильный вектор трансляции?

6
задан oarfish 30 May 2015 в 07:49
поделиться