EPOS-VLM: Memory-Augmented Vision-Language Agents for Persistent and Semantically Consistent Object Captioning¶
日期: 2026-03-25
arXiv: 2603.24257
代码: https://github.com/hsp-iit/epos-vlm (有)
领域: 多模态VLM / 具身智能
关键词: embodied captioning, episodic memory, VLM agent, multi-view consistency, data association
一句话总结¶
提出 EPOS-VLM,一个统一的记忆增强 Vision-Language-Action 模型,将数据关联、物体描述和导航策略整合到单一自回归框架中,通过物体级 episodic memory 的文本序列化使 VLM 能跨视角推理,在 HM3D 上实现标准 captioning 指标 +11.86% 和跨视角描述一致性 +7.39% 的提升。
研究背景与动机¶
- 领域现状:现代 VLM(BLIP-2、Qwen-VL、LLaVA)在静态图像 captioning 上表现优异,但它们是在独立图文对上训练的,本质上是无状态的——每次看到一张图就独立生成描述,不具备跨帧记忆能力。
- 现有痛点:当 VLM 被部署到具身 agent 中进行场景探索时,同一个物体(如灰色沙发)从正面可能被描述为"gray sofa",侧面变成"armchair",远处甚至被认成"bed"。这种语义漂移严重破坏了物体身份的持久性,导致下游任务(场景图构建、人机对话、导航规划)无法可靠地引用物体。
- 核心矛盾:VLM 的无状态推理 vs 具身场景要求的持久化语义一致性。现有解决方案要么是离线的(先收集所有视角、再统一聚合描述,如 IC3),要么是多阶段流水线(探索→关联→描述各自独立学习,如 Galliena et al. ICCV2025),前者不支持实时交互,后者各模块无法联合优化。
- 本文要解决什么? (a) 如何在 agent 导航过程中实时维护物体身份的持久性?(b) 如何让描述生成器"看到"历史观测信息以消除视角歧义?(c) 如何让导航策略主动去找能消解歧义的视角?
- 切入角度:人类通过移动、多角度观察来建立稳定的物体认知——语义一致性来自记忆和重复观察,而非单帧推理。受此启发,给 VLM 加上 episodic memory(情景记忆),把"记住看过什么"和"去哪里看"统一到一个模型中端到端学习。
- 核心 idea 一句话:将物体级 episodic memory 序列化为文本 token 注入 VLM 的自回归序列,统一数据关联+描述生成+动作预测三个任务,实现在线、持久、一致的物体 captioning。
方法详解¶
整体框架¶
输入:当前 RGB-D 帧 \(I_t\)(含实例分割的 bounding box 和临时 ID 标注)+ 俯视探索地图 \(E_t\) + 上一步的 episodic memory \(M_{t-1}\)。这三部分被统一编码为 VLM 的输入上下文。模型自回归地生成一个结构化输出序列:[MATCH] → [CAPTION] → [ACTION],分别输出数据关联决策、物体描述和导航动作。循环执行,memory 持续更新。
核心流程:Agent 导航 → 检测当前帧物体 → 模型根据 memory 做数据关联(当前检测对应哪个已知物体?) → 对关联上的物体生成视角不变的描述 → 选择下一步导航动作(倾向于去看不一致的物体)→ 更新 memory。
关键设计¶
-
Episodic Object Memory 的文本序列化
- 做什么:将场景中所有已知物体的记忆表示为结构化文本,注入 VLM 语言上下文
- 核心思路:每个物体编码为
[OBJ] oid [POS](x̂,ŷ,ẑ) [CAPTIONS]{(ci, fi)},其中 \(o_{id}\) 是持久 ID,\((x̂,ŷ,ẑ)\) 是离散化 3D 坐标,\((c_i, f_i)\) 是历史描述及其出现频率。所有条目连接后包裹在[SCENE-START]...[SCENE-END]中。这样完全不修改 VLM 架构,仅通过文本协议将记忆注入模型 - 设计动机:利用预训练 VLM 的语言推理能力来处理结构化记忆。把位置和描述历史明确写成文本,让模型能"看到"之前对同一物体说过什么,从而在新视角下做出一致的描述。描述频率信息 \(f_i\) 则作为跨视角一致性的语义先验——出现多次的描述更可靠
-
基于 [MATCH] Token 的数据关联
- 做什么:将"当前检测属于哪个已知物体"的关联决策转化为自回归序列生成任务
- 核心思路:每帧的检测物体被分配临时 ID \(r_t^j\)(随机采样,直接渲染在 RGB 图上)。模型生成形如
[MATCH] r_t^j → oid或[MATCH] r_t^j → [NEW_ID]的 token。前者表示匹配到已有物体,后者表示发现新物体。关键是身份分配不是从视觉外观直接预测的,而是通过联合推理当前视觉证据、空间相近性和 memory 中积累的语义信息来决定 - 设计动机:传统方法用点云匹配或特征相似度做关联,是独立于描述的模块。将关联放入与 caption/action 相同的自回归流中,使三者能联合优化——关联的准确性直接影响描述的一致性,描述的不确定性又反过来驱动探索策略
-
3D-Aware Consistent Pseudo-Captioner (3D-CPS) 自监督训练信号
- 做什么:在训练阶段为每个物体生成视角不变的伪标签(pseudo-caption),用于自监督微调
- 核心思路:分两步——(i) 用"描述-频率字典" \(C_o\) 统计每个物体的所有历史描述及出现次数,频繁出现的描述更可能是正确的物体固有属性,偶发描述可能是视角依赖的噪声;(ii) 利用物体的 3D 点云估计空间范围,选择表面覆盖率最大、视角多样性最高的图像 crop,然后用大模型(Qwen3-VL-30B)综合频率表和精选图像生成最终伪标签。训练时,无论从哪个视角看到物体 \(o\),模型都被监督生成同一个 \(\tilde{c}_o\)
- 设计动机:之前的伪标签方法(LD-CPS)完全基于语言层面的聚合,无法处理视觉歧义。3D-CPS 引入几何信息选择最具信息量的视角,并通过频率过滤抑制噪声描述,使伪标签质量本身就更一致、更准确
-
联合导航策略
- 做什么:预测导航动作 \(a_t \in \{\)move_forward, turn_left, ...\(\}\),引导 agent 去看描述不一致的物体
- 核心思路:动作预测和 caption/关联在同一个自回归序列中联合训练。训练数据由 disagreement-based 策略生成——先用启发式策略让 agent 导航到描述不一致度高的物体附近,收集轨迹作为监督。学到的策略会主动重访语义不稳定的物体,而非仅追求几何覆盖
- 设计动机:语义一致性不只是记忆和聚合的函数,还取决于"看什么"。Frontier exploration 只追求空间覆盖,不关心语义。而将动作选择纳入统一模型后,不确定性可以直接驱动探索
损失函数 / 训练策略¶
- 基于预训练 VLM 微调(Qwen3-VL-2B),采用 LoRA 高效微调
- 损失函数:标准 cross-entropy,在
[MATCH]、[CAPTION]、[ACTION]三种 token 上联合计算,最大化 \(P(Y_t^*|X_t)\) - 训练配置:3 epochs,AdamW,lr=\(2\times10^{-4}\),weight decay \(0.01\),线性 warmup 3%,2×A100,batch 16,gradient accumulation 4
实验关键数据¶
主实验 — 物体级 Caption 精度与跨视角一致性 (HM3D test set)¶
| 模型 | SPICE↑ | CIDEr↑ | CS↑ | Mean CS↑ | IQR↓ |
|---|---|---|---|---|---|
| Qwen3-VL-2B | 29.88 | 0.84 | 60.01 | 59.65 | 29.12 |
| BLIP-2 | 26.16 | 0.57 | 56.88 | 60.15 | 25.29 |
| InternVL-3B | 30.02 | 0.98 | 61.18 | 55.19 | 27.34 |
| Galliena et al. (ICCV25) | 39.78 | 1.12 | 70.00 | 81.98 | 8.87 |
| EPOS-VLM | 41.82 | 1.87 | 77.12 | 89.37 | 2.79 |
| w/o memory | 27.67 | 0.85 | 64.62 | 52.12 | 32.01 |
消融实验 — 导航策略对 Caption 质量的影响¶
| 探索策略 | SPICE↑ | CIDEr↑ | Mean CS↑ | IQR↓ |
|---|---|---|---|---|
| Random Goal | 33.88 | 1.38 | 80.33 | 9.03 |
| Frontier Exploration | 35.36 | 1.50 | 80.21 | 8.45 |
| EPOS-VLM policy | 41.82 | 1.87 | 89.37 | 2.79 |
关键发现¶
- Memory 是核心:去掉 episodic memory 后 SPICE 从 41.82 暴跌到 27.67(-14.15 p.p.),Mean CS 从 89.37 降到 52.12(-37.25 p.p.),证明记忆机制是跨视角一致性的根本保障
- 主动探索 >> 被动覆盖:EPOS-VLM 的学习策略比 Frontier Exploration 在 Mean CS 上高 9.16 p.p.,IQR 低 5.66,说明主动重访不一致物体对语义一致性至关重要
- 联合 vs 多阶段:相比 Galliena et al. 的多阶段流水线,端到端方法在 CIDEr 上 +0.75、Mean CS +7.39 p.p.,联合优化的收益显著
- 跨域泛化:HM3D 训练 → Gibson 测试,EPOS-VLM 仍大幅优于 baseline(SPICE 39.14 vs 35.58),说明学到的记忆机制可迁移
- 计算效率:文本化 memory 维持恒定 ~0.7s/step 和 <10kB 内存;点云 baseline 随时间线性增长,episode 末尾达 ~1GB
亮点与洞察¶
- 记忆的文本序列化设计非常巧妙:不改模型结构,用结构化文本协议把 episodic memory 注入预训练 VLM 的上下文窗口。这意味着任何预训练 VLM 都可以用相同方式获得持久记忆能力,迁移成本极低
- 三任务统一自回归:把数据关联(MOT 层面的任务)、caption(语言生成任务)、action(RL 层面的任务)压入同一个 token 序列自回归生成。这种"所有决策共享同一个思考过程"的范式可以推广到其他具身多任务场景
- 描述频率作为一致性先验:\(f_i\) 的引入非常直觉——"被多次描述为 gray couch 的物体更可能确实是 gray couch"。这种自监督信号不依赖任何人工标注,可以复用到其他需要跨视角对齐的场景(如 3D 场景图构建)
局限性 / 可改进方向¶
- 外部分割器依赖:使用 Mask2Former 做实例分割,预测不准的 mask 会导致关联和描述双重错误。未来可以将分割模块集成到统一框架中
- 静态环境假设:实验在 Habitat 仿真中进行,假设理想传感器和静态场景。真实世界中需要处理传感器噪声、动态物体
- 描述粒度有限:伪标签训练只生成一个 concise caption,不支持多粒度描述(如"带木腿的灰色布艺沙发"vs "沙发")。可以扩展到层次化描述生成
- 记忆容量:目前 memory 条目数等于环境中物体数,大规模场景下 token 序列会很长。需要选择性记忆/遗忘机制
- 相关 idea 参考:Language-Conditioned Gaussian Map Pruning for Embodied Navigation
相关工作与启发¶
- vs IC3 (Chan et al. EMNLP 2023):IC3 用 LLM 聚合多视角 caption,假设所有输入视角都正确,缺乏噪声过滤。EPOS-VLM 的频率先验和 3D 筛选机制能有效过滤视角依赖的错误描述
- vs Galliena et al. (ICCV 2025):前作将探索、关联、描述解耦为多阶段流水线。EPOS-VLM 将三者统一,并从裁剪物体改为使用完整图像帧+memory context,上下文更丰富,端到端优化收益显著(CIDEr +0.75, Mean CS +7.39)
- vs 3DLLM-Mem / MemoryVLA:这些方法为导航/操作任务优化 memory,目标不是描述一致性。EPOS-VLM 专门为"准确且一致的物体描述"设计 memory 结构和训练目标
- 启发:文本序列化 memory 的思路可以迁移到 3D 场景图增量构建——agent 在探索中实时构建节点(物体)和边(空间关系),用类似
[SCENE-START]...[SCENE-END]的方式为 VLM 提供场景级上下文
评分¶
- 新颖性: ⭐⭐⭐⭐ 统一框架有创意,但各组件(memory augmented VLM, 数据关联, 自回归动作预测)单独看并不新
- 实验充分度: ⭐⭐⭐⭐⭐ 五个评估维度(伪标签质量/描述精度/跨视角一致性/数据关联/导航策略),跨域泛化,计算效率分析,7 个表 + 7 个图
- 写作质量: ⭐⭐⭐⭐⭐ 问题定义精准,方法描述结构清晰,Fig.1 的例子非常直观
- 价值: ⭐⭐⭐⭐ 对具身 AI 语义理解有直接贡献,开源了代码/模型/数据,但应用范围限于仿真环境的物体描述