Вычислительная матрица вращения из точек схождения
Я пытаюсь восстановить трехмерную ориентацию трех осей здания на изображении.
Мой текущий подход состоит в том, чтобы вручную аннотировать три точки схода, соответствующие этим трем осям, оценить калибровочную матрицу камеры K, а затем вычислить каждый столбец матрицы вращения из точки схода путем нормализации K^{-1}v_{i}, как указано в приложении к настоящему документу.
Хотя это, кажется, работает, вычисленные столбцы R не являются полностью ортогональными, и я подозреваю, что проблема была бы еще более явной, если точки схода были бы более шумными.
Я мог бы выдумать это, разложив предполагаемое R с использованием SVD и установив все значения в единственном числе, но я бы предпочел более принципиальное решение. Еще одна мысль состоит в том, чтобы решить ее как ограниченную задачу оптимизации, которая стремится минимизировать ошибку проекции в точках схода.
Есть ли лучший способ вычисления матрицы вращения из K и точек схода, которые одновременно учитывают ограничения ортогональности и единства столбцов?
Заранее спасибо.
1 ответ
Решение состоит в том, чтобы аннотировать только 2 точки схода, третья однозначно определяется ограничениями ортогональности точек схода.
Затем вычислите два соответствующих столбца R и найдите третий как крест (внешний продукт) двух других.