3D 视觉与深度感知
一句话定义
3D 视觉把 2D 图像升级为空间几何(深度图、点云、6D 位姿),是机械臂"往哪儿伸、怎么抓"的信息来源。
为什么重要
- 操作本质是三维问题:抓取位姿、插入对准、避障都需要深度。
- 抓取检测(grasp detection)与 6D 位姿估计是"经典感知 → 学习式感知"过渡最成熟的两块,几乎所有操作流水线的第一站。
- NeRF/3DGS 等新表示正在改变场景重建与 Sim2Real 的做法(real2sim,kp-402)。
前置知识
kp-101;线性代数(刚体变换)。
核心概念
深度获取四大原理:
- 双目立体视觉:两相机视差 → 三角测量。被动、低成本,弱纹理失效。
- 结构光:投射已知图案,形变解深度(Kinect v1、RealSense D 系列部分模式)。室内精度好,怕环境光干扰。
- ToF(飞行时间):测光往返时间(Kinect v2、LiDAR)。速度快、量程大,多径反射有噪声。
- 单目学习式深度:网络从单张图猜深度(MiDaS、Depth Anything 系)。免费但只有相对深度,尺度需外部锚定。
三维表示:点云(原始、无序)、体素/占据栅格(规则但内存大)、SDF/TSDF(隐式表面)、Mesh、以及神经场表示(NeRF、3D Gaussian Splatting)。
两大任务族:
- 6D 位姿估计:已知物体模型,估计其 $\mathbf{R}, \mathbf{t}$。经典:Point-TD? (LineMOD 系);学习式:FoundationPose(2024,模型无关、支持 novel object)。
- 抓取位姿检测:不知道物体是什么,直接从场景生成可抓位姿。GraspNet-1Billion(2020,亿级标注基准)、Contact-GraspNet(2021)、AnyGrasp(2023,实时鲁棒抓取)。
原理与机制
点云网络:PointNet(2017)证明可以对无序点集做置换不变的逐点 MLP + 对称池化;PointNet++ 加分层邻域采样捕捉局部结构。现代做法常把点云投影到多视角深度图用 2D 网络处理,或体素化后用 3D 卷积/稀疏卷积。
从深度到动作的典型流水线:
RGB-D ─► 去噪/裁剪(工作空间过滤) ─► 位姿估计 或 直接抓取检测
─► 选择最优抓取(可达性/碰撞过滤,[kp-202]) ─► 运动规划执行
尺度与坐标变换:深度图 → 相机系点云 → 通过外参变换到机器人基座系(手眼标定,kp-101)。这条变换链的标定误差直接进入抓取误差。
公式与图示
深度相机像素 $\mathbf{u}=(u,v)$ 反投影到相机坐标系:
$$\mathbf{p}_{cam} = Z(u,v)\cdot \mathbf{K}^{-1} \begin{bmatrix} u \\ v \\ 1 \end{bmatrix}, \quad \mathbf{K} = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix}$$
点云变换到机器人系:$\mathbf{p}_{base} = \mathbf{R}_{he} \, \mathbf{p}_{cam} + \mathbf{t}_{he}$,其中 $\mathbf{R}_{he}, \mathbf{t}_{he}$ 来自手眼标定。
双目深度:$Z = \dfrac{f \cdot b}{d}$,$f$ 焦距、$b$ 基线、$d$ 视差——基线越长深度越准、设备越大。
直观类比
- 人类立体视觉:两眼视差就是生物双目相机;闭上一只眼接水杯会明显变难——深度知觉的重要性。
- 点云是"空间撒芝麻":一把芝麻撒出茶杯的形状;点云网络的任务是从芝麻里读出杯壁在哪。
实例与案例
- AnyGrasp 开源流水线:深度相机 → 点云 → 抓取网络 → 过滤不可行抓取 → MoveIt 执行,数小时内可搭建一个杂乱堆叠分拣 demo。
- 仓储无序抓取:吸盘 + 深度图选择最高可达点,是电商仓自动化的主力,展示"够用的 2.5D"有时比完整 6D 更实用。
- FoundationPose(2024):给一张物体 CAD 模型或几张照片,即可零样本估计 6D 位姿——位姿估计正在被基础模型化。
常见误区
- 误区一:深度相机精度均匀。结构光/ToF 的误差随距离平方增长,边缘与反光表面有大空洞;关键决策要在有效深度区内做。
- 误区二:抓取检测输出即终点。网络给出的抓取还要过运动学可达性、碰撞、夹爪宽度过滤(kp-202),过滤逻辑写不好,再准的检测也白搭。
- 误区三:点云必须点云网络处理。很多 SOTA 方法直接吃多视角深度图(2D 卷积),工程上更省事。
自测题
- 四种深度获取原理各举一个适用/失效场景。
- 推导双目深度公式,并解释为什么基线小的深度相机近距离精度反而好。
- 描述从深度图到机械臂执行一次抓取的完整数据流。
与其他知识点的关系
- kp-103 SLAM:把单帧 3D 视觉扩展到连续地图。
- kp-202 轨迹规划:抓取位姿到无碰运动的下游。
- kp-402 Sim2Real:real2sim 依赖高质量 3D 重建(NeRF/3DGS)。
延伸阅读
- Qi et al., PointNet: Deep Learning on Point Sets, CVPR 2017。
- Fang et al., AnyGrasp, T-RO 2023;Wen et al., FoundationPose, CVPR 2024。
- Depth Anything(2024)系列——单目深度基础模型。
本节引用来源
- Qi et al., PointNet, CVPR 2017
- FoundationPose, CVPR 2024