Вычисление матрицы вращения по точкам схода

Я пытаюсь восстановить 3D-ориентацию трех осей здания на изображении.

Мой текущий подход заключается в том, чтобы вручную аннотировать три точки схода, соответствующие трем осям, оценить матрицу калибровки камеры K, а затем вычислить каждый столбец матрицы вращения по точке схода путем нормализации K^{-1}v_{i}, как указано в приложении к этому документу.

Хотя это, кажется, работает, вычисляемые столбцы R не полностью ортогональны, и я подозреваю, что проблема будет еще более выраженной, если точки схода будут более шумными.

Я мог бы схитрить, разложив оценочное значение R с помощью SVD и приравняв все сингулярные значения к 1, но я бы предпочел более принципиальное решение. Другое направление мысли состоит в том, чтобы решить ее как задачу оптимизации с ограничениями, которая стремится минимизировать ошибку проецирования на точки схода.

Есть ли лучший способ вычисления матрицы вращения из K и точек схода, который одновременно учитывает ограничения ортогональности и единства столбца?

Заранее спасибо.


person TheTaintedOne    schedule 02.03.2012    source источник


Ответы (1)


Решение состоит в том, чтобы аннотировать только 2 точки схода, 3-я однозначно определяется ограничениями ортогональности точек схода.
Затем вычислите два соответствующих столбца R и найдите 3-ю как крест. (внешний продукт) двух других.

person Adi Shavit    schedule 05.12.2012