opencv - Aruco秤坐标错误

标签 opencv computer-vision scaletransform pose-estimation aruco

我正在使用(新发布的)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%的误差。

最佳答案

经过一番思考之后,我发现,只是使用比从我的用例所需的距离小的校准板到镜头的距离来校准我的相机。
这导致了失真系数的错误,从而给了我虚假的标度。
我使用aruco_calibration工具重新校准,现在精确到大约3或4厘米,对我来说已经足够了。

关于opencv - Aruco秤坐标错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38304878/

相关文章:

python - ubuntu安装opencv2.4编译报错

objective-c - CV_8UC3 的 CGBitmapContextCreate(在 OpenCV 中使用)

ios - 快速将图像覆盖到 CGRect 上

python - 如何计算一个img中多个边界框的IOU?

javascript - 仅在 chrome 中缩放内容时,DIV 变得不可见但仍可点击

javascript - 不移动位置的 SVG 比例

c++ - 检测图像中的 U 形边缘

python - OpenCV:如何获取cv2.fisheye.un DistorImage后一个点的位置?

python - 如何使用 Python 中的计算机视觉/图像处理确定视频中的帧/图像是否处于夜视模式?

Three.js:如何在负比例后翻转法线