Aruco неправильно масштабирует координаты

Я использую (недавно выпущенную) ArUco 2.0.7 для отслеживания некоторых маркеров. Камера, которую я использую, закреплена на потолке и направлена ​​вниз, поэтому мне нужны только координаты x и y. Он может просматривать площадь 2,6 м на 1,5 м. Если я правильно понимаю документацию, я указываю длину стороны маркеров, которые я использую, в произвольных единицах, вывод позы будет в той же единице. Таким образом, маркеры имеют длину стороны 19,5 см. Поскольку мне нужен результат в метрах, я установил это значение на 0,195.

Однако результаты, которые я получаю, неверны. Если я размещу маркеры прямо в углах поля зрения камеры, они не будут соответствовать ожидаемым координатам x и y.

Я размещаю глобальное происхождение в одном из углов поля зрения, например. (0,0) — нижний левый угол. Это делается путем преобразования всех входящих позиций в эту систему координат маркеров с использованием матричных преобразований, полученных с помощью getRTMatrix(). Кажется, все работает, за исключением того, что координаты x и y указаны в неправильных единицах измерения или масштабированы. Вращение работает идеально.

Я что-то упускаю? Или можно не рассчитывать на хорошую точность? Ошибка значительная, т.е. когда должно быть (2.6,1.5), оно отображается как (1.8, 1), что примерно соответствует ошибке 33%.


person RunOrVeith    schedule 11.07.2016    source источник


Ответы (1)


Еще немного подумав, я понял, что просто моя камера была откалибрована с использованием меньшего расстояния от калибровочной платы до объектива, чем то, что мне нужно для моего случая использования. Это привело к тому, что коэффициенты искажения были неправильными, что дало мне фиктивную шкалу. Я провел повторную калибровку с помощью инструмента aruco_calibration, и теперь точность составляет примерно 3 или 4 см, что для меня достаточно.

person RunOrVeith    schedule 11.07.2016