我想使用多 RGB 相机重建 3D 场景。输入数据没有相机校准信息,所以我想使用束调整算法(Ceres-solver)来估计校准信息。
现在我已经获得了成对匹配的特征点,但我发现束调整算法(Ceres-solver)中的算法也需要初始相机内在和外在矩阵以及3d点坐标作为输入。但是,我没有这些信息,也不知道如何生成初步猜测。
我应该如何生成初始相机内在和外在矩阵以及 3d 点坐标?
非常感谢!
初始参数对于帮助算法收敛到正确的局部最小值非常重要,从而获得良好的重建。您有不同的选择来查找相机的内部结构:
您基本上需要以像素为单位的焦距和镜头畸变系数。要计算焦距(以像素为单位),您可以使用下一个方程:
focal_pixels = res_x * (focal_mm / ccd_width_mm)
如果在任何情况下您都找不到相机的内在参数,您可以使用以下近似值作为初始猜测:
焦点像素 = 1.2 * res_x
不要将参数设置为固定的,因此焦距和畸变参数将在束调整步骤中进行优化。
另一方面,外部参数是每个相机的R|T(旋转平移矩阵)的值,在重建和束调整步骤中计算/优化。由于 SfM 场景中的尺度是未知的,因此第一对重建的摄像机(在交叉匹配步骤中得分较高的摄像机)是从投影在随机深度值(Z 方向场景)上的点生成的。您不需要外部或 3D 点坐标的任何初始值。