Аналитическое вращение из 3 эпиполярных точечных соответствий

У меня 3 эпиполярных точечных соответствия, т.е. три ({x1, y1, 1}, {x2, y2, 1}) строит. На самом деле, у меня есть только (x1, y1, y2), так как x2 содержит огромную ошибку. Эти координаты уже отцентрированы и нормализованы. Данная матрица вращения 3D RotMВот как я вычисляю остаток для одной точки:

residual(RotM) = y2' - y2
  where
    rotated = RotM . {x1, y1, 1}
    {x2', y2', 1} = rotated / rotated[3]

Конечно, я могу численно оптимизировать эти 3 остатка и получить RotMпотому что он также имеет 3 степени свободы. Но я хочу получить аналитические вращения.

Таким образом, вопрос, учитывая три (x1, y1, y2) триплеты, какова формула для вычисления матрицы вращения? Я также был бы удовлетворен углами Эйлера или кватернионами.

Заметки:

  1. Вращение мало. Точно, допустимо отбросить кубические члены ряда Тейлора для углов Эйлера.
  2. Wolfram Mathematica отказывается решить эту проблему.
  3. Если я не ошибаюсь, такое преобразование называется "перспективное преобразование".

0 ответов

Другие вопросы по тегам