Two View Stereo
Basic Stereo Matching Algorithm¶
- Correspondence + Triangulation
- Use epipolar line to find correspondence and pick the best match
Simplest case¶
epipolar lines = corresponding scanlines

对于这种情况, 显然的 epipolar 约束就是 v=v'

General case¶
如果图像平面不平行, 我们就需要利用 fundamental matrix 将其变换到平行于基线的情况. (Stereo Rectification)

Depth from Disparity¶


error analysis¶
对于同一个真实深度为 \(Z\) 的物体进行分析
假设真实的 disparity 为 \(d_0\), 测量得到的 disparity 为 \(d_1\)
\[
\begin{align}
d_0 &= \frac{fB}{Z}\\
\Delta z&=\left|\frac{fB}{d_0}-\frac{fB}{d_1} \right| \\
&=fB\left|\frac{\Delta d}{d_0d_1}\right| \\
&\approx \frac{fB}{d_0^2}|\Delta d| \\
&=\frac{Z^2}{fB}|\Delta d|
\end{align}
\]
可以看到 \(B\) 越大误差越小.
但是 \(B\) 越大两个相机离得越远, 我们图像重叠部分就可能比较少, 找匹配点也比较困难.

Local Stereo Matching¶

Similarity Metrics¶


但是 Local Stereo matching 无法处理非常相似的 window.

Global Stereo Matching¶
Non-Local Constraints:¶
- Uniqueness

左图中一个点对应右图两个点 - Ordering

出现顺序不一样 - Smoothness

相邻的点可能由于一个在前一个在后导致视差剧烈跳变.
Disparity Space Image¶

通过定义匹配代价, 我们就可以利用动态规划算法进行匹配.
Stereo Matching via Global Optimization¶


Speed up -> Downsample, estimate, then upsample
Other methods¶
- Deep Learning
- Structured Light
利用投影仪向待测物体表面投射一个已知的 光模式, 由于物体深度变化, 图案会发生形变或位移. 相机从一个固定视角捕获这个形变后的团. 算法需要确定相机图像上的每个像素点,对应于投影仪投射的哪个原始光束, 一旦确定了对应关系就可以进行 Triangulation. - Laser Scanning