小言_互联网的博客

视觉SLAM笔记(21) 双目相机模型

178人阅读  评论(0)

视觉SLAM笔记(21) 双目相机模型


1. 深度确定

针孔相机模型描述了单个相机的成像模型
然而,仅根据一个像素,是无法确定这个空间点的具体位置的
这是因为,从相机光心到归一化平面连线上的所有点,都可以投影至该像素上
只有当 P 的深度确定时(比如通过双目或 RGB-D 相机),才能确切地知道它的空间位置


2. 景物差异

测量像素距离(或深度)的方式有很多种
像人眼就可以根据左右眼看到的景物差异(或称视差)来判断物体与我们的距离

双目相机的原理亦是如此
通过同步采集左右相机的图像,计算图像间视差,来估计每一个像素的深度


3. 成像原理

双目相机的成像原理:

双目相机一般由左眼和右眼两个水平放置的相机组成
当然也可以做成上下两个目,但见到的主流双目都是做成左右的

在左右双目的相机中,可以把两个相机都看作针孔相机
它们是水平放置的,意味两个相机的光圈中心都位于 x 轴上
它们的距离称为双目相机的 基线(Baseline, 记作 b),是双目的重要参数
现在,考虑一个空间点 P,它在左眼和右眼各成一像,记作 P P L P P R
由于相机基线的存在,这两个成像位置是不同的

理想情况下,由于左右相机只有在 x 轴上有位移
因此 P 的像也只在 x 轴(对应图像的 u 轴)上有差异
记它在左侧的成像平面坐标为 u u L,右侧成像平面坐标为 u u R


根据三角形 P −PL −PR 和 P −OL −OR 的相似关系,有:


稍加整理,得:

这里 d d 为左右图的横坐标之差,称为视差(Disparity)

根据视差,可以估计一个像素离相机的距离
视差与距离成反比:视差越大,距离越近

同时,由于视差最小为一个像素
于是双目的深度存在一个理论上的最大值,由 f b fb 确定
可以看到,当基线越长时,双目最大能测到的距离就会变远
反之,小型双目器件则只能测量很近的距离


4. 计算困难

虽然由视差计算深度的公式很简洁,但视差 d d 本身的计算却比较困难
需要确切地知道左眼图像某个像素出现在右眼图像的哪一个位置(即对应关系)
这件事亦属于“人类觉得容易而计算机觉得困难”的事务

当想计算每个像素的深度时,其计算量与精度都将成为问题
而且只有在图像纹理变化丰富的地方才能计算视差
由于计算量的原因,双目深度估计仍需要使用 GPU 或 FPGA 来计算


参考:

《视觉SLAM十四讲》


相关推荐:

视觉SLAM笔记(20) 单目相机模型
视觉SLAM笔记(19) 相似变换群与李代数
视觉SLAM笔记(18) Sophus
视觉SLAM笔记(17) 李代数求导与扰动模型
视觉SLAM笔记(16) 指数与对数映射


谢谢!


转载:https://blog.csdn.net/qq_32618327/article/details/102362477
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场