更小的重投影错误总是意味着更好的校准吗?

Sas*_*ssa 16 opencv camera-calibration

在相机校准期间,通常的建议是使用许多图像(> 10),其中包括姿势,深度等变化.但是我注意到,通常我使用的图像越少,重投影误差越小.例如,对于27个图像,cv :: calibrateCamera返回0.23并且仅有3我得到0.11这可能是由于在校准期间我们正在解决超定系统的最小二乘问题.

问题:

  1. 我们是否真的使用重投影误差作为校准良好程度的绝对量度?例如,如果我使用3张图像进行校准并获得0.11,然后使用其他27张图像进行校准并得到0.23,我们真的可以说"第一次校准更好"吗?

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

Mar*_*ett 14

对不起,如果这太晚了 - 只是看到它.

错误是适合的重新投射.因此,在图像上找到点,计算真实世界模型,重新计算给定模型的图像上的这些点的位置 - 报告差异.在某种程度上,这是一个圆形的,你可能有一个模型只适用于那些会报告非常好的错误的图像,同时给它很多图像会产生一个更普遍正确的模型 - 但是会更大错误,只是因为你试图拉伸它以适应更大的空间.

确实有一点,添加更多图像不会改善拟合,并且可能会增加噪点,因为从未完美地检测到点.重要的是提供更大的参数集,更多角度和位置,而不是等效数据

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

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

  • @Bob - 是的,这是古老的“一个带着手表的人知道时间,一个带着两块手表的人永远不确定”。ps请参阅答案中更新的链接 (2认同)