Как увеличить куб на определенную позицию, используя 3х3 гомографию - PullRequest
6 голосов
/ 17 марта 2011

Я могу отследить 4 координаты по разным изображениям одной и той же сцены, рассчитав гомографию 3х3 между ними.Делая это, я могу наложить другие 2D-изображения на эти координаты.Мне интересно, могу ли я использовать эту гомографию для увеличения куба на этой позиции вместо использования opengl?Я думаю, что матрица 3х3 не дает достаточно информации, но если я знаю матрицу калибровки камеры, могу ли я получить достаточно для создания матрицы вида модели, чтобы сделать это?

Спасибо за любую помощь, которую вы можете оказать.

1 Ответ

3 голосов
/ 31 июля 2011

Если у вас есть матрица калибровки камеры (внутренние параметры) и гомография, поскольку гомография (между двумя видами одного и того же плоского объекта) определяется как:

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, есть много разных способов. Предлагаю вам прочитать статью

"Быстрая и глобально конвергентная оценка позы по видеоизображениям", Лу, Хагер

, который представляет один из лучших алгоритмов для вашей цели.

...