跳转到内容

VSLNet — 用 span-based QA 做自然语言视频定位

是什么

VSLNet(Video Span Localizing Network)是 NTU / A*STAR 团队在 2020 年提出的自然语言视频定位(NLVL)模型:给你一段未剪辑的长视频和一句英文查询(比如「男人把锅从炉子上拿下来」),系统要在时间轴上标出与查询语义匹配的起止区间

日常类比:整段家庭录像像一篇没有标点的长文章,查询像一道阅读理解题「答案在第几句到第几句」。老方法像「把文章切成 100 段,每段和题目打分,选最高分的段」——候选多、效率低。VSLNet 换思路:把视频帧特征当成文章里的「词」,把目标时段当成 SQuAD 式阅读理解的答案 span,直接预测起点 token 和终点 token——像机器阅读理解里找「从第 5 词到第 12 词是答案」,而不是先撒网再筛。

论文还提出基线 VSLBase(纯 span-based QA 框架)和完整版 VSLNet(在 VSLBase 上加 Query-Guided Highlighting,QGH):先用查询把「可能相关的区域」高亮出来,再在高亮区内精确定位 span,解决「视频帧相邻太像、全文搜索容易糊」的问题。

为什么重要

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

  • 为什么 2020 年前后 NLVL 从「候选段排序」转向「proposal-free 直接回归/预测边界」——VSLNet 证明 span-based QA 范式在 Charades-STA 等榜上是可行且 SOTA 的
  • 为什么后来的 Moment-DETR、QD-DETR 仍要回头看 Charades-STA 数字——VSLNet 是 span 预测路线在 VTG 领域的早期代表作,与 DETR 式 set prediction 是并行演进
  • 为什么 qvhighlights-2021 强调多时段 + 高光,而 VSLNet 只预测单一 span——NLVL 经典设定是「一条查询对应一个 GT 时段」;QVHighlights 把任务扩展到多段 + saliency,是 2021 后的 benchmark 升级
  • 为什么读 VTG 论文常看到 R@1, IoU=0.5/0.7——这套指标从 Charades-STA 时代沿用至今,VSLNet 在三数据集上的表格是复现链路的参照点

核心要点

  1. 视频当 passage、时段当 answer span:用 I3D 抽帧特征序列 {v_1,…,v_n} 类比 SQuAD 的 token 序列;GT 起止时间 (τ^s, τ^e) 映射为特征索引 (a^s, a^e)。训练目标就是预测 start/end 边界上的交叉熵——和文本 QA 的 Pointer Network 同源。

  2. VSLBase 四段流水线:Feature Encoder(共享 QANet 式卷积 + 多头注意力)→ Context-Query Attention(BiDAF 式双向跨模态注意力)→ Conditioned Span Predictor(两个单向 LSTM 级联,end 条件于 start)→ 联合最大化 P_s(a^s) × P_e(a^e)。结构 deliberately 简单,为后续加模块留空间。

  3. QGH(Query-Guided Highlighting):把 GT 时段及其前后扩展 α 比例的区域标为 foreground(1),其余 background(0);用查询句向量 + 逐帧特征做二分类,得到高亮权重 S_h,再喂给 span predictor。类比:先在书上用荧光笔圈出「可能相关的两页」,再在圈内找精确起止句——既利用视频时序连续(扩展区提供上下文),又缩小搜索空间让模型对帧间细微差异更敏感。

  4. 三数据集统一评测:Charades-STA(室内 ~30s)、ActivityNet Caption(开放域 ~118s)、TACoS(烹饪 ~287s)。VSLNet 在 Charades-STA 上 R@1, IoU=0.5 达 54.19%(I3D 微调特征),ActivityNet 与 TACoS 亦刷新当时 SOTA——说明 span QA + QGH 跨域有效。

实践案例

案例 1:NLVL 数据如何转成 SQuAD 三元组

