【问题标题】:Camera Calibration: How to do it right相机校准:如何正确进行
【发布时间】:2015-09-16 22:49:34
【问题描述】:

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

  1. 棋盘格的数量会影响精度吗? Zhang 在他的原始论文中使用 8x8 并没有真正解释原因。

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

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

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

【问题讨论】:

    标签: opencv computer-vision camera-calibration calibration


    【解决方案1】:

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

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

    [编辑发表评论]

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

    【讨论】:

    • 我可以拍摄 20 张棋盘图像,我得到了一个参数组合,它们是焦点、主点和失真参数,相对于给定的棋盘图像具有低 RMS 投影误差。问题是,如果我再拍摄 20 张棋盘图像,我得到的参数相对于给定的棋盘图像仍然具有低 RMS 投影误差,但可能与之前确定的参数有很大差异。问题是我怎么知道哪一组参数是正确的?什么是可以保证一致结果的正确工作流程?
    【解决方案2】:

    理想情况下,您希望将棋盘放置在与相机大致相同的距离处,即您想要进行测量的距离。所以你的棋盘格必须足够大,才能从那个距离分辨出来。您还想用点覆盖整个视野,尤其是靠近框架的边缘和角落。此外,板越小,您应该拍摄的图像越多以覆盖整个视野。所以 20-30 张图片通常是一个很好的经验法则。

    另一件事是棋盘应该是不对称的。理想情况下,您希望一侧有偶数个正方形,而另一侧有奇数个正方形。这样,板的平面内方向就很明确了。

    另外,我建议您在 MATLAB 中尝试 Camera Calibrator app。至少,请查看文档,其中有很多关于校准相机的有用建议。

    【讨论】:

    • 我要测量的距离并不局限于一个小区域。大概在2m~50m左右。您能否在数学方面详细说明为什么“理想情况下,您希望将棋盘放置在与相机的距离大致相同的位置,就像您想要进行测量的距离一样。”?我认为距离应该无关紧要。也感谢你的好建议。
    • 理论上,距离并不重要。实际上,您存在噪声、量化误差、舍入误差等,因此您希望校准尽可能接近您要进行测量的位置。
    猜你喜欢
    • 2019-11-26
    • 2012-01-26
    • 2013-02-01
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 2022-10-24
    • 2015-10-15
    • 1970-01-01
    相关资源
    最近更新 更多