Advertisement

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

阅读量:
eaf7533f007f736571957d08662587bd.png

文章来自团队微信公众号,可以直接搜索“PrecisionEngineering”关注。

  1. 单目相机标定回顾:视觉传感 | 相机标定

在完成了上一节对单目相机标定的过程中

在相机标定过程中所做的基本假设包括:其中世界坐标系的XY平面与棋盘格表面平行,并且所有物点位于同一Z坐标平面上(即所有物点位于同一Z值)。基于这些前提,在缺乏任何关于物体或场景 beforehand knowledge的情况下,默认情况下也无法准确推导出棋盘格上各物点与其成像于图像平面上的空间位置关系(亦即无法获取图像中的深度信息)。

2. 可以通过典型的三角测量的方法来实现深度的测量。

8be46c60c54a7fe935799733ab64dd94.png

"Sailing School: Fun with Triangulation & Weird Headsl's"

一段关于航海技术的油管教学视频大致能掌握利用三角测距进行航海的技术方法。通过测量标志物(如灯塔)与船只之间的距离来确定船只在地图上的具体位置。

双目相机同样采用了三角测量的原理:基于三角形全等的条件,在已知的一边和相邻的两个角的信息下(即"边角边"或"SAS")能够唯一确定一个三角形的情况下(即"唯一性"),从而可以推导出该特定物点的空间深度信息。

双目相机在具体实现层面,则是通过识别两个相机中对应的物理世界点P及其图像坐标Pl和Pr后,在此基础上可由此三角形OlpOr求解出物理世界点P所具有的深度信息Z。
如图所示。

e63b0f46e793953f0ac71a2fb4fb9ea8.png
0c4b777130fc5556333ca664a0f575fd.png
2c89dd8bbecc4db9c47323c25c8be93e.png

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

3. 如何找到两个视觉相机图像上的对应点:

616976980d6016962903bf957a775fa2.png

根据图中所示,在左镜头图像平面上选取一个特定点时,在右镜头图像平面上对应的点将位于图示黑色线段上。

在这里,引入对极约束的概念。

  • 由相机中心构成的连线OO‘被称为基线(Baseline);
    • 由基线及物理坐标点P所形成的平面OO'P被称为对极平面(Epipolar Plane);
    • 位于两个相机图像平面上且穿过pe及p'e’的交线则定义为对极线(Epipolar Lines);
    • 基线分别与两个图像平面相交于e及e’两点, 这两处交点分别对应于另一幅图像中的Epipoles, 同时也表示了相机中心在另一幅图像中的投影位置。
de2313442fd7dae6e7940bd4d54ee37c.png

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

如下图中为双目相机拍摄图像中的共轭对极线。

8d005f00baaa14731be19b6cc0ee6754.png

4. 如何确定对极线。

9605f073aefea5fcd5c2340da6b161c0.png

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

574e40d27809dbf2b0d7be3a5fd6ef27.png

可以得到如下关系式。

0f2eccd695e3553905b3e834e936795c.png

由矩阵的叉乘定义

2f1409070c86bc8e2ddcc8ddc9fd0ed1.png

其中

3fff0ce23ab1751b00fc45279c602d47.png

代入上式中,可以得到

0a4f581dc884d2c9302d8d137f3366ce.png
f12296b95bf6aed77eb8c4d55ffba0d8.png

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

d4ca552d072b0ba19e24382b72cf6a67.png
be27cec88855a5aa70d7982169d4cf3d.png

253618925558ae9da732dac142a2faba.png

分别是点p和p’的对极线(?)。

E是本质矩阵;求解出本质矩阵E后就能得出对极线的方程。

相机坐标系经过转换得到图像坐标系时需要考虑相机标定过程中的内参矩阵参数;其中x代表在像素坐標系统中的位置

c3941602875bc776fc5a48ace7518d11.png

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

5813349769b7ec9267e5a0f93fc7b4bb.png

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

631b8875bf2df6b3d4c3e545d8e966d7.png

代入可以得到

82d11649b309afc7178bad9eeb01fd98.png

F称为基础矩阵;

5. 基础矩阵F的求解。

4719b22a9346b35c9aae05b7e482a169.png
94e2125966b4ae3272e37163fbc402e1.png
e22c1e6cd080ee5efb981e34c2afb1de.png

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

dda55c20aee08d9ed67569a24c61aa53.png

最小。

奇异值分解SVD。

6. 图像矫正

图像校正将两个不同方向的图像平面重新投影到第一个平面并且其光轴相互平行这样相应的两个相机图像平面的极线将被转换为水平状态

68d5b1b418d5a253510cafb026a8a5b6.png

7. 寻找特征点:滑动窗口匹配

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

bda60b46006eff26c83be670a2e7f296.png
3dd4e982c4439898f53e775fb4411866.png

8. 总结:

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

全部评论 (0)

还没有任何评论哟~