我正在使用(新发布的)ArUco 2.0.7 来跟踪一些标记。我使用的摄像头朝下安装在天花板上,所以我只需要 x 和 y 坐标。它可以查看 2.6m x 1.5m 的区域。如果我正确理解文档,我会以任意单位提供我正在使用的标记的边长,姿势的输出将采用相同的单位。所以标记的边长为 19.5 厘米。因为我希望我的结果以米为单位,所以我将该值设置为 0.195。
但是,我得到的结果是不正确的。如果我将标记放在相机视野的角落,它们不在相应的预期 x 和 y 坐标处。
我将全局原点放在视野的一个角上,例如(0,0)是左下角。这是通过使用 getRTMatrix() 获得的矩阵变换将所有传入位置转换到该标记坐标系来完成的。一切似乎都在工作,除了 x 和 y 坐标的单位错误或缩放。旋转完美。
我错过了什么吗?或者我不能期望一个很好的准确性?误差很大,比如应该是(2.6,1.5)的时候显示为(1.8,1),大概是33%的误差。