gpt4 book ai didi

opencv - 相机校准 : How to do it right

转载 作者:太空宇宙 更新时间:2023-11-03 20:52:05 26 4
gpt4 key购买 nike

我正在尝试通过众所周知的 Zhang 方法使用棋盘来校准相机,然后进行束调整,这在 Matlab 和 OpenCV 中都可用。有很多经验指南,但根据我个人的经验,准确性非常随机。它有时可能非常好,但有时也可能非常糟糕。实际上,只需将棋盘放置在不同位置,结果就会有很大差异。假设目标相机是直线的,水平 FOV 为 110 度。

  1. 棋盘中的方 block 数量是否会影响准确性? Zhang 在他的原始论文中使用 8x8 并没有真正解释原因。

  2. 正方形的长度会影响精度吗?张使用 17cm x 17cm 并没有真正解释原因。

  3. 不同棋盘位置/方向的最佳快照数量是多少?张只使用了 5 张图片。我看到有人建议20~30张不同角度的棋盘图片,填满整个视野,向左、右、上、下倾斜,并建议不要在相似的位置/方向放置棋盘,否则结果会是偏向那个位置/方向。这是正确的吗?

目标是找出一个工作流程来获得一致的校准结果。

最佳答案

如果您获得的精度“相当随机”,那么您可能做得不对:使用稳定的光学器件和执行良好的程序,您应该始终将 RMS 投影误差控制在十分之几像素以内。这是否对应于 3D 空间中毫米或米的变化当然取决于您的光学和传感器分辨率(校准不是绕过物理学的方法)。

我前段时间在this answer写了一些建议,我建议您关注他们。尤其要注意锁定焦距(我看到和听到无数人试图在自动对焦时校准相机,但非常失望)。至于目标的大小,同样取决于您的光学器件和相机分辨率,但一般来说,目标是 (1) 填充测量两者视野 您将使用的空间体积,以及 (2) 观察显着的透视缩短,因为这是限制 FOV 解决方案的因素。祝你好运!

[Ed. 解决评论]

关于参数值在连续校准中的变化,我要做的第一件事是计算交叉 RMS 误差,即数据集 1 上的 RMS 误差与在数据集 2 上校准的相机,反之亦然。如果两者中的任何一个明显高于校准误差,则表明相机在两次校准之间发生了变化,因此一切皆有可能。你有自动{focus,iris,zoom,stabilization}吗?将它们全部关闭:自动任何东西都是校准的祸根,唯一的异常(exception)是曝光时间。否则,您需要查看您在参数上观察到的变化是否真的有意义(提示,它们通常没有意义)。千分之几像素的焦距变化可能与当今的传感器分辨率无关 - 您可以通过以毫米表示并将其与传感器的点距进行比较来验证这一点。此外,主要点的位置以数十像素的顺序变化是很常见的,因为除非您的校准程序非常精心设计以估计它,否则很难观察到它.

关于opencv - 相机校准 : How to do it right,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31133209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com