一、立体视觉概述:什么是立体匹配、双目视觉原理、视差与深度关系、应用场景

大家好,我是你们的老朋友。今天咱们正式开讲立体匹配的第一章。说实话,每次带新人入门,我都会先问一个问题:人眼为什么能看到三维世界?你想想看,我们两只眼睛看到的画面其实不完全一样,但大脑却能合成出深度信息。立体匹配,说白了就是让计算机模仿这个能力。

1.1 什么是立体匹配

立体匹配,全称叫立体图像匹配。它的任务很简单:给定两张从不同角度拍摄的图片,找到它们之间的对应像素点。

举个例子。我拍了一张桌子上的杯子,左眼看到杯把在左边,右眼看到杯把稍微往右偏了一点。计算机要做的,就是找到左图里杯把上的某个像素,在右图里对应的是哪个像素。这个找对应关系的过程,就是立体匹配。

核心定义:立体匹配 = 在左右视图之间建立像素级对应关系,从而计算视差图。

我在项目中遇到过不少新手,上来就调算法参数,结果效果很差。其实理解匹配的本质比调参重要得多。匹配的本质是相似性度量——你凭什么说左图的像素A和右图的像素B是同一个点?靠的是它们周围的纹理、颜色、梯度等特征相似。

1.2 双目视觉原理

双目视觉,就是模拟人眼的结构。两个摄像头平行放置,光轴平行,像距相同。这叫做标准双目系统

嗯,这里要注意:实际工程中很难做到绝对平行。我调试过一台双目相机,左右摄像头有0.5度的偏角,结果视差图全是歪的。后来做了立体校正才搞定。

双目视觉的数学基础是对极几何。简单说:左图中的一个点,在右图中一定位于某一条直线上,这条线叫极线。有了这个约束,匹配搜索就从二维降到了一维,效率提升巨大。

个人经验:我建议初学者先理解极线约束,再去碰那些复杂的匹配算法。极线约束是立体匹配的基石,绕不过去。

1.3 视差与深度关系

视差,就是同一个三维点在左右图像上成像位置的水平偏移量。单位是像素。

深度和视差的关系,用一个公式就能说清楚:

深度 Z = (焦距 f × 基线距离 B) / 视差 d

其中:

  • Z:物体到相机的距离(深度)
  • f:相机焦距(像素单位)
  • B:左右相机光心之间的距离(基线)
  • d:视差值(像素)

你看,深度和视差成反比。物体越近,视差越大;物体越远,视差越小。无限远处的物体,视差趋近于0。

我曾经在自动驾驶项目里踩过一个坑:用大基线相机测远处车辆,视差只有1-2个像素,稍微有点噪声,深度就跳得离谱。后来我改用长焦镜头+小基线,才把远距离测距精度提上来。

避坑指南:视差计算对亚像素精度要求很高。我曾经因为只用了整像素匹配,导致深度图出现明显的阶梯状伪影。后来改用亚像素插值,效果立竿见影。

1.4 应用场景

立体匹配不是实验室里的玩具,它在工业界有大量落地场景。我挑三个最典型的说说。

1.4.1 自动驾驶

自动驾驶里,立体相机是感知系统的重要传感器。它能提供稠密的深度图,用于障碍物检测、可行驶区域分割、目标跟踪。

我记得有一次测试,我们的车在高速上遇到一辆静止的货车。激光雷达没扫到,但双目相机通过视差计算发现前方有障碍物,及时触发了紧急制动。这就是立体匹配的价值——稠密、低成本、全天候

1.4.2 机器人

机器人导航、抓取、避障都离不开深度信息。立体相机比激光雷达便宜得多,而且能提供彩色+深度对齐的数据。

我做过的仓储机器人项目,就用双目相机做货架识别和路径规划。立体匹配算出来的深度图,配合RGB图像,能让机器人精准地抓取货架上的箱子。

1.4.3 3D重建

从多视角图像重建三维模型,立体匹配是核心步骤。先算视差图,再转成深度图,最后融合成点云。

我参与过一个文物数字化项目,用双目相机扫描一尊佛像。立体匹配算出的深度图精度达到毫米级,重建出来的模型连佛像衣纹的褶皱都清晰可见。

1.5 知识体系总览

下面这张图,是我自己总结的立体匹配知识体系。你看一眼,心里就有谱了。

立体匹配知识体系 输入:左右视图 核心步骤:立体匹配 输出:视差图 应用:自动驾驶 | 机器人 | 3D重建 | 工业检测 | AR/VR 数据准备 核心算法 结果输出 工程落地

这张图把立体匹配的流程串起来了。从输入到输出,再到应用,每一步都有对应的算法和工程技巧。后面的章节,我会逐一拆解。

1.6 本章小结

这一章我们聊了立体匹配是什么、双目视觉怎么工作、视差和深度怎么换算,以及它在哪些场景里真正有用。说白了,立体匹配就是用两张图算出一张深度图,然后让机器看懂三维世界。

我个人觉得,理解视差与深度的反比关系,是入门的第一道坎。你把这个关系刻在脑子里,后面学匹配算法、立体校正、深度滤波,都会顺很多。

好,今天就到这儿。下一章我们开始动手——从相机标定和立体校正讲起,把双目系统的硬件基础打牢。


公众号:蓝海资料掘金营,微信deep3321