2.2 视觉感知:从 2D 到 3D 几何与语义


2.2 视觉感知:从 2D 到 3D 几何与语义

机器人不能只看到「像素」,它必须看到「物体在哪里、是什么形状、能不能抓」。这一节讲清视觉从 2D 像素到 3D 几何表征的演进。

2.2.1 为什么 2D 视觉不够用

普通相机拍出来的是一张二维像素网格,没有任何深度信息。但对机器人而言,抓一个杯子需要知道:

  • 杯子在世界坐标系的三维位置(不是像素坐标)
  • 杯子的形状与朝向(决定抓取姿态)
  • 杯子与桌子、其他物体的空间关系(决定碰撞规避)

这些都无法从单张 2D 图像直接得到。因此机器人视觉必须从 2D 走向 3D。3D 视觉的表征经历了几个阶段:

深度图 → 点云 → 体素/TSDF → BEV → NeRF/3DGS(可微表征) 2.5D 3D 稀疏 3D 稠密 2D 投影 3D 可微

2.2.2 深度图与点云

深度图(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 个点。这就是为什么远场物体识别极难——不是因为算法不行,而是物理上点就稀疏。

2.2.3 体素与 TSDF:稠密的 3D 地图

点云是不规则的、稀疏的,难以做卷积。两种主流稠密表征:

表征 含义 优势 用途
体素(Voxel) 把空间切成 3D 网格,每个格子存占有/特征 规则网格,可用 3D 卷积 室内场景理解、抓取规划
TSDF Truncated Signed Distance Function,每个格子存到最近表面的截断距离 平滑融合多帧,去噪 室内稠密建图(第 3 章 SLAM)
Octomap 八叉树压缩的占有网格 内存友好、可变分辨率 大场景导航避障

体素表征的代价是内存立方级增长:分辨率从 5cm 提到 1cm,内存膨胀 125 倍。这是为什么大规模场景更倾向稀疏表征(点云、八叉树)。

2.2.4 BEV:鸟瞰图投影

BEV(Bird's Eye View,鸟瞰图) 是把 3D 场景投影到地面平面的 2D 网格,每个格子存该位置的占有、语义、速度等。BEV 在自动驾驶中极为流行,原因有二:

  • 自然适配运动规划:车辆在地面运动,BEV 直接对应「能往哪个方向走」。
  • 多视角相机融合:6 路相机各自有透视畸变,但都可以转换到统一的 BEV,形成环视拼接。

BEV 转换通常用 LSS(Lift-Splat-Shoot) 范式:先把每路 2D 图像「抬升」到 3D(预测每个像素的深度分布),再「拍扁」到 BEV 网格。这一思路后来被 BEVFormer、PETR 等改进为带注意力的版本。

💡 BEV 的局限:BEV 假设场景是「地面主导」(车、人、桌都在地面上)。对机械臂操作(杯子在桌上、苹果悬挂空中)这种垂直维度重要的场景,BEV 反而不直观。所以机器人操作领域更倾向直接用 3D 点云或体素。

2.2.5 NeRF 与 3D Gaussian Splatting:可微 3D 表征

最近三年,3D 视觉最热的两件事是 NeRF(Neural Radiance Field,神经辐射场)和 3D Gaussian Splatting(3DGS)。它们都是「可微的 3D 表征」——既能渲染图像,又能反向传播梯度,让机器人可以端到端地从图像学几何。

NeRF 的核心思想

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 场景。

3D Gaussian Splatting:更快更准

NeRF 的痛点是慢——渲染一帧要数千次网络查询。3DGS 把隐式神经场换成了显式的「百万个 3D 高斯椭球」,每个高斯有位置、协方差、颜色、不透明度。渲染用「splatting」(投影涂抹)一次完成,速度比 NeRF 快 100 倍,质量更高。

在机器人中的应用

应用 NeRF/3DGS 的价值
场景重建 用很少几张图重建可重渲染场景,用于仿真数据增广
新视角合成 仿真中生成训练 VLA 需要的多视角数据
SLAM(第 3 章) 用 NeRF/3DGS 当地图表征,可微、可重定位
可微渲染优化 从图像直接优化物体位姿、形状(分析-合成范式)
资产管线 把扫描的真实环境变成仿真资产,缩小 Sim-to-Real gap

⚠️ 当前局限:NeRF/3DGS 重建的是静态场景,对动态物体(人、移动物体)支持有限。机器人面对的真实环境大多是动态的,这是当前研究热点(Dynamic NeRF、4D Gaussian Splatting)。

2.2.6 语义感知:从像素到物体

视觉感知的另一条线是语义——不仅要知道几何,还要知道「这是什么」。语义感知的演进:

阶段 任务 输出 代表模型
分类 这张图里有什么 类别标签 ResNet、ViT
检测 物体在哪里 边界框 + 类别 YOLO、Faster-RCNN、DETR
分割 每个像素属于什么 像素级掩膜 Mask-RCNN、SAM
6D 姿态估计 物体三维位姿 旋转 + 平移 PoseCNN、FoundationPose
开放词汇 用户文本 → 物体定位 任意类别 CLIP、Grounding-DINO、SAM

机器人操作最关心后两类:6D 姿态估计给出抓取需要的物体位姿,开放词汇检测让机器人能响应「把那个红色的杯子给我」这类指令(详见第 4.2 节 VLM)。

2.2.7 SAM:机器人视觉的「基础模型」时刻

Meta 在 2023 年发布的 SAM(Segment Anything Model) 是机器人视觉的「GPT 时刻」——一个能在任意图像上零样本分割任意物体的通用模型。它的意义在于:

  • 把分割从「需要为每个新场景微调」变成「即开即用」。
  • 配合 CLIP,可以做到「点一下/说一句话 → 自动分割目标物体」。
  • 为机器人提供高质量物体掩膜,极大降低抓取与操作的预处理成本。

后续的 SAM 2 进一步支持视频分割与跟踪,让机器人可以持续锁定运动中的物体。这些视觉基础模型(SAM、Grounding-DINO、FoundationPose)正在成为机器人感知的「基础设施」,让上层策略(VLA)可以专注动作学习而非视觉理解(第 5 章)。

2.2.8 机器人视觉的三大流派

总结起来,机器人视觉感知有三条技术路线:

流派 核心思想 优势 劣势
几何先验派 用多视图几何、SLAM 显式建图 可解释、精确 需特征匹配,弱纹理失效
端到端学习派 从像素直接到动作/语义 通用、易扩展 数据饥渴、可解释性差
基础模型派 用 SAM/CLIP/FoundationPose 等预训练模型做感知底座 零样本泛化 计算重、延迟高

当前趋势是**「基础模型 + 轻量微调」的混合路线**:用 SAM/CLIP 等通用大模型做感知底座,机器人侧只学习任务相关的轻量头。这也是第 5 章 VLA 模型的设计哲学。

本节小结

  • 机器人视觉从 2D 像素走向 3D 几何:深度图(2.5D)→ 点云(稀疏 3D)→ 体素/TSDF(稠密 3D)→ BEV(投影 2D)→ NeRF/3DGS(可微 3D)。
  • 相机内参是 2D 到 3D 转换的基础,深度图反投影成点云用针孔模型。
  • 体素/TSDF 适合室内稠密建图,BEV 适合自动驾驶等地面主导场景。
  • NeRF/3DGS 是可微 3D 表征的革命,可用于场景重建、SLAM、资产管线,但当前对动态场景支持有限。
  • 语义感知从分类→检测→分割→6D 姿态→开放词汇,SAM/CLIP 等基础模型正成为机器人视觉基础设施。
  • 三大流派:几何先验、端到端学习、基础模型,当前混合路线占主流。

下一节《2.3 触觉与力感知》将讨论机器人怎么「摸到」世界——这是从盲抓走向巧操作的关键。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U