易懂的对极几何与三维重建概念理解与matlab编程实践

推荐开源项目:简单的SLAM与机器人教程与编程实践-github

破解对极几何中的概念障碍

首先介绍下三维重建到底要做什么事。我们知道一个物体在现实世界的位置是三维的,但是照片是二维的。这意味照片拍摄到的场景丢失了一维。而这一维就是物体离相机的远近。对极几何三维重建就是希望通过多张角度的照片还原各个像素点相对相机的三维坐标。
看本文前你需要了解针孔相机成像原理(即小孔成像原理,参见教程《针孔相机模型成像原理与图像变形矫正教程

下面这幅图就描述了对极几何。对极几何主要是介绍同一个物体在两个不同的视角下的几何约束关系。而这些几何约束关系对应着一系列等式。通过求解这些等式我们就可以求解得到P相对于第一个视角和第二个视角的坐标。接下来我们看看到底存在哪些几何约束?
在这里插入图片描述
注意:
P是现实世界中某一点。 p 0 , p 1 p_0,p_1 p0,p1分别是第0个和第1个视角下物体P被拍摄到的点。注意: p 0 , p 1 p_0,p_1 p0,p1并不是像素点,它们只是损失掉深度值后的点,他们和像素点坐标 x 0 x_0 x0之间的联系是 x 0 = K p 0 x_0=Kp_0 x0=Kp0其中K是相机的内部参数矩阵主要是相机的焦距和原点位置。 C 0 , C 1 C_0,C_1 C0,C1分别是两个不同视角对应的相机焦点。不同视角就是指相机位置姿态发生了变化。
相机成像原理第0个视角下,P点与 p 0 p_0 p0和第一个视角下相机焦点一定在同一条直线上。而且这条直线上的其他现实世界中的点会重合投影到 p 0 p_0 p0。也就是说虽然第0个视角只看到了 p 0 p_0 p0这一个点,但是事实上这个点是由多个点重合投影得到的。那么我怎么知道是否存在重合投影呢?这就是需要第1个视角进行补充约束。大牛们把这约束叫做对极约束。

对极几何进行三维重建的思路

我们从上图中可以看到, P p 0 Pp_0 Pp0这条直线上的点虽然投影到第0个视角是重合到 p 0 p_0 p0但是投影到第1个视角却并不是重合。因此我们根据这些点可以解出红色这条直线(学术上叫做极线Epiolar Line),然后解出极点(Epiplole),然后根据极点和焦点在同一条直线上解出** C 0 C 1 C_0C_1 C0C1这条直线(学术上叫做基线)**。现在我们知道了极线和基线。如果相机位姿没发生变化那么 C 0 C 1 C_0C_1 C0C1这条直线(基线)应该要与极线(Epipolar Line)平行。现在他们不平行了我们只用解出这之间的位姿变化就可以解出两个视角发生的位姿变化

那么怎么求解红色那条直线(极线Epiolar Line)呢?答:先求出基础矩阵(后面会讲)。根据基础矩阵和像素坐标可以计算出极线的方程。

求解极线(本质矩阵essential matrix)

我们把两条极线,基线独立出来看看他们之间的数学联系。然后根据这些数学联系来计算出极线的数学表达式。
在这里插入图片描述
我们知道 C 0 p 0 , C 1 p 1 , C 0 C 1 C_0p_0,C_1p_1,C_0C_1 C0p0,C

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值