第四章:基线距与视场角(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 视场重叠区域计算
重叠区域不是随便算的。我习惯用几何关系来推导。你看这张图就明白了:
重叠区域的计算其实不复杂。我一般用这个公式:
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 实际选型建议
说了这么多,到底怎么选?我总结了几条经验:
- 先定工作距离范围——最近和最远的工作距离是多少?
- 再算最小重叠需求——被测物体的最大尺寸是多少?
- 反推基线距上限——用公式算一下,保证最近处也能覆盖。
- 检查深度精度——如果精度不够,考虑换更长焦距的镜头,而不是一味拉大基线距。
- 留余量——我习惯把基线距控制在理论上限的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