具有相机矩阵的密集3D重建

时间:2013-12-08 17:09:58

标签: camera-calibration 3d-reconstruction

我必须从2D图像进行3D重建。我的老师告诉我,第一步是通过拍摄一些棋盘来获取相机矩阵。我已经有这些照片了,我正在使用OpenCV来获取相机矩阵。矩阵具有以下形式:

Camera Matrix

我现在该怎么办?我的老师告诉我,我必须从图像中获取一些功能,然后匹配它们...... 但是我如何使用这个矩阵?我读到了关于运动中的结构,但我没有找到关于使用这个矩阵的任何信息。一旦我从图像中获得匹配,这个过程是什么?

1 个答案:

答案 0 :(得分:8)

如果你要从运动路线上走下去,你要做的事情远非微不足道,所以要确保你和你的老师都明白这一点。

此矩阵称为相机校准矩阵(或以摄影测量术语,内部方向)。通常,运动算法的结构需要每个摄像机使用此功能,从那里,您必须确定每个摄像机框架的外部方向。 exerior orentation包括空间中的X,Y,Z位置以及相机指向方向的描述(通常以欧拉角描述)。这可以使用匹配功能完成。完成外部操作后,您可以将这些信息与功能配合使用,以对匹配功能进行三角测量。

所以回顾一般的SfM过程:

  1. 校准相机(完成后)。
  2. 在场景中收集图像。
  3. 查找和匹配每个图像之间的功能(查看OpenCV的feature2d模块)。
  4. 使用匹配功能估计每个帧的相机姿势
  5. 使用相机姿势和匹配功能对每个匹配点的3D结构进行三角测量
  6. 大多数SfM流程的最后一步使用Bundle Adjustment来优化场景的结构(和相机姿势)。编码通常非常复杂,因此值得查看预先存在的实现,例如Lourakis' SBA

    如果您想查看流行的现有SfM实施,请查看Noah Snavley撰写的Bundler。此外,对于密集的三维重建,请查看PMVS。最后,要获得全面的工作流程,请查看VisualSfM

    如果您正在寻找的更像是基于立体相机的三维重建,那么有许多tutorials在线使用OpenCV。