2015-04-14 3 views
0

Я хочу использовать одну камеру для оценки относительной позы камеры по кадрам.Относительная оценка камеры Оценка из необходимой матрицы

Для достижения этой цели принимаются следующие шаги.

  1. откалиброван камеры получить параметр камеры K
  2. Нахождение точки, соответствующей использованием SIFT/SURF
  3. фундаментальной матрицы идентификации; с использованием findFundamentalMat(), и ввод матчей точек 2D
  4. Оценка Essential матрицы путем E = K'FK и модификация E для ограничения сингулярности
  5. Основная матрица разложения для получения вращения, R = UWVt/UW'Vt (U и Vt получены SVD E) и получить перевод t;

Но после этого перевод t слишком мал. Предположим, что исходное положение камеры (0,0,0). После того, как камера движется вперед 20 см, следующая поза (0,0,20), реальный перевод должен составлять 20 см. Уровень двух совершенно разные.

что не так? как получить реальный перевод из матрицы перевода? Не могли бы вы мне помочь?

+0

Ваши параметры калибровки камеры масштабированы так, как вы это предполагаете? Если ваша новая поза составляет 20, и вы предполагаете, что она составляет 20 см, может ли она быть уменьшена в см? Какую ценность вы ожидаете? – Micka

+0

@ Micka Спасибо, параметры калибровки камеры находятся в пикселях. И на самом деле камера приближается вперед на 20 см. Так что я думаю, что перевод должен быть (0,0,20); Камера монокулярная. Я хочу получить реальный перевод в СМ. – user4705465

+0

@ Micka Спасибо, параметры калибровки камеры находятся в пикселях. И на самом деле камера приближается вперед на 20 см. Так что я думаю, что перевод должен быть (0,0,20); Камера монокулярная. Я хочу получить реальный перевод в СМ. – user4705465

ответ

0

Основная матрица определяется только по шкале. Вектор перевода, который вы получаете от разложения E, является единичным вектором. Вы не можете получить фактическое расстояние между камерами в мировых единицах без дополнительной информации, такой как ссылочный объект с известным размером в сцене.

Смежные вопросы