[具身智能-1148]:三角测距原理
·

三角测距原理(通俗易懂版)
一句话:用两个观察点看同一个物体,形成一个三角形,通过三角形的几何关系算出物体有多远。 人眼的双目视觉、双目相机、部分激光雷达,用的都是这个原理。
一、图中各部分含义
表格
| 标注 | 含义 | 通俗解释 |
|---|---|---|
| 左目 / 右目 | 两个摄像头(或两只眼睛) | 就像你的左眼和右眼,从两个不同位置看同一个物体 |
| 基线 B | 左右两个摄像头之间的距离 | 两只眼睛之间的距离,基线越远,测远距离越远 |
| 目标物体 | 你要测距的东西 | 图中的小立方体 |
| 深度 Z | 物体到摄像头基线的垂直距离 | 就是 "物体离你有多远" |
| θ₁ / θ₂ | 左右视线与基线的夹角 | 左眼和右眼分别 "歪头" 多少度才能看到物体 |
| f | 摄像头焦距 | 镜头的光学参数,固定值 |
| d | 视差(左右图像中物体的像素位置差) | 同一个物体,在左图和右图中的位置偏差 |
二、核心公式:Z = f × B /d
通俗推导
不用记复杂的三角函数,记住这个直觉:
plaintext
物体越近 → 左右眼看它的角度差越大 → 视差d越大 → 深度Z越小
物体越远 → 左右眼看它的角度差越小 → 视差d越小 → 深度Z越大
公式 Z = f × B / d 就是这个直觉的数学表达:
- f(焦距) 和 B(基线) 是固定的已知量;
- d(视差) 是算法从左右图像中算出来的;
- 三个量已知,Z(深度) 就唯一确定了。
为什么是除法?因为视差 d 在分母上 ——d 越大,Z 越小(越近);d 越小,Z 越大(越远)。这和你的直觉完全一致。
三、一个直观的实验
你现在就可以做:
- 伸出一根手指,放在眼前 10cm 处;
- 交替闭上左眼和右眼,你会看到手指 "跳动" 很明显 ——视差大;
- 把手指移到 一臂远(约 60cm),再交替闭眼 —— 手指跳动变小了 ——视差小;
- 看窗外远处的楼,交替闭眼 —— 楼几乎不跳动 ——视差趋近于 0,深度无法精确计算。
这就是三角测距的全部秘密:两个视点看同一个物体的位置偏差,反推距离。
四、三角测距的三大应用场景
1. 双目相机(工程最常用)
- 两个摄像头固定间距(基线 B),同时拍摄;
- 算法做 "立体匹配"—— 找到左图中的每个点,在右图中对应的位置;
- 算出视差 d → 代入公式 → 得到每个像素的深度 → 生成深度图;
- 代表:ZED 相机、Intel Realsense D400 系列、自动驾驶双目摄像头。
2. 人眼双目视觉(生物版)
- 你的两只眼睛就是两个 "摄像头",基线约 6.5cm;
- 大脑自动做立体匹配,感知深度;
- 这就是为什么闭上一只眼,穿针、接球会变难 —— 失去了三角测距的能力。
3. 三角法激光雷达(低成本方案)
- 一个激光器发射激光斑,一个摄像头在旁边接收;
- 激光器和摄像头之间有固定基线 B;
- 激光斑打在物体上,摄像头看到光斑的位置随距离变化;
- 用三角关系算出距离;
- 代表:早期扫地机器人激光雷达、低成本红外测距传感器。
注意:ToF 激光雷达(测飞行时间)和三角法激光雷达是两种完全不同的技术路线,你之前深入了解的 TDC+APD 方案是 ToF,不是三角法。
五、三角测距的局限性
表格
| 局限 | 原因 |
|---|---|
| 远距离精度差 | 物体越远,视差 d 越小,d 的微小误差导致 Z 的巨大误差(Z 在分子,d 在分母,d 很小时 Z 对 d 极敏感) |
| 无纹理区域失效 | 白墙、天空,左右图找不到对应点,算不出视差 |
| 重复纹理误匹配 | 栅栏、条纹图案,左右匹配容易对错 |
| 基线与盲区矛盾 | 基线越远,远距离越好,但近处物体可能进入两个摄像头的 "盲区"(看不到) |
| 计算量大 | 实时立体匹配需要 GPU 或专用芯片 |
| 依赖光照 | 和单目一样,暗处 / 逆光图像质量差,匹配失败 |
经验法则:双目相机的有效测距距离 ≈ 基线长度的 20~40 倍。基线 5cm → 有效距离约 1~2m;基线 20cm → 约 4~8m。
六、三角测距 vs ToF 飞行时间测距
表格
| 对比项 | 三角测距 | ToF 飞行时间 |
|---|---|---|
| 原理 | 双视点几何三角 | 主动发光测时间 |
| 是否主动发光 | 否(被动) | 是(主动发射激光) |
| 远距离精度 | 差(>20m 基本失效) | 好(200m+) |
| 光照依赖 | 强 | 无 |
| 纹理依赖 | 强(无纹理失效) | 无 |
| 成本 | 低(两个摄像头) | 高(激光器 + TDC+APD) |
| 代表 | 双目相机、人眼 | 激光雷达、深度相机 |
通俗总结:三角测距是 "用两只眼睛看,靠几何关系算距离";ToF 是 "用尺子量,靠光走了多久算距离"。 一个被动,一个主动;一个近距好,一个远距强。
七、一句话总结
三角测距 = 两个观察点 + 一个物体,构成三角形,通过基线长度和视线角度(或视差),用几何关系算出物体距离。本质是 "用角度换距离"—— 角度差越大,物体越近;角度差越小,物体越远。人眼、双目相机、低成本激光雷达都在用这个原理,但它天生受限于距离和纹理,远距离和无纹理场景会失效。
更多推荐
所有评论(0)