Если у вас есть матрица калибровки камеры (внутренние параметры) и гомография, поскольку гомография (между двумя видами одного и того же плоского объекта) определяется как:
H = K[R|T]
где K - калибровочная матрица 3x3, R (матрица вращения 3x3) и T (вектор преобразования 3x1) - преобразование вида (от координат объекта до координат камеры). Существует много сказать о том, как вычислить R и T из H. Один из способов - это вычисление прямого решения, другой способ - использовать некоторую нелинейную технику минимизации для вычисления R и T. Очевидно, что последний метод лучше , так как это даст лучшее приближенное решение. Первый - это просто способ начать дополненную реальность;):
Давайте посмотрим, как получить R и T при использовании прямого метода. Если h1, h2 и h3 являются
векторы столбцов H, определяемые в терминах K, R и T как:
H = K [r1 r2 t]
(помните, что мы говорим о точках с z = 0)
, где r1 - первый вектор-столбец R, r2 - второй, а t - вектор трансляции. Тогда:
r1 = l1 * (K^-1) h1
r2 = l2 * (K^-1) h2
r3 = r1 x r2
(произведение между r1 и r2)
t = l3 * (K^-1) h3
где l1, l2, l3 - коэффициенты масштабирования (действительные значения):
l1 = 1 / norm((K^-1)*h1)
l2 = 1 / norm((K^-1)*h2)
l3 = (l1+l2)/2
Имейте в виду, что это решение должно быть уточнено с использованием нелинейного метода минимизации (например, вы можете использовать это решение в качестве отправной точки). Вы также можете использовать некоторую модель искажения для восстановления после искажения линзы, но этот шаг не нужен (вы получите хорошие результаты даже без него).
Если вы хотите использовать метод минимизации для вычисления лучшего приближения к R и T, есть много разных способов. Предлагаю вам прочитать статью
"Быстрая и глобально конвергентная оценка позы по видеоизображениям", Лу, Хагер
, который представляет один из лучших алгоритмов для вашей цели.