优化多个相机的立体校准过程

Optimizing the stereo calibration process on multiple cameras

背景:

为简单起见,我有 3 个摄像头。每一个都是自己校准的(其间隙参数已知且足够准确)

他们的观点几乎一致。我想使用这个 3 相机系统进行 3D 重建。我已经单独校准了每一对(1 & 2、2 & 3 和 1 & 3)。因此产生了3个变换矩阵。 从理论上讲,这3个变换矩阵应该具有以下性质:

T13 = T12 * T23 

或其他公式:

 T31 * T12 * T23 = Identity

然而,实际上,这是不正确的。由于校准错误,结果与相同的矩阵有一点偏移。

Error = [T31 * T12 * T23] - [Identity]        Eq.3

问题:

我觉得单独校准每对相机是个坏主意。通过应用某种将整个三对融合在一起的全局优化,试图最小化等式 (3) 的误差应该会得到更好的结果。

我的问题是:

是否有关于此问题的任何已知的先前工作。知道如何使用 OpenCV 来实现我的目标,这样我就不会重新发明轮子了。

嗯,过去当然有很多台摄像机联合校准过(你看过The Matrix中的"bullet shot"效果吗?是这样的首先由 Manex 的团队完成:https://www.youtube.com/watch?v=uPNBdDNZbYk )

您可以使用您的初始成对校准作为一轮束调整的初始化点。最好使用在所有图像中的多个相机中可见的刚性 3D 对象(不是平面 "checkerboard" 目标,您需要具有实际深度的目标),并使用跨越视野和深度的许多图像出于兴趣。如果它是一次性项目,图像匹配和捆绑可以在具有良好 GUI 的半自动工具中轻松完成。过去,我曾令人满意地使用 Blender (www.blender.org) 来完成这些任务。在线查找有关使用 Blender 进行匹配移动的教程。