第四章:基线距与视场角(FOV)的权衡

做双目视觉这么多年,我经常被问到同一个问题:基线距到底选多大合适?

说实话,这个问题没有标准答案。但有一条核心原则——基线距和视场角,就像跷跷板的两头。你压下去一边,另一边就翘起来。今天我们就来聊聊这个跷跷板怎么玩。

4.1 基线距对水平视场角的影响

先看一个简单的事实:两个相机并排放置,它们的视场会有重叠。基线距越大,重叠区域就越小。说白了,你把两个相机分得越开,它们各自看到的画面就越「各看各的」。

水平视场角(HFOV)的计算公式是这样的:

θ_overlap = 2 * arctan( (d/2) / f ) - arctan( B / (2 * Z_min) )

其中:

  • θ_overlap:重叠视场角
  • d:传感器宽度
  • f:焦距
  • B:基线距
  • Z_min:最小工作距离

嗯,公式看着有点吓人。我换个说法:

假设你用两个50mm焦距的相机,传感器是常见的1/1.8英寸。基线距从50mm拉到200mm,重叠视场角会从约45°掉到约30°。我在项目中遇到过这种情况——客户要求大基线距提高深度精度,结果发现近处物体根本拍不全。

核心结论:基线距每增加一倍,重叠视场角大约减少15°-20°。具体数值取决于焦距和传感器尺寸。

4.2 视场重叠区域计算

重叠区域不是随便算的。我习惯用几何关系来推导。你看这张图就明白了:

双目视觉视场重叠示意图 基线距 B 重叠区域 Z_min 左视场 右视场 重叠区域

重叠区域的计算其实不复杂。我一般用这个公式:

W_overlap = 2 * Z * tan(θ/2) - B

其中:

  • W_overlap:在距离Z处的重叠宽度
  • θ:单个相机的水平视场角
  • Z:目标距离
  • B:基线距

举个例子:假设单个相机HFOV是60°,基线距100mm,目标距离500mm。那么:

W_overlap = 2 * 500 * tan(30°) - 100
          = 2 * 500 * 0.577 - 100
          = 577 - 100
          = 477 mm

也就是说,在500mm处,重叠宽度还有477mm。但如果基线距拉到200mm:

W_overlap = 577 - 200 = 377 mm

少了整整100mm。你想想看,如果被测物体宽度是400mm,那用200mm基线距就拍不全了。

我的经验:设计时先确定最小工作距离和物体最大尺寸,反推需要的重叠宽度,再算基线距上限。这样不容易翻车。

4.3 大基线距与小基线距的优缺点

聊完了计算,咱们来点实际的。大基线距和小基线距,各有各的脾气。

对比项 大基线距 小基线距
深度精度 高(误差小) 低(误差大)
视场重叠 小(近处容易丢失) 大(近处也能覆盖)
匹配难度 大(视差范围宽) 小(视差范围窄)
结构尺寸 大(不好安装) 小(紧凑)
适用场景 远距离、高精度测量 近距离、宽视场覆盖

大基线距的好处很明显——深度精度高。我记得有个项目做汽车零部件检测,要求精度0.1mm。当时我选了150mm基线距,配合12mm镜头,在1米距离上深度误差只有0.08mm。客户很满意。

但代价也大。首先是视场重叠小,近处根本没法用。我曾经试过把基线距拉到200mm,结果在300mm距离处,重叠区域只有不到200mm宽。一个巴掌大的零件都拍不全。

小基线距呢?正好相反。深度精度差点,但视场覆盖好。我做过一个抓取项目,机械臂要在200-500mm范围内工作。选了50mm基线距,虽然深度误差有0.5mm,但整个工作空间都能覆盖到。对于抓取来说,0.5mm精度完全够用。

避坑指南:我曾经犯过一个错误——为了追求深度精度,选了超大基线距。结果发现近处物体匹配失败率高达30%。后来不得不加装第三个相机做辅助。嗯,从那以后我学乖了:基线距的选择,一定要先算重叠区域。

4.4 实际选型建议

说了这么多,到底怎么选?我总结了几条经验:

  1. 先定工作距离范围——最近和最远的工作距离是多少?
  2. 再算最小重叠需求——被测物体的最大尺寸是多少?
  3. 反推基线距上限——用公式算一下,保证最近处也能覆盖。
  4. 检查深度精度——如果精度不够,考虑换更长焦距的镜头,而不是一味拉大基线距。
  5. 留余量——我习惯把基线距控制在理论上限的80%。这样即使安装有误差,也不会出问题。

举个例子:你要检测200-800mm范围内的物体,最大物体宽度300mm。单个相机HFOV是50°。那么:

在200mm处:W_overlap = 2 * 200 * tan(25°) - B = 186.5 - B
要求 W_overlap ≥ 300mm,所以 B ≤ -113.5mm?

等等,这不对。说明单个相机HFOV太小,或者工作距离太近。这时候要么换广角镜头,要么接受小基线距。我一般会建议客户换镜头,因为小基线距的深度精度实在不够看。

记住:基线距不是越大越好,也不是越小越好。它是你整个系统设计中的一个变量,要和焦距、传感器、工作距离一起考虑。说白了,这是一个多变量优化问题。

好了,关于基线距和视场角的权衡,今天就聊到这里。下一章我们会深入聊聊深度精度和基线距的定量关系——那才是真正决定你系统性能的核心。


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