跳转至

Vinci2: Providing Proactive Assistance in Continuous Egocentric Videos

会议: ECCV 2026
论文: ECCV 2026 Poster
领域: 视频理解 / Agent
关键词: 主动式助手;第一人称视频;流式记忆;检索增强推理;主动性基准

一句话总结

Vinci2 把「第一人称助手该不该主动开口」重新形式化为一个依赖长时上下文的决策问题,并同时给出首个连续第一人称视频主动服务基准 EgoServe(3000+ 服务实例、4 个时间记忆跨度、10 个子类)与免训练的记忆增强 agent EgoMemo(多尺度时间摘要 + 演化知识图谱 + 视觉嵌入档案,配三路并行检索与字幕重建),在 EgoServe 上把总体 F1 从基线 GPT-5-mini 的 4.7 提到 8.0,并在 5 个已有基准上保持或刷新成绩。

研究背景与动机

第一人称助手目前基本只有两种工作范式。一是反应式:绝大多数 Video-LLM(VideoChat、Apollo 等)只在用户显式提问后才回答,模型本身没有任何发起交互的接口;二是半主动式:StreamBridge、EWO、ProAssist 这类事件触发系统要求用户事先给出任务指令,然后持续监听视频流、命中预定义事件就生成回应,设备端的 Vinci 也属于这一路。两种范式都建立在一个未被检视的假设上——只要"检测到了什么",就应该"说点什么"。

真正的困难在于:半主动系统受限于前置指令的覆盖范围与当前视觉片段,既无法调用跨分钟、跨小时甚至跨天的历史观察来做判断,也没有任何机制去评估此刻打断用户是否划算。而这恰恰是主动辅助与事件检测的根本分歧——一次错误的提醒不只是浪费一次生成,它会消耗用户对系统的信任,所以"什么时候保持沉默"和"什么时候开口"必须是同一个决策的两面,且这个决策只能由用户自己的历史、习惯与当前活动来支撑:同样一个"用户拿起了手机"的观察,对正在做饭的人是干扰,对昨天反复用手机计时录像的人则是重复习惯的证据。

本文的切入角度是先让这个问题可被度量、再给出可行性证明。作者把主动辅助形式化为流式第一人称感知上的联合决策-生成任务:每个时间步 agent 观察当前片段,输出一个二值介入决策与(决策为 1 时)一段服务响应,且一次正确响应必须同时满足时间窗口、服务类别、内容相关性三个条件。为了让这个定义可评测,论文构建了 EgoServe 基准,把主动服务按所需历史长度分成 Instant / Short-Term / Episodic / Long-Term 四个时间记忆跨度;在此基础上提出免训练的 EgoMemo 作为基线系统。核心 idea:把「该不该介入」从事件检测的副产品提升为一条显式的推理输出——agent 先判断当前观察是否值得介入,若需要更深上下文就并行检索时间、语义、视觉三路记忆,再用 VLM 把结构化检索结果重建为连贯叙述,最后由同一个 reasoner 给出介入决策与服务内容。

方法详解

整体框架

EgoMemo 的输入是一条连续的第一人称视频流 \(V=\{v_1,v_2,\dots\}\),输出是每个时间步的介入决策 \(d_t\in\{0,1\}\) 与响应 \(r_t\)。整条流水线由两个阶段组成,且两个阶段都是增量式的、永不要求访问完整视频:第一阶段(流式记忆构建)把视频流切成不重叠的短片段,为每段生成带时间戳的密集字幕并抽取关键帧,再由这些原子输入增量地长出三种互补的记忆表示;第二阶段(流式检索增强推理)在每个时间步接收当前片段字幕与最近一段短期上下文,判断是否需要更深的历史证据,需要则生成检索查询并调用三条并行通路,最后把证据合成上下文交给 reasoner 出决策。

