- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我必须重新投影我的 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”对我来说似乎是正确的。如果我做错了什么,请纠正我......
将等待您的回复。
最佳答案
这里有两种错误。
一个是重投影错误。校准相机后,您可以使用生成的相机参数将世界坐标中的棋盘点投影到图像中。那么重投影误差就是那些投影点和检测棋盘点之间的距离。重投影误差的可接受值取决于您的应用程序,但一个好的经验法则是平均重投影误差应小于 0.5 个像素。
另一种错误是您为每个估计参数获得的那些 +/- 间隔。这些是基于 standard errors优化算法的结果。 Bouguet 的值(value)观Camera Calibration Toolbox 给你的实际上是标准误差的 3 倍,这对应于 99.73% 的置信区间。换句话说,如果相机校准工具箱将焦距误差报告为 +- [23.13283 22.92478],那么实际焦距在您估计的区间内的概率为 99.73%。
重投影误差可让您快速衡量校准的准确性。标准误差 - 让我们称它们为估计误差 - 有助于更仔细地分析您的结果。例如,您应该尝试排除具有高平均重投影误差的校准图像。另一方面,如果您的估计误差很高,您可以尝试添加更多校准图像。
顺便说一下,计算机视觉系统工具箱现在包含一个 GUI Camera Calibrator app这使得相机校准更容易。文档中对重投影错误也有很好的解释。
关于matlab - 相机标定 MATLAB 工具箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12687231/
我是一名优秀的程序员,十分优秀!