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