跳转到内容

OmniSTVG — 按句子把视频里所有相关物体都框出来

是什么

OmniSTVG(Spatio-Temporal Omni-Object Video Grounding)是 2025 年提出的时空全对象视频定位任务:给你一段未剪辑视频和一句自由文本(如「四名女子在海滩上与鲸鱼互动」),系统要在时间轴上标出事件起止,并在每一帧上为句子里提到的每一个目标画出边界框,形成一条条「时空管」(spatio-temporal tube)。

日常类比:经典 STVG 像保安只盯一个人——「穿红衣服的男人在哪」。OmniSTVG 像活动导播要同时跟拍句子里所有演员:四名女子、鲸鱼、可能还有互动对象,每个人/物都要在正确时间段里被框住。论文配套发布 BOSTVG 基准(10,018 段视频、1,020 万帧、287 类物体)和基线模型 OmniTube(Transformer 编码器-解码器 + 多对象 query)。

vidstg-2020 等「单目标 STVG」不同,OmniSTVG 不要求查询只含一个名词;与只做时间定位的 qvhighlights-2021 不同,它还要在像素平面上画框。概念上作者把它比作视频版的「Segment Anything」——但触发条件是文本里提到的对象,而不是随便点哪里。

为什么重要

不理解 OmniSTVG,下面这些事容易误判:

  • 为什么 VidSTG、HCSTVG 高分不等于「懂多人物场景」——它们每条查询只定位一个目标;真实监控、体育、机器人场景里一句描述常含多个实体及其互动对象
  • 为什么 2025 年需要新 benchmark 而不是把 DVD-ST 当终点——DVD-ST 只定位查询中的部分目标且偏同类多实例;BOSTVG 要求句中全部提及对象(含不同类别)都有时空管标注
  • 为什么把单目标 STVG 模型「循环跑 N 次」不可行——每多一个对象就多一次前向,算力线性涨且无法建模对象间共现关系;OmniTube 用每帧多 query 一次出齐
  • 为什么 spacevllm-2025 等空间 Video LLM 路线仍要回头看 STVG 数据集——LLM 擅长答「有什么」,但产品要「框在哪、从几秒到几秒」仍需 BOSTVG 这类带 tube 标注的硬指标(m_tIoU、m_vIoU、vIoU@R)

核心要点

  1. OmniSTVG = 全对象 + 时空管。每条样本 = 视频 + 自由文本 + 1–10 个目标(平均 2.4 个),每个目标一条 tube(时间段内每帧一个框)。类比:不是只圈「主角」,而是把剧本里列出的角色在同一幕戏里全部标出来。

  2. BOSTVG 规模与质量。10,018 段 YouTube 视频(CC 许可)、287 类(来自 ImageNet、V3Det 等)、平均长约 1,014 帧;训练 8,106 / 测试 1,912。标注经「标注队 → 三位专家验收 → 返工」多轮,独立复检 100 段 tube IoU 约 0.90。

  3. OmniTube 架构。ResNet-101(外观)+ VidSwin(运动)+ RoBERTa(文本)→ 自注意力融合;空间解码器每帧 N_q 个 object query(用文本引导的 Top-M 视觉特征初始化),预测框 + 词位置索引;时间解码器共享起止时间戳;Tubelet 匹配用匈牙利算法跨帧连框,再按文本词过滤假阳性。

  4. 评测要同时看时间与体积 IoU。m_tIoU 量时间区间对齐;m_vIoU 量所有目标的时空管体积重叠(多对象时不能只看一条 tube);vIoU@0.3/0.5 是召回式阈值指标。测试集还按目标数拆成 Low(1–3)、Medium(4–6)、High(7+)子集,对象越多越难。

实践案例

案例 1:BOSTVG 标注长什么样

