Skip to content

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