我必须从2D图像进行3D重建。我的老师告诉我,第一步是通过拍摄一些棋盘来获取相机矩阵。我已经有这些照片了,我正在使用OpenCV来获取相机矩阵。矩阵具有以下形式:
我现在该怎么办?我的老师告诉我,我必须从图像中获取一些功能,然后匹配它们...... 但是我如何使用这个矩阵?我读到了关于运动中的结构,但我没有找到关于使用这个矩阵的任何信息。一旦我从图像中获得匹配,这个过程是什么?
答案 0 :(得分:8)
如果你要从运动路线上走下去,你要做的事情远非微不足道,所以要确保你和你的老师都明白这一点。
此矩阵称为相机校准矩阵(或以摄影测量术语,内部方向)。通常,运动算法的结构需要每个摄像机使用此功能,从那里,您必须确定每个摄像机框架的外部方向。 exerior orentation包括空间中的X,Y,Z位置以及相机指向方向的描述(通常以欧拉角描述)。这可以使用匹配功能完成。完成外部操作后,您可以将这些信息与功能配合使用,以对匹配功能进行三角测量。
所以回顾一般的SfM过程:
大多数SfM流程的最后一步使用Bundle Adjustment来优化场景的结构(和相机姿势)。编码通常非常复杂,因此值得查看预先存在的实现,例如Lourakis' SBA。
如果您想查看流行的现有SfM实施,请查看Noah Snavley撰写的Bundler。此外,对于密集的三维重建,请查看PMVS。最后,要获得全面的工作流程,请查看VisualSfM。
如果您正在寻找的更像是基于立体相机的三维重建,那么有许多tutorials在线使用OpenCV。