EgoANT

EgoANT

用开源视觉语言模型对第一视角人类视频进行分段与标注

第一视角人类数据 子任务标注 预训练
进入报告

导读:为什么要给第一视角人类视频做子任务标注

第一视角(egocentric)人类视频通常由头戴相机拍摄,记录人在真实环境中完成日常操作的过程,例如在厨房切菜、在工位装配零件或在商店整理货架。相机随头部运动,双手及其操作对象构成画面的主体;场景、光照、遮挡以及操作中的失败与重试均自然发生,而非来自预设的实验室环境。近年来,EgoVerse10、EgoDex9 和 EgoLive11 等公开数据集已将此类视频扩展到千小时量级。

这类数据对机器人学习的潜在价值,首先在于它能提供丰富的视觉、操作语义与行为先验6910。尽管人手与机器人末端执行器的形态不同,物体状态、任务意图以及「根据观测选择动作」的高层概念仍有相通之处。人类操作视频因此可用于视觉—语言—动作(VLA)表征学习;随后再利用机器人数据,将这些表征适配到具体机器人的观测与动作空间。与遥操作采集的机器人数据相比,真实人类视频还具有两项优势:其一,覆盖的场景、物体和技能更为丰富;其二,采集不依赖机器人硬件和遥操作员,更容易在多个真实环境中并行扩展。

原始第一视角视频本身可以用于视频生成和世界模型训练;结合手部重建得到的腕部轨迹,还可以提供弱动作监督。这里称为「弱监督」,是因为腕部轨迹只能近似描述手部运动,并不包含机器人控制指令、接触力或执行器状态,也未必能直接映射到具体机器人本体。然而,这些信号通常不显式说明当前正在执行哪项操作,以及该操作何时完成。这类时间对齐的高层语义正是许多机器人策略所需要的监督。VLA 训练样本通常由「观测、语言指令、动作」组成,其中语言指令需要与相应的时间区间对齐。π0.5 等层级模型还会先预测高层子任务指令,再以此为条件生成低层动作1;这类高层模块可以从时间对齐的子任务标签中获得直接监督。分段边界同样具有独立价值:它界定一次完整操作的起止,可直接服务成功判定、技能检索与数据筛选配比。因此,将长视频转化为可用监督,需要同时回答两个问题:每项操作何时开始、何时结束,以及该时间段内完成了什么操作。本文将这两个问题分别称为子任务分段与语义标注。

自动完成这两项任务并不容易。第一视角画面随头部运动,手部经常遮挡操作对象;相邻动作之间缺少清晰停顿,细粒度操作又可能连续发生。人工逐段标注成本很高,因此更需要可审计、可复现且成本可控的自动标注流程。

TL;DR

EgoANT pipeline overview flowchart
流程总览:左分段、右标注。推荐两条管线——单路原始帧直出,或多候选汇入选择器后送出。
视频分段得分(Segment F1)
0.2031
在 470 个参考片段中,有 79 个预测片段通过时间匹配。
配置:Qwen3.6-27B · 时间戳网格 · 粗分后局部精修
固定边界标注准确率(Label Acc)
55.7%
在人工边界固定的 470 个参考片段中,262 个描述通过语义匹配。
配置:Qwen3.6-27B · 原始帧 · 固定人工分段
端到端整流程得分(E2E F1)
0.1542
79 个片段通过时间匹配,其中 60 个进一步通过语义匹配。
配置:Qwen3.6-27B 分段 + Qwen3.5-397B-A17B 候选选择器

实验范围:WGO-Bench 的第一视角人类子集 HomER,共 25 个视频、470 个人工标注片段。分段与描述均由开放权重 Qwen 视觉语言模型生成;Gemini-3.5-Flash 仅用于离线充当语义研判器,判断描述是否与人工标注语义一致。三类指标的完整定义见 §2

  • 不同阶段的最优模型并不相同。在固定边界标注上,Qwen3.6-27B 原始帧取得 55.7%;改用多帧拼贴图或启发式视觉提示后分别降至 52.8% 和 50.6%。在相同拼贴图与提示词的分段对照中,27B 为 0.1278,高于 397B 的 0.0952。但端到端最高分来自 397B 候选选择器(0.1542)。因此,在本文测试的配置中,阶段匹配的模型选择往往比额外视觉输入技巧更关键;这并不意味着 27B 在所有阶段都优于 397B。
  • 最佳分段方案是「整集粗分 + 局部精修」。系统先用时间戳网格浏览完整视频并给出粗边界,再在每个粗边界附近重新判断动作起止。相较腕部速度规则基线,这一方案将视频分段得分从 0.0953 提升至 0.2031,并在 470 个人工参考片段中找到 79 个合格的时间匹配。Macrodata 公布的同范围 Gemini 视频分段得分为 0.227,与本方案相差 0.024。
  • 分段和描述需要不同的视觉输入。判断动作边界时,模型需要观察较长时间范围内的变化,因此带时间戳的拼贴图更有效;边界已经给定后,模型需要看清片段内的手部和物体细节,此时原始帧更有效。加入相邻片段不但没有提高固定边界标注准确率,还会引入跨片段动作泄漏,把相邻动作误写进当前描述。
  • 在当前 WGO-Bench 评测口径下,时间分段是端到端性能的主要瓶颈。最佳方案生成 308 个预测片段,但与 470 个人工参考片段完成时间匹配的只有 79 个;其中 60 个进一步通过语义匹配。换言之,大部分损失发生在描述生成之前。现阶段,改进动作边界比继续润色描述更可能提高端到端整流程得分。
  • 端到端描述路径可分成三档:原始帧基线、最佳单路、精度优先的候选选择器。同一 S2 预测边界上,397B 原始帧单路为 0.1414(约 $1.1 / 视频小时);同成本量级的最佳单路是 397B ffmpeg 抽帧 0.1491;多候选 + 候选选择器达到 0.1542(约 $2.7 / 视频小时)。成本敏感时优先选最佳单路 ffmpeg;只要最简单基线时用原始帧;追求本组最高分时再用候选选择器。

1. 相关工作

现有工作已经提出多种自动化管线,用于从长视频中提取动作边界或生成片段级描述。其中较有代表性的路线包括基于运动信号或固定时长的规则分段、对预切片段进行稠密描述,以及同时评测分段与标注的完整流程。它们各自解决了问题的一部分,也留下了不同的空白;这些空白决定了本文重点探索的方向。

