CABINET / Machines in Motion / 具身智能研究
感知与场景理解
感知与场景理解层(Perception and Scene Understanding)是具身智能系统的信息入口。该层负责将原始传感器数据(RGB图像、深度图、点云、IMU信号)转化为结构化的环境表征,供上层决策与规划模块使用。本文档系统梳理该层的核心技术栈,包括经典二维视觉、开放词汇感知、三维感知、位姿估计、场景重建、视觉语言模型应用,以及产业公司格局。
1. 经典二维视觉
二维视觉感知是机器人视觉系统的基础模块,负责从单帧RGB图像中提取目标位置、类别、轮廓等信息。核心任务包括目标检测(Object Detection)、实例分割(Instance Segmentation)、语义分割(Semantic Segmentation)。
1.1 目标检测(Object Detection)
目标检测的任务定义:给定输入图像 $I \in \mathbb{R}^{H \times W \times 3}$,输出一组边界框(bounding box)与对应类别标签 ${(b_i, c_i, s_i)}_{i=1}^{N}$,其中 $b_i = (x, y, w, h)$ 为边界框坐标,$c_i$ 为类别,$s_i$ 为置信度分数。
YOLO 系列
YOLO(You Only Look Once)系列是单阶段检测器的代表,核心思想是将检测问题转化为回归问题,在单次前向传播中同时预测边界框和类别概率。
| 版本 | 年份 | Backbone | 参数量 | COCO mAP | 推理速度 (FPS) | 核心改进 |
|---|---|---|---|---|---|---|
| YOLOv3 | 2018 | Darknet-53 | 62M | 33.0 | 78 (V100) | 多尺度预测,FPN结构 |
| YOLOv4 | 2020 | CSPDarknet53 | 64M | 43.5 | 62 (V100) | CSP结构,Mish激活,Mosaic增强 |
| YOLOv5 | 2020 | CSPDarknet (Modified) | 7.2M-86.7M | 37.4-50.7 | 140-30 (V100) | 工程优化,自动锚框 |
| YOLOv7 | 2022 | E-ELAN | 36.9M-71.3M | 51.4-56.8 | 161-30 (V100) | Extended-ELAN,模型缩放 |
| YOLOv8 | 2023 | CSPDarknet (v8) | 3.2M-68.2M | 37.3-53.9 | 480-80 (A100) | Anchor-free,解耦头 |
| YOLOv9 | 2024 | GELAN | 25M-58M | 53.6-55.6 | 130-50 (A100) | PGI可编程梯度信息 |
| YOLOv10 | 2024 | CSPDarknet (v10) | 6.7M-56.8M | 39.5-54.4 | 500-100 (A100) | NMS-free,一致性双分配 |
| YOLO11 | 2024 | C3k2 | 2.6M-56.9M | 39.5-54.7 | 520-90 (A100) | C3k2模块,注意力增强 |
YOLOv8 的架构概览:
Input (640x640x3)
|
v
+-----------------+
| Backbone | CSPDarknet with C2f modules
| (Feature | Output: P3 (80x80), P4 (40x40), P5 (20x20)
| Extraction) |
+--------+--------+
|
v
+-----------------+
| Neck (FPN + | Path Aggregation Network (PAN)
| PAN) | Top-down + Bottom-up feature fusion
+--------+--------+
|
v
+-----------------+
| Head | Decoupled head (分类分支 + 回归分支)
| (Anchor-free) | Task-Aligned Assigner
+-----------------+
Faster R-CNN
Faster R-CNN 是两阶段检测器的经典架构,由 Region Proposal Network(RPN)和 Fast R-CNN 检测头组成。
核心组件:
- Backbone:ResNet-50/101 或 ResNeXt,提取特征图
- RPN:在特征图上滑动窗口生成候选区域(proposal),每个位置预测 k 个 anchor 的前景/背景分数和边界框回归偏移
- RoI Pooling/Align:将不同大小的候选区域映射为固定尺寸特征
- Classification + Regression Head:对每个候选区域进行类别分类和边界框精修
| 配置 | Backbone | 参数量 | COCO mAP | 推理速度 |
|---|---|---|---|---|
| Faster R-CNN | ResNet-50-FPN | 41.5M | 37.4 | 26 FPS (V100) |
| Faster R-CNN | ResNet-101-FPN | 60.5M | 39.4 | 20 FPS (V100) |
| Faster R-CNN | ResNeXt-101-FPN | 95.5M | 41.3 | 14 FPS (V100) |
DETR(Detection Transformer)
DETR(2020, Facebook AI)将目标检测重新定义为集合预测问题(set prediction),使用 Transformer 的 encoder-decoder 架构直接输出固定数量的检测结果,消除了对 anchor、NMS 等手工组件的依赖。
核心机制:
- Bipartite Matching Loss:使用匈牙利算法(Hungarian Algorithm)在预测集合与真实标注之间建立一对一匹配
- Object Query:一组可学习的嵌入向量(通常100个),每个 query 负责检测一个目标
- Set-based Global Loss:对所有预测同时计算损失,强制唯一匹配
Input Image
|
v
+----------+
| CNN | ResNet-50 backbone
| Backbone | Output: feature map (H/32 x W/32 x 2048)
+----+-----+
| + Positional Encoding (sinusoidal)
v
+------------------+
| Transformer | 6 layers, 8 heads
| Encoder | Self-attention on flattened feature map
+--------+---------+
|
v
+------------------+
| Transformer | 6 layers, 8 heads
| Decoder | Cross-attention with encoder output
| | Input: N learned object queries
+--------+---------+
|
v
+------------------+
| FFN Heads | Per-query: class label + bbox coordinates
| (Prediction) | Output: N predictions (class, x, y, w, h)
+------------------+
DETR 系列演进:
| 模型 | 年份 | 核心改进 | COCO mAP | 训练 Epochs |
|---|---|---|---|---|
| DETR | 2020 | 原始架构 | 42.0 | 500 |
| Deformable DETR | 2021 | 可变形注意力,多尺度 | 46.2 | 50 |
| DAB-DETR | 2022 | 动态 anchor box 作为 query | 45.7 | 50 |
| DN-DETR | 2022 | 去噪训练加速收敛 | 48.6 | 50 |
| DINO (Detection) | 2023 | 对比去噪 + 混合 query | 49.4 | 12 |
| RT-DETR | 2023 | 实时 DETR,无NMS | 54.8 | 72 |
| Co-DETR | 2024 | 协作混合分配 | 56.0 | 36 |
1.2 实例分割(Instance Segmentation)
实例分割在目标检测基础上进一步输出每个实例的像素级掩码(pixel-level mask)。
Mask R-CNN
Mask R-CNN(2017, He et al.)在 Faster R-CNN 基础上增加了一个并行的掩码预测分支。
架构特点:
- 在每个 RoI 上添加一个全卷积网络(FCN)分支,输出 $m \times m$ 的二值掩码
- 引入 RoIAlign 替代 RoIPool,使用双线性插值避免量化误差
- 掩码分支独立于类别分支,每个类别独立预测掩码
| 配置 | Backbone | 参数量 | COCO AP (box) | COCO AP (mask) | 推理速度 |
|---|---|---|---|---|---|
| Mask R-CNN | ResNet-50-FPN | 44.2M | 38.2 | 34.7 | 16 FPS (V100) |
| Mask R-CNN | ResNet-101-FPN | 63.2M | 40.0 | 36.1 | 12 FPS (V100) |
| Cascade Mask R-CNN | ResNeXt-101-FPN | 119M | 44.3 | 38.5 | 8 FPS (V100) |
Mask2Former
Mask2Former(2022, Meta)是统一分割架构,用单一模型同时处理语义分割、实例分割和全景分割(panoptic segmentation)。
核心设计:
- Masked Attention:将注意力限制在预测掩码的前景区域内,加速收敛
- Multi-scale Deformable Attention:在多尺度特征上进行交叉注意力
- Query 设计:每个 query 对应一个分割区域,通过匈牙利匹配训练
Pixel Decoder (Multi-scale features)
|
+-- Resolution 1/4 --+
+-- Resolution 1/8 --+
+-- Resolution 1/16 --+ Masked Cross-Attention
+-- Resolution 1/32 --+ (per Transformer decoder layer)
|
v
Transformer Decoder (9 layers)
N queries -> N mask predictions
|
v
+-------------------+
| Class prediction | (N x C)
| Mask prediction | (N x H x W)
+-------------------+
| 任务 | Backbone | COCO PQ | ADE20K mIoU | 推理速度 |
|---|---|---|---|---|
| Panoptic | Swin-L | 57.8 | - | 5 FPS |
| Semantic | Swin-L | - | 56.4 | 6 FPS |
| Instance | Swin-L | - (AP: 50.1) | - | 5 FPS |
1.3 语义分割(Semantic Segmentation)
语义分割对图像中每个像素赋予类别标签,不区分同类的不同实例。
SegFormer
SegFormer(2021, NVIDIA)是基于 Transformer 的轻量级语义分割架构。
设计特点:
- Hierarchical Transformer Encoder:分层结构产生多尺度特征,类似 CNN 的 FPN
- Efficient Self-Attention:通过 Reduction Ratio 降低序列长度,控制计算量
- Mix-FFN:用 3x3 深度卷积替代位置编码,引入局部信息
- Lightweight All-MLP Decoder:四层特征通过 MLP 融合后预测
Input Image (512x512)
|
v
+--------------------------------+
| Hierarchical Transformer |
| Stage 1: H/4 x W/4 x C1 | (Patch: 4x4, R=8)
| Stage 2: H/8 x W/8 x C2 | (Patch: 2x2, R=4)
| Stage 3: H/16 x W/16 x C3 | (Patch: 2x2, R=2)
| Stage 4: H/32 x W/32 x C4 | (Patch: 2x2, R=1)
+--------------+-----------------+
|
v
+--------------------------------+
| All-MLP Decoder |
| Each stage -> MLP -> Upsample |
| to H/4 x W/4 |
| Concat -> MLP -> Class pred |
+--------------------------------+
SegFormer 系列性能:
| 模型 | 参数量 | GFLOPs | ADE20K mIoU | Cityscapes mIoU | 推理速度 |
|---|---|---|---|---|---|
| SegFormer-B0 | 3.8M | 8.4 | 37.4 | 76.2 | 105 FPS (V100) |
| SegFormer-B1 | 13.7M | 15.9 | 42.2 | 78.5 | 68 FPS (V100) |
| SegFormer-B2 | 27.4M | 62.4 | 46.5 | 81.0 | 35 FPS (V100) |
| SegFormer-B3 | 47.3M | 79.0 | 48.5 | 81.7 | 24 FPS (V100) |
| SegFormer-B4 | 64.1M | 95.7 | 49.6 | 82.3 | 18 FPS (V100) |
| SegFormer-B5 | 84.7M | 183.3 | 51.0 | 82.4 | 11 FPS (V100) |
1.4 机器人场景中的选择考量
在具身智能系统中选择视觉感知模块时,需要权衡以下因素:
| 考量维度 | 实时控制场景 | 高精度抓取场景 | 导航场景 |
|---|---|---|---|
| 延迟要求 | < 30ms | < 100ms | < 200ms |
| 精度优先级 | 中 | 高 | 中 |
| 推荐方案 | YOLOv8-S/M | Mask2Former | SegFormer-B2 |
| 输入分辨率 | 640x640 | 1024x1024 | 512x512 |
| 是否需要分割 | 否 | 是(实例级) | 是(语义级) |
2. 开放词汇感知(Open-Vocabulary Perception)
传统视觉模型在封闭类别集合(closed-set)上训练和推理,无法识别训练集之外的物体。开放词汇感知(Open-Vocabulary Perception)通过视觉语言对齐,使模型能够识别任意文本描述的物体,这对于机器人在非结构化环境中操作具有关键意义。
2.1 CLIP(Contrastive Language-Image Pre-training)
CLIP(OpenAI, 2021)是视觉语言对齐的基础模型,通过对比学习在4亿图文对上训练,建立图像与文本的共享嵌入空间。
对比学习机制
训练目标:给定一个 batch 的 $N$ 个图文对 ${(I_i, T_i)}_{i=1}^{N}$,最大化匹配对的余弦相似度,最小化非匹配对的相似度。
损失函数(symmetric cross-entropy):
L = 0.5 * (L_{I->T} + L_{T->I})
L_{I->T} = -(1/N) * sum_i log( exp(sim(f_I(I_i), f_T(T_i)) / tau)
/ sum_j exp(sim(f_I(I_i), f_T(T_j)) / tau) )
其中:
- $f_I$:图像编码器(Vision Transformer 或 ResNet)
- $f_T$:文本编码器(Transformer)
- $\tau$:可学习的温度参数
架构配置
| 模型 | 图像编码器 | 文本编码器 | 图像分辨率 | 参数量 | ImageNet Zero-shot Acc |
|---|---|---|---|---|---|
| CLIP ViT-B/32 | ViT-B/32 | Transformer (63M) | 224 | 151M | 63.2% |
| CLIP ViT-B/16 | ViT-B/16 | Transformer (63M) | 224 | 150M | 68.3% |
| CLIP ViT-L/14 | ViT-L/14 | Transformer (123M) | 224 | 428M | 75.3% |
| CLIP ViT-L/14@336 | ViT-L/14 | Transformer (123M) | 336 | 428M | 76.2% |
零样本推理流程
Image --> Image Encoder --> Image Embedding (d=512/768)
|
| cosine similarity
|
Text Prompts --> Text Encoder --> Text Embeddings
"a photo of a {class}" (N_classes x d)
|
v
argmax -> Predicted Class
对机器人的意义
CLIP 建立的视觉语言对齐空间使得机器人可以:
- 通过自然语言指令定位目标物体(“拿起红色的杯子”)
- 无需针对特定物体重新训练检测模型
- 作为下游任务(检测、分割)的特征骨干
2.2 DINO / DINOv2(Self-Supervised Visual Features)
DINO(Self-DIstillation with NO labels, Meta 2021)和 DINOv2(2023)通过自监督学习训练 Vision Transformer,产生通用视觉特征,无需任何标注数据。
自蒸馏机制(Self-Distillation)
DINO 使用 teacher-student 框架:
- Student 网络接收局部裁剪(local crops, 96x96)
- Teacher 网络接收全局裁剪(global crops, 224x224)
- Teacher 参数通过 Student 的指数移动平均(EMA)更新
- 训练目标:Student 的输出分布匹配 Teacher 的输出分布(cross-entropy on softmax)
Global Crop (224x224) --> Teacher (EMA) --> Centering + Sharpening --> P_t
|
Local Crop (96x96) --> Student --> Softmax --> P_s
|
Loss = -P_t * log(P_s) <-----------------+
(cross-entropy, stop-grad on teacher)
DINOv2 的改进
DINOv2(2023)在 DINO 基础上进行了大规模工程改进:
| 改进项 | 具体内容 |
|---|---|
| 训练数据 | LVD-142M(自动策展的1.42亿图像) |
| 训练目标 | DINO loss + iBOT (masked image modeling) + KoLeo regularizer |
| 模型规模 | ViT-S/B/L/g(21M-1.1B参数) |
| 蒸馏 | ViT-g -> ViT-S/B/L |
| 分辨率 | 支持任意分辨率,通过插值位置编码 |
DINOv2 特征的关键特性:
- 无需微调即可在多种下游任务上达到强性能
- 特征具有显著的语义对应性(semantic correspondence)
- Attention map 自然地关注物体前景区域
| 模型 | 参数量 | ImageNet k-NN | ADE20K Linear | 深度估计 (NYU) |
|---|---|---|---|---|
| DINOv2 ViT-S/14 | 21M | 79.0% | 45.3 mIoU | 0.344 RMSE |
| DINOv2 ViT-B/14 | 86M | 82.1% | 49.5 mIoU | 0.310 RMSE |
| DINOv2 ViT-L/14 | 300M | 83.5% | 53.1 mIoU | 0.286 RMSE |
| DINOv2 ViT-g/14 | 1.1B | 83.5% | 53.0 mIoU | 0.279 RMSE |
2.3 SAM / SAM2(Segment Anything Model)
SAM(Meta, 2023)是提示式分割的基础模型,能够根据点、框、文本等提示分割图像中的任意物体。SAM2(2024)将能力扩展到视频域。
SAM 架构
+-----------------------------------------------------+
| SAM Architecture |
+-----------------------------------------------------+
| |
| Image --> Image Encoder (ViT-H) --> Image Embedding |
| (仅运行一次) (256x64x64) |
| |
| Prompts: |
| Points (x,y,label) --+ |
| Boxes (x1,y1,x2,y2)--+--> Prompt Encoder |
| Masks (HxW) --+ --> Prompt Embedding |
| |
| Image Embedding + Prompt Embedding |
| | |
| v |
| +-----------------+ |
| | Mask Decoder | 2-layer Transformer decoder |
| | (lightweight) | + MLP output heads |
| +--------+--------+ |
| | |
| v |
| Output: 3 masks + confidence scores |
| (ambiguity-aware: whole/part/subpart) |
| |
+-----------------------------------------------------+
SAM 模型规格:
| 版本 | Image Encoder | 参数量 | SA-1B 训练数据 | 推理速度(图像编码) |
|---|---|---|---|---|
| SAM ViT-B | ViT-B/16 | 91M | 11M 图像, 1.1B 掩码 | 150ms (A100) |
| SAM ViT-L | ViT-L/16 | 308M | 同上 | 300ms (A100) |
| SAM ViT-H | ViT-H/16 | 636M | 同上 | 500ms (A100) |
SAM2 的改进
SAM2(2024)引入了流式架构(streaming architecture)处理视频分割:
| 特性 | SAM | SAM2 |
|---|---|---|
| 输入 | 单帧图像 | 视频流 |
| 时序建模 | 无 | Memory Attention + Memory Bank |
| 遮挡处理 | 无 | Occlusion Head(预测物体是否被遮挡) |
| 交互方式 | 单帧提示 | 任意帧添加/修正提示 |
| 训练数据 | SA-1B(图像) | SA-V(视频,51K视频,600K masklets) |
| 图像性能 | 基准 | 单帧上超越 SAM(更高效的架构) |
SAM2 架构新增模块:
- Memory Encoder:将过去帧的预测掩码和特征编码为 memory token
- Memory Bank:维护最近 N 帧的 memory(FIFO),外加被提示帧的 memory
- Memory Attention:当前帧的特征与 Memory Bank 进行交叉注意力
2.4 Grounding DINO(Open-Set Detection)
Grounding DINO(2023, IDEA Research)结合了 DINO 检测器和语言模型,实现开放集目标检测,能够根据文本描述检测任意物体。
架构设计
Text Input: "red cup . metal spoon . wooden table"
|
v
+--------------+
| Text Encoder | BERT-base
| | Output: text features (L x d)
+------+-------+
|
| +------------------------------+
| | Feature Enhancer |
| | (6 layers) |
+--+ - Image self-attention |
| | - Text self-attention |
| | - Image-to-text cross-attn |
| | - Text-to-image cross-attn |
| +--------------+---------------+
| |
Image --> Backbone --> Multi-scale Features
(Swin-T/L) |
v
+---------------------+
| Language-Guided |
| Query Selection |
| (select top-N) |
+----------+----------+
|
v
+---------------------+
| Cross-Modality |
| Decoder (6 layers) |
+----------+----------+
|
v
Box predictions + Text-aligned scores
性能对比:
| 模型 | Backbone | COCO Zero-shot AP | LVIS Zero-shot AP | ODinW (13 datasets) |
|---|---|---|---|---|
| Grounding DINO-T | Swin-T | 48.4 | 27.4 | 56.9 |
| Grounding DINO-L | Swin-L | 52.5 | 33.6 | 63.4 |
| Grounding DINO 1.5 Pro | - | 54.3 | 38.2 | 65.1 |
| Grounding DINO 1.6 Pro | - | 55.7 | 40.1 | - |
在机器人中的使用方式
典型调用流程:
- 接收语言指令:“把桌子上的红色杯子递给我”
- 文本 prompt 构造:“red cup”
- Grounding DINO 输出:边界框 + 置信度
- 结合 SAM 进行精确分割
- 分割结果送入抓取规划模块
2.5 OWL-ViT / OWLv2
OWL-ViT(Google, 2022)和 OWLv2(2023)是基于 CLIP 的开放词汇检测器。
OWL-ViT 架构
将 CLIP 的图像编码器改造为检测器:
- 移除 CLIP ViT 的最后一层池化,保留所有 patch token
- 每个 patch token 通过轻量级检测头预测边界框
- 文本嵌入作为分类器权重,与 patch 特征计算相似度
OWLv2 改进:
- Self-training:使用 OWL-ViT 在大规模图像上生成伪标签,自训练更强模型
- Scaling:扩展到更大的 ViT-L/14 backbone
- 性能:LVIS rare category AP 提升约 10 个百分点
| 模型 | Backbone | LVIS AP (rare) | LVIS AP (all) | 推理速度 |
|---|---|---|---|---|
| OWL-ViT B/32 | CLIP ViT-B/32 | 23.1 | 20.8 | 40 FPS |
| OWL-ViT L/14 | CLIP ViT-L/14 | 31.2 | 28.6 | 15 FPS |
| OWLv2 L/14 | CLIP ViT-L/14 (scaled) | 41.3 | 35.4 | 14 FPS |
2.6 Florence-2
Florence-2(Microsoft, 2024)是统一的视觉基础模型,使用序列到序列(sequence-to-sequence)架构处理多种视觉任务。
核心设计:
- 统一表示:所有任务(检测、分割、caption、grounding)统一为文本序列输出
- Prompt-based:通过不同的 task prompt 激活不同功能
- 训练数据:FLD-5B(54亿标注,覆盖126M图像)
支持的任务与输出格式:
| 任务 | Input Prompt | Output Format |
|---|---|---|
| Object Detection | <OD> | {class}: <loc_x1><loc_y1><loc_x2><loc_y2> |
| Caption | <CAPTION> | 自然语言描述 |
| Grounding | <CAPTION_TO_PHRASE_GROUNDING> text | 短语 + 边界框 |
| Segmentation | <REFERRING_EXPRESSION_SEGMENTATION> text | 多边形坐标序列 |
| OCR | <OCR> | 检测到的文字 + 位置 |
| 模型 | 参数量 | COCO Det AP | RefCOCO Acc | TextVQA |
|---|---|---|---|---|
| Florence-2-B | 232M | 37.5 | 81.3 | 63.6 |
| Florence-2-L | 771M | 41.4 | 84.2 | 72.8 |
2.7 开放词汇感知范式总结
从封闭集到开放词汇的范式转变对机器人系统意味着:
| 维度 | 封闭集范式 | 开放词汇范式 |
|---|---|---|
| 类别范围 | 训练时固定(80/365/1203类) | 任意文本描述 |
| 新物体适应 | 需要收集数据 + 重新训练 | 零样本或少样本 |
| 部署灵活性 | 每个场景一个模型 | 一个模型适应所有场景 |
| 用户交互 | 仅能操作预定义物体 | 自然语言指定目标 |
| 模型更新频率 | 频繁(数据分布变化时) | 低频(基础能力提升时) |
| 典型延迟 | 10-50ms | 50-500ms |
| 精度上限 | 高(特定域优化) | 中高(通用性换精度) |
3. 三维感知(3D Perception)
机器人在物理世界中操作,需要理解三维几何结构。三维感知从点云(point cloud)、深度图(depth map)或多视图图像中恢复物体的三维位置、形状和空间关系。
3.1 PointNet / PointNet++
PointNet(2017, Stanford)
PointNet 是第一个直接在原始点云上进行深度学习的架构,解决了点云的无序性(permutation invariance)问题。
核心设计原则:
- 对称函数:使用 max pooling 作为聚合操作,保证对输入点的顺序不变性
- 逐点 MLP:对每个点独立施加共享权重的 MLP
- T-Net:学习输入和特征空间的对齐变换(alignment)
Input Points (N x 3)
|
v
+--------------+
| Input T-Net | 3x3 transformation matrix
| (alignment) |
+------+-------+
|
v
+------------------------------+
| Shared MLP |
| 3 -> 64 -> 64 | Per-point features
+--------------+---------------+
|
v
+--------------+
| Feature T-Net| 64x64 transformation matrix
| (alignment) |
+------+-------+
|
v
+------------------------------+
| Shared MLP |
| 64 -> 128 -> 1024 | Per-point features (N x 1024)
+--------------+---------------+
|
v
+--------------+
| Max Pooling | Global feature (1 x 1024)
| (symmetric) |
+------+-------+
|
+--> Classification Head (MLP: 1024->512->256->k)
|
+--> Segmentation Head (concat global + point features -> MLP)
PointNet 的局限:max pooling 聚合丢失了局部几何结构信息,无法捕获点之间的局部关系。
PointNet++(2017)
PointNet++ 引入层次化的点集学习(hierarchical point set learning),通过 Set Abstraction 模块递归地在局部区域中应用 PointNet。
Set Abstraction 模块:
- Sampling:使用最远点采样(Farthest Point Sampling, FPS)选择中心点
- Grouping:以中心点为球心,在半径 r 内搜索邻域点(Ball Query)
- PointNet:对每个局部区域应用 PointNet 提取局部特征
Input: N points
|
v
+---------------------------------+
| Set Abstraction Layer 1 |
| FPS: N -> N1 centers |
| Ball Query: radius r1, K points |
| Mini-PointNet: -> N1 x d1 |
+-----------+---------------------+
|
v
+---------------------------------+
| Set Abstraction Layer 2 |
| FPS: N1 -> N2 centers |
| Ball Query: radius r2, K points |
| Mini-PointNet: -> N2 x d2 |
+-----------+---------------------+
|
v
+---------------------------------+
| Set Abstraction Layer 3 |
| FPS: N2 -> N3 centers |
| Global aggregation: -> 1 x d3 |
+---------------------------------+
Multi-Scale Grouping(MSG):在每层使用多个不同半径进行 grouping,处理点云密度不均匀的问题。
| 模型 | ModelNet40 Acc | ScanNet Seg mIoU | 输入点数 | 推理时间 |
|---|---|---|---|---|
| PointNet | 89.2% | - | 1024 | 6ms |
| PointNet++ (SSG) | 90.7% | 53.5% | 1024 | 25ms |
| PointNet++ (MSG) | 91.9% | 54.5% | 1024 | 82ms |
3.2 VoxelNet / SECOND(Sparse Convolution)
体素化方法将非结构化点云转化为规则的三维网格(voxel grid),然后应用三维卷积处理。
VoxelNet(2018, Apple)
VoxelNet 的处理流程:
- Voxelization:将点云空间划分为均匀的体素网格
- Voxel Feature Encoding(VFE):在每个非空体素内对点云特征进行编码
- 3D Convolution:在体素网格上应用三维稀疏卷积
- RPN:在 BEV(Bird’s Eye View)特征图上进行区域提案和检测
SECOND(Sparsely Embedded Convolutional Detection, 2018)
SECOND 的核心贡献是引入了稀疏卷积(Sparse Convolution),大幅提升了计算效率。
稀疏卷积原理:
- 三维体素网格中大部分体素为空(通常 > 95%)
- 标准三维卷积在所有位置计算,浪费计算资源
- 稀疏卷积仅在非空体素及其邻域计算
- 通过 hash table 记录活跃体素位置,实现高效索引
Point Cloud (N x 4: x, y, z, reflectance)
|
v
+-------------------+
| Voxelization | 体素大小: (0.05m, 0.05m, 0.1m)
| | 空间范围: [-50, 50] x [-50, 50] x [-5, 3]
+--------+----------+
|
v
+-------------------+
| Voxel Feature | 每个体素内最多 T=35 个点
| Encoding | 输出: 非空体素的特征向量
+--------+----------+
|
v
+---------------------------+
| Sparse 3D Convolution | Submanifold Sparse Conv
| (4 blocks) | + Regular Sparse Conv (stride=2)
| | 逐步降采样 Z 维度
+------------+--------------+
|
v
+-------------------+
| BEV Projection | 将 3D 特征沿 Z 轴压缩
| (Dense 2D Map) | 输出: H x W x C 的密集特征图
+--------+----------+
|
v
+-------------------+
| Detection Head | Anchor-based 或 Center-based
| (RPN) | 输出: 3D bbox (x,y,z,w,l,h,theta) + class
+-------------------+
3.3 BEV 感知(Bird’s Eye View Perception)
BEV 感知将多视角相机图像或多模态传感器数据统一到鸟瞰图表示中,是自动驾驶领域的主流方案,也逐步被移动机器人采用。
BEVFusion(MIT, 2023)
BEVFusion 在 BEV 空间中融合相机和 LiDAR 特征。
Camera Images (6 views) LiDAR Point Cloud
| |
v v
+--------------+ +------------------+
| Image Encoder| | Voxel Encoder |
| (Swin-T) | | (VoxelNet) |
+------+-------+ +--------+---------+
| |
v v
+--------------+ +------------------+
| View | | Sparse 3D Conv |
| Transform | | (SECOND) |
| (LSS/BEVPool)| +--------+---------+
+------+-------+ |
| |
v v
Camera BEV LiDAR BEV
(200x200xC) (200x200xC)
| |
+----------+-------------------------+
|
v
+---------------+
| BEV Fusion | Convolution-based fusion
| (Conv layers) |
+-------+-------+
|
v
+---------------+
| Task Heads | 3D Detection / BEV Segmentation
+---------------+
BEVFormer(2022, Nanjing University + Shanghai AI Lab)
BEVFormer 使用 Transformer 的空间交叉注意力(Spatial Cross-Attention)和时序自注意力(Temporal Self-Attention)构建 BEV 特征。
核心组件:
- BEV Queries:一组可学习的 BEV 网格查询向量(200x200)
- Spatial Cross-Attention:每个 BEV query 通过相机内外参投影到对应图像位置,采样图像特征
- Temporal Self-Attention:当前帧 BEV features 与前一帧对齐后的 BEV features 进行注意力
- Deformable Attention:采用可变形注意力降低计算量
| 模型 | 传感器 | nuScenes mAP | nuScenes NDS | 推理速度 |
|---|---|---|---|---|
| BEVFusion (Camera-only) | 6 cameras | 35.5 | 41.2 | 12 FPS |
| BEVFusion (LiDAR-only) | 1 LiDAR | 64.7 | 69.2 | 15 FPS |
| BEVFusion (Fusion) | Camera + LiDAR | 68.5 | 71.4 | 9 FPS |
| BEVFormer-S | 6 cameras | 37.0 | 44.8 | 4 FPS |
| BEVFormer-B | 6 cameras | 41.6 | 51.7 | 2 FPS |
| StreamPETR | 6 cameras | 45.0 | 55.0 | 13 FPS |
3.4 三维目标检测
PointPillars(2019, nuTonomy)
PointPillars 将点云划分为垂直柱体(pillars),避免了三维卷积的开销。
处理流程:
- 将点云投影到 BEV 网格的每个柱体(pillar)中
- 每个 pillar 内的点通过 PointNet 编码为固定维度特征
- 将特征散布到 BEV 网格形成伪图像(pseudo-image)
- 在伪图像上应用标准二维检测网络(SSD)
优势:推理速度极快(62 FPS on GPU),适合实时系统。
CenterPoint(2021, UT Austin)
CenterPoint 使用中心点检测范式处理三维目标检测。
核心思想:
- 将物体表示为其 BEV 中心点
- 在 BEV 特征图上预测中心点 heatmap
- 从中心点回归其他属性:z坐标、3D尺寸、朝向角、速度
- 第二阶段(可选):从中心点位置提取点云特征进行精修
| 模型 | 输入 | nuScenes mAP | nuScenes NDS | Waymo mAPH (L2) | 推理速度 |
|---|---|---|---|---|---|
| PointPillars | LiDAR | 30.5 | 45.3 | 57.2 | 62 FPS |
| CenterPoint (Pillar) | LiDAR | 50.3 | 60.2 | 66.4 | 30 FPS |
| CenterPoint (Voxel) | LiDAR | 58.0 | 65.5 | 71.8 | 16 FPS |
| TransFusion | LiDAR + Camera | 65.5 | 70.2 | 73.1 | 8 FPS |
4. 6-DoF 位姿估计(6-DoF Pose Estimation)
6-DoF(6 Degrees of Freedom)位姿估计是机器人抓取操作的核心前提,需要确定目标物体相对于相机(或世界坐标系)的完整六自由度位姿:三维旋转 + 三维平移。
4.1 问题形式化
物体位姿定义为刚体变换 $T \in SE(3)$:
T = [R | t] where R in SO(3), t in R^3
[0 | 1]
SO(3) = {R in R^{3x3} | R^T R = I, det(R) = 1}
旋转的表示方式:
| 表示方式 | 维度 | 优势 | 劣势 |
|---|---|---|---|
| 旋转矩阵 | 9 (有约束) | 无奇点 | 参数冗余,需正交化 |
| 四元数 | 4 (单位约束) | 插值方便 | 双覆盖(q 和 -q 表示相同旋转) |
| 欧拉角 | 3 | 直观 | 万向节锁(Gimbal Lock) |
| 轴角 | 3 | 紧凑 | 周期性,不连续 |
| 6D 表示 (Zhou et al.) | 6 | 连续映射,适合网络学习 | 需要 Gram-Schmidt 恢复 |
评价指标:
- ADD:对称物体用 ADD-S(最近点距离),非对称物体用 ADD
- ADD(-S):平均点距离小于物体直径的 10% 视为正确
- BOP 指标:VSD(Visible Surface Discrepancy)、MSSD、MSPD
4.2 PoseCNN(2018, NVIDIA)
PoseCNN 是实例级位姿估计的经典方法。
架构:
- 语义分割分支:逐像素预测物体类别
- 平移估计:预测物体中心的图像坐标 + 深度值 z
- 旋转估计:对每个检测到的物体区域,回归四元数表示的旋转
RGB Image
|
v
+--------------------+
| Feature Backbone | VGG-16 / ResNet
+--------------------+
|
+--> Semantic Segmentation Branch -> per-pixel class labels
|
+--> Center Voting Branch -> center direction vectors
| -> Hough voting -> 2D center
|
+--> Depth Regression Branch -> per-pixel depth -> z-coordinate
2D center + z + camera intrinsics -> 3D translation t
Cropped RoI -> Rotation Regression -> quaternion (qw, qx, qy, qz)
PoseCNN 在 YCB-Video 数据集上的 ADD-S AUC:79.9%
4.3 DeepIM(2018, NVIDIA)
DeepIM 是迭代精修(iterative refinement)方法,通过网络预测当前估计与真实位姿之间的相对变换增量。
核心思路:
- 给定初始位姿估计 $T_0$(来自 PoseCNN 等方法)
- 将物体 3D 模型按当前位姿渲染为图像 $I_{render}$
- 将渲染图像与观测图像拼接输入网络
- 网络预测位姿更新量 $\Delta T$
- 更新位姿:$T_{k+1} = \Delta T \cdot T_k$
- 重复步骤 2-5,通常迭代 2-4 次
Iteration k:
+---------------------------------------------+
| Observed Image Crop |
| + |
| Rendered Image (at current pose T_k) |
| + |
| Rendered Mask |
+-----------------+---------------------------+
|
v
+---------------+
| FlowNet-based | Predict relative transformation
| Network | deltaR (quaternion) + delta_t
+-------+-------+
|
v
T_{k+1} = deltaT * T_k
性能提升:在 YCB-Video 上将 PoseCNN 的 ADD-S AUC 从 79.9% 提升到 88.0%。
4.4 PVNet(2019, Zhejiang University)
PVNet 使用向量场投票(vector-field voting)进行关键点定位,再通过 PnP 算法求解位姿。
方法流程:
- 预定义物体表面的 K 个关键点(通常选择 FPS 采样的3D模型顶点)
- 对图像中每个属于该物体的像素,预测指向每个关键点的单位方向向量
- 使用 RANSAC-based voting 从方向向量的交点中恢复关键点 2D 位置
- 通过 EPnP + RANSAC 从 2D-3D 对应关系求解 6-DoF 位姿
优势:
- 投票机制对遮挡具有鲁棒性(被遮挡像素不参与投票,但可见像素仍指向正确方向)
- 不依赖直接回归位姿,避免了旋转空间的不连续性问题
| 方法 | YCB-Video ADD-S AUC | LineMOD ADD(S) (< 0.1d) | 遮挡鲁棒性 |
|---|---|---|---|
| PoseCNN | 79.9% | 62.7% | 低 |
| DeepIM | 88.0% | - | 中 |
| PVNet | 86.7% | 86.3% | 高 |
| CDPN | - | 89.9% | 中 |
| GDR-Net | 91.6% | 93.7% | 高 |
4.5 FoundationPose(NVIDIA, 2024)
FoundationPose 是统一的基础位姿估计模型,支持零样本(zero-shot)位姿估计,无需逐物体训练。
核心创新
- 统一框架:同时支持基于 CAD 模型(model-based)和基于参考图像(model-free)的位姿估计
- 大规模合成训练:在大量合成数据上训练,泛化到未见物体
- 渲染 + 比较范式:类似 DeepIM 的迭代精修,但具备零样本泛化能力
架构
Input:
- RGB-D observation
- Object reference (CAD model OR reference images)
+---------------------------------------------+
| Step 1: Pose Hypothesis Generation |
| |
| If CAD model available: |
| -> Sample poses on hemisphere |
| -> Render at each pose |
| |
| If reference images only: |
| -> Use neural object field (NeRF-like) |
| -> Novel view synthesis for rendering |
+------------------+--------------------------+
|
v
+---------------------------------------------+
| Step 2: Pose Scoring (Coarse) |
| |
| For each hypothesis: |
| Render + Observe -> Feature comparison |
| -> Score each hypothesis |
| -> Select top-K |
+------------------+--------------------------+
|
v
+---------------------------------------------+
| Step 3: Pose Refinement (Iterative) |
| |
| For each selected hypothesis: |
| -> Iterative render-and-compare |
| -> Predict deltaR, delta_t |
| -> Update pose (5 iterations) |
+------------------+--------------------------+
|
v
Final 6-DoF Pose
BOP Benchmark 性能
BOP(Benchmark for 6D Object Pose Estimation)是位姿估计领域的标准评测平台。
| 方法 | BOP Challenge 2023 排名 | LM-O AR | T-LESS AR | YCB-V AR | 是否需要逐物体训练 |
|---|---|---|---|---|---|
| FoundationPose | 1st (model-based) | 85.8 | 72.1 | 83.5 | 否 |
| MegaPose | - | 73.2 | 64.5 | 76.3 | 否 |
| GDR-Net | - | 79.4 | 68.3 | 80.1 | 是 |
| CosyPose | - | 70.5 | 62.8 | 75.2 | 是 |
4.6 位姿估计的挑战
| 挑战类型 | 描述 | 典型解决方案 |
|---|---|---|
| 无纹理物体(Textureless) | 缺乏视觉特征进行匹配 | 基于形状的方法(轮廓匹配、法向预测) |
| 反光/透明物体(Reflective/Transparent) | 深度传感器失效,RGB特征受环境影响 | 偏振相机、多视角融合、专用网络 |
| 严重遮挡(Heavy Occlusion) | 物体大部分区域不可见 | 投票机制、迭代精修、时序跟踪 |
| 对称物体(Symmetry) | 多个位姿对应相同外观 | 对称感知损失函数(ShapeMatch-Loss) |
| 类内变体(Intra-class Variation) | 同类物体形状差异大 | Category-level pose estimation(NOCS) |
| 实时性要求 | 抓取决策需要低延迟 | 模型轻量化、GPU加速、tracking而非detection |
5. 场景重建与三维表示(Scene Reconstruction and 3D Representation)
场景重建将传感器观测转化为完整的三维场景模型,为机器人提供空间推理、碰撞检测和运动规划所需的几何信息。
5.1 KinectFusion(TSDF Fusion)
KinectFusion(2011, Microsoft Research)是实时稠密三维重建的开创性工作,使用 TSDF(Truncated Signed Distance Function)进行体积融合。
TSDF 表示
将三维空间划分为均匀的体素网格,每个体素存储:
- SDF 值:该点到最近表面的有符号距离(正值在表面外,负值在表面内)
- 权重:累积观测次数,用于加权平均
TSDF 截断公式:
TSDF(x) = min(1, (D_measured(u) - d(x)) / delta) * sign(D_measured(u) - d(x))
其中 delta 为截断距离,D_measured(u) 为像素 u 处的深度测量值,d(x) 为体素 x 到相机的距离。
完整流程
Depth Frame (t)
|
v
+-----------------------------+
| 1. Measurement | Raw depth -> vertex map + normal map
| (Bilateral filter) |
+--------------+--------------+
|
v
+-----------------------------+
| 2. Pose Estimation | ICP (Iterative Closest Point)
| (Frame-to-Model) | 当前帧 vs 从TSDF raycast的模型
+--------------+--------------+
|
v
+-----------------------------+
| 3. TSDF Integration | 将新深度观测融入体素网格
| (Volumetric Fusion) | 加权平均更新 SDF 值和权重
+--------------+--------------+
|
v
+-----------------------------+
| 4. Surface Prediction | Raycasting: 沿视线遍历TSDF
| (Raycasting) | 找到零交叉面提取表面
+-----------------------------+
| 参数 | 典型值 |
|---|---|
| 体素分辨率 | 256^3 或 512^3 |
| 体素大小 | 2-5mm |
| 截断距离 | 3-5 x 体素大小 |
| 重建范围 | ~3m^3 (256^3 x 5mm) |
| 帧率 | 30 FPS (GPU) |
局限性:
- 固定体素分辨率,内存消耗大(512^3 x 4 bytes = 512MB)
- 重建范围有限
- 无法处理动态场景
后续改进:Voxel Hashing(2013),TSDF体素按需分配;BundleFusion(2017),全局优化位姿;RoutedFusion(2020),学习融合权重。
5.2 NeRF(Neural Radiance Fields)
NeRF(2020, Mildenhall et al.)使用神经网络隐式表示三维场景,通过体积渲染(volume rendering)合成新视角图像。
场景表示
NeRF 将场景编码为一个连续函数 $F_\theta$:
F_theta: (x, d) -> (c, sigma)
输入:三维位置 x = (x, y, z) 和观察方向 d = (theta, phi)
输出:颜色 c = (r, g, b) 和体积密度 sigma
x 和 d 通过位置编码(Positional Encoding)映射到高维空间:
gamma(p) = (sin(2^0 * pi * p), cos(2^0 * pi * p), ...,
sin(2^{L-1} * pi * p), cos(2^{L-1} * pi * p))
体积渲染方程
沿射线 r(t) = o + t*d 的颜色:
C_hat(r) = integral_{t_n}^{t_f} T(t) * sigma(r(t)) * c(r(t), d) dt
其中累积透射率:
T(t) = exp(-integral_{t_n}^{t} sigma(r(s)) ds)
离散近似(分层采样 N 个点):
C_hat(r) = sum_{i=1}^{N} T_i * (1 - exp(-sigma_i * delta_i)) * c_i
T_i = exp(-sum_{j=1}^{i-1} sigma_j * delta_j)
网络架构
Position x = (x, y, z)
|
v gamma(x): Positional Encoding (L=10, 60-dim)
|
v
+--------------------+
| MLP (8 layers) | 256 units each
| + skip connection | at layer 5
| at layer 4 |
+---------+----------+
|
+--> sigma (density, view-independent)
|
v
+ Direction d
| gamma(d): Positional Encoding (L=4, 24-dim)
|
v
+--------------------+
| MLP (1 layer) | 128 units
+---------+----------+
|
v
c = (r, g, b) (view-dependent color)
NeRF 系列演进
| 模型 | 年份 | 核心改进 | 训练时间 | 渲染速度 |
|---|---|---|---|---|
| NeRF | 2020 | 原始方法 | 1-2 天 | ~30s/帧 |
| Mip-NeRF | 2021 | 抗锯齿,锥形射线 | 1 天 | ~30s/帧 |
| Instant-NGP | 2022 | 多分辨率哈希编码 | 5 秒-几分钟 | 实时 |
| Mip-NeRF 360 | 2022 | 无界场景 | 3 天 | ~30s/帧 |
| Nerfacto | 2023 | 工程集成最佳实践 | 5 分钟 | 实时 |
| Zip-NeRF | 2023 | Mip-NeRF 360 + Hash Grid | 5.5 小时 | ~3s/帧 |
5.3 3D Gaussian Splatting
3D Gaussian Splatting(3DGS, Kerbl et al., 2023)是一种显式三维场景表示方法,使用大量三维高斯椭球体(3D Gaussian)表示场景,通过可微分光栅化(differentiable rasterization)实现实时渲染。
场景表示
每个 3D Gaussian 由以下参数定义:
| 参数 | 符号 | 维度 | 含义 |
|---|---|---|---|
| 位置 | mu | 3 | 高斯中心的 3D 坐标 |
| 协方差 | Sigma | 6 (对称矩阵) | 形状和朝向,分解为 Sigma = RSS^T*R^T |
| 不透明度 | alpha | 1 | 该高斯的不透明度 |
| 球谐系数 | SH coefficients | 48 (degree 3) | 视角依赖的颜色 |
| 缩放 | s | 3 | 三轴缩放因子 |
| 旋转 | q | 4 | 四元数表示旋转 |
总计每个 Gaussian: 59 个参数。
典型场景包含 100K 到数百万个 Gaussian。
Splatting 渲染算法
3D Gaussians {mu_i, Sigma_i, alpha_i, c_i}
|
v
+-----------------------------------------+
| 1. View Frustum Culling |
| 剔除视锥外的 Gaussian |
+-------------------+---------------------+
|
v
+-----------------------------------------+
| 2. 3D -> 2D Projection (Splatting) |
| Sigma' = J W Sigma W^T J^T |
| (J: Jacobian of projection) |
| (W: view transformation) |
| 每个 3D Gaussian -> 2D Gaussian |
+-------------------+---------------------+
|
v
+-----------------------------------------+
| 3. Tile-based Sorting |
| 将屏幕分为 16x16 tiles |
| 每个 tile 内按深度排序 |
| (GPU radix sort) |
+-------------------+---------------------+
|
v
+-----------------------------------------+
| 4. Alpha Blending (front-to-back) |
| C = sum c_i * alpha_i * T_i |
| T_i = prod_{j<i} (1 - alpha_j) |
| 每个像素并行计算 |
+-----------------------------------------+
自适应密度控制(Adaptive Density Control)
训练过程中动态调整 Gaussian 数量:
- Densification (Clone):梯度大且 Gaussian 小,复制一个到梯度方向
- Densification (Split):梯度大且 Gaussian 大,拆分为两个更小的 Gaussian
- Pruning:不透明度 alpha 过低,删除
性能对比
| 方法 | 训练时间 | 渲染速度 (1080p) | PSNR (Mip-NeRF360) | 存储 |
|---|---|---|---|---|
| NeRF | ~35h | 0.03 FPS | 26.5 dB | 5MB |
| Instant-NGP | ~5min | 10 FPS | 28.5 dB | 48MB |
| Mip-NeRF360 | ~48h | 0.06 FPS | 29.2 dB | 8MB |
| 3D Gaussian Splatting | ~30min | 134 FPS | 29.4 dB | 700MB-1GB |
3DGS 的后续发展
| 方向 | 代表工作 | 核心改进 |
|---|---|---|
| 压缩 | Compact3D (2024) | 将存储压缩到 50MB 以下 |
| 动态场景 | Dynamic 3D Gaussians (2023) | 添加时间维度,建模变形 |
| 大规模场景 | Hierarchical 3DGS (2024) | 层次化 LOD,城市级重建 |
| SLAM | SplaTAM (2024), GS-SLAM | 在线重建 + 定位 |
| 生成 | DreamGaussian (2023) | 从文本/图像生成 3D Gaussian |
| 物理仿真 | PhysGaussian (2024) | 可形变 Gaussian + 物理引擎 |
5.4 机器人应用
三维场景表示在机器人系统中的应用:
| 应用场景 | 使用的表示 | 具体用途 |
|---|---|---|
| 抓取规划 | NeRF / 3DGS | 从隐式表示中提取物体完整几何,规划抓取点 |
| 碰撞检测 | TSDF / 3DGS | 查询任意点的 SDF 值或密度,判断碰撞 |
| 数据增强 | NeRF / 3DGS | 渲染训练数据中未覆盖的视角,扩充数据集 |
| 场景编辑 | 3DGS | 在 Gaussian 层面直接编辑物体位置 |
| Sim-to-Real | NeRF / 3DGS | 将真实场景重建为仿真环境 |
| 语义理解 | Language-embedded NeRF/3DGS | 每个点/Gaussian 携带语言特征,支持文本查询 |
语义增强的三维表示:
- LERF(Language Embedded Radiance Fields, 2023):在 NeRF 中嵌入 CLIP 特征
- LangSplat(2024):在 3DGS 中嵌入语言特征
- Feature 3DGS(2024):泛化的特征场 Gaussian Splatting
6. VLM 在机器人中的应用(Vision-Language Models for Robotics)
视觉语言模型(Vision-Language Model, VLM)将视觉理解与自然语言推理能力结合,为机器人提供高层次的场景理解、任务推理和人机交互能力。
6.1 主流 VLM 模型
GPT-4V / GPT-4o(OpenAI)
| 特性 | GPT-4V | GPT-4o |
|---|---|---|
| 发布时间 | 2023.09 | 2024.05 |
| 输入模态 | 图像 + 文本 | 图像 + 音频 + 文本 |
| 图像分辨率 | 最高 2048x2048 | 同左 |
| 视觉编码器 | 未公开(推测 CLIP-scale ViT) | 统一编码器 |
| 推理延迟(图像理解) | 5-15s | 2-5s |
| 空间推理能力 | 中等 | 中高 |
| API 定价(图像输入) | ~$0.01/image (low-res) | ~$0.005/image |
LLaVA 系列(Large Language and Vision Assistant)
LLaVA(2023, Microsoft + UWisc)是开源 VLM 的代表。
架构:
Image --> CLIP ViT-L/14 --> Visual Tokens (576 tokens)
|
v Linear Projection / MLP
|
Text --> Tokenizer --> Text Tokens |
| |
v v
+-------------------+
| LLM Backbone |
| (Vicuna/LLaMA) |
+---------+---------+
|
v
Text Response
| 模型 | LLM Backbone | 参数量 | 视觉编码器 | MMBench | SEED-Bench |
|---|---|---|---|---|---|
| LLaVA-1.5-7B | Vicuna-7B | 7B | CLIP ViT-L/14@336 | 64.3 | 58.6 |
| LLaVA-1.5-13B | Vicuna-13B | 13B | CLIP ViT-L/14@336 | 67.7 | 61.6 |
| LLaVA-NeXT-7B | Mistral-7B | 7B | CLIP ViT-L/14@672 | 68.7 | 64.2 |
| LLaVA-OneVision-72B | Qwen2-72B | 72B | SigLIP-SO400M | 80.8 | 77.6 |
InternVL 系列(Shanghai AI Lab)
InternVL 2.5(2024)是目前开源 VLM 中性能领先的模型之一。
| 模型 | 参数量 | 视觉编码器 | LLM | MMBench | MathVista | OCRBench |
|---|---|---|---|---|---|---|
| InternVL2-2B | 2B | InternViT-300M | InternLM2-1.8B | 73.2 | 46.3 | 781 |
| InternVL2-8B | 8B | InternViT-300M | InternLM2-7B | 79.4 | 58.3 | 794 |
| InternVL2-26B | 26B | InternViT-6B | InternLM2-20B | 83.4 | 59.4 | 828 |
| InternVL2.5-78B | 78B | InternViT-6B | Qwen2.5-72B | 87.2 | 70.1 | 877 |
Qwen-VL 系列(Alibaba)
| 模型 | 参数量 | 视觉编码器 | 分辨率 | MMBench | DocVQA | 特殊能力 |
|---|---|---|---|---|---|---|
| Qwen-VL | 9.6B | ViT-G (OpenCLIP) | 448 | 38.2 | 65.1 | Grounding (bbox输出) |
| Qwen-VL-Plus | - (API) | - | 可变 | 67.0 | 91.4 | 高分辨率理解 |
| Qwen2-VL-7B | 8B | ViT-600M (native) | 动态 | 80.5 | 94.5 | 视频理解 |
| Qwen2-VL-72B | 73B | ViT-600M (native) | 动态 | 86.9 | 96.5 | 视频理解 + Agent |
| Qwen2.5-VL-72B | 73B | ViT-600M | 动态 | 88.3 | 97.1 | 多粒度视觉 |
6.2 机器人场景中的应用模式
任务理解(Task Understanding)
VLM 接收场景图像和自然语言指令,分解为可执行的子任务序列。
Input:
- Scene Image (robot workspace photo)
- Instruction: "整理桌面,把水果放进碗里"
VLM Output:
1. 识别场景中的物体: apple (left), banana (center), bowl (right)
2. 分析空间关系: apple在桌面左侧, bowl在右侧
3. 生成动作序列:
- pick(apple) -> place(apple, bowl)
- pick(banana) -> place(banana, bowl)
4. 约束检查: bowl容量足够, 无遮挡
场景问答(Scene QA)
机器人遇到不确定情况时,调用 VLM 进行场景理解和推理。
应用场景:
- “这个物体可以用夹爪抓取吗?“(材质、形状、重量推理)
- “桌面上哪些物体是易碎的?“(常识推理)
- “这个抽屉的把手在哪里?“(功能部件识别)
操作反馈(Manipulation Feedback)
VLM 作为视觉反馈模块,判断操作是否成功或需要调整。
Feedback Loop:
+----------------------------------------------------+
| |
| Action Execution -> Camera Capture -> VLM Judge |
| ^ | |
| | v |
| +---- Retry / Adjust <-- Success? ----> Done|
| (yes/no + reason) |
+----------------------------------------------------+
6.3 延迟约束分析
VLM 在机器人系统中的可用性受延迟约束限制:
| 控制层级 | 频率要求 | 可接受延迟 | VLM 适用性 |
|---|---|---|---|
| 伺服控制 | 1000 Hz | 1ms | 不适用 |
| 反应式避障 | 100 Hz | 10ms | 不适用 |
| 抓取执行 | 10-30 Hz | 33-100ms | 边缘情况 |
| 任务规划 | 1-5 Hz | 200ms-1s | 适用 |
| 高层决策 | 0.1-1 Hz | 1-10s | 完全适用 |
| 人机对话 | 按需 | 1-5s | 完全适用 |
当前 VLM 的典型延迟:
| 模型 | 部署方式 | 首 token 延迟 | 总响应时间(简短回答) | 图像编码时间 |
|---|---|---|---|---|
| GPT-4o | API | 500ms-2s | 2-5s | 包含在内 |
| LLaVA-1.5-7B | 本地 A100 | 50-100ms | 200-500ms | 30ms |
| InternVL2-8B | 本地 A100 | 80-150ms | 300-800ms | 50ms |
| Qwen2-VL-7B | 本地 A100 | 60-120ms | 250-600ms | 40ms |
| LLaVA-1.5-7B | 本地 (量化 4-bit) | 100-200ms | 400ms-1s | 30ms |
| Mini-InternVL-2B | 边缘设备 (Jetson) | 200-500ms | 1-3s | 100ms |
降低延迟的策略
| 策略 | 方法 | 延迟降低比例 | 精度损失 |
|---|---|---|---|
| 模型量化 | INT4/INT8 | 40-60% | 1-3% |
| 视觉 token 裁剪 | FastV, 减少 patch 数 | 30-50% | 2-5% |
| 投机解码 | Draft model + verify | 20-40% | 0% |
| 图像降分辨率 | 336->224 | 20-30% | 5-10% |
| 异步调用 | 提前触发,缓存结果 | 感知延迟降为0 | 取决于预测准确性 |
| 蒸馏小模型 | 针对特定任务训练 | 60-80% | 任务相关 |
6.4 VLM 集成架构模式
+---------------------------------------------------------------+
| Robot System Architecture |
+---------------------------------------------------------------+
| |
| +---------+ +-------------+ +--------------+ |
| | Cameras |----| Perception |----| State | |
| | Sensors | | Pipeline | | Estimation | |
| +---------+ | (real-time) | +------+-------+ |
| | YOLO/SAM | | |
| +-------------+ | |
| v |
| +----------+ +-------------+ +-------------+ |
| | Language |---| VLM |---| Task Planner| |
| | Command | | (async, | | (generates | |
| +----------+ | 1-5 Hz) | | skill seq) | |
| +-------------+ +------+------+ |
| | |
| v |
| +-------------+ |
| | Skill | |
| | Execution | |
| | (30-100 Hz) | |
| +-------------+ |
| |
+--------------------------------------------------------------+
核心设计原则:VLM 运行在异步的低频回路中,负责高层推理和决策;底层感知和控制使用轻量级实时模块。两者通过共享状态表示(shared state representation)连接。
7. 公司格局
7.1 感知技术公司总览
| 公司 | 总部 | 核心产品/技术 | 目标场景 | 关键技术栈 | 融资/市值 |
|---|---|---|---|---|---|
| NVIDIA | 美国 Santa Clara | Isaac Perceptor | 机器人/自动驾驶 | 3D感知,Transformer加速,Foundation Models | 市值 ~$3T |
| Matterport | 美国 Sunnyvale | 3D空间数据平台 | 数字孪生,房地产 | 3D扫描,语义理解,BIM集成 | 被CoStar收购 ($1.6B) |
| Cognex | 美国 Boston | 机器视觉系统 | 工业检测,物流 | 2D/3D视觉,深度学习检测 | 市值 ~$13B |
| 旷视 (Megvii) | 中国 北京 | Brain++平台,机器人感知 | 物流,制造,城市 | 检测/分割,3D感知,端侧部署 | 估值 ~$4B |
| 海康威视 (Hikvision) | 中国 杭州 | 机器视觉,AI开放平台 | 安防,工业,机器人 | 视觉算法,边缘计算,感知融合 | 市值 ~$60B |
| Physical Intelligence (pi) | 美国 San Francisco | 通用机器人基础模型 | 通用操作 | VLA,感知-决策一体 | 融资 $400M+ (2024) |
7.2 各公司技术详情
NVIDIA Isaac Perceptor
Isaac Perceptor 是 NVIDIA 为机器人提供的感知软件栈,运行在 Jetson 平台上。
核心模块:
| 模块 | 功能 | 技术基础 |
|---|---|---|
| cuVSLAM | 视觉 SLAM | 立体视觉 + IMU 融合 |
| ESS (DNN Stereo) | 深度估计 | 深度学习立体匹配 |
| nvblox | 3D 重建 | TSDF + ESDF 实时构建 |
| FoundationPose | 位姿估计 | 零样本 6-DoF |
| DOPE | 位姿估计 | Deep Object Pose Estimation |
| Perceptor Graph | 感知流水线编排 | Isaac ROS + GXF |
平台要求:
- 硬件:Jetson Orin(AGX/NX),Orin Nano 受限
- 相机支持:立体相机(HAWK),深度相机(RealSense),多相机阵列
- 输出:3D costmap,occupancy grid,物体位姿
Matterport
Matterport 的核心技术是大规模三维场景理解:
- 3D 扫描:结构光 + 全景相机的融合扫描方案
- AI 语义理解:自动识别房间类型、家具、墙面等
- 数字孪生:生成可交互的 3D 模型
- 数据集贡献:Matterport3D 数据集被广泛用于 embodied AI 研究(Habitat, MP3D)
Cognex
Cognex 是工业机器视觉的领导者:
- In-Sight 系列:集成式智能相机,边缘 AI 推理
- VisionPro:PC 端视觉软件平台
- 3D-A5000:3D 激光扫描传感器
- 深度学习:ViDi 平台,针对缺陷检测和分类的工业级 DL 方案
核心优势:工业级稳定性、亚毫米级精度、IP67防护等级。
旷视(Megvii)
旷视在机器人感知领域的布局:
- Brain++ 平台:自研深度学习框架(MegEngine),高效训练和部署
- 物流机器人:基于视觉的 AGV/AMR 导航与避障
- 3D 感知:点云处理、BEV 感知(多篇顶会论文)
- 端侧部署:模型量化和压缩技术(MegVii Model Compression)
学术贡献:ShuffleNet(轻量化网络)、RepVGG(重参数化)、YOLOX
海康威视(Hikvision)
海康机器人(Hikrobot)是海康威视旗下专注机器视觉和移动机器人的子公司:
- 机器视觉:工业相机(面阵/线阵)、智能读码器、3D相机
- 移动机器人:潜伏式/叉取式 AMR
- 算法平台:VM 算法平台(拖拽式视觉应用开发)
- 3D 视觉:结构光、双目、ToF 多种方案
市场定位:工业制造和物流场景的高性价比解决方案。
Physical Intelligence (pi)
Physical Intelligence 是 2024 年成立的通用机器人基础模型公司:
- pi0 模型:Vision-Language-Action (VLA) 基础模型
- 感知理念:不将感知作为独立模块,而是端到端学习感知和决策
- 训练数据:多机器人、多任务的大规模操作数据
- 技术路线:Transformer 架构统一视觉输入和动作输出
与传统感知模块的区别:Physical Intelligence 代表的路线认为,分离的感知模块是性能瓶颈,应该通过端到端训练让模型自行学习所需的视觉表征。
7.3 技术路线对比
| 维度 | 模块化感知 (NVIDIA等) | 端到端感知 (Physical Intelligence等) |
|---|---|---|
| 架构 | 感知->规划->控制 分离 | 统一模型,输入图像输出动作 |
| 可解释性 | 高(每个模块输出可检查) | 低(黑盒) |
| 数据需求 | 每个模块独立训练,数据需求分散 | 需要大规模 robot demonstration |
| 泛化方式 | 每个模块独立泛化 | 整体泛化,涌现能力 |
| 工程复杂度 | 高(模块间接口维护) | 低(单一模型) |
| 实时性 | 可控(每模块独立优化) | 受模型大小限制 |
| 当前成熟度 | 高(已有商业部署) | 低(研究阶段) |
| 长期前景 | 可能被端到端取代 | 理论上限更高 |
8. 参考文献
经典二维视觉
- Redmon, J., & Farhadi, A. (2018). YOLOv3: An Incremental Improvement. arXiv:1804.02767
- Bochkovskiy, A., Wang, C. Y., & Liao, H. Y. M. (2020). YOLOv4: Optimal Speed and Accuracy of Object Detection. arXiv:2004.10934
- Jocher, G. et al. (2023). Ultralytics YOLOv8. https://github.com/ultralytics/ultralytics
- Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. NeurIPS.
- Carion, N. et al. (2020). End-to-End Object Detection with Transformers (DETR). ECCV.
- Zhu, X. et al. (2021). Deformable DETR: Deformable Transformers for End-to-End Object Detection. ICLR.
- He, K. et al. (2017). Mask R-CNN. ICCV.
- Cheng, B. et al. (2022). Masked-attention Mask Transformer for Universal Image Segmentation (Mask2Former). CVPR.
- Xie, E. et al. (2021). SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers. NeurIPS.
开放词汇感知
- Radford, A. et al. (2021). Learning Transferable Visual Models From Natural Language Supervision (CLIP). ICML.
- Caron, M. et al. (2021). Emerging Properties in Self-Supervised Vision Transformers (DINO). ICCV.
- Oquab, M. et al. (2023). DINOv2: Learning Robust Visual Features without Supervision. arXiv:2304.07193
- Kirillov, A. et al. (2023). Segment Anything (SAM). ICCV.
- Ravi, N. et al. (2024). SAM 2: Segment Anything in Images and Videos. arXiv:2408.00714
- Liu, S. et al. (2023). Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection. ECCV 2024.
- Minderer, M. et al. (2022). Simple Open-Vocabulary Object Detection with Vision Transformers (OWL-ViT). ECCV.
- Minderer, M. et al. (2023). Scaling Open-Vocabulary Object Detection (OWLv2). NeurIPS.
- Xiao, B. et al. (2024). Florence-2: Advancing a Unified Representation for a Variety of Vision Tasks. CVPR.
三维感知
- Qi, C. R. et al. (2017). PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation. CVPR.
- Qi, C. R. et al. (2017). PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space. NeurIPS.
- Zhou, Y. & Tuzel, O. (2018). VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection. CVPR.
- Yan, Y. et al. (2018). SECOND: Sparsely Embedded Convolutional Detection. Sensors.
- Liu, Z. et al. (2023). BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation. ICRA.
- Li, Z. et al. (2022). BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers. ECCV.
- Lang, A. H. et al. (2019). PointPillars: Fast Encoders for Object Detection from Point Clouds. CVPR.
- Yin, T. et al. (2021). Center-based 3D Object Detection and Tracking (CenterPoint). CVPR.
位姿估计
- Xiang, Y. et al. (2018). PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes. RSS.
- Li, Y. et al. (2018). DeepIM: Deep Iterative Matching for 6D Pose Estimation. ECCV.
- Peng, S. et al. (2019). PVNet: Pixel-wise Voting Network for 6DoF Pose Estimation. CVPR.
- Wen, B. et al. (2024). FoundationPose: Unified 6D Pose Estimation and Tracking of Novel Objects. CVPR.
- Hodan, T. et al. (2024). BOP Challenge 2023 on Detection, Segmentation and Estimation of 6D Object Poses. CVPR Workshops.
场景重建
- Newcombe, R. A. et al. (2011). KinectFusion: Real-Time Dense Surface Mapping and Tracking. ISMAR.
- Mildenhall, B. et al. (2020). NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. ECCV.
- Muller, T. et al. (2022). Instant Neural Graphics Primitives with a Multiresolution Hash Encoding. SIGGRAPH.
- Kerbl, B. et al. (2023). 3D Gaussian Splatting for Real-Time Radiance Field Rendering. SIGGRAPH.
- Keetha, N. et al. (2024). SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM. CVPR.
- Kerr, J. et al. (2023). LERF: Language Embedded Radiance Fields. ICCV.
VLM 与机器人
- OpenAI. (2024). GPT-4o System Card. https://openai.com/index/gpt-4o-system-card
- Liu, H. et al. (2023). Visual Instruction Tuning (LLaVA). NeurIPS.
- Chen, Z. et al. (2024). InternVL: Scaling up Vision Foundation Models and Aligning for Generic Visual-Linguistic Tasks. CVPR.
- Wang, P. et al. (2024). Qwen2-VL: Enhancing Vision-Language Model’s Perception of the World at Any Resolution. arXiv:2409.12191
- Brohan, A. et al. (2023). RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control. CoRL.
- Black, K. et al. (2024). pi0: A Vision-Language-Action Flow Model for General Robot Control. arXiv:2410.24164
本文档属于 Index 具身智能研究项目的感知与场景理解层专题。 相关文档:具身智能全景学习框架