一、双目视觉概述
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 知识体系总览
下面这张图是我自己画的,把双目视觉的核心流程串起来了。你看着它,心里就有谱了。
这张图把整个流程分成了6步。从图像采集开始,到标定、校正、匹配、计算深度,最后输出结果。每一步之间都有依赖关系——你跳不过去,也别想着偷懒。
我当年做第一个双目项目时,就是按这个顺序一步步来的。标定那步卡了我两周,后来发现是棋盘格打印尺寸不对。嗯,这种细节后面会专门讲。
一个小建议:学这门课的时候,别急着跳步骤。先把图像采集和标定搞扎实了,后面的匹配和深度计算自然就顺了。我见过太多人一上来就调匹配算法,结果标定没做好,怎么调都不对。
好了,第一章就聊到这儿。内容不多,但都是干货。下一章我们会动手搭建硬件环境,把两个相机真正同步起来。
公众号:蓝海资料掘金营,微信deep3321