较小的重投影误差是否总是意味着更好的校准?

问题描述 投票:0回答:1

在相机校准期间,通常的建议是使用许多姿态、深度等变化的图像(>10)。 然而我注意到,通常使用的图像越少,重投影误差就越小。例如,对于 27 个图像,

cv::calibrateCamera
返回 0.23,而仅使用 3 个图像,我得到 0.11 这可能是因为在校准过程中我们正在解决超定系统的最小二乘问题。

问题:

  1. 我们真的使用重投影误差作为校准效果的绝对衡量标准吗?例如,如果我用 3 张图像校准并得到 0.11,然后用其他 27 张图像校准并得到 0.23,我们真的可以说“第一次校准更好”吗?

  2. OpenCV 使用相同的图像进行校准和计算误差。这不是某种形式的过度拟合吗?如果我实际上使用 2 个不同的集合(一组用于计算校准参数,一组用于计算误差),不是更正确吗?在这种情况下,我将使用相同的(测试)集来计算来自不同(训练)集的所有校准结果的误差。这样不是更公平吗?

opencv camera-calibration
1个回答
17
投票

抱歉,如果为时已晚 - 才刚刚看到。

误差是拟合的重投影。因此,找到图像上的点,计算现实世界模型,重新计算这些点在给定模型的图像上的位置 - 报告差异。在某种程度上,这有点循环,您可能有一个仅对少数图像正确的模型,然后它会报告一个非常好的错误,而给它大量图像将产生一个更普遍正确的模型 - 但会有更大的模型错误,只是因为您试图拉伸它以适应更大的空间。

确实存在添加更多图像并不能改善拟合的情况,并且可能会增加噪声,因为永远无法完美检测到点。重要的是提供更大的参数集、更多的角度和位置,而不是等效的数据

使用相同的图像集来预测误差并不是真正的问题,因为就实际物理镜头参数而言,拟合确实具有真正的意义 - 这不像在相同的数据上训练/测试神经网络。

编辑:3D-DIC中包含比opencv更好的校准例程(尽管基于相同的概念)(免费但不是OSS,注册网站以获得下载链接)具体请参阅校准手册

© www.soinside.com 2019 - 2024. All rights reserved.