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