Размещение маркеров aruco и их влияние на оценку позы камеры

Вопрос или проблема

В настоящее время я работаю над проектом оценки позы камеры. Я использую метод solvepnp для вычисления векторов вращения и преобразования. Я использую PTZ-камеру, где могу видеть фактические значения панорамы, наклона и зума камеры. Меня в основном интересует значение наклона. Моя цель – оценить позу камеры с использованием маркеров ArUco и не зависеть от значений с камеры. Я разлагаю вектор вращения, чтобы получить его углы Эйлера, и сравниваю эти значения с моими эталонными данными (внутренними значениями от PTZ-камеры).

1 – camera_tilt(GroundTruth) = -24.30 , pnp_tilt = -25.7
2 – camera_tilt(GroundTruth) = -90 , pnp_tilt = -0.3
3 – camera_tilt(GroundTruth) = -90 , pnp_tilt = -89

Вот три различных сценария, в которых вы можете увидеть, как маркеры размещены в сцене. Когда я размещаю маркеры перпендикулярно к земле, я получаю самые точные значения оценки позы от алгоритма pnp.

На первом изображении вычисленное значение наклона близко совпадает со значением наклона камеры, но когда я укладываю свои маркеры плоско на поверхности, мои значения pnp_tilt становятся совершенно неправильными.

Является ли причиной этого то, что когда мы укладываем маркер плоско на землю, мы теряем большую часть информации по оси Z (синей)? Но когда мы помещаем его перпендикулярно к земле, у нас есть самая большая информация о глубине от маркера ArUco, и поэтому наш pnp вычисляет самые точные значения наклона в этом сценарии?

На втором изображении я уложил маркер ArUco плоско на поверхности и установил наклон камеры на -90 (смотрю прямо вниз), и в этом случае алгоритм pnp вычислил значение как 0.3. Что алгоритм считает, что он смотрит над горизонтом, а не на землю. Это проблема блокировки кардана? Где ось Z маркера ArUco совпадает с осью X камеры, и поэтому она не может различить, смотрим ли мы на землю или на горизонт?

Но на третьем изображении, где я размещаю маркер перпендикулярно к земле, я получаю гораздо лучшие результаты.

Мой главный вопрос заключается в том, можем ли мы разместить его плоско на поверхности и все равно получить точные результаты? Это возможно? Я хочу уложить его плоско на поверхность, потому что это будет гораздо проще в реальном мире, где в некоторых сценах мы не всегда можем разместить его полностью перпендикулярно к земле.

Ответ или решение

Вопрос о размещении маркеров ArUco и их влиянии на оценку позы камеры является ключевым аспектом в проектах компьютерного зрения и робототехники. В контексте активного использования метода solvePnP для вычисления векторов вращения и перемещения в условиях изменяющегося угла наклона камеры, необходимо учитывать несколько критически важных факторов.

Факторы, влияющие на оценку позы камеры

  1. Ориентация маркеров ArUco: Как вы сами отметили, размещение маркеров вертикально относительно поверхности предоставляет значительно больше информации о глубине и пространственном положении. Когда маркеры размещены под углом 90 градусов, система получает полную информацию о трехмерном пространстве, что позволяет более точно оценить наклон камеры. В этом случае векторы вращения и перемещения смогут более точно соответствовать реальным значениям, зафиксированным вашими измерительными устройствами.

  2. Проблема с потерей информации по оси Z: Когда маркеры располагаются горизонтально, информация, помимо оси X и Y, теряется. Как вы правильно заметили, это может привести к тому, что алгоритм не сможет корректно интерпретировать положение камеры. Это связано с тем, что в таком положении ось Z маркера совпадает с одной из осей координат камеры, что может привести к неоднозначности в определении ориентации.

  3. Гимбал-лок (Gimbal Lock): Эта проблема возникает, когда две из трех осей вращения становятся параллельными, что приводит к потере одной степени свободы. В вашем случае, когда камера наклонена на -90 градусов, а маркер расположен горизонтально, алгоритм может "запутаться", так как именно указываемая ось Z маркера будет совпадать с осью X камеры. Это приводит к неадекватной оценке положения, как показано во втором изображении.

Возможные решения

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

  • Использование нескольких маркеров: Поместите несколько маркеров в различных ориентациях. Это позволит алгоритму получать больше информации о пространственном положении и углах.

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

  • Калибровка алгоритма: Разработайте процедуру калибровки, чтобы улучшить результаты, получаемые в различных сценариях размещения маркеров.

Заключение

Создание надежной системы, способной адекватно оценивать позу камеры в широком спектре условий размещения маркеров, требует тщательного подхода к выбору стратегии размещения. Полагайтесь на предварительные исследования и тестирование нескольких методов, чтобы выяснить, какие решения будут наиболее эффективными в вашем конкретном случае. В конечном итоге, ключевым фактором в успешности вашего проекта будет понимание не только техники размещения маркеров, но и всех факторов, которые могут повлиять на результаты вашей системы.

Оцените материал
Добавить комментарий

Капча загружается...