一、双目视觉概述
1.1 什么是双目视觉
双目视觉,说白了就是给机器装上两只「眼睛」。
人用两只眼睛看世界,大脑通过左右眼看到的微小差异——我们称之为「视差」——来判断物体的远近。双目视觉模仿的就是这个原理。两个摄像头同时拍摄同一场景,通过计算两幅图像中对应点的位置差异,就能推算出物体的三维坐标。
我刚开始接触这个领域时,总觉得这玩意儿很玄乎。后来自己搭了一套双目系统,看到点云图在屏幕上一点点浮现出来,才真正理解——这不就是给计算机装上了深度感知能力吗?
核心公式(视差与深度关系):
深度 Z = (焦距 f × 基线距离 B) / 视差 d
其中:
- f:相机焦距(像素单位)
- B:左右相机光心之间的距离
- d:同一物点在左右图像中的像素差
嗯,这里要注意:基线距离越大,测距精度越高,但视野重叠区域会变小。这是个典型的工程权衡问题。
1.2 双目视觉的应用领域
双目视觉的应用场景,我归纳为三大块:
3D重建
把二维图像还原成三维模型。我在做文物数字化项目时用过这个技术。两个相机对着雕塑转一圈,回来就能生成高精度的三维网格模型。说白了,就是用像素换点云。
- 工业检测:零件表面缺陷的三维检测
- 医疗影像:内窥镜下的三维重建
- AR/VR:真实场景的数字化映射
测距
这是双目视觉最直接的应用。为什么不用激光雷达?成本啊!一套工业级双目系统,几百块就能搞定,激光雷达动辄上万。
我曾经在AGV(自动导引车)项目里用双目做避障。说实话,精度不如激光雷达,但胜在便宜、功耗低、还能获取纹理信息。你想想看,激光雷达只能告诉你「前面有障碍物」,双目还能告诉你「那是个纸箱还是个人」。
| 方案 | 精度 | 成本 | 适用场景 |
|---|---|---|---|
| 双目视觉 | 厘米级 | 低 | 室内、中短距离 |
| 激光雷达 | 毫米级 | 高 | 室外、长距离 |
| 结构光 | 亚毫米级 | 中 | 近距离、静态场景 |
SLAM(同步定位与地图构建)
机器人一边移动,一边用双目相机给自己定位,同时构建周围环境的地图。这个领域我踩过不少坑。
我记得有一次,机器人在纹理稀疏的白色走廊里跑,双目匹配直接崩了——左右眼看到的全是白墙,根本找不到特征点。后来加了IMU做融合,才算稳住。
个人经验:双目SLAM在纹理丰富的环境中表现极佳,但在弱纹理、重复纹理场景下,一定要配合其他传感器(IMU、轮式里程计)做多传感器融合。
1.3 课程目标与学习路径
这门课的目标很明确:让你从零搭建一套可用的双目视觉同步触发系统。
不是纸上谈兵,是真正能跑起来、能出点云、能测距的那种。
学习路径我建议这样走:
- 硬件基础:相机选型、镜头匹配、同步触发电路设计
- 标定技术:单目标定、双目标定、畸变校正
- 立体匹配:SGBM、BM算法、视差优化
- 深度计算:三角测量、点云生成
- 系统集成:FPGA/ARM实现、实时性优化
我个人习惯是:先跑通一个最小系统,再逐步优化。别一上来就想搞高精度、高帧率,先让两个相机能同步拍到同一帧再说。
避坑指南:我曾经因为忽略同步触发,导致左右图像存在毫秒级的时间差。移动物体拍出来全是重影,视差图一塌糊涂。同步触发,是双目系统的命门。
1.4 知识体系总览
下面这张图,是我梳理的双目视觉知识体系。你可以把它当作整个课程的地图:
这张图把整个课程串起来了。从硬件到算法,从同步到集成,最终落到实际应用。你跟着这个路径走,不会迷路。
好了,第一章就到这里。记住一句话:双目视觉的核心,不是算法有多炫,而是系统能不能稳定、同步地工作。后面的章节,我会带你一步步把每个环节吃透。
公众号:蓝海资料掘金营,微信deep3321