双目视觉的传统立体匹配算法有哪些?
好的,双目视觉的传统立体匹配算法是一个非常经典且重要的领域。这些算法不依赖于深度学习,而是基于手工设计的特征和优化方法。它们通常被分为三大类:局部算法、全局算法和半全局算法。
下图清晰地展示了这三类核心算法及其代表性方法:
flowchart TD
A[双目立体匹配算法] --> B[局部算法
基于窗口]
A --> C[全局算法
优化能量函数]
A --> D[半全局算法
SGM]
B --> B1[AD-Census
融合 Census 与 AD]
B --> B2[归一化互相关
NCC]
C --> C1[图割
Graph Cut]
C --> C2[置信传播
Belief Propagation]
C --> C3[动态规划
Dynamic Programming]
D --> D1[SGM
及其变种 SGM2, HTM]
下面我将为您详细解释这些算法。
- 局部算法 (Local Methods)
也称为基于窗口的算法。其核心思想是:对于左图像中的一个像素点,在右图像对应的极线上,用一个局部窗口(Window) 内的像素信息进行相似度计算,选择相似度最高的位置作为匹配点。
关键步骤:
- 匹配代价计算 (Matching Cost Computation):计算左图像中每个像素点与右图像中候选像素点之间的差异。
- 代价聚合 (Cost Aggregation):将单个像素的代价扩展到其周围的窗口内