双目模型及深度值计算

双目模型及深度值计算

  经过几万年的进化可以发现,大部分生物都是长着两只眼睛的,就是因为双目可以测距。下面简单记录下双目相机模型及测距原理。

几何模型

双目模型及深度值计算_第1张图片

图1 双目相机几何模型

根据 △ \triangle PPLPR △ \triangle POLOR 相似关系,有
z − f z = b − u L + u R b \frac{z-f}{z} = \frac{b-u_L+u_R}{b} zzf=bbuL+uR

深度值计算

视差(disparity)
d = u L − u R d = u_L - u_R d=uLuR
uLuR 分别为P点在左右图像上x轴方向上的坐标。

所以深度值 z
z = f ∗ b d z = \frac{f*b}{d} z=dfb
f 为相机双目间的焦距,b 为相机双目间的基线。

通过视差 d 计算深度值步骤为:

  1. 对双目相机拍摄的左右图像 ILIR 进行特征点匹配,目的是找到两幅图像中所拍摄到的共同点。双目相机拍摄的到的左右目图像,大部分都是相同的(和相机基线的大小有关),只有左右目图像的共同点才能进行视差值计算。
  2. 计算已匹配的特征点的横坐标,即几何模型中的 uL , uRuR 应为负值)。
  3. 由uL uR 计算出视差 d ,并根据深度值计算公式计算出深度值。

代码

有时间再放上来。。。

你可能感兴趣的:(SLAM)