1. 双目视觉基础:从人眼立体视觉到计算机模拟

大家好,我是你们这门课的主讲。今天咱们聊聊双目测距最根本的东西——人眼是怎么看世界的,计算机又是怎么模仿的。

说实话,我第一次接触双目视觉时,觉得这东西特别玄乎。两个摄像头一摆,就能算出距离?后来自己动手搭了一套,才发现核心原理其实特别朴素——就是咱们天天都在用的「三角测量法」。

1.1 人眼立体视觉:大自然给的灵感

先说说我们自己的眼睛。你想想看,为什么闭上一只眼,抓东西就不太准了?

因为人有两只眼睛,它们之间有大约6-7厘米的距离,这个距离叫「基线」。两只眼睛从不同角度观察同一个物体,看到的图像是有差异的——这就是「视差」。大脑把这两幅略有差异的图像融合起来,就能判断出物体的远近。

我做过一个有趣的实验:让受试者单眼看一个杯子,然后伸手去拿。结果大部分人第一次都抓空了,偏差大概在5-10厘米。这就是失去立体视觉后的真实表现。

核心概念:视差是立体视觉的基石。两只眼睛看到的图像差异越大,物体离你越近;差异越小,物体越远。

1.2 计算机怎么模拟人眼?

计算机双目视觉,说白了就是给机器装上两只「电子眼」——两个摄像头。它们模仿人眼的位置关系,拍摄同一场景的两张图片。

但这里有个坑:人眼可以自动调节焦距、自动对准,摄像头可不会。所以我们需要做很多预处理工作。

我曾经在一个项目中,直接把两个工业相机固定在铝型材上就开始测距。结果发现测出来的距离忽远忽近,误差大到离谱。后来才意识到——两个相机必须严格平行,光轴要共面,否则三角测量的前提就不成立了。

个人经验:搭建双目系统时,两个摄像头的安装精度直接影响测距精度。我建议用高精度机械夹具固定,误差控制在0.1毫米以内。

1.3 三角测量法:核心原理

好了,咱们进入正题。双目测距的核心就是三角测量法。原理其实很简单:

假设左眼看到物体在位置 P_left,右眼看到它在位置 P_right。这两个位置在图像上的差异就是视差 d。然后利用相似三角形,就能算出距离 Z

公式长这样:

Z = (f * B) / d

其中:

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

你可能会问:为什么是除法?其实很好理解——视差越大,距离越近。反过来,物体越远,视差越小。当物体无限远时,视差趋近于0。

注意:这个公式成立的前提是:两个相机完全平行,且光轴共面。实际工程中几乎不可能做到完美,所以还需要做立体校正。

1.4 知识体系总览

为了让你对整个章节有个整体认识,我画了一张图。这张图展示了双目测距从原理到实现的完整链路:

双目测距知识体系 人眼立体视觉 基线 + 视差 → 深度感知 计算机双目系统 双摄像头 + 图像采集 三角测量法 Z = f * B / d 关键参数 基线B / 焦距f / 视差d 核心步骤 立体校正 → 立体匹配 → 三角计算 工程实现要点 相机标定 / 畸变校正 / 精度优化 常见应用场景 机器人导航 / 三维重建 / 自动驾驶

1.5 一个简单的例子帮你理解

假设你站在一条笔直的公路上,左右各有一棵树。你闭上一只眼,用另一只眼看——两棵树好像重叠了。但睁开双眼再看,它们分开了。这个「分开的程度」就是视差。

在计算机里,我们做的事情一模一样:

  1. 左摄像头拍一张图,右摄像头拍一张图
  2. 找到左图中某个点(比如树尖)在右图中的对应位置
  3. 计算两个位置的像素差——这就是视差
  4. 代入公式算出距离

听起来简单吧?但实际做起来,第二步「找到对应位置」是最难的。我当年做第一个双目项目时,花了整整两周时间调立体匹配算法,结果还是匹配错了。后来才发现是相机标定没做好,图像畸变导致匹配点偏移了十几个像素。

避坑指南:我曾经因为相机标定板打印不平整,导致标定结果偏差很大。后来改用玻璃基板的标定板,精度直接提升了一个数量级。标定这一步,千万别省。

1.6 精度影响因素

最后聊聊精度。很多同学问我:双目测距到底能精确到什么程度?

这取决于三个因素:

因素 影响方式 我的建议
基线长度 B 基线越长,远距离精度越高 根据测距范围选择,一般10-30cm
相机分辨率 分辨率越高,视差计算越精细 至少1280×720,推荐1920×1080
标定精度 标定误差会直接传递到测距结果 重投影误差控制在0.1像素以内

说白了,精度是系统工程。不是某一个环节做得好就行,而是每个环节都不能掉链子。我见过有人花大价钱买了高分辨率相机,结果随便用手机拍了几张标定板图片就完事了——那精度肯定上不去。

嗯,这一章的内容就到这里。核心就是记住:双目测距的本质是三角测量,而三角测量的前提是精确的相机标定和立体匹配。后面的章节,我们会一步步把这些环节拆开来讲。


专注资料整理