这套架构同时支撑两种模式,且不需要任何结构性改动:主动模式下触发源是 agent 自己对当前观察的判断,它可以决定 \(d_t=0\) 什么都不说;反应模式下用户查询 \(q\) 充当外部触发器,默认 \(d_t=1\),走的仍是同一条检索与推理管线。这种统一性是刻意的——它意味着主动能力不是外挂的一个开关,而是"检索-推理"这条主干在无外部触发时依然运行的自然结果。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["第一人称视频流<br/>切片段 + 生成字幕与关键帧"] --> B["三级多尺度时间记忆"]
    A --> C["演化知识图谱"]
    A --> D["视觉嵌入档案"]
    A -->|当下观察已足够判断| F["介入决策与响应<br/>d_t=0 保持静默 / d_t=1 触发服务"]
    B --> E["三路并行检索与字幕重建"]
    C --> E
    D --> E
    E --> F

关键设计

1. 三级多尺度时间记忆:让检索能在正确的时间粒度上发生

字幕是 EgoMemo 唯一的文本事实来源,但单个片段的字幕只在秒级尺度上有意义,用它去回答"用户这几天的作息"这类问题会立刻失效;反过来,只保留小时级摘要又会丢掉触发安全提醒所需的细节(比如刀是握在刀柄上还是刀刃上)。为此论文把字幕组织成 clip → activity → session 三级层次:clip 级保留细粒度感知细节,activity 级周期性聚合连续片段字幕以刻画一段活动,session 级再聚合活动条目以编码长时作息。聚合本身是简单的逐级摘要 \(M_A^{(j)}=\text{Summarize}(\{c_t\}_{t\in\mathcal{W}_j})\),session 级同理聚合活动条目(原文公式排版损坏,此处按语义还原,⚠️ 以原文为准),关键在于roll-up 是全增量的:只有新积累满一个窗口的片段才会触发上一级摘要,已经写好的层级永不被重算。三级文本随后都被同一个文本编码器编码成稠密向量并建立索引,于是"用户昨天有没有做过这件事"可以在 session 级向量上问,"这一步是不是做错了"可以在 clip 级向量上问,而不需要把两种问题塞进同一个嵌入空间。消融里把三级退化成单一级别(w/o MS)会让总体 F1 从 8.0 掉到 7.0,其中依赖跨天长时模式的 Memory Link 从 4.9 掉到 1.9、Routine Optimization 从 11.8 掉到 5.7,说明这套层级不是存储优化而是能力前提。

2. 演化知识图谱:把跨时间段的实体关联显式存下来

纯向量检索有一个结构性盲区:它按字面/语义相似度取回片段,因此很难回答"这和我上周碰到的那个东西是不是同一个"。用户在不同日子对同一件物品的称呼可能不同,描述也可能因为场景变化而毫无词汇重叠,这类关联恰好是 Long-Term 服务(Memory Link、Habit Coaching)赖以成立的基础。EgoMemo 的处理是维护一张随观测不断演化的知识图谱 \(G=(N,E)\):对每条新的片段字幕,先让 LLM 抽取其中的实体与关系,再通过基于名称的实体消解把它们合并进全局图,同一个实体在图里只有一个节点、并持续积累指向其来源字幕的链接。这样图本身就构成了时间记忆之上的一个结构化索引:当检索查询命中某个实体时,system 可以顺着图扩展到它的一跳邻居,把"语义上相关但从没被同一句话提过"的事件也拉进证据集。消融显示删掉图谱通路(w/o GSR)使总体 F1 降到 6.5,Memory Link 直接归零——在所有单组件消融里,这是唯一让 Memory Link 完全失效的移除,说明跨时间实体链接这件事确实无法由时间检索或视觉检索代偿。

3. 视觉嵌入档案:检索那些说不出口的视觉线索

