双目立体视觉建立深度图_视觉传感 | 双目立体视觉

文章来自团队微信公众号,可以直接搜索“PrecisionEngineering”关注。
- 单目相机标定回顾:视觉传感 | 相机标定
在完成了上一节对单目相机标定的过程中
在相机标定过程中所做的基本假设包括:其中世界坐标系的XY平面与棋盘格表面平行,并且所有物点位于同一Z坐标平面上(即所有物点位于同一Z值)。基于这些前提,在缺乏任何关于物体或场景 beforehand knowledge的情况下,默认情况下也无法准确推导出棋盘格上各物点与其成像于图像平面上的空间位置关系(亦即无法获取图像中的深度信息)。
2. 可以通过典型的三角测量的方法来实现深度的测量。

"Sailing School: Fun with Triangulation & Weird Headsl's"
一段关于航海技术的油管教学视频大致能掌握利用三角测距进行航海的技术方法。通过测量标志物(如灯塔)与船只之间的距离来确定船只在地图上的具体位置。
双目相机同样采用了三角测量的原理:基于三角形全等的条件,在已知的一边和相邻的两个角的信息下(即"边角边"或"SAS")能够唯一确定一个三角形的情况下(即"唯一性"),从而可以推导出该特定物点的空间深度信息。
双目相机在具体实现层面,则是通过识别两个相机中对应的物理世界点P及其图像坐标Pl和Pr后,在此基础上可由此三角形OlpOr求解出物理世界点P所具有的深度信息Z。
如图所示。



在实际操作过程中,在我们获取的数据中包含来自两个相机拍摄的图像;从而,在两幅图像中找到特定物点对应的两个像点是确定该物点深度的关键步骤。
3. 如何找到两个视觉相机图像上的对应点:

根据图中所示,在左镜头图像平面上选取一个特定点时,在右镜头图像平面上对应的点将位于图示黑色线段上。
在这里,引入对极约束的概念。
- 由相机中心构成的连线OO‘被称为基线(Baseline);
- 由基线及物理坐标点P所形成的平面OO'P被称为对极平面(Epipolar Plane);
- 位于两个相机图像平面上且穿过pe及p'e’的交线则定义为对极线(Epipolar Lines);
- 基线分别与两个图像平面相交于e及e’两点, 这两处交点分别对应于另一幅图像中的Epipoles, 同时也表示了相机中心在另一幅图像中的投影位置。

图中可见,在左侧图像平面内对应的像均为定点p,在右侧图像平面内的相应像则均匀分布在连接p'与e'的直线上;而位于O'P射线上的物理空间点,则在左视图中均映射至固定位置p';其在右视图中的对应投影则会分布在连接p与e的直线上。由此可见,在两个视图平面内所形成的直线pe与直线p’e’之间存在共轭关系;此外还需指出的是,在所有的对极线上都必经过共同的对极点e这个事实。
如下图中为双目相机拍摄图像中的共轭对极线。

4. 如何确定对极线。

左右两个相机坐标系 可以通过旋转矩阵R和平移矩阵T建立联系。

可以得到如下关系式。

由矩阵的叉乘定义

其中

代入上式中,可以得到


图中X向量和p向量等价,于是有


和

分别是点p和p’的对极线(?)。
E是本质矩阵;求解出本质矩阵E后就能得出对极线的方程。
相机坐标系经过转换得到图像坐标系时需要考虑相机标定过程中的内参矩阵参数;其中x代表在像素坐標系统中的位置

为相机坐标系上的坐标。K为内参矩阵。则原来的式子变为

其中像素坐标系和相机坐标系的关系为

代入可以得到

F称为基础矩阵;
5. 基础矩阵F的求解。



8点法:取8个点求解,使得

最小。
奇异值分解SVD。
6. 图像矫正
图像校正将两个不同方向的图像平面重新投影到第一个平面并且其光轴相互平行这样相应的两个相机图像平面的极线将被转换为水平状态

7. 寻找特征点:滑动窗口匹配
经过图像矫正后,其对应的极线普遍呈现水平状态,进而可以在对应位置实施滑动窗口技术进行图像匹配,其中窗口宽度与深度图计算结果具有显著关联性


8. 总结:
本文主要阐述了双目系统的基本工作流程及其核心算法;在实际应用中存在一些可进一步优化的算法,在具体的实现过程中通常会采用八点法来求解基础矩阵以及运用其他技术来实现特征点匹配
