一、深度感知概述:从单目到立体的认知跃迁

大家好,我是你们这门课的主讲。在计算机视觉领域摸爬滚打了十几年,我越来越觉得——深度感知才是让机器真正「看懂」世界的那把钥匙。

你想想看,一张普通的RGB图片,说白了就是像素的颜色矩阵。但深度信息呢?它告诉相机:这个物体离我3米,那个墙角在5米外,前面有个坑,深度差20厘米。没有深度,自动驾驶的车怎么敢变道?机器人怎么敢抓杯子?

我个人习惯把深度感知比作「给眼睛装上尺子」。今天这一讲,我们就来聊聊这把尺子到底怎么用。

1.1 深度感知技术简介

深度感知,本质上就是测量场景中每个点到相机的距离。听起来简单,实现起来却各有门道。

目前主流的技术路线有这么几条:

技术方案 原理简述 典型代表 我踩过的坑
双目立体视觉 两个相机模拟人眼,通过视差计算深度 ZED、Intel RealSense 光照不足时匹配率暴跌,纹理稀疏区域直接「瞎」
结构光 投射已知图案,根据变形推算深度 Kinect v1、iPhone Face ID 室外强光下图案被淹没,基本没法用
ToF(飞行时间) 发射光脉冲,测量往返时间 Kinect v2、手机后置ToF 多路径反射导致边缘数据「糊」成一团
单目深度估计 仅用一张RGB图,靠深度学习「猜」深度 MiDaS、DPT 绝对尺度不准,但相对关系很惊艳

嗯,这里要注意——没有银弹。每种技术都有它的脾气。我在做仓储机器人项目时,一开始迷信双目,结果在白色货架区域直接翻车。后来换成ToF+单目融合,才勉强稳住。

1.2 应用场景:深度感知在干什么

深度感知不是实验室里的玩具。它已经在三个领域杀疯了:

自动驾驶:生死攸关的距离感

自动驾驶对深度信息的要求,说白了就一句话:别撞上。我曾经参与过一个L4级项目的路测,当时车辆在十字路口左转,对面来了一辆大货车。激光雷达点云里货车的边缘是模糊的,但双目深度图清晰地显示——距离从15米骤降到8米。系统立刻刹车,避免了事故。

  • 障碍物检测:判断前方是行人还是路牌,距离是关键
  • 可通行区域:路面和路沿的深度突变,就是边界
  • SLAM建图:没有深度,地图就是一张「皮」

AR/VR:欺骗你的眼睛

AR/VR的核心是什么?是让虚拟物体看起来「长」在真实世界里。我试过很多AR眼镜,最让我出戏的就是深度不对——虚拟杯子放在桌面上,你换个角度,它「飘」起来了。

  • 遮挡处理:手在虚拟物体前面,必须挡住它
  • 物理交互:虚拟球掉在真实桌面上,要弹起来
  • 空间锚定:虚拟物体固定在某个真实位置,不能乱跑

机器人:从「看见」到「抓取」

机器人抓取,是我个人觉得深度感知最「性感」的应用。为什么?因为深度图直接给出了抓取点的三维坐标。我记得有一次做分拣项目,传送带上的零件形状各异,RGB图像根本分不清正反面。但深度图一上,凹槽和凸起一目了然——抓取成功率从60%直接飙到95%。

  • 抓取规划:计算最佳抓取姿态
  • 避障导航:实时感知周围障碍物
  • 人机协作:确保机械臂不会伤到人

核心观点:深度感知不是「锦上添花」,而是「雪中送炭」。没有深度信息,计算机视觉就永远停留在「看图说话」的阶段。

1.3 课程目标与学习路径

这门课,我打算带你走完一条从理论到实战的完整路径。你不需要是数学天才,但需要一点OpenCV基础。

课程的核心目标有三个:

  1. 理解原理:搞清楚每种深度感知技术「为什么能行」
  2. 动手实现:用OpenCV和Python写出可运行的深度估计代码
  3. 解决实际问题:遇到光照差、纹理少、动态场景时,知道怎么「救场」

学习路径我建议这样走:

  • 前5章:打好基础,搞懂相机模型、标定、视差计算
  • 第6-15章:深入双目立体匹配和结构光,这是最经典的两条路
  • 第16-25章:玩转ToF和单目深度估计,尤其是深度学习部分
  • 第26-30章:融合实战,把多种技术组合起来解决真实场景问题

我的建议:每章后面的代码,一定要自己敲一遍。我曾经带过一个学生,看了十遍视频觉得都会了,一上手就报错——OpenCV的版本差异、相机驱动问题、数据格式不匹配,这些坑只有亲手踩过才算学会。

1.4 知识体系总览

下面这张图,是我花了一个下午画的。它概括了深度感知技术的完整知识体系。你可以把它当作这门课的「地图」——每次迷路了,就回来看看。

深度感知技术知识体系 输入:图像/点云 双目立体视觉 视差计算、匹配代价 结构光 编码图案、相位解调 ToF飞行时间 光脉冲、多路径干扰 单目深度估计 深度学习、尺度恢复 关键算法与处理流程 相机标定 → 图像校正 → 特征匹配 → 深度计算 → 滤波优化 → 点云生成 | 张正友标定法 | SGBM/BM匹配 | 中值滤波/双边滤波 | PCL点云处理 | 自动驾驶 障碍物检测、可通行区域 AR/VR 遮挡处理、空间锚定 机器人 抓取规划、避障导航 输出:深度图/点云/决策

注意:这张图里的每个模块,后面都会展开讲。但有一点我想提前说——不要试图一次性掌握所有技术。我见过太多人,一开始就想搞融合方案,结果基础没打牢,代码跑不通就放弃了。我的建议是:先精通一种(比如双目),再横向扩展。

好了,第一章就到这里。深度感知的世界很大,但每一步都值得。下一章,我们会从相机模型和标定开始——这是所有深度感知技术的「地基」。


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