# 概念示意:论文 §3.1 的数据映射
video_duration = 120.0 # 秒
n_features = 60 # I3D 下采样后的帧特征数
gt_start, gt_end = 24.0, 36.0 # 标注时段(秒)
# 时间 → 特征索引(四舍五入)
a_s = round(gt_start / video_duration * n_features) # → 12
a_e = round(gt_end / video_duration * n_features) # → 18
# 训练样本 ≈ SQuAD 三元组
sample = {
"passage": "v_1, v_2, ..., v_60", # 视觉特征序列
"question": "A man takes the pot off the stove",
"answer_span": (a_s, a_e), # 索引 12–18
}
# 推理时反算时间
pred_start = pred_a_s / n_features * video_duration
pred_end = pred_a_e / n_features * video_duration

关键:特征索引与真实秒数的对齐依赖 nT 的比例;换特征提取器(CLIP、SlowFast)必须重算映射,否则 IoU 系统性偏低。

案例 2:用官方仓库复现 Charades-STA

Terminal window
git clone https://github.com/IsaacChanghau/VSLNet
cd VSLNet
# 按 README 下载 Charades-STA 标注与 I3D 特征
# 特征默认 Kinetics 预训练 I3D,可选在 Charades 上微调
python train.py --dataset charades --model vslnet \
--batch_size 16 --epochs 100 --lr 1e-4
# 评测指标:R@1 IoU=0.3/0.5/0.7 + mIoU
python eval.py --dataset charades --checkpoint best.pth

论文默认 hidden dim=128、卷积核 7、8-head attention、QGH 扩展比 α 在验证集调参。Early stopping 防过拟合;GloVe 300d 词向量冻结不更新。

案例 3:读 Charades-STA 主榜数字(论文 Table 2)

Charades-STA,I3D 在 Charades 上微调后:
模型 R@1 IoU=0.5 R@1 IoU=0.7 mIoU
────────────────────────────────────────────────────
DEBUG (2019) 37.39% 17.69% 36.34%
VSLBase 50.23% 30.16% 47.15%
VSLNet 54.19% 35.22% 50.02%
ExCL (对照) 44.10% 23.30% —
读法:
- IoU=0.5:预测段与 GT 重叠 ≥50% 才算「找对」
- IoU=0.7:边界要求更严,VSLNet 35.22% 说明 QGH 对精定位有帮助
- VSLBase → VSLNet 的增益 ≈ +4pt@0.5,消融证明 QGH 是主要贡献

踩过的坑

  1. 把 VSLNet 当成多时段模型:经典 NLVL(Charades-STA / ActivityNet Caption)每条查询通常一个 GT span;多时段检索是 qvhighlights-2021 等后续 benchmark 的设定,指标和损失都不同。

  2. 忽略 I3D 是否微调:论文 Table 2 分「不微调 / Charades 微调」两行;直接拿微调数字对比别人未微调结果会误判 SOTA。

  3. 用均匀 1fps 抽帧替代官方 I3D 特征:复现必须对齐论文的特征协议(3D ConvNet、固定下采样率);自提特征不校准 n 与标注映射,R@1 会大幅波动。

  4. QGH foreground 扩展比 α 乱设:α 太小则高亮区过窄、丢上下文;太大则接近全文搜索、QGH 失效——需在 val 上网格搜索,论文默认因数据集而异。

适用 vs 不适用场景

适用

  • 学习 NLVL / VTG 的span 预测范式(从 SQuAD 迁移到视频时间轴)
  • 在 Charades-STA、ActivityNet Caption、TACoS 上做经典单 span baseline 或 ablation
  • 理解 QGH「先高亮再定位」思路——后续 highlight detection、proposal-free VTG 的常见 motif
  • 作为阅读 qvhighlights-2021、Moment-DETR 路线前的历史前站(排序 → span → set prediction 演进)

不适用

  • 多时段 moment retrieval + highlight saliency 联合任务——用 qvhighlights-2021 与 Moment-DETR 更合适
  • 开放域长 vlog(5–30 分钟)零样本 grounding——VSLNet 训练域与特征都偏 2017–2020 学术 benchmark
  • Video LLM 对话式「跳到某一幕」——端到端生成模型走另一套 eval(VideoMME、MSRVTT-QA)
  • 需要音频 / 字幕多模态对齐——VSLNet 仅 RGB + 文本 GloVe,无 ASR 分支