{
"video_id": "bostvg_00421",
"query": "Four women interact with whales on the beach",
"temporal_segment": [12.5, 48.0],
"targets": [
{
"phrase": "four women",
"tube": [
{"frame": 25, "bbox": [120, 80, 240, 360]},
{"frame": 26, "bbox": [118, 82, 238, 358]}
]
},
{
"phrase": "whales",
"tube": [
{"frame": 30, "bbox": [400, 200, 620, 340]}
]
}
]
}
  • temporal_segment:整句描述对应的共享时间窗(OmniSTVG 里同一句的所有目标共用起止)
  • 每个 targets[i]:句中一个语义对象及其跨帧框序列(tube)
  • vidstg-2020 单 tube 标注相比,这里 targets数组且元素可跨类别

案例 2:用官方仓库训练 OmniTube

Terminal window
git clone https://github.com/JellyYao3000/OmniSTVG
cd OmniSTVG
# 下载 BOSTVG 标注与预提取特征(见 data/README)
# 2D: ResNet-101;3D: VidSwin;文本: RoBERTa;部分权重来自 MDETR 预训练
python train.py \
--config configs/omnitube_bostvg.yaml \
--train_split bostvg_tra \
--fps 2 \
--short_side 320
python eval.py \
--split bostvg_tst \
--checkpoint checkpoints/omnitube_best.pth

论文在 BOSTVG 全测试集上 OmniTube 约 35.83% m_tIoU、9.47% m_vIoU、6.17% vIoU@0.3;改编的 TubeDETR / STCAT / CG-STVG 在同一数据上 m_vIoU 仅 7–8% 档,说明多对象专用设计必要。复现时注意 FPS=2 抽帧与训练增广(随机缩放裁剪)须与论文一致。

案例 3:读分难度子集结果(论文 Table 3 思路)

子集 目标数/视频 OmniTube m_vIoU 改编 TubeDETR m_vIoU
────────────────────────────────────────────────────────────────────
BOSTVG_Tst-Low 1–3 10.11% 7.99%
BOSTVG_Tst-Med 4–6 7.24% 5.81%
BOSTVG_Tst-High 7–10 4.42% 3.91%
BOSTVG_Tst-Full 1–10 9.47% 7.52%
读法:对象越多,空间-时间管对齐越难;vIoU@0.5 在全集仅 ~0.89%,
说明「多对象 + 细框」远比单目标 VidSTG 苛刻,仍有很大提升空间

踩过的坑

  1. 把 OmniSTVG 当成「多实例同类检测」:DVD-ST 等同质多框场景与 BOSTVG「句中不同类别对象都要定位」不同;直接搬 DVD-ST 协议会漏评互动对象。

  2. 用单目标 STVG 模型不改编就评测:TubeDETR 等默认只出一条 tube;论文里改编版仍比 OmniTube 低约 2 个 m_vIoU 点,说明输出头与匹配策略必须按多 query 重设计。

  3. 忽略「全对象共享时间段」:同一句查询里女子与鲸鱼共用 [start, end];若给每个目标单独预测时间窗,与 BOSTVG 标注协议不一致,m_tIoU 会系统性偏低。

  4. 只看 m_tIoU 不看 m_vIoU:时间对齐对了但框飘到背景,m_vIoU 仍接近 0;OmniSTVG 产品要同时优化「哪几秒」和「哪几个框」。

适用 vs 不适用场景

适用

  • 研究或部署「一句描述 → 多目标时空跟踪」:监控里同时跟嫌疑人与车辆、体育里跟球员与球
  • 需要比 vidstg-2020 更贴近真实多实体查询的新 benchmark 对比
  • 验证 Transformer STVG 路线(TubeDETR、CG-STVG)能否扩展到 all-object 设定
  • spacevllm-2025 等空间 Video LLM 提供「框 + 时间」硬标签训练或评测补充

