一、双目视觉概述

1.1 什么是双目视觉

双目视觉,说白了就是给机器装上两只眼睛。

人用两只眼睛看世界,能判断距离、感知深度。双目相机模仿的就是这个原理。两个摄像头从不同角度拍摄同一场景,通过计算左右图像的差异——我们叫它「视差」——就能算出物体的三维位置。

我刚开始接触这个领域时,总觉得这玩意儿很玄乎。后来亲手搭了一套系统,才发现核心逻辑其实挺朴素的:

  • 左眼看到物体在某个像素位置
  • 右眼看到同一个物体在另一个像素位置
  • 这两个位置的差值,就是视差
  • 视差越大,物体越近;视差越小,物体越远

嗯,就这么简单。但真正落地的时候,坑可不少。后面我会慢慢聊。

1.2 核心原理:三角测量

双目视觉的数学基础是三角测量。你想想看,两个相机的位置固定,光心之间的距离叫「基线」。物体、左相机光心、右相机光心,这三者构成了一个三角形。

已知基线的长度,已知左右相机光轴的角度,就能算出物体的深度。公式长这样:

深度 Z = (焦距 f × 基线 B) / 视差 d

这个公式我闭着眼睛都能写出来。为什么?因为我在项目里调参调了无数遍。每次视差算不准,就得回头检查这个公式里的三个参数——焦距对不对?基线量准了没?视差匹配有没有跑偏?

关键参数说明:

参数 符号 说明
基线 B 两个相机光心之间的距离,单位毫米
焦距 f 相机镜头的焦距,单位像素
视差 d 左右图像中对应点的像素偏移量
深度 Z 物体到相机平面的距离,单位毫米

1.3 应用场景

双目视觉能干的事太多了。我挑几个最典型的说说:

3D重建

给物体拍两张照片,就能生成它的三维点云。我在做文物数字化项目时用过这个方案。一个宋代瓷瓶,用双目相机扫一圈,点云数据就出来了。精度嘛,毫米级,够用。

测距

这是最基础的应用。自动驾驶里的障碍物检测、机器人避障、无人机定高,都离不开双目测距。我有个朋友做扫地机器人,用的就是双目方案——比单目准,比激光雷达便宜。

手势识别

通过深度信息分割出手部区域,再识别手势。我在智能座舱项目里做过这个,驾驶员挥挥手就能切歌,体验还不错。

工业检测

比如检测电路板上元器件的焊接高度。单目相机看不出来,双目一上,高度差一目了然。

我的经验:选应用场景时,先问自己三个问题——精度要求多少?工作距离多远?环境光照稳不稳定?这三个问题决定了你的硬件选型和算法复杂度。

1.4 课程目标

这门课的目标很明确:让你从零开始,亲手搭一套能用的双目视觉系统。

具体来说,学完这门课你能做到:

  • 理解双目视觉的完整流程——从标定到匹配到深度计算
  • 掌握相机同步触发的硬件方案——别让左右眼各拍各的
  • 写出能跑通的Python代码——OpenCV + 双目相机,实时采集和处理
  • 避开我踩过的那些坑——硬件接线、参数调优、光照处理

我个人习惯是「先跑通,再优化」。所以课程里会有大量可复现的代码示例,你照着敲一遍就能看到效果。

1.5 硬件选型建议

选硬件这事,我吃过不少亏。第一次做双目项目,图便宜买了两个不同批次的USB摄像头,结果帧率对不上,左右图像时间戳差了几十毫秒。后来才知道,双目相机必须同步触发。

给你几个选型建议:

需求等级 推荐方案 预算 说明
入门 两个USB摄像头 + 软件触发 200-500元 适合学习,但同步精度差
进阶 双目模组(如ZED、Intel RealSense) 2000-5000元 硬件同步,开箱即用
工业 工业相机 + 外部触发信号 5000-20000元 精度最高,适合产线

注意:千万不要用两个独立的USB摄像头做高精度测距。我曾经试过,左右图像的时间差会导致测距误差放大好几倍。如果你预算有限,至少买个双目模组,它内部做了硬件同步。

我个人建议初学者从双目模组入手。比如ZED Mini或者Intel D435,自带SDK,Python接口也完善。等你把流程跑通了,再考虑自己搭工业方案。

1.6 知识体系总览

下面这张图是我自己画的,把双目视觉的核心流程串起来了。你看着它,心里就有谱了。

双目视觉核心流程 1. 图像采集 同步触发 + 双路采集 2. 相机标定 内参 + 外参 + 畸变校正 3. 立体校正 极线对齐 + 图像重映射 4. 立体匹配 视差计算 5. 深度计算 Z = f × B / d 6. 应用输出 3D点云 / 深度图 / 测距结果 反馈优化 每个步骤都有对应的Python实现,课程中会逐一讲解

这张图把整个流程分成了6步。从图像采集开始,到标定、校正、匹配、计算深度,最后输出结果。每一步之间都有依赖关系——你跳不过去,也别想着偷懒。

我当年做第一个双目项目时,就是按这个顺序一步步来的。标定那步卡了我两周,后来发现是棋盘格打印尺寸不对。嗯,这种细节后面会专门讲。

一个小建议:学这门课的时候,别急着跳步骤。先把图像采集和标定搞扎实了,后面的匹配和深度计算自然就顺了。我见过太多人一上来就调匹配算法,结果标定没做好,怎么调都不对。


好了,第一章就聊到这儿。内容不多,但都是干货。下一章我们会动手搭建硬件环境,把两个相机真正同步起来。

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