2. 基线距基础概念

各位工程师朋友,今天我们来聊聊双目视觉里最核心的一个参数——基线距。我做了这么多年光学测量,可以负责任地说:基线距选得好不好,直接决定了你的系统能不能用。

2.1 基线距的定义

说白了,基线距就是两个相机光心之间的距离。用字母 B 表示,单位通常是毫米。

你想想看,我们人眼两个瞳孔之间的距离大概在 60-70mm 左右,这就是我们天生的基线距。双目视觉系统模仿的就是这个原理。

核心定义:基线距 B = 左相机光心到右相机光心的直线距离

我在项目中遇到过不少新手,把相机外壳之间的距离当成基线距。嗯,这里要注意:基线距是光心之间的距离,不是外壳距离。特别是用大尺寸相机时,外壳厚度可能有好几毫米,算错了基线距,后面所有标定都白做。

2.2 基线距与视差的关系

视差是什么?简单说就是同一个物体在左右相机成像平面上的位置差。用公式表示:

视差 d = x_left - x_right

其中 x_left 和 x_right 分别是物体在左右图像中的列坐标。

那么基线距和视差是什么关系?我直接给你结论:

Z = (B × f) / d

这里 Z 是物体到相机的距离,f 是焦距。你看,深度 Z 和视差 d 成反比,和基线距 B 成正比。

为什么会这样?我习惯用一个生活例子来解释:你伸出一根手指放在眼前,闭上左眼用右眼看,再闭上右眼用左眼看——手指的位置会跳来跳去。这个跳动量就是视差。手指离眼睛越近,跳动越大;基线距(两眼距离)越大,跳动也越大。

个人经验:我建议在选型时,先用这个公式估算一下。比如你要测 5 米远的物体,焦距 12mm,想让视差至少 10 个像素(像素尺寸 5μm),那么基线距至少要:

B = Z × d / f = 5000 × (10 × 0.005) / 12 ≈ 20.8 mm

这个估算方法我用了很多年,很管用。

2.3 基线距对深度测量精度的影响

这是本章的重头戏。基线距直接影响深度测量的精度,我把它拆成三个层面来讲。

2.3.1 精度公式推导

深度测量误差 ΔZ 可以用下面这个公式表达:

ΔZ = (Z² × Δd) / (B × f)

其中 Δd 是视差测量误差(通常 0.1-0.5 像素)。

你看,误差 ΔZ 和基线距 B 成反比。基线距越大,误差越小,精度越高。

2.3.2 实际案例分析

我曾经做过一个项目,要在 2 米距离内测量工件高度,要求精度 ±0.5mm。我选了焦距 16mm 的相机,像素尺寸 3.45μm。

算一下:如果基线距 100mm,视差误差按 0.2 像素算:

ΔZ = (2000² × 0.2 × 0.00345) / (100 × 16) = 1.725 mm

精度 1.7mm,远达不到要求。后来我把基线距加大到 300mm:

ΔZ = (2000² × 0.2 × 0.00345) / (300 × 16) = 0.575 mm

勉强达标。最后我用了 400mm 基线距,才稳稳做到 ±0.4mm。

避坑指南:我曾经犯过一个错误——为了追求精度,把基线距做得特别大。结果呢?两个相机视野重叠区域太小,很多区域根本看不到。记住:基线距越大,公共视野越小。这是个 trade-off。

2.3.3 基线距选择的三个约束

我总结了一个基线距选择的三角约束:

约束条件 影响 我的建议
精度要求 基线距越大,精度越高 先算最小基线距,再往上加 20% 余量
视野重叠 基线距越大,重叠越小 保证重叠区域 ≥ 目标视场的 1.5 倍
结构尺寸 受安装空间限制 实在不行就用更大焦距的镜头

说白了,选基线距就是在精度和视野之间找平衡。我个人习惯是先定精度要求,算出最小基线距,再检查视野重叠够不够。不够的话,要么换更大焦距的镜头,要么接受更低的精度。

核心要点回顾:

  • 基线距 B 是两相机光心距离,不是外壳距离
  • 深度 Z = (B × f) / d,视差越大深度越小
  • 精度 ΔZ ∝ 1/B,基线距越大精度越高
  • 但基线距过大会导致公共视野变小

嗯,基线距这个概念看似简单,但实际工程中坑不少。我见过太多人一上来就选个 200mm 基线距,结果发现测不了近处物体。所以我的建议是:先算后选,别凭感觉。

基线距核心概念关系图 基线距 B 两相机光心距离 视差 d d = x_left - x_right 深度 Z Z = (B×f)/d 测量精度 ΔZ ∝ 1/B B 越大 视差越大 B 越大 Z 越大 B 越大 精度越高 约束:视野重叠、结构尺寸、精度要求

这张图把基线距、视差、深度和精度的关系都串起来了。你多看几遍,理解了这个三角关系,后面章节的内容就顺了。

专注资料整理