不适用

  • 只关心「第几秒发生什么」、不需要像素框(用 qvhighlights-2021univtg-2023 更省事)
  • 开放域视频对话、不强调定位精度(用 Video LLM QA benchmark 更合适)
  • 查询中无明确可数对象的长篇叙事(BOSTVG 不收录「零目标」视频,偏实体可见场景)
  • 算力极紧的边缘部署(OmniTube 需 ResNet-101 + VidSwin + 多帧 Transformer,远高于单目标两阶段 STVG)

历史小故事(可跳过)

  • 2017–2020:STPR、VID-Sentence、vidstg-2020 确立「文本 → 单目标时空管」范式,VidSTG 从 VidOR 关系检测扩展出 79 类、约 99k 查询
  • 2021–2024:HCSTVG 系列聚焦人物;CG-STVG、TubeDETR 等把 DETR 引进单目标 STVG;同期 moment retrieval 在 qvhighlights-2021 爆发
  • 2024:DVD-ST 并发工作支持部分多目标,但数据未公开且偏同类;OmniSTVG 论文明确区分「all-object in query」
  • 2025-03:arXiv 2503.10500 发布 OmniSTVG + BOSTVG + OmniTube;OpenReview 归类 datasets and benchmarks
  • 社区:项目页 jellyyao3000.github.io/OmniSTVG;代码 JellyYao3000/OmniSTVG;287 类层次表见补充材料

学到什么

  1. 单目标 STVG 是特例,不是终点——真实查询常含多个名词与互动对象;新任务 OmniSTVG 把「句中提到的都要框」写进问题定义
  2. Benchmark 设计塑造能力上限——BOSTVG 的 1–10 目标分布、287 类、多轮质检,逼模型做集合预测 + 跨帧关联,而不是重复跑单目标模型
  3. 文本引导 query 初始化有效——OmniTube 用 Top-M 文本相似视觉特征生成空间/时间 query,比固定 learnable query 在 m_vIoU 上高约 4 点(相对去掉 query generation 的 baseline)
  4. 多对象让指标「看起来很低」——全集 vIoU@0.5 不足 1% 不代表任务无用,而是 all-object tube 对齐难度远高于 VidSTG 单管
  5. 与 Video LLM 互补——spacevllm-2025 等偏语义空间推理;OmniSTVG 提供可机检的 tube 标注,适合「检测器 + LLM」分工里的检测一侧

延伸阅读

关联

  • vidstg-2020 —— 直接前作:定义单目标时空管;OmniSTVG 把「1 个目标」推广为「句中全部目标」
  • spacevllm-2025 —— 空间视频理解 LLM 路线;OmniSTVG 提供 tube 级硬标注,可作其 grounding 监督或评测
  • qvhighlights-2021 —— 查询驱动时间定位(无框);OmniSTVG 多了一步空间 tube,任务更难也更贴近「指给谁看」
  • univtg-2023 —— 统一 moment / highlight / 摘要的 VTG 框架;时间侧互补,但不预测多对象框
  • hawkeye-2024 —— LLM 递归缩窗做时间 grounding;与 OmniTube 的检测器路线形成「文本输出 vs 框输出」对照
  • clip —— 多模态对齐思想与 MDETR 预训练来源;OmniTube 文本-视觉 query 生成同源
  • video-understanding —— 专题枢纽;STVG 子路线在 VidSTG 之后读 OmniSTVG

反向链接

  • clip —— CLIP — Contrastive Language-Image Pre-training
  • hawkeye-2024 —— HawkEye — 用递归缩窗把文本查询钉在长视频时间轴上
  • qvhighlights-2021 —— QVHighlights — 用自然语言查询在视频里找精彩瞬间
  • spacevllm-2025 —— SpaceVLLM — 一个 MLLM 同时做时序定位、图像指代与时空管定位
  • univtg-2023 —— UniVTG — 把视频时刻定位、高光检测、摘要合成一套框架
  • vid-llm-survey-2023 —— Vid-LLM Survey — 用大语言模型理解视频的全景地图
  • vidstg-2020 —— VidSTG — 用自然语言在长视频里框出「谁在何时何地」