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