基于规则的分段:运动边界与固定时长切分

VITRA6 将单目第一视角视频转换为三维手部与相机运动、原子动作片段和语言指令,并以腕部速度的局部极小值作为候选动作边界。另一类方法直接使用预设时长。在 Toyota Research Institute 的 A Systematic Study of Data Modalities and Strategies for Co-training Large Behavior Models for Robot Manipulation7 中,研究者构建人类视频语言标注数据时,沿用 EgoVid 的划分方式,将筛选后的 Ego4D 视频切成固定 4 秒片段,再按 1 秒间隔抽帧生成描述。两类方法都容易过分割:运动低谷会把动作内部的停顿、重新抓握和手腕微调误判为边界;固定时长切分则不考虑动作何时真正完成,可能在同一动作内部反复插入切点。本文后续在 HomER 上复现了基于 HaWoR 腕速低谷并合并相邻片段的基线,具体数字见 §3.1。一种应对方式是将连续抽帧拼成带时间戳的拼贴图,让模型从更完整的时间上下文中判断动作边界,从而减少不必要的切分。

Scale Labs:已切分视频片段的稠密描述

Scale Labs 的 The Path to Large Scale Dense Video Captioning5 讨论在已经切分好的视频片段上生成稠密描述。其核心工程贡献之一是用拼贴图辅助标注:将多个稳定抽样帧拼成一张网格图,并结合时间信息提供紧凑的片段表示,从而减少逐帧输入的开销。该设计直接启发了本文的视觉输入形式。不过,该工作默认时间边界已经给定,因此没有涉及从完整长视频中定位动作起止这一更前置的分段问题。

Macrodata Labs / WGO-Bench:完整流程与公开评测

Macrodata Labs 的 Segmenting Robot Video into Actionable Subtasks3 是与本任务设定最直接相关的公开工作之一:它将「长视频 → 动作级片段 + 短语义描述」定义为可量化评测的任务,发布 WGO-Bench 及分段、固定边界标注和端到端三类指标,给出拼贴图与 GEPA 搜索分段规则等设计,并比较多个闭源和开源模型。本文聚焦另一类实际需求:在只使用成本相对较低、可私有部署的开放权重模型时,检验哪些设计仍然有效,以及这些设计能否组合成可扩展的自动标注流程。

EgoANT:面向开放权重模型的端到端自动标注

本文提出的 EgoANT 面向可私有部署的开放权重模型,构建从长视频输入到动作边界与操作描述输出的端到端自动标注流程。本文围绕这条流程探索三个方面:如何借助带时间戳的拼贴图预测语义完整的动作边界,如何在给定边界后生成准确简洁的操作描述,以及分段与标注串联后的端到端总体效果。方法设计吸收了 Scale Labs 的拼贴图表示和 Macrodata Labs 的已完成动作分段规则,并采用 WGO-Bench 进行统一评测。后文将展开各阶段设计与评测。

2. 我们如何评估这条管线

要比较不同的标注方案,需要一个公开、可复现、并且和我们的任务同构的基准——它必须同时考核「切得对不对」和「写得对不对」。本文用的是 WGO-Bench2

WGO-Bench 与 HomER 子集

