用于束调整的初始相机内在和外在矩阵以及 3D 点坐标

问题描述 投票:0回答:1

我想使用多 RGB 相机重建 3D 场景。输入数据没有相机校准信息,所以我想使用束调整算法(Ceres-solver)来估计校准信息。

现在我已经获得了成对匹配的特征点,但我发现束调整算法(Ceres-solver)中的算法也需要初始相机内在和外在矩阵以及3d点坐标作为输入。但是,我没有这些信息,也不知道如何生成初步猜测。

我应该如何生成初始相机内在和外在矩阵以及 3d 点坐标?

非常感谢!

computer-vision camera-calibration 3d-reconstruction ceres-solver structure-from-motion
1个回答
4
投票

初始参数对于帮助算法收敛到正确的局部最小值非常重要,从而获得良好的重建。您有不同的选择来查找相机的内部结构:

  • 如果您知道用于拍照的相机品牌,您可以尝试在数据库中查找这些内在函数。对您来说重要的参数是 CCD 宽度和焦距 (mm)。试试这个
  • 检查图像的EXIF标签。您可以使用 jheadexiftool 等工具来实现此目的。

您基本上需要以像素为单位的焦距和镜头畸变系数。要计算焦距(以像素为单位),您可以使用下一个方程:

focal_pixels = res_x * (focal_mm / ccd_width_mm)

如果在任何情况下您都找不到相机的内在参数,您可以使用以下近似值作为初始猜测:

焦点像素 = 1.2 * res_x

不要将参数设置为固定的,因此焦距和畸变参数将在束调整步骤中进行优化。

另一方面,外部参数是每个相机的R|T(旋转平移矩阵)的值,在重建和束调整步骤中计算/优化。由于 SfM 场景中的尺度是未知的,因此第一对重建的摄像机(在交叉匹配步骤中得分较高的摄像机)是从投影在随机深度值(Z 方向场景)上的点生成的。您不需要外部或 3D 点坐标的任何初始值。

© www.soinside.com 2019 - 2024. All rights reserved.