历史小故事(可跳过)

  • 2020-04:arXiv 2004.13931 上传;同期开源 IsaacChanghau/VSLNet
  • 2020 前后:NLVL 主流仍是 CTRL、MAN 等候选段排序;ABLR、DEBUG 开始 proposal-free 回归;VSLNet 开辟 span-based QA 第三条路
  • 2021qvhighlights-2021 发布,任务从「单 span」扩展到「多段 + 2 秒 clip saliency」;Moment-DETR 把 DETR 引进 VTG
  • 2022–2024:UniVTG、VTimeLLM 等把 VTG 接到大模型;Charades-STA 仍被用来报 R@1,但 SOTA 已远超高 50%
  • 遗产:QGH「查询引导区域高亮」思想在 highlight / grounding 后续工作中反复出现;span 预测与 DETR set prediction 成为 VTG 两大结构模板

学到什么

  1. 跨任务迁移要看差异——视频 passage 与文本 passage 的「连续 vs 离散」「帧偏移不敏感 vs 词偏移敏感」差异,不能无脑套 SQuAD;QGH 是针对差异的模块级修补
  2. 简单架构 + 对症模块可以赢复杂排序——VSLBase 已超很多 heavy matching 模型;QGH 再抬一档,说明 NLVL 不必 dense sample 候选段
  3. 评测协议比模型名字更长寿——R@1, IoU=0.5/0.7 从 Charades-STA 沿用至 QVHighlights;读榜先对齐特征、微调、单/多 span 设定
  4. VTG 是长视频理解的前处理——先 VSLNet 式定位再摘要/问答,比整段塞 LLM 省算力;qvhighlights-2021 在此基础上加了「哪几段最精彩」
  5. 特征时代决定上限——I3D + GloVe 是 2020 标配;换 CLIP / InternVideo encoder 需重训全流程,不能只换 backbone 声称涨点

延伸阅读

  • 论文 PDF:arXiv 2004.13931
  • 官方代码:IsaacChanghau/VSLNet
  • 数据集:Charades-STA、ActivityNet Captions、TACoS(MPII Cooking)
  • 后继 benchmark:qvhighlights-2021 —— 多时段 + highlight,NLVL 任务的 2021 升级
  • vid-llm-survey-2023 —— VTG / moment localization 在 Video LLM 综述中的位置
  • Span QA 源头:SQuAD、BiDAF、QANet(理解 VSLBase 的设计来源)

关联

  • qvhighlights-2021 —— NLVL 后继 benchmark;VSLNet 管单 span 经典榜,QVHighlights 管多段 + saliency
  • vid-llm-survey-2023 —— 全景地图里 moment localization / VTG 章节的历史脉络
  • long-video-retrieval-2023 —— 检索式长视频路线;与 span 定位互补(先召回 clip 再精定位)
  • tempcompass-2024 —— 细粒度时序理解专测;VSLNet 测「找对段」,TempCompass 测「段内时序语义」
  • internvideo —— 更强视频 encoder 能否在 Charades-STA 上超越 I3D 的上游问题
  • decord —— 自跑原始视频抽 I3D/CLIP 特征时的解码后端
  • lmms-eval —— 部分 VTG 与 Video LLM 统一评测入口
  • video-understanding —— 专题枢纽;NLVL 子路线以 VSLNet → QVHighlights 为演进链

反向链接

  • decord —— Decord — Video-LLM 数据管线的高效视频解码库
  • internvideo —— InternVideo — 上海 AI Lab 视频基础模型套件
  • lmms-eval —— LMMs-Eval — 多模态大模型统一评测框架
  • long-video-retrieval-2023 —— R-VLM — 长视频不靠均匀采帧,靠可学习检索选片段
  • qvhighlights-2021 —— QVHighlights — 用自然语言查询在视频里找精彩瞬间
  • tempcompass-2024 —— TempCompass — 专门拆穿 Video LLM 有没有真懂时间
  • vid-llm-survey-2023 —— Vid-LLM Survey — 用大语言模型理解视频的全景地图