WGO-Bench(What's Going On Benchmark)由 Macrodata 随其公开博客一同发布3,把「长视频 → 动作级片段 + 一句话描述」定义成一个可以打分的公开任务。它包含约 100 个 episode,每个 episode 提供人工标注的子任务时间边界,以及每段对应的一句短描述。 其中 HomER 是第一视角人类操作子集;本报告的所有分数固定在 HomER 的 25 个视频 / 470 个参考片段上。

三种得分分别测试什么能力

三种得分依次衡量:时间边界是否准确、给定边界后的描述是否正确,以及端到端分段与标注的整体表现。下文统一把人工标注片段称为人工参考分段(reference / gold segments):叙述中多用「参考分段」,公式中可用 gold。下面用同一个 10 秒例子给出计算步骤与公式。

  • 视频分段得分(Segment F1):只评时间边界。评分沿用 WGO-Bench 的 outer-snap protocol(详见下例)。对一对预测片段与参考片段,时间 IoU 等于「两段重叠的时长 ÷ 两段合起来覆盖的总时长」;完全重合时为 1,完全不重合时为 0。IoU≥0.75 仅表示该预测—参考对有资格进入匹配;最终仍做一对一匹配,避免同一预测同时对应多个参考分段。
  • 固定边界标注准确率(Label Acc):直接使用人工边界,不让模型预测时间,只判断每个片段的描述是否与人工描述表达同一个完成动作。
  • 端到端整流程得分(E2E F1):模型同时预测边界和描述。预测片段必须先通过时间匹配,其描述再通过语义匹配,才算一个正确结果。

下面用一个 10 秒视频说明时间匹配。人工将视频分为 3 段,模型预测了 4 段。

参考片段:G0[0,3]、G1[3,6]、G2[6,10];模型预测:P0[0.5,2.8]、P1[2.8,5.5]、P2[5.5,8]、P3[8,9.5]。

首尾吸附只替换两个外侧端点。评分前,将最早预测片段的起点替换为人工标注的最外侧起点,并将最晚预测片段的终点替换为人工标注的最外侧终点。本例中只有 P0.start 从 0.5 改为 0、P3.end 从 9.5 改为 10。若端点原本越界,同样直接替换为人工外边界;其余端点和中间空隙保持不变,时间轴不移动也不缩放。
Temporal IoU and F1 scoring diagram
图中预测轨已经完成首尾吸附。绿色片段与参考片段的时间 IoU 达到 0.75,灰色片段未达到。

视频分段得分例子

吸附后,预测片段变为 P0[0,2.8]、P1[2.8,5.5]、P2[5.5,8]、P3[8,10];只有 P0 与 P3 的外侧端点发生变化。P0–G0、P1–G1 的时间 IoU 达到 0.75 阈值并形成一对一配对;P2、P3 未达到阈值。于是一对一时间匹配数 m = 2,预测段数 npred = 4,参考段数 ngold = 3。

IoU = 重叠时长 / 两段合起来覆盖的总时长 本例:P0–G0 = 2.8 / 3 ≈ 0.933;P1–G1 = 2.5 / 3.2 ≈ 0.781(均 ≥ 0.75) 预测命中率 = m / npred = 2 / 4 = 0.50 参考找回率 = m / ngold = 2 / 3 ≈ 0.67 视频分段得分 = 2m / (npred + ngold) = 2×2 / (4 + 3) = 4/7 ≈ 0.571

固定边界标注准确率例子

沿用同一 10 秒例子的人工边界 G0、G1、G2,模型只为每段生成描述。评测沿用 Macrodata 公开的 LLM-as-judge rubric:将人工描述、模型描述和整集任务指令交给 Gemini-3.5-Flash,逐段返回 match=true/false。若结果为 [true, true, false],则正确描述数 c = 2。下方折叠为本文实际使用的评判提示词。

固定边界标注准确率 = c / ngold = 2 / 3 ≈ 66.7%
评判提示词(英语)

说明:下方就是提示词文本。评判输入为人工描述、模型描述和整集任务指令;{gt_label}{pred_label}{instruction} 会替换成该段的实际值。公开 rubric 见 Macrodata

提示词文本
Loading…

端到端整流程得分例子

仍用上述预测的 4 个片段及其描述。时间匹配先得到 P0–G0 与 P1–G1;若语义研判器只有 P0–G0 返回 true,则最终正确结果数 s = 1。

端到端整流程得分 = 2s / (npred + ngold) = 2×1 / (4 + 3) = 2/7 ≈ 0.286

3. 标注管线流程

本节按管线顺序说明:先分段、再标注,最后看端到端串联结果。每个阶段先交代尝试过的方法,再给出对应实验结果。

模型与打分

管线实验会用到若干视觉语言模型。我们选用 Qwen3.6-27B 与 Qwen3.5-397B-A17B,主要因为它们是目前较常见、易于私有部署的开源模型,便于比较不同的分段策略与标注分工;下文图表会标明每一次实验实际调用了哪个模型。标注结果的语义评测使用 Gemini-3.5-Flash,打分设定遵循 Macrodata Labs 的 WGO-Bench

3.1 视频分段管线

视频分段要解决的问题是:给定一段第一视角长视频,输出动作级片段的时间边界。输入是完整视频,输出是一组起止时间(例如 [12.0, 18.5]);本阶段只评边界是否与人工参考对齐。得分统一为同一 HomER 子集上的视频分段得分(Segment F1)。先把后面会用到的分段术语和 GEPA 说清楚,再列方法与得分。

视频分段常用术语

Segmentation terminology on one timeline
图中按处理顺序展示:模型先对完整视频做一次粗分,再围绕某一粗边界选取一个局部时间窗口,并在该窗口内执行 S2 局部精修;③ 行里的两块绿色是同一窗口内重切后的片段。
  • 参考分段(gold):人工标注的完整动作片段,图中用黄色表示。
  • 整集粗分:将完整视频的全部带时间戳拼贴图一次性提交给模型,由一次模型调用输出初始分段序列。
  • 粗分片段与粗边界:整集粗分输出的初始片段及其起止时间。它们是后续精修的初始估计,还不是最终边界。
  • 局部时间窗口:围绕某个粗边界截取的一小段连续视频区间,图中用绿色虚线框表示。
  • S1(密集切分配置):仍对完整视频做一次分段,但通过提示词要求输出更多、更短的候选片段。直观上,S1 主要提高候选动作召回。
  • S2(局部精修配置):先由整集粗分得到粗边界,再围绕粗边界建立局部时间窗口,让模型在窗口内重新输出动作边界;「窗口不外扩(pad=0)」指先建好该局部窗口后,不再向窗外额外扩展。直观上,S2 主要提高局部边界定位精度。图中绿色虚线只围住一个窗口;窗口内两块绿色表示重切后可能把原先欠分的区域拆得更细。
  • 窗口不外扩(pad=0):局部精修所用画面严格限制在时间窗口内。
  • 覆盖完整动作(full-cover / full-action coverage):写入 S2 局部精修提示词的语义输出规则,不是要求预测段填满整个窗口。窗口内从开始到结束都可见的完成操作都要切出;例如完整出现「拿起杯子」和「放下杯子」时应各输出一段,而仅有伸手接近或完成后收回手时,不单独成段。
  • GEPA4:根据反馈自动改写提示词的方法。Macrodata Labs 用它在独立的 15 集验证集上搜索更贴合标注规范的分段规则;本文复用其公开结果 completed_events_duration_prior_v1,没有重新运行 GEPA。使用时将完整视频的全部带时间戳拼贴图与规则文本一并提交,一次调用得到整集粗分。
切段规则提示词(英语)

说明:下方就是提示词文本。System / User 两段会送给模型;其中 {duration_sec} 会替换成该视频的实际时长;图像输入是带时间戳的拼贴图,接在 User 提示词文本之后,不写在下方文字里。

提示词文本
Loading…
覆盖完整动作提示词(英语)

说明:下方就是提示词文本。System / User 两段会送给模型;其中 {sample_sec}{t0}{t1}{instruction}{coarse_hint} 会替换成该窗口的实际值;图像输入是窗内带时间戳的拼贴图,接在 User 提示词文本之后。

提示词文本
Loading…
S2 局部精修 + 窗口设置 + 覆盖完整动作示意图
S2 local refinement, window setting, and full-cover diagram
从上到下三行依次对应:粗分得到的时间窗(中间竖线为粗边界附近)、精修时是否外扩(本图取 pad=0,只看窗内)、以及窗内应切出的完整动作(E1–E3)。

下列为我们尝试过的分段标注方法。

  1. 腕速规则切段并合并:用 HaWoR 从视频重建手部运动并估计腕部速度曲线,在速度局部低谷处放置候选切点,再把过短的相邻段按时长规则合并。
    腕速规则切段示意
    01
    HaWoR
    手重建 → 腕部轨迹
    02
    平滑
    腕速滤波
    03
    切段
    速度低谷切段
    04
    短段合并
    合并过短的相邻段
    Wrist-speed minima segmentation schematic
    示意:按平滑腕速曲线的低谷放置切点,下方色块是切出的片段。
  2. 拼贴图分片(每次最多 3 张):把整集拼贴图按请求拆开,每次最多送入 3 张;模型只能看到该请求覆盖的局部时间范围,并在此范围内预测边界。
  3. 整集一次提交(无切段规则清单):把整集全部拼贴图放进同一次调用,提示词中不使用切段规则清单。
  4. 整集一次提交 + 切段规则清单:整集拼贴图一次提交,提示词改用 Macrodata 用 GEPA 搜索得到的切段规则(见 GEPA)。
  5. S1 密集切分:对整集做一次分段,通过提示词要求输出更多、更短的候选片段。
  6. S2 局部精修:先由整集粗分得到粗边界,再围绕每个粗边界开局部时间窗,把窗内拼贴图交回模型重切。「覆盖完整动作提示词」要求窗口内看得见起止的完成操作都要切出(见 S2 示意 · 提示词)。得分表中的变体包括:窗外扩约 1 秒、窗口不外扩(无覆盖完整动作提示词)、窗外扩 0.5/1/2 秒;另在「无覆盖完整动作提示词」的预测上,用脚本按中点规则事后补边界,记为「算法补覆盖」;最优设置为窗口不外扩 + 覆盖完整动作提示词。
  7. S2 + 相邻片段规则合并:对最优 S2 预测片段列表做离线后处理。输入是最优 S2 的预测片段,输出是合并后的片段列表;脚本按时间顺序只比较相邻段。三种规则分别是:标签规范化后完全相同则合并;主要动词/物体相同则合并;先桥接很短的时间空隙,再按前两类规则尝试合并。
    相邻片段规则合并伪代码
    segments = sort_by_start_time(s2_predictions)
    merged = []
    
    for seg in segments:
        prev = merged[-1] if merged else None
        if prev and compatible(prev, seg, strategy):
            prev.end_sec = seg.end_sec
            prev.subtask = choose_representative_label(prev.subtask, seg.subtask)
        else:
            merged.append(copy(seg))
    
    def compatible(a, b, strategy):
        if strategy == "exact_label":
            return normalize(a.subtask) == normalize(b.subtask)
        if strategy == "verb_object":
            return same_main_verb(a, b) and overlapping_main_objects(a, b)
        if strategy == "bridge_short_gap":
            return small_gap(a.end_sec, b.start_sec) and (
                exact_label_match(a, b) or verb_object_match(a, b)
            )

    读码说明:

    • compatible(...) 判定相邻两段是否合并为一段;三种 strategy 对应正文里的三条规则。
    • normalize 先去掉大小写、空白等表面差异,再按规范化后的字符串比较标签。
    • choose_representative_label 合并后保留一句代表标签,通常取较长或信息更完整的那句。
    • bridge_short_gap 里的 small_gap 只处理很短的时间空隙,把它视为仍可合并的连续区间。
    • 脚本读取 start_sec / end_sec / subtask,合并时调整已有边界(删除或挪动)。

视频分段得分(Segment F1)

条件名中的「· 27B / · 397B」分别表示该次调用使用 Qwen3.6-27B / Qwen3.5-397B-A17B。图中两侧并不对等:397B 只覆盖拼贴图分片、S1 密集切分、早期 S2(窗外扩约 1 秒);整集一次提交、窗口外扩消融、覆盖完整动作提示词与相邻片段规则合并均只在 27B 上跑完。

条件视频分段得分P / R配对/预测/参考模型或方法

表头:P(预测命中率)= 时间匹配数 / 预测段数; R(参考找回率)= 时间匹配数 / 参考分段数; 配对 / 预测 / 参考 = 时间匹配数 / 预测段数 / 参考分段数(本子集参考分段恒为 470)。

结合上图与表,按实验路径可以归纳如下。

  1. 腕速规则切段并合并:预测片段 810 段,远多于参考分段 470 段,时间匹配仅 61。腕速低谷会把动作内部的停顿和微调也当成边界,因此整体呈过分割,难以对齐语义完整的动作。
  2. 拼贴图分片(每次最多 3 张):改用带时间戳拼贴图后,模型可以在局部时间上下文中判边界,但仍受请求长度限制。每次最多送入 3 张拼贴图,请求之间的接缝缺乏整集上下文,容易被误判为动作边界。
  3. 整集一次提交(无切段规则清单):整集同一次调用消除了分片接缝带来的伪边界,但模型偏保守:预测片段仅 148 段(参考 470 段),时间匹配 38,多数参考动作未被单独切出,整体表现为欠分割。
  4. 整集一次提交 + 切段规则清单:加入切段规则后,预测片段升至 202 段、时间匹配 46,相对无规则清单有提升,但仍远少于参考 470 段。规则清单改善了「该切哪些完成事件」,却不足以单独决定切分粒度。
  5. S1 密集切分:通过提示词要求更密的候选切分后,时间匹配升至 80(参考分段共 470),但预测片段增至 558 段。召回改善的同时过分割回升。
  6. S2 局部精修:在粗边界附近开窗重切,是本组主要增益来源。窗口不外扩优于向外多看 0.5/1/2 秒;在窗口不外扩时,写入覆盖完整动作提示词优于无覆盖完整动作提示词,也优于用算法中点事后补覆盖。最终「窗口不外扩 + 覆盖完整动作提示词」取得最高视频分段得分 0.2031(时间匹配 79,预测 308 段,参考 470 段)。注意:S2 的时间匹配数(79)略低于 S1(80),但预测段更少、精确率—召回更均衡,因而 F1 更高;F1 不能只看匹配个数。上述 pad / full-cover 消融均在 27B 上完成。
  7. S2 + 相邻片段规则合并:三种规则都接在上述最优 S2 预测之后,只根据相邻预测段的标签与时间间隙做后处理。结果均低于未合并的 S2,说明在当前 IoU 评测口径下,粗合并并不能替代局部精修。
  8. 模型对比(覆盖不对等):并非所有模型/配置组合都做了穷尽评测;只有同配置行才应读作受控的模型对比。公平对照主要看拼贴图分片——27B 为 0.1278,高于 397B 的 0.0952。397B 另有 S1(0.1556)与早期 S2≈1 秒外扩(0.1674);同档 27B 的 pad=1.0 为 0.1485,早期 397B 局部精修并不差,但后续窗口外扩与覆盖完整动作提示词的系统消融只在 27B 上继续,最优 0.2031 因此也落在 27B。图上 27B 行更多,是实验覆盖不对称,不是漏写已有 397B 结果。
  1. 腕速规则切段并合并:预测片段 810 段,远多于参考分段 470 段,时间匹配仅 61。腕速低谷会把动作内部的停顿和微调也当成边界,因此整体呈过分割,难以对齐语义完整的动作。
  2. 拼贴图分片(每次最多 3 张):改用带时间戳拼贴图后,模型可以在局部时间上下文中判边界,但仍受请求长度限制。每次最多送入 3 张拼贴图,请求之间的接缝缺乏整集上下文,容易被误判为动作边界。
  3. 整集一次提交(无切段规则清单):整集同一次调用消除了分片接缝带来的伪边界,但模型偏保守:预测片段仅 148 段(参考 470 段),时间匹配 38,多数参考动作未被单独切出,整体表现为欠分割。
  4. 整集一次提交 + 切段规则清单:加入切段规则后,预测片段升至 202 段、时间匹配 46,相对无规则清单有提升,但仍远少于参考 470 段。规则清单改善了「该切哪些完成事件」,却不足以单独决定切分粒度。
  5. S1 密集切分:通过提示词要求更密的候选切分后,时间匹配升至 80(参考分段共 470),预测片段增至 558 段。召回改善的同时过分割回升,说明密集切分可以抬高找回率,但边界仍需第二遍精修。
  6. S2 局部精修:在粗边界附近开窗重切,是本组主要增益来源。窗口不外扩优于向外多看 0.5/1/2 秒;在窗口不外扩时,写入覆盖完整动作提示词优于无覆盖完整动作提示词,也优于用算法中点事后补覆盖。最终「窗口不外扩 + 覆盖完整动作提示词」取得最高视频分段得分 0.2031(时间匹配 79,预测 308 段,参考 470 段)。上述 pad / full-cover 消融均在 27B 上完成。
  7. S2 + 相邻片段规则合并:三种规则都接在上述最优 S2 预测之后,只根据相邻预测段的标签与时间间隙做后处理。结果均低于未合并的 S2,说明在当前 IoU 评测口径下,粗合并并不能替代局部精修。
  8. 模型对比(覆盖不对等):公平对照主要看拼贴图分片——27B 为 0.1278,高于 397B 的 0.0952。397B 另有 S1(0.1556)与早期 S2≈1 秒外扩(0.1674);同档 27B 的 pad=1.0 为 0.1485,早期 397B 局部精修并不差,但后续窗口外扩与覆盖完整动作提示词的系统消融只在 27B 上继续,最优 0.2031 因此也落在 27B。图上 27B 行更多,是实验覆盖不对称,不是漏写已有 397B 结果。

3.2 固定边界标注

固定边界标注要解决的问题是:给定人工参考时间边界,为每个片段生成简短操作描述。得分统一为同一 HomER 子集上的固定边界标注准确率(Label Acc)。

视觉输入

固定边界标注会换不同视觉输入。先用六个预览面板说明「模型看见什么」;其中手部相关面板拆分为近似手部拼贴与 HaWoR 腕轨迹裁剪。随后用 HomER 里的一段样本(22.9–26.8 秒,「拉开床头柜抽屉」)对照实际画面。

Visual input taxonomy

下面是同一 HomER 片段上的实际画面例子。

帧 1
帧 2
Three whole frames sampled inside one segment 帧 3
原始帧:在目标片段内均匀抽取 3 帧,作为 3 张独立图片提交。
The same frames tiled into a single image
时序拼贴:将同一片段内按时间顺序抽取的几帧拼成一张图再提交;图中为 2×2 网格,阅读顺序为左上 → 右上 → 左下 → 右下。
Contact sheet with yellow timestamps
拼贴图:每 0.5 秒抽取一帧,缩放至 224×144,每 20 帧组成一张网格,并在每格左上角标注黄色时间戳;一张约覆盖 10 秒。
上一段
当前段
Previous, current, and next segment frames 下一段
邻段拼贴:把上一段、当前段、下一段的抽样帧一并提交;底部分别用灰条、绿条、灰条标出所属片段。
Proxy motion cues overlaid on the HomER sample frame
视觉提示叠加:在完整帧上叠加估计的手部或运动提示点与短时轨迹后提交。
Orange hand-crop region on the full frame and the resulting crop
HaWoR 腕轨迹裁剪:左图橙色框表示按重建腕轨迹得到的裁剪区域,右图是实际送入标注模型的局部图像;作为上文手部相关输入的实拍补充。

下列为我们尝试过的固定边界标注方法。各条件共用同一套标注提示词,只换视觉输入与模型;提示词见下方折叠。

固定边界标注提示词(英语)

说明:下方就是提示词文本。System / User 两段会送给模型;User 里的 {mode_intro} 随视觉输入切换,{instruction} 换成整集任务指令;图像接在 User 提示词文本之后。

提示词文本
Loading…
  1. 原始帧 · 27B / 397B:用上文「原始帧」,分别由 27B 与 397B 生成描述。
  2. 时序拼贴 · 27B / 397B:用上文「时序拼贴」,分别交给 27B 与 397B。
  3. 视觉提示叠加 · 27B / 397B:用上文「视觉提示叠加」后,分别由 27B 与 397B 标注。
  4. HaWoR 腕轨迹裁剪 · 27B / 397B:用上文 HaWoR 腕轨迹裁剪;腕轨迹不可用或裁不出可用手部区域时,该段改送原始帧。
  5. 邻段拼贴 · 27B / 397B:用上文「邻段拼贴」,分别由 27B 与 397B 生成描述。
  6. 邻段拼贴 + 秒级时间戳 · 397B:在上文「邻段拼贴」上为每格加入秒级时间戳后重跑。
  7. 近似手部拼贴 · 27B / 397B:用 YOLO 人物框或画面中心启发式框裁剪后拼图提交。

固定边界标注准确率(Label Acc)

条件固定边界标注准确率语义匹配 / 参考段数

结合上图与表,可以归纳如下。

  1. 原始帧 · 27B:在 470 个固定参考片段上语义匹配 262,固定边界标注准确率 55.7%,为本组最高。同一评测尺子下,更复杂的视觉输入均未超过该配置。可能的原因是:完整画面保留了裁剪或拼贴压缩时丢失的物体与场景线索。
  2. 时序拼贴与视觉提示叠加:27B 为 52.8% / 50.6%,397B 为 45.1% / 48.5%,均低于各自原始帧。拼贴压缩分辨率、叠加提示引入额外笔迹,都可能干扰对当前完成动作的判断;额外上下文没有抬高当前片段描述准确率。
  3. HaWoR 腕轨迹裁剪:27B 为 52.3%(246 / 470),397B 为 50.9%。该路径在腕引导裁剪不可用时会回退到原始帧,因此 52.3% 不是纯 crop-only 结果。相对各自原始帧,27B 掉了约 3.4 个百分点,397B 接近持平甚至略高;重建腕轨迹可用时有用,但仍低于原始帧 · 27B。
  4. 邻段拼贴:27B 为 40.9%,397B 为 39.6%,397B 加秒级时间戳后为 40.0%。换模型几乎不动;主要失败机制是跨片段动作泄漏(cross-segment action leakage),不是容量问题,时间戳也救不了。
  5. 近似手部拼贴:27B 为 38.5%,397B 为 39.1%,全组最低。这里是 YOLO 人物框 / 画面中心启发式近似裁剪,不是专用手部检测;比 HaWoR 腕轨迹更粗,固定边界上既丢背景又裁不准手,双重伤害。
  6. 模型对比:不只看原始帧。原始帧上 27B(55.7%)高于 397B(50.2%);时序拼贴、视觉提示叠加、HaWoR、邻段拼贴上同样是 27B ≥ 397B(差值约 1–8 个百分点)。唯一接近持平或 397B 略高的是近似手部拼贴(39.1% vs 38.5%),但两者都远低于原始帧。固定边界标注更依赖把当前动作说对的指令跟随与视觉阅读,参数量更大并不自动更好;默认路径取原始帧 · 27B。
  1. 原始帧 · 27B:在 470 个固定参考片段上语义匹配 262,固定边界标注准确率 55.7%,为本组最高。边界已给定时,模型更吃完整场景上下文;同一评测尺子下,更复杂的视觉输入均未超过该配置。
  2. 时序拼贴与视觉提示叠加:27B 为 52.8% / 50.6%,397B 为 45.1% / 48.5%,均低于各自原始帧。拼贴压缩分辨率、叠加提示引入额外笔迹,都可能干扰对当前完成动作的判断;额外上下文没有抬高当前片段描述准确率。
  3. HaWoR 腕轨迹裁剪:27B 为 52.3%(246 / 470),397B 为 50.9%。相对各自原始帧,27B 掉了约 3.4 个百分点,397B 接近持平甚至略高。裁剪能帮大模型更盯住手部,但仍低于原始帧 · 27B;重建腕轨迹可用时有用,替代不了「看全景 + 选对模型」。
  4. 邻段拼贴:27B 为 40.9%,397B 为 39.6%,397B 加秒级时间戳后为 40.0%。换模型几乎不动,失败更像「邻段动作泄漏进当前描述」,不是容量问题;时间戳也救不了跨段混淆。
  5. 近似手部拼贴:27B 为 38.5%,397B 为 39.1%,全组最低。YOLO / 画面中心启发式框比 HaWoR 腕轨迹更粗,固定边界上既丢背景又裁不准手,双重伤害。
  6. 模型对比:不只看原始帧。原始帧上 27B(55.7%)高于 397B(50.2%);时序拼贴、视觉提示叠加、HaWoR、邻段拼贴上同样是 27B ≥ 397B(差值约 1–8 个百分点)。唯一接近持平或 397B 略高的是近似手部拼贴(39.1% vs 38.5%),但两者都远低于原始帧。固定边界标注更依赖把当前动作说对的指令跟随与视觉阅读,参数量更大并不自动更好;默认路径取原始帧 · 27B。

3.3 端到端分段与标注

端到端分段与标注要解决的问题是:模型同时给出预测边界与每段描述,评测先按时间 IoU 配对,再判断语义是否匹配。除腕速一体基线外,本组固定 S2 最优分段边界(视频分段得分 0.2031,预测 308 段 / 参考 470 段),只改变描述生成路径。得分统一为端到端整流程得分(E2E F1)。

下列为我们尝试过的端到端分段与标注路径;相同方法的不同模型放在一起。

  1. 腕速规则切段并合并(一体产出):用腕速规则切边界,并在同一生产管线里直接写出每段描述,作为一体基线。切段是规则方法;描述也不走本文 3.2 的固定边界标注提示词,因此这里没有单独公开的一体路径提示词。
  2. S2 边界 + 分段模型自标:沿用 S2 预测边界与分段阶段写出的描述,不再单独重标。
  3. S2 边界 + 原始帧重标 · 27B / 397B:固定 S2 边界,分别用 Qwen3.6-27B 与 Qwen3.5-397B 对每段原始帧重写描述;27B 另试「段内缩进 0.5 秒」抽帧变体。
  4. S2 边界 + ffmpeg 抽帧重标 · 27B / 397B:边界不变,只换 ffmpeg 解码/抽帧路径,再分别由 27B 与 397B 标注。
  5. S2 边界 + 邻段重标 · 27B / 397B:提交邻段视觉上下文。27B 侧试过种子邻段重标(邻段画面 + 一句已有草稿描述)与原始帧先验邻段重标(邻段画面 + 原始帧重标句作草稿);397B 侧同样用原始帧描述作草稿先验。种子描述含义见上文术语。
  6. S2 边界 + 多候选选择 · 27B / 397B:在同一 S2 边界上生成多路候选描述,再分别由 27B 与 397B 候选选择器选出最终描述。重标提示词见 3.2;候选选择器提示词见下方折叠。
候选选择器提示词(英语)

说明:下方就是候选选择器提示词。System / User 两段会送给模型;候选选择器只读文本候选、不回看视频帧,图像不进入本提示词。

提示词文本
Loading…

端到端整流程得分(E2E F1)

条件视频分段得分端到端整流程得分预测段数 / 参考段数

结合上图与表,可以归纳如下。

  1. 腕速一体基线:预测 810 段 / 参考 470 段,端到端整流程得分 0.0641,明显低于后续固定 S2 边界的路径。
  2. 分段模型自标:在同一 S2 边界上沿用分段描述,得分为 0.1234,说明只换更好描述路径仍有空间。
  3. 原始帧重标 · 27B / 397B:默认原始帧重标下,27B 为 0.1285,段内缩进 0.5 秒为 0.1337;397B 为 0.1414。同一方法下 397B 高于 27B,但增益主要来自噪声预测边界上的描述选择,而不是固定参考边界上的固定边界标注准确率优势。
  4. ffmpeg 抽帧重标 · 27B / 397B:27B 为 0.1440,397B 为 0.1491。这里改变的是解码/抽帧实现(seek 与取帧),不是标注目标本身;两边同向抬分,该路径常作为候选选择器的候选来源,而不是单独的新策略。
  5. 邻段重标 · 27B / 397B:27B 种子邻段重标 0.1260、原始帧先验邻段重标 0.1414;397B 先验邻段重标 0.1491。邻段上下文有时接近单路原始帧 / ffmpeg,但不稳定,且容易把邻段动作写进当前句。
  6. 多候选选择 · 27B / 397B:一个值得单独标出的现象是——27B 是最好的固定边界标注器,但 397B 候选选择器是噪声预测边界上最好的描述选择器。27B 候选选择器为 0.1362,低于同组最好的 27B ffmpeg;397B 候选选择器为 0.1542,语义匹配 60,仍为本组最高。WGO-Bench 公开的闭源最优端到端整流程得分为 0.168(全量约 100 集);我们在 HomER 子集上的 0.1542 已与之接近。三档建议:原始帧基线 0.1414、最佳单路 ffmpeg 0.1491、精度优先候选选择器 0.1542;成本敏感优先 ffmpeg 单路,高精度保留 397B 候选选择器。
  1. 腕速一体基线:预测 810 段 / 参考 470 段,端到端整流程得分 0.0641,明显低于后续固定 S2 边界的路径。
  2. 分段模型自标:在同一 S2 边界上沿用分段描述,得分为 0.1234,说明只换更好描述路径仍有空间。
  3. 原始帧重标 · 27B / 397B:默认原始帧重标下,27B 为 0.1285,段内缩进 0.5 秒为 0.1337;397B 为 0.1414。同一方法下 397B 高于 27B,但增益主要来自噪声预测边界上的描述选择,而不是固定参考边界上的固定边界标注准确率优势。
  4. ffmpeg 抽帧重标 · 27B / 397B:27B 为 0.1440,397B 为 0.1491。换抽帧实现本身就能抬分,且两边同向;该路径常作为候选选择器的候选来源,而不是单独的新策略。
  5. 邻段重标 · 27B / 397B:27B 种子邻段重标 0.1260、原始帧先验邻段重标 0.1414;397B 先验邻段重标 0.1491。邻段上下文有时接近单路原始帧 / ffmpeg,但不稳定,且容易把邻段动作写进当前句。
  6. 多候选选择 · 27B / 397B:27B 候选选择器为 0.1362,低于同组最好的 27B ffmpeg;397B 候选选择器为 0.1542,语义匹配 60,仍为本组最高。WGO-Bench 公开的闭源最优端到端整流程得分为 0.168(全量约 100 集);我们在 HomER 子集上的 0.1542 已与之接近。三档建议:原始帧基线 0.1414、最佳单路 ffmpeg 0.1491、精度优先候选选择器 0.1542;成本敏感优先 ffmpeg 单路,高精度保留 397B 候选选择器。

3.4 推荐配置

前面已经试过分段、固定边界标注与端到端多条路径。这里给出推荐配置(而非唯一默认):开放权重模型上的端到端分段与标注。精度优先可选 S2 边界 + 多候选选择 · 397B(端到端 0.1542);效率优先可选同边界下的 397B ffmpeg 单路(0.1491)或更简单的原始帧基线(0.1414)。WGO-Bench 公开的闭源最优端到端得分为 0.168(全量约 100 集);在 HomER 子集上,精度优先配置已与该水平接近。

Recommended EgoANT recipe flowchart
图示流程:左分段、右标注。推荐两条管线——单路原始帧直出,或多候选汇入选择器后送出。

提示词:切段规则 · 局部精修 · 标注 · 候选选择器

成本估计

分段边界固定后,写描述有两种做法:每段只写一次,或先写多路候选再挑一句。下表把开放权重路径与 Macrodata 公开的闭源端到端批量数字放在一起对照。美元数字按公开模型 API 单价折算,只作归一化工程估计,不等于本地 GPU 部署的真实成本;此外未计入视频预处理、存储,以及离线 Gemini 语义研判器开销。

方案 端到端得分 约每视频小时费用

费用按 HomER 25 集(约 40 分钟)上的调用量估算:推荐分段给出 308 个预测段(人工参考是 470 段),单路每段 1 次标注,多候选每段约 4 路候选再加 1 次选择,再按 Qwen 公开 API 单价折成每视频小时(不含预处理 / 存储 / 离线语义研判)。精度优先推荐多候选 + 候选选择器:端到端得分 0.1542,约 $2.7 / 视频小时,接近 Macrodata 闭源批量的端到端得分 0.168 与费用 $2.64 / 视频小时,且可私有部署。效率优先时选 397B ffmpeg 单路(0.1491,约 $1.1 / 视频小时);只要最简单基线时用 397B 原始帧单路(0.1414,同约 $1.1 / 视频小时)。

4. 样例分析:HomER 样本上走推荐的端到端流程

本章在 HomER 的一个样本上走一遍推荐的端到端流程。下面按推荐的多候选路径,逐步展示该样本的分段与标注。

00

原始视频

这是本样本的原始视频,展示一个人在执行清洁类任务。

01

生成拼贴图

参数与上文拼贴图设定一致。模型后续只看这些带时间戳的拼贴图,而不是原始 MP4 字节流。

下方为首张拼贴图示例(同参数);整集还会生成多张同类拼贴图。

homer_4 contact sheet
02

粗分:整集一次 + 切段规则清单

把该集全部拼贴图一次送给分段模型,并在请求文本里附上切段规则清单,得到整集粗分边界。

03

局部精修:窗口不外扩,覆盖完整动作

粗边界附近先建立局部时间窗,再用同一版式的拼贴图在窗内重切。窗口不外扩(pad=0):局部窗口建好后,不再向窗外额外扩展;并加入「覆盖完整动作」语义输出规则。

以本集为例,整集粗分在约 26.0s 有一条粗边界(前一段「拉开抽屉」约 [23.5, 26.0],后一段「擦抽屉内部」约 [26.0, 44.5])。局部精修围绕该边界开窗再切;下图只是该精修窗口内的一张拼贴图(约 26.5s–36.0s),不是整个局部窗口的全部内容。

step03 local sheet
精修窗口内的一张拼贴图示例(约 26.5s–36.0s);完整局部窗口围绕粗边界 26.0s 建立,本图不是窗口全部内容。
04

多候选标注

分段边界固定后,对每个预测片段并行生成多路候选描述:原始帧(默认解码抽帧直接写描述)、ffmpeg(换解码/seek/取帧实现再写一路)、种子候选(带上前一阶段草稿再改写)、先验描述(把另一路标注输出当作文本条件再生成)。

下表是其中一个片段上的候选结果示例(约 26.5s–45.0s,「擦抽屉内部」)。

candidate example collage
来源候选标签
05

候选选择器选择

我们把上一步的多路候选交给模型,并输入提示词,让它从中选出最合适的动作标注。

下面用本集预测段落互动展示选中结果:点击时间轴色块或表格行,可跳到该预测段落并查看候选。

点击预测段落色块或表格行。
尚未选择片段
#时间 (s)子任务候选选择器

最终标注对照

下面直观展示最终标注结果与原始人工标注的对比情况。上方播视频,下方两条时间轴;点击色块可查看该段标注并跳转播放。

最终标注对照 HOMER_4
now 0.0s / 130s

Instruction: …

人工标注 EgoANT(多候选)

5. 结论

我们呈现了一条面向开放权重视觉语言模型的端到端第一视角标注管线 EgoANT,并在公开基准上测试了若干辅助 VLM 标注的输入与流程设计(例如拼贴图粗分、局部精修、多候选选择)。

主要发现可以概括为三点:(1)在当前 WGO-Bench 评测口径下,时间分段仍是端到端性能的主要瓶颈;(2)在本文测试的配置中,更复杂的视觉输入增强并未稳定超过原始帧;(3)最高精度与最低成本对应不同配置——精度优先走候选选择器,效率优先走单路(尤其 ffmpeg)。

与此同时,当前方案仍有两点潜在风险与局限,也留给后续继续探索:

  1. 模型能力并不整齐。不同模型在空间理解、推理、物体识别等方面强弱不一,因此没有哪种辅助技巧能长期通吃;不同阶段的最优模型也不相同。好消息是,换成更新、更强的模型往往能直接提分;Macrodata 的报告里也有类似观察。
  2. 基准一致性不等于下游效用。当前评测衡量的是自动标注与人工参考标注的一致性,而不是这些标注对机器人预训练的最终效用。WGO-Bench 分数建立在人工分段与标注之上:它未必对应训练上最优的监督,人工标注本身也不一定质量最高。围绕该得分优化,会让管线趋近这份基准的人工标注风格。好消息是,如果未来有经过审核、规模更大、质量更好的人工标注数据,同一套得分规则与管线优化思路仍然适用。

6. 参考文献

  1. Physical Intelligence, Black, Kevin, Brown, Noah, Darpinian, James, Dhabalia, Karan, Driess, Danny, et al. (2025). π0.5: a Vision-Language-Action Model with Open-World Generalization. arXiv. https://arxiv.org/abs/2504.16054
  2. Macrodata Labs. (2026). WGO-Bench: What's Going On Benchmark. Hugging Face. https://huggingface.co/datasets/macrodata/WGO-Bench
  3. Macrodata Labs. (2026). Segmenting Robot Video into Actionable Subtasks. Macrodata Labs. https://macrodata.co/blog/annotating-robot-video-subtasks
  4. Agrawal, Lakshya A., Tan, Shangyin, Soylu, Dilara, Ziems, Noah, Khare, Rishi, Opsahl-Ong, Krista, et al. (2025). GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning. arXiv. https://arxiv.org/abs/2507.19457
  5. Choghari, Jade, Sansone, Agustin, Pasqualis, Nicolas, Mader, Conrado, Tiupikov, Aleks, Sivapurapu, Mouli. (2026). The Path to Large Scale Dense Video Captioning. Scale Labs. https://labs.scale.com/blog/path-to-large-scale-dense-video-captioning
  6. Li, Qixiu, Deng, Yu, Liang, Yaobo, Luo, Lin, Zhou, Lei, Yao, Chengtang, et al. (2025). VITRA: Scalable Vision-Language-Action Model Pretraining for Robotic Manipulation with Real-Life Human Activity Videos. Project page. https://microsoft.github.io/VITRA/
  7. Lin, Fanqi, Arora, Kushal, Mercat, Jean, Nishimura, Haruki, Shah, Paarth, Xu, Chen, et al. (2026). A Systematic Study of Data Modalities and Strategies for Co-training Large Behavior Models for Robot Manipulation. arXiv. https://arxiv.org/abs/2602.01067
  8. Zhang, Jinglei, Deng, Jiankang, Ma, Chao, Potamias, Rolandos Alexandros. (2025). HaWoR: World-Space Hand Motion Reconstruction from Egocentric Videos. arXiv. https://arxiv.org/abs/2501.02973
  9. Hoque, Ryan, Huang, Peide, Yoon, David J., Sivapurapu, Mouli, Zhang, Jian. (2025). EgoDex: Learning Dexterous Manipulation from Large-Scale Egocentric Video. arXiv. https://arxiv.org/abs/2505.11709
  10. EgoVerse Consortium. (2026). EgoVerse: Egocentric Data for Robot Learning from Around the World. Project website. https://egoverse.ai/
  11. Li, Yihang, Wei, Xuelong, Luo, Jingzhou, Xiao, Yingjing, Bai, Yibo, Zhou, Guangyuan, Zou, Teng, et al. (2026). EgoLive: A Large-Scale Egocentric Dataset from Real-World Human Tasks. arXiv. https://doi.org/10.48550/arXiv.2604.23570