字幕是 VLM 对画面的一次有损压缩,物体外观、空间布局这类难以言说的视觉细节往往在生成字幕时就被丢掉了,而它们又恰恰是"同一个杯子""同一个房间角落"这类判断的关键。为此 EgoMemo 额外维护一份视觉档案:把每个片段采样的关键帧用一个多模态编码器编码成向量,与来源字幕下标和时间戳一起存起来。检索时,由于查询是文本形式,系统会先把查询改写成以视觉属性为中心的描述,再用同一个多模态编码器编码、在档案里做 top-k 相似检索,取回的关键帧按下标映射回对应的片段字幕。这条通路的价值在于它能召回与查询没有词汇重合的时刻——用户说"我的钥匙",档案里可能是一条只写了"桌面上一个金属反光小物件"的字幕。消融里禁用视觉通路(w/o VSR)总体 F1 8.0→6.9,掉幅是三条通路里最小的,但影响集中且高度可解释:Memory Link 4.9→3.2、Routine Optimization 11.8→6.4,正是需要靠重复出现的物体与场景来确认"这是同一件事"的两类服务。

4. 三路并行检索与 VLM 字幕重建:把异质证据变成可推理的上下文

前三个设计解决"记什么",这一个解决"怎么用"。每个时间步,reasoner 先拿到当前片段字幕与最近的短期上下文,判断是否需要更深的历史证据;若需要,它自己生成检索查询 \(q_r\),同时触发三条通路——时间检索在三级摘要向量上取 top-k 相似条目(约束 \(t'\le t\) 以维持流式语义,且允许 clip/activity/session 三级同时被命中以适配不同粒度的提问)、图谱检索在 \(G\) 上做实体匹配并扩展一跳邻居、视觉检索走上面描述的档案通路。三条通路取回的都是片段下标而非自足的描述:图谱和视觉两条路径返回的只是一串"哪几条字幕相关",直接把这些零散片段丢给 LLM,它既无法解析跨片段的指代,也拿不到字幕生成时就已经丢掉的视觉细节,这正是 w/o Recons. 消融中 Memory Recall 与 Memory Link 双双归零、总体 F1 掉到 6.6(全组最大跌幅)的原因。论文的补法是统一的VLM 字幕重建步骤:对每一组检索下标,取出对应的片段字幕与关键帧,以检索查询为条件让 VLM 重新生成一段重建字幕——它在生成过程中消解指代、补回原字幕缺失的视觉信息、并按查询的关注点组织成连贯叙述。时间通路直接返回的字幕、图谱重建上下文、视觉重建上下文最后被汇总成统一检索上下文 \(\hat{\mathcal{C}}\),连同当前字幕与查询一起交给 reasoner,输出 \(d_t\)\(r_t\)

需要说明介入判据的边界:论文并没有给出一个显式的阈值公式或评分函数来界定"现在该帮忙",触发与否是 reasoner 基于提示词的自主判断,只有需要更深证据时才回落到检索(提示词与超参细节在补充材料中,⚠️ 以原文为准)。因此 EgoMemo 的"克制"来自语言模型的判断力而非可调的判据,这也是它留给后续工作的空间——作者在展望中明确把"从人类偏好中学习介入时机"列为下一步。

一个完整示例

原文 Fig. 4 右侧的例子可以把整条流水线走一遍。第 2 天某个时刻,用户举起手机、屏幕上是一个计时器,当前片段字幕因此平淡无奇——单看这一帧,没有任何事件值得报警。但 reasoner 判断这条观察需要更深的上下文,于是生成检索查询,三路同时触发:clip 级时间检索找回当天多次类似的"举起手机"片段,session 级摘要给出"用户有长时间录制自己操作过程的习惯";图谱检索把"手机"这个实体扩展一跳,牵出此前与之共现的"支架""拍摄角度"等关联节点;视觉档案则召回此前多天里手机屏幕亮着的相似画面,其中一些片段的字幕完全没有提到"手机"或"计时"。三组下标的证据分别经 VLM 重建后汇总成一个跨会话的活动模式描述,reasoner 据此判定这是一次 Routine Optimization 服务:它不是提醒"你在看手机",而是基于多天重复观察建议如何把这个录制流程做得更省事。与之对照,同一模型的另一个触发是纯粹的即时反应:观察到用户徒手刷洗刀具,仅凭当前片段字幕就立刻发出 Safety Alert,不需要任何检索。两个例子放在一起,正好展示了同一套管线在同一时刻如何按需伸缩——Instant 服务走"零检索直出",Long-Term 服务走"三路检索 + 重建"。

损失函数 / 训练策略

EgoMemo 完全免训练(training-free),所有能力都由现成模型拼装:片段字幕由 Qwen3-VL-8B-Instruct 生成;activity 与 session 级摘要由 LLM 汇总;知识图谱的实体与关系抽取用 GPT-4o-mini;文本编码器是 OpenAI text-embedding-3-small;关键帧编码器是 ImageBind;reasoner 在流式基准上用 GPT-5-mini、在离线基准上用 GPT-5.2(⚠️ 原文正文写 GPT-5.2,参考文献条目却标注为 GPT-5.1,此处以原文为准)。时间窗口随视频时长自适应:EgoLife 这类超长录制用 30 秒 / 5 分钟 / 1 小时对应 clip / activity / session 三级,较短的在线基准用 10 秒 / 1 分钟 / 5 分钟。评测侧的时间容差窗口 \(\delta\) 也按数据源特征尺度逐数据集设定:EgoLife 60 秒、CaptainCook4D 25 秒、HoloAssist 10 秒。值得注意的是,论文还说明了同一架构如何转用于离线任务:先单次前向跑完整段视频建好全部记忆,回答时采用由粗到细策略——先只拿 activity 与 session 摘要尝试作答,判断信息不足才回落到 clip 级检索,因此离线适配同样不需要改动架构。

实验关键数据

主实验

EgoServe 上的总体 F1 与逐子类 F1(Instant 含 SA/TU,Short-Term 含 NSG/ER/RR,Episodic 含 MR/TR,Long-Term 含 HC/ML/RO;LLM-score 为匹配到的预测-真值对上响应的 1–5 分平均):

模型 SA TU NSG ER RR MR TR HC ML RO Overall F1 LLM-score
Qwen3-VL-Plus 5.2 1.5 8.6 10.4 3.4 0.0 1.8 4.4 0.0 0.0 3.5 2.8
GPT-5-mini 12.5 3.6 9.5 1.0 5.2 0.0 9.4 5.7 0.0 0.0 4.7 3.0
EgoMemo(本文) 11.4 7.5 24.7 1.7 4.7 3.8 5.7 3.7 4.9 11.8 8.0 2.8

泛化到已有基准(EgoMemo 全部免训练;ESTP-Bench 的 EyeWO 是表中唯一经过训练的模型):

基准 指标 EgoMemo 之前最好 说明
ESTP-Bench(显式主动) 平均分 27.6 23.6 (EyeWO) TRU 32.4 vs 25.1,EOSC 35.8 vs 20.8
ESTP-Bench(隐式主动) 平均分 34.7 52.5 (EyeWO) 唯一受训模型领先,其余方法均免训练
OVO-Bench(实时感知) 平均分 75.15 64.46 (GPT-4o) 回溯追踪 49.60 vs GPT-4o 60.75
EgoSchema 准确率 74.8 67.6 (EgoThinker) +7.2
QAEgo4D 准确率 68.0 66.2 (EgoThinker) 长时情节记忆查询
EgoTaskQA 准确率 60.9 64.4 (EgoThinker) 短程序段内的细粒度状态推理略逊

消融实验

在 EgoServe 上逐组件移除(Overall F1 与受影响最大的子类):

配置 Overall F1 关键变化 说明
EgoMemo 8.0 完整模型
w/o MS 7.0 ML 4.9→1.9,RO 11.8→5.7 三级时间层级退化为单一尺度
w/o Recons. 6.6 MR 3.8→0.0,ML 4.9→0.0 去掉 VLM 字幕重建(跌幅最大)
w/o VSR 6.9 ML 4.9→3.2,RO 11.8→6.4 去掉视觉相似检索
w/o GSR 6.5 ML 4.9→0.0 去掉图谱语义检索(唯一让 ML 归零的单项移除)
w/o MTR 6.8 ML 4.9→2.1 去掉多尺度时间检索

关键发现

  • 基线的瓶颈在"何时说"而不在"说什么"。 GPT-5-mini 匹配到的服务实例远少于 EgoMemo(Overall 4.7 vs 8.0),但两者的 LLM-score 几乎相同(3.0 vs 2.8,Qwen 也是 2.8)——说明一旦预测落在正确的类别与时间窗内,响应质量并不构成主要差距,选对时机才是。
  • 历史越长的服务越能区分方法。 两个基线在 Long-Term 的 ML 与 RO 上全部得 0,而 EgoMemo 拿到 4.9 与 11.8;Qwen3-VL-Plus 甚至在 Episodic 的 MR 上也是 0。这与论文的设计假设一致:能力差距主要由能否访问累积上下文决定。
  • 三条检索通路互补,没有一条可以被省略。 移除任一路都会掉点(6.5–6.9),且掉点位置各不相同:图谱影响 Memory Link,视觉影响 Memory Link 与 Routine Optimization,时间检索影响面最广(ML 掉到 2.1)。
  • 重建步骤的价值大于任一检索通路。 w/o Recons. 的 8.0→6.6 是最大单点跌幅,印证了"检索下标 ≠ 可推理证据"这一判断:结构化索引必须经过一次以查询为条件的再叙述,才能被 reasoner 用起来。
  • 绝对分数整体偏低(最好的方法 Overall 也只有 8.0、LLM-score 2.8/5),作者把这解释为任务本身的难度而非方法失败——时间窗、类别、内容三项必须同时对上,EgoServe 的定位正是暴露这些挑战的诊断工具。

亮点与洞察

  • 把"打扰的代价"写进了任务定义。 时间窗口、服务类别、内容相关性三条件同时成立才算一次正确响应,这使得"少说少错"的策略同样会被 Recall 惩罚——基准不会奖励一个沉默的助手,这是它区别于事件触发式评测的关键。
  • 记忆沿"时间跨度"而非"模态"分层。 四个服务类别(Instant / Short-Term / Episodic / Long-Term)是按所需上下文长度划分的,因此同一套记忆结构可以直接回答"这类服务需要看多长的历史",也天然说明了为什么单一粒度的记忆库会同时犯两类错误:看太短会误报,看太长会漏报。
  • 三条检索通路的分工是正交而非冗余的。 时间检索管"什么时候",图谱管"是不是同一个东西",视觉管"说得出来吗",三者的失效模式互不覆盖(消融中各自的掉点位置不同),这个"异构并行检索"的模板可以迁移到任何长时记忆 agent——尤其是那些已有向量库但缺少实体级联通的系统。
  • 流式优先的设计反哺离线任务。 因为记忆构建本来就是增量的,离线场景只需一次前向建库再加一个由粗到细的取用策略(先摘要后检索)即可复用,且实测在 EgoSchema 上超过专职的 EgoThinker 7.2 个点。这种"先流式后离线"的设计顺序值得其他长视频工作借鉴:它强迫系统在每一时刻都只依赖过去,从而天然杜绝了离线评测里常见的未来信息泄漏。
  • 免训练的工程价值。 整条流水线由现成模型拼装、无参数更新,意味着基准发布同时就附带了一个可复现的强基线,也说明当前瓶颈更可能在于记忆组织方式而非模型能力。

局限与展望

作者承认三处局限:字幕化过程会丢失细粒度视觉细节(文本记忆是主要载体);基于名称的实体消解对视觉上容易混淆的实体可能失败;半自动标注管线可能对"基础模型更容易生成的服务类型"存在偏置,从而影响基准的分布。

从评测设计看还有几处值得追问。其一,时间容差窗口 \(\delta\) 是按数据集特征尺度手工设定的(EgoLife 60s / CaptainCook4D 25s / HoloAssist 10s),这意味着不同数据源之间的 F1 不能直接横向比较,而 Overall 一列却是把这些异质数值平均起来的,读者需要留意它的聚合含义。其二,三个数据源的跨度覆盖并不均衡——HoloAssist 的标注天然只覆盖 Instant 与 Short-Term,CaptainCook4D 集中在错误纠正,长时服务几乎完全由 EgoLife 承担,因此 Long-Term 的结论实际建立在单一数据源上。其三,LLM-score 只有 2.8/5,说明即便预测被正确匹配,响应本身的质量也仍在中低水平,而这个分数由 GPT 自动评判并只对匹配上的样本计算,与 Recall 之间存在一种"匹配越少、分数越可能虚高"的微妙耦合(表 1 中基线 3.0 略高于 EgoMemo 的 2.8 就是这种耦合的体现)。

改进方向上,作者提出的三条都很具体:从人类偏好中学习介入时机(而不是靠提示词里的判断)、引入音频上下文(第一人称视频里的对话与声音常是服务触发的关键线索)、把 EgoServe 扩展到多轮主动对话与多用户场景。就笔记作者的补充而言,还有两条值得试:让实体消解从纯名称匹配升级为视觉-文本联合匹配(可由视觉档案直接支持),以及把 \(\delta\) 从人工设定改成随服务类别自适应的软窗口,让时间精度本身成为一个可分析的量而不是一个评测设定。

相关工作与启发

  • vs StreamBridge / EWO / ProAssist(事件触发的半主动系统): 它们由用户预先给定的任务指令驱动,检测到预定义事件即生成回应,把"检测到"等同于"该介入",且推理只用到当前视觉上下文。EgoMemo 的区别在于两点:介入本身是一次显式推理输出(可以输出 \(d_t=0\)),且决策建立在跨分钟到跨天的检索上下文上。代价是 EgoMemo 的触发依赖 LLM 提示词判断,缺乏半主动系统那种可解释、可调试的事件定义。
  • vs MovieChat / MA-LMM / VideoAgent(记忆增强长视频模型): 这些工作也解决长视频超出上下文窗口的问题,但记忆是按固定压缩策略写死的,且默认推理时可访问完整视频。EgoMemo 的记忆构建与检索都是流式的(检索约束 \(t'\le t\)),并且额外要求记忆可被检索查询"再叙述"一次。
  • vs VideoRAG / Vgent / WorldMM(图索引 RAG 长视频方法): 它们同样引入图驱动的索引与多类型记忆,但假设离线访问完整视频,且检索结果通常直接送入 LLM。EgoMemo 在两点上不同:全流式,以及用 VLM 字幕重建弥合"结构化检索结果"与"可推理的上下文描述"之间的信息落差——后者在消融中是单项贡献最大的一环。
  • vs Vinci(前作,设备端第一人称助手): Vinci 是反应式的实时助手,Vinci2 的定位是把同一路线推进到主动:能力上增加了跨会话记忆与介入决策,评测上配套了 EgoServe。
  • vs ContextAgent / SensibleAgent / ProAgentBench(主动助手与基准): 它们主要面向语言模态或短时感知上下文(智能眼镜、耳机、可穿戴传感),不涉及连续第一人称视频的长时记忆与时间推理;EgoServe 补的正是"连续视频流上的主动性"这一格。

评分

  • 新颖性: ⭐⭐⭐⭐ 把主动辅助从"事件检测"重新定义为依赖长时上下文的介入决策问题,并首次给出配套基准,问题定义本身是主要贡献
  • 实验充分度: ⭐⭐⭐⭐ 一个新基准加五个已有基准、六个消融配置,覆盖面很广;但主基准上最优方法 Overall 仅 8.0,绝对提升有限,Long-Term 结论依赖单一数据源
  • 写作质量: ⭐⭐⭐⭐ 三范式划分清晰、图表完备、动机与方法对得上;表 1 混排基线与消融、部分公式排版损坏,阅读时需对照正文
  • 价值: ⭐⭐⭐⭐ 基准 + 免训练强基线的组合让"何时打扰"第一次成为可度量、可复现的问题,对可穿戴助手与长时记忆 agent 两条线都有直接参考价值