视频理解流水线:场景、问答、搜索 本节摘要:Twelve Labs 把 Marengo + Pegasus 产品化,VideoDB 提供了「视频的 CRUD API」,AI2 的 Molmo 2 开源了 VLM 检查点,Gemini 长上下文原生处理数小时视频,TimeLens-100K 定义了规模化时间定位。2026 年的流水线已定:场景分割、每场景字幕 + 嵌入、转录对齐、多向量索引、查询带 (start, end) 时间戳与帧预览作答。本节要求你摄取 100 小时视频,命中公开基准,并度量计数与动作类问题的幻觉。你会学到多向量索引(字幕/帧/转录)、RRF 融合、时间定位,以及计数幻觉这个已知硬骨头。 对应原课程:Phase 19 · Lesson 12 · (原英文 )。
本节摘要:Twelve Labs 把 Marengo + Pegasus 产品化,VideoDB 提供了「视频的 CRUD API」,AI2 的 Molmo 2 开源了 VLM 检查点,Gemini 长上下文原生处理数小时视频,TimeLens-100K 定义了规模化时间定位。2026 年的流水线已定:场景分割、每场景字幕 + 嵌入、转录对齐、多向量索引、查询带 (start, end) 时间戳与帧预览作答。本节要求你摄取 100 小时视频,命中公开基准,并度量计数与动作类问题的幻觉。你会学到多向量索引(字幕/帧/转录)、RRF 融合、时间定位,以及计数幻觉这个已知硬骨头。
对应原课程:Phase 19 · Lesson 12 ·
video-understanding-pipeline(原英文phases/19-capstone-projects/12-video-understanding-pipeline/docs/en.md)。
阅读完本节,你应当能够:
长视频 QA 是 2026 规模下最吃带宽的多模态问题。Gemini 2.5 Pro 能原生读 2 小时视频,但要把 100 小时视频摄入可查询语料,仍需一个场景级索引。生产形态合一:场景分割(TransNetV2 或 PySceneDetect)、用 VLM 每场景生成字幕与帧嵌入(Gemini 2.5、Qwen3-VL-Max 或 Molmo 2)、转录对齐(Whisper-v3-turbo 配词级时间戳),以及一个把字幕、帧嵌入、转录并存的多向量索引。查询管线带 (start, end) 时间戳与帧预览作答。
基准公开(ActivityNet-QA、NeXT-GQA)加你自己的 100 题自定义集。计数与动作类问题的幻觉是已知硬骨头;本节显式度量它。
摄取时三条管线并行。场景分割把视频切成场景。VLM 字幕给每场景生成字幕,从关键帧产帧嵌入。ASR 对齐产词级时间戳。三路按 (scene_id, time range) 拼合。每个场景在多向量索引(Qdrant)里得三种向量:字幕嵌入、关键帧嵌入、转录嵌入。
查询时,自然语言问题对三种向量各发一次;结果用 RRF 合并;一个时间定位适配器(TimeLens 风格)在 top 场景内精修 (start, end) 窗口。VLM 合成器(Gemini 2.5 Pro 或 Qwen3-VL-Max)把查询 + top 场景 + 裁剪帧一起吃进去,带引用时间戳与帧预览作答。
RRF 融合(多排序列表合并的经典招):
def rrf(rank_lists, k=60): scores = {} for lst in rank_lists: # 字幕/帧/转录三路 for rank, doc in enumerate(lst): scores[doc] = scores.get(doc, 0) + 1.0 / (k + rank) return sorted(scores, key=scores.get, reverse=True)
幻觉度量要紧。计数(「多少人进了房间?」)与动作类(「厨师是先倒再搅吗?」)问题出了名地不可靠。要单独报告这类问题的准确率,与描述类问题分开。
outputs/skill-video-qa.md 是交付物。给定 YouTube URL 或上传视频,流水线索引场景,带时间戳引用作答。评分量表:
| 权重 | 标准 | 度量方式 |
|---|---|---|
| 25 | 时间定位 IoU | 留出定位集上的交并比 |
| 20 | QA 准确率 | NeXT-GQA 与自定义 100 题 |
| 20 | 摄取吞吐 | 每美元处理的小时数 |
| 20 | UI 与引用 UX | 时间戳链接、缩略图条、跳转到帧 |
| 15 | 幻觉率 | 计数与动作类准确率单独报告 |
| 100 |
一次典型问答:
$ video-qa ask --url=https://youtube.com/watch?v=X "how many cars pass the intersection in the first minute?" [scene] 23 scenes detected [asr] transcript complete, 4m12s [index] 69 vectors written (23 scenes x 3) [query] top scene: scene 3 [01:32-01:54], confidence 0.84 [ground] refined window: [00:12-00:58] [synth] gemini 2.5 pro, 1.4s answer: 5 cars pass the intersection between 00:12 and 00:58. citations: [scene 3: 00:12-00:58] [frame preview at 00:14, 00:27, 00:44, 00:51, 00:57]
Twelve Labs 的 Marengo + Pegasus 是商业标杆,端到端最完整;VideoDB 是「视频 CRUD API」参考,上手快;Gemini 长上下文是托管参考,原生读数小时视频但成本高。本节建议自建三管线并行:TransNetV2 做分割(开源 SOTA)、VLM 做字幕与作答、Qdrant 多向量做索引。关键差异化在「多向量」——把字幕、帧、转录三路嵌入并存,查询时 RRF 融合,比单帧嵌入检索召回显著更高,练习会让你量化这个回归。
下一节,我们转向「MCP 服务」——构建一个带注册表的模型上下文协议服务器。