2.4 多模态融合策略:早期/晚期/注意力融合与跨模态对齐 机器人装了四五种传感器,但决策只能基于一个统一状态。怎么把 30Hz 的视觉、1000Hz 的触觉、不同维度的力觉拼成一个「大脑能消化的状态向量」?这就是多模态融合要解决的问题。 2.4.1 融合的三种范式 按融合发生的层次,多模态融合分为三大类: 范式 | 融合时机 | 输入 | 输出 | 优势 | 劣势 早期融合(Early Fusion) | 原始数据层 | 原始信号(图像、点云、力) | 融合特征 | 保留全部原始信息,跨模态相关性能被利用 | 信号异构难对齐,对噪声敏感 晚期融合(Late Fusion) | 决策层 | 各模态独立预测 | 加权/投票结果 | 模块化、易调试、容错好 | 丢失跨模态相关性
机器人装了四五种传感器,但决策只能基于一个统一状态。怎么把 30Hz 的视觉、1000Hz 的触觉、不同维度的力觉拼成一个「大脑能消化的状态向量」?这就是多模态融合要解决的问题。
按融合发生的层次,多模态融合分为三大类:
| 范式 | 融合时机 | 输入 | 输出 | 优势 | 劣势 |
|---|---|---|---|---|---|
| 早期融合(Early Fusion) | 原始数据层 | 原始信号(图像、点云、力) | 融合特征 | 保留全部原始信息,跨模态相关性能被利用 | 信号异构难对齐,对噪声敏感 |
| 晚期融合(Late Fusion) | 决策层 | 各模态独立预测 | 加权/投票结果 | 模块化、易调试、容错好 | 丢失跨模态相关性 |
| 注意力融合(Attention Fusion) | 特征层(中间) | 各模态特征向量 | 跨注意力融合特征 | 灵活、可学习、当前主流 | 计算重、可解释性差 |
早期融合最直白:把不同模态的原始信号直接拼起来。例如把 RGB 图像、深度图、力信号在通道维度拼接成 (H, W, C_rgb + C_depth + C_force) 的张量,扔给一个 CNN。
优势:网络能在最底层就利用跨模态相关性(如视觉上的边缘和触觉上的力突变往往同时发生)。
难点:
早期融合多见于「同质传感器」(如 RGB + 深度 + 红外三路相机),对异构传感器(视觉 + 触觉 + 力)不太适用。
晚期融合让每个模态独立做出预测,最后加权或投票整合。例如三个模型分别从视觉、触觉、力觉预测「物体是否被抓稳」,最后按可信度加权。
优势:
劣势:
晚期融合适合高可靠性、模块化要求高的场景,如工业检测、安全监控。
注意力融合(也叫中间融合,Mid-level Fusion)是当前主流。思路是:每个模态先用各自的编码器提取特征向量,然后用 Cross-Attention(交叉注意力)让模态之间互相「查询」。
# Cross-Attention 融合的伪代码(简化) img_feat = ViT(image) # 图像特征 (N_img, d) tac_feat = TactileEncoder(tactile_img) # 触觉特征 (N_tac, d) force_feat = MLP(force) # 力特征 (1, d) # 用图像特征查询触觉与力 fused = CrossAttention( query=img_feat, key=concat([tac_feat, force_feat]), value=concat([tac_feat, force_feat]) )
为什么 Cross-Attention 适合融合?
注意力融合的代表作是 Transformer-based 多模态模型(如 ViLBERT、ALBEF、BLIP)。这一思路后来被 VLA 模型(第 5 章)直接继承——VLA 本质就是把视觉、语言、动作放进一个 Transformer,用注意力做融合。
融合的前提是对齐——不同模态的特征要在同一语义空间可比。当前最重要的对齐范式是 CLIP(Contrastive Language-Image Pre-training):
CLIP 的训练目标用对比损失(InfoNCE):
L = -log( exp(sim(v_img, v_text+)/τ) / Σ exp(sim(v_img, v_text_i)/τ) )
其中 v_{text}^+ 是匹配文本,v_{text_i} 是 batch 内所有文本(含负样本),τ 是温度系数。
CLIP 范式在机器人中的延伸:
| 模型 | 对齐的模态 | 机器人用途 |
|---|---|---|
| CLIP | 图像 ↔ 文本 | 开放词汇物体识别 |
| CLIP-Fields | 图像 ↔ 文本 ↔ 3D 点云 | 开放词汇场景查询 |
| Voltron | 图像 ↔ 文本 ↔ 动作 | 机器人预训练表征 |
| RT-2 | 图像 ↔ 文本 ↔ 动作(端到端 VLA) | 第 5 章详述 |
💡 核心洞察:CLIP 让机器人理解「红色杯子」这样的自然语言指令,而不再依赖固定类别表。这是 VLA 模型能让用户用自然语言下指令的根基。
多模态融合最容易被低估的难点是时序同步(Time Synchronization):
解决方案:
| 方法 | 思路 | 适用 |
|---|---|---|
| 硬件触发同步 | 用统一的硬件时钟触发所有传感器曝光 | 工业级、高精度 |
| 时间戳对齐 + 插值 | 给每帧打精确时间戳,融合时按时间插值对齐 | 通用方案 |
| 异步融合算法 | 用异步滤波器(如 EKF)处理不同频率观测 | SLAM、状态估计 |
| 缓冲队列 | 慢传感器结果缓存,等快传感器跟上 | 简单但引入延迟 |
⚠️ 常见 bug:很多机器人系统调试不通,根因是传感器时间戳没对齐。一个典型表现是「视觉看到物体,但抓的时候偏了几厘米」——其实是视觉数据滞后了 100ms,物体已经移动了。做机器人感知,第一步永远是确认时间戳对齐。
融合的另一个隐形前提是空间标定(Calibration)——所有传感器的观测要在同一个坐标系下表达。
机器人常见三类标定:
| 标定 | 目的 | 方法 |
|---|---|---|
| 相机内参标定 | 求 fx, fy, cx, cy 和畸变系数 | 拍棋盘格,张正友标定法 |
| 手眼标定(Hand-Eye Calibration) | 求相机与机械臂末端的相对位姿 | AX=XB 求解(末端运动 ↔ 相机观测变化) |
| 多传感器外参标定 | 求多个相机/雷达之间的相对位姿 | 标定板或自然特征对应 |
经典的手眼标定方程:
AX = XB
其中 A 是末端两次位姿的相对变换(从编码器读),B 是相机两次观测的相对位姿(从视觉算),X 是相机相对末端的位姿(待求)。通过多次运动求解 X,就能把相机观测映射到机械臂基坐标系。
总结七条融合系统设计准则:
融合的终极形态是统一多模态大模型:视觉、语言、触觉、动作、甚至音频全部塞进一个 Transformer,让模型在预训练中学会跨模态对齐。当前代表:
这条路线的本质是「用规模换融合」——不再手工设计融合策略,而是让大模型在数据中自己学。这也是为什么本章前面讲的传统融合范式,正在被端到端多模态大模型部分替代。但工程实践中,传统融合仍有其价值——尤其在算力受限、可解释性要求高的场景。
至此第 2 章结束。你已经掌握了具身智能的感知基础:四类模态(2.1)、视觉(2.2)、触觉与力觉(2.3)、融合(2.4)。下一章《第 3 章 SLAM 与空间环境理解》将深入机器人如何用这些传感器建立空间记忆——「我在哪、周围有什么」。