Можно ли рассчитать позу камеры по изображению с известным масштабом? - PullRequest
1 голос
/ 23 октября 2019

У меня есть фотография, сделанная камерой (чье фокусное расстояние, принципиальная точка и коэффициенты искажения мне известны). Фотография имеет пост 8 см х 8 см на столе и в центре поста - это источник (0, 0) снова в см. Я также указал положительную ось Y на post-it.

enter image description here

Из этой информации возможно вычислить местоположение камеры и вектор, в котором камера смотрит в Python, используя OpenCV? Если у кого-то есть фрагмент кода, который делает это (при условии, что вы уже знаете координаты углов пост-ит), это было бы удивительно!

Ответы [ 2 ]

2 голосов
/ 23 октября 2019

Используйте OpenCV solvePnP , указав SOLVEPNP_IPPE_SQUARE в флагах. Только с 4 точками (и постит) решение будет весьма чувствительным к тому, насколько точно вы пометите их изображения, поэтому спросите себя, действительно ли вам нужна поза и местоположение камеры для вашего приложения, и насколько точно. Например, если вы просто хотите, чтобы плоская CG-наклейка оставалась неподвижной на столе, пока камера движется, все, что вам нужно, это оценить гомографию, гораздо более простая задача.

1 голос
/ 23 октября 2019

Похоже, у вас есть вся необходимая информация. Используемый маркер может быть легко сегментирован. Анализ формы обеспечит углы. Я сделал нечто подобное, чтобы получить базовое отслеживание зрения:

enter image description here

Вот полный пример .

Сегментациярезультат для примера: enter image description here

Обратите внимание, точность действительно имеет значение, поэтому может быть полезно полагаться на несколько наборов точек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...