我必须重新投影我的 3D 点(我已经有来自 Bundler 的数据)。

我使用 MATLAB 中的相机校准工具箱来获取相机的内在参数。我从 27 个图像(棋盘;图像是从不同角度拍摄的)。

Calibration results after optimization (with uncertainties):

Focal Length:     fc = [ 2104.11696  2101.75357 ] ± [ 23.13283  22.92478 ]
Principal point:  cc = [  969.15779   771.30555 ] ± [ 21.98972  15.25166 ]
Skew:        alpha_c = [  0.00000 ] ± [ 0.00000  ]
Distortion:       kc = [  0.11555  -0.55754  -0.00100  -0.00275  0.00000 ] ± 
                       [ >0.05036   0.59076   0.00307   0.00440  0.00000 ]
Pixel error:     err = [  0.71656   0.63306 ]

笔记:数值误差大约是标准偏差的三倍(仅供参考)。

我想知道数字错误,即焦距误差 +- [23.13283 22.92478] 、主点误差等。这些错误数字实际上代表什么以及它们的影响是什么?

像素误差确实较小。

到目前为止,我使用上面数据中的以下矩阵进行重新投影:

K=[ 2104.11696 0 969.15779; 0 2101.75357 771.30555;0 0 1]

上面的矩阵“K”对我来说似乎是正确的。如果我做错了什么请纠正我...

将等待您的回复。

有帮助吗?

解决方案

这里有两种错误。

一个是再分声误差。校准相机后,您将使用Camera的相机参数在世界坐标中投影到图像中的棋盘点。然后重注错误是那些投影点与检测棋盘点之间的距离。重新注入误差的可接受值取决于您的应用,但是一个好的拇指规则是平均刻录误差应小于像素的0.5。

其他类型的错误是您获得每个估算参数的+/-间隔。那些基于标准错误是由优化算法产生的。 Bouguet的价值观 相机校准工具箱,您实际上是标准误差的3倍,其置信区间相应于99.73%。换句话说,如果相机校准工具箱报告焦距误差为+ - [23.13283 22.92478],那么实际的焦距在估计间隔内,概率为99.73%。

重新注明错误让您快速测量校准的准确性。标准错误 - 让我们调用它们估计错误 - 对于对结果的更仔细分析,很有用。例如,您应该尝试排除具有高平均刻录错误的校准图像。另一方面,如果您的估计错误很高,则可以尝试添加更多校准图像。

顺便说一下,计算机视觉系统工具箱现在包括 GUI相机校准器APP 使摄像机校准更容易。还有一个很好的解释文档中的重新注入错误。

其他提示

相机校准工具箱从棋盘图像中提取网格点,并用它来查找校准参数。

像素误差是提取的网格点的平均重投影误差,即实际像素位置和使用计算出的 K 矩阵的像素位置。所以这些数字大多在 1 以内(1 像素误差),尽管你的数字相当。焦距误差是计算焦距的方差。

您只需要 3 或 4 张图像即可找到相机的校准(我忘记了实际数量)。如果您提供多个图像,它将计算 3-4 个图像的所有组合的 K,并计算一个 K。误差是所有这些计算出的 K 的方差。

你的数字相当高(与你的 22-23 像素相比,它应该在 3-4 像素以内)。原因是校准图像质量不佳以及网格点的初始估计错误(您可以通过选择图像中的 4 个角手动执行此操作)。通常,现代相机中的 f_x 和 f_y 是相同的,您应该取 (f_x + f_y)/2 的平均值。

关于你的原则点,你的相机分辨率似乎是1920 x 1600,你应该使用[980 800]而不是工具箱给出的分辨率。现在,通常 ccd 都被小心地放置,并且您的主点正好位于中心。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top