use*_*142 7 matlab opencv bundler camera-calibration matlab-cvst
我必须重新投影我的3D点(我已经有来自Bundler的数据).
我在MATLAB中使用Camera Calibration工具箱来获取内在的相机参数.我从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 ]
Run Code Online (Sandbox Code Playgroud)
注意:数值误差约为标准偏差的三倍(供参考).
我想知道数字误差,即焦距误差+ - [23.13283 22.92478],主点误差等.这些误差数实际代表什么,它们的影响是什么?
像素误差实际上更少.
到目前为止,我使用上面数据中的以下矩阵进行重新投影:
K=[ 2104.11696 0 969.15779; 0 2101.75357 771.30555;0 0 1]
上面的矩阵"K"对我来说似乎是正确的.如果我做错了,请纠正我...
将等待你的回复.
这里有两种错误。
一是重投影误差。校准相机后,您可以使用生成的相机参数将世界坐标中的棋盘点投影到图像中。那么重投影误差就是这些投影点和检测棋盘点之间的距离。可接受的重投影误差值取决于您的应用程序,但一个好的经验法则是平均重投影误差应小于 0.5 个像素。
另一种错误是每个估计参数得到的 +/- 区间。这些基于优化算法产生的标准误差。Bouguet 相机校准工具箱为您提供的值实际上是标准误差的 3 倍,对应于 99.73% 的置信区间。换句话说,如果相机校准工具箱将焦距误差报告为 +- [23.13283 22.92478],则实际焦距处于您估计的该区间内的概率为 99.73%。
重投影误差可以让您快速测量校准的准确性。标准误差(我们称之为估计误差)对于更仔细地分析结果很有用。例如,您应该尝试排除具有较高平均重投影误差的校准图像。另一方面,如果您的估计误差很高,您可以尝试添加更多校准图像。
顺便说一句,计算机视觉系统工具箱现在包含一个GUI 相机校准器应用程序,使相机校准变得更加容易。文档中也对重投影错误有很好的解释。