机器人不能只看到「像素」,它必须看到「物体在哪里、是什么形状、能不能抓」。这一节讲清视觉从 2D 像素到 3D 几何表征的演进。
普通相机拍出来的是一张二维像素网格,没有任何深度信息。但对机器人而言,抓一个杯子需要知道:
这些都无法从单张 2D 图像直接得到。因此机器人视觉必须从 2D 走向 3D。3D 视觉的表征经历了几个阶段:
深度图 → 点云 → 体素/TSDF → BEV → NeRF/3DGS(可微表征) 2.5D 3D 稀疏 3D 稠密 2D 投影 3D 可微
深度图(Depth Map):每个像素存储的不是颜色,而是相机到该点的距离。RGB-D 相机直接输出深度图,是机器人最常用的 3D 入口。但深度图本质是 2.5D——它只表达相机视角可见的表面,背面和遮挡区域没有数据。
点云(Point Cloud):把深度图的每个像素反投影到相机坐标系,得到一组三维点 (x, y, z),可能带颜色 (r, g, b)。点云是真正的 3D 表征,可以用多视角融合拼成完整物体表面。
从深度图到点云的转换公式(针孔相机模型):
x = (u - cx) * depth / fx y = (v - cy) * depth / fy z = depth
其中 (u, v) 是像素坐标,(cx, cy) 是主点,(fx, fy) 是焦距,depth 是该像素的深度值。这组参数叫相机内参(Camera Intrinsics),是机器人视觉最基础的概念。
⚠️ 常见坑:点云的密度随距离平方衰减。1 米处每平方米有 10000 个点,3 米处就只剩 1000 个点。这就是为什么远场物体识别极难——不是因为算法不行,而是物理上点就稀疏。
点云是不规则的、稀疏的,难以做卷积。两种主流稠密表征:
| 表征 | 含义 | 优势 | 用途 |
|---|---|---|---|
| 体素(Voxel) | 把空间切成 3D 网格,每个格子存占有/特征 | 规则网格,可用 3D 卷积 | 室内场景理解、抓取规划 |
| TSDF | Truncated Signed Distance Function,每个格子存到最近表面的截断距离 | 平滑融合多帧,去噪 | 室内稠密建图(第 3 章 SLAM) |
| Octomap | 八叉树压缩的占有网格 | 内存友好、可变分辨率 | 大场景导航避障 |
体素表征的代价是内存立方级增长:分辨率从 5cm 提到 1cm,内存膨胀 125 倍。这是为什么大规模场景更倾向稀疏表征(点云、八叉树)。
BEV(Bird's Eye View,鸟瞰图) 是把 3D 场景投影到地面平面的 2D 网格,每个格子存该位置的占有、语义、速度等。BEV 在自动驾驶中极为流行,原因有二:
BEV 转换通常用 LSS(Lift-Splat-Shoot) 范式:先把每路 2D 图像「抬升」到 3D(预测每个像素的深度分布),再「拍扁」到 BEV 网格。这一思路后来被 BEVFormer、PETR 等改进为带注意力的版本。
💡 BEV 的局限:BEV 假设场景是「地面主导」(车、人、桌都在地面上)。对机械臂操作(杯子在桌上、苹果悬挂空中)这种垂直维度重要的场景,BEV 反而不直观。所以机器人操作领域更倾向直接用 3D 点云或体素。
最近三年,3D 视觉最热的两件事是 NeRF(Neural Radiance Field,神经辐射场)和 3D Gaussian Splatting(3DGS)。它们都是「可微的 3D 表征」——既能渲染图像,又能反向传播梯度,让机器人可以端到端地从图像学几何。
NeRF 用一个神经网络隐式表达一个 3D 场景:输入一个 3D 点坐标 (x, y, z) 和观察方向 (θ, φ),网络输出该点的颜色 (r, g, b) 和体密度 σ。然后通过体渲染(Volume Rendering)从任意视角合成图像:
C(ray) = ∫ T(t) · σ(t) · c(t) dt T(t) = exp(-∫ σ(s) ds) # 累积透射率
训练时用真实多视角图像监督渲染损失,网络学会了就「记住」了整个场景。NeRF 的革命性在于:不需要显式的对应点匹配或深度监督,仅从图像就能重建出可渲染的 3D 场景。
NeRF 的痛点是慢——渲染一帧要数千次网络查询。3DGS 把隐式神经场换成了显式的「百万个 3D 高斯椭球」,每个高斯有位置、协方差、颜色、不透明度。渲染用「splatting」(投影涂抹)一次完成,速度比 NeRF 快 100 倍,质量更高。
| 应用 | NeRF/3DGS 的价值 |
|---|---|
| 场景重建 | 用很少几张图重建可重渲染场景,用于仿真数据增广 |
| 新视角合成 | 仿真中生成训练 VLA 需要的多视角数据 |
| SLAM(第 3 章) | 用 NeRF/3DGS 当地图表征,可微、可重定位 |
| 可微渲染优化 | 从图像直接优化物体位姿、形状(分析-合成范式) |
| 资产管线 | 把扫描的真实环境变成仿真资产,缩小 Sim-to-Real gap |
⚠️ 当前局限:NeRF/3DGS 重建的是静态场景,对动态物体(人、移动物体)支持有限。机器人面对的真实环境大多是动态的,这是当前研究热点(Dynamic NeRF、4D Gaussian Splatting)。
视觉感知的另一条线是语义——不仅要知道几何,还要知道「这是什么」。语义感知的演进:
| 阶段 | 任务 | 输出 | 代表模型 |
|---|---|---|---|
| 分类 | 这张图里有什么 | 类别标签 | ResNet、ViT |
| 检测 | 物体在哪里 | 边界框 + 类别 | YOLO、Faster-RCNN、DETR |
| 分割 | 每个像素属于什么 | 像素级掩膜 | Mask-RCNN、SAM |
| 6D 姿态估计 | 物体三维位姿 | 旋转 + 平移 | PoseCNN、FoundationPose |
| 开放词汇 | 用户文本 → 物体定位 | 任意类别 | CLIP、Grounding-DINO、SAM |
机器人操作最关心后两类:6D 姿态估计给出抓取需要的物体位姿,开放词汇检测让机器人能响应「把那个红色的杯子给我」这类指令(详见第 4.2 节 VLM)。
Meta 在 2023 年发布的 SAM(Segment Anything Model) 是机器人视觉的「GPT 时刻」——一个能在任意图像上零样本分割任意物体的通用模型。它的意义在于:
后续的 SAM 2 进一步支持视频分割与跟踪,让机器人可以持续锁定运动中的物体。这些视觉基础模型(SAM、Grounding-DINO、FoundationPose)正在成为机器人感知的「基础设施」,让上层策略(VLA)可以专注动作学习而非视觉理解(第 5 章)。
总结起来,机器人视觉感知有三条技术路线:
| 流派 | 核心思想 | 优势 | 劣势 |
|---|---|---|---|
| 几何先验派 | 用多视图几何、SLAM 显式建图 | 可解释、精确 | 需特征匹配,弱纹理失效 |
| 端到端学习派 | 从像素直接到动作/语义 | 通用、易扩展 | 数据饥渴、可解释性差 |
| 基础模型派 | 用 SAM/CLIP/FoundationPose 等预训练模型做感知底座 | 零样本泛化 | 计算重、延迟高 |
当前趋势是**「基础模型 + 轻量微调」的混合路线**:用 SAM/CLIP 等通用大模型做感知底座,机器人侧只学习任务相关的轻量头。这也是第 5 章 VLA 模型的设计哲学。
下一节《2.3 触觉与力感知》将讨论机器人怎么「摸到」世界——这是从盲抓走向巧操作的关键。