首页 文章

3D基本矩阵的对应关系

提问于
浏览
11

在MATLAB中,我使用标准化的Eight point algorithm计算了Fundamental matrix(两个图像) . 从那我需要triangulate 3D空间中的相应图像点 . 根据我的理解,要做到这一点,我需要旋转和翻译图像的相机 . 当然最简单的方法是calibrate the cameras然后拍摄图像,但这对我的应用来说太紧张了,因为它需要这个额外的步骤 .

所以这让我留下了auto (self) camera calibration . 我看到bundle adjustment的提及,但是在An Invitation to 3D Vision中它似乎需要初始平移和旋转,这让我觉得需要校准的相机或我的理解不足 .

所以我的问题是如何自动提取旋转/平移,以便我可以将图像点重新投影/三角测量到3D空间 . 任何MATLAB代码或伪代码都会很棒 .

3 回答

  • 8

    您可以使用基本矩阵恢复相机矩阵并从图像中对3D点进行三角测量 . 但是,你必须意识到你将获得的重建将是一个投射重建,而不是欧几里德重建 . 如果你的目标是测量原始场景中的投影不变量,例如交叉比率,线交点等,这很有用,但它不足以测量角度和距离(你必须为此校准相机) .

    如果你有权访问Hartley and Zisserman's textbook,你可以查看9.5.3节,你会发现你需要从基本矩阵到一对相机矩阵,你可以计算出一个投影重建(我相信相同的内容出现在“易马”一书第6.4节) . 从source code for the book's algorithms is available online开始,您可能需要检查函数vgg_P_from_F,vgg_X_from_xP_lin和vgg_X_from_xP_nonlin .

  • 1

    我认为Peter的matlab代码对你很有帮助:

    http://www.csse.uwa.edu.au/~pk/research/matlabfns/

    彼得发布了许多基本矩阵解决方案 . zisserman书中提到了原始算法

    http://www.amazon.com/exec/obidos/tg/detail/-/0521540518/qid=1126195435/sr=8-1/ref=pd_bbs_1/103-8055115-0657421?v=glance&s=books&n=507846

    此外,当你在它时,不要忘记看到基本的矩阵歌曲:

    http://danielwedge.com/fmatrix/

    我诚实的意见中的一个很好的组成!

  • 5

    如果您的3D空间可以任意选择,您可以将您的第一个相机矩阵设置为

    P = [I | 0]
    

    没有翻译,没有轮换 . 这将为您提供从摄像机1定义的坐标系 . 然后校准第二台摄像机应该不会太难 .

相关问题