跳转到内容

OmAgent — 长视频分治 Agent 与回退检索

是什么

OmAgent(2024)是面向超长视频理解的多模态 Agent 框架:先把几小时 CCTV 或整部电影预处理成可检索的「场景记忆库」(Video2RAG),再用 Divide-and-Conquer Loop(分治循环) 把复杂问题拆成子任务,必要时调用 rewinder 工具回到具体时间点补看帧,而不是把全片帧一次性塞进模型。

日常类比:你看完一部三小时电影后脑子里只有「大概剧情脉络」;被问到「第 47 分钟主角穿什么颜色外套」时,你会拖动进度条回那一幕再确认——OmAgent 用 rewinder 模拟这个动作,用 RAG 模拟「剧情大纲」。

videollm-online-2024flash-vstream-2024 同属「长视频不能硬塞上下文」家族,但 OmAgent 强调自主规划 + 工具调用,而非纯流式编码。

为什么重要

不理解 OmAgent,长视频方案容易走偏:

  • 均匀采帧 / 全片转文字会丢细节:论文指出关键帧法和帧转文本都会损失连续信息
  • 24 小时 CCTV 是真实场景:安防、监控复盘需要「先粗后细」检索,不是 8 帧猜答案
  • Agent 路线可插拔工具:ASR、人脸框、场景检测可随需求更新,不必重训整个 Video-LLM
  • 2000+ QA 自研 benchmark:填补「复杂长视频 + 多步推理」评测空白

核心要点

  1. Video2RAG 预处理:场景检测切段 → 每段均匀采 10 帧 → Visual Prompting(人脸框等标注在图上)→ ASR 转文字 → MLLM 写 Scene Caption → 向量入库。类比:把电影剪成「带时间戳的章节摘要卡片」。

  2. Divide-and-Conquer Loop:收到问题后先抽时间线索过滤检索结果,再递归拆子任务;子任务可再调 API / 工具。复杂查询不会一次生成终答案。

  3. rewinder 工具:Agent 判断需要像素级细节时,按时间戳回拉原始视频片段重看——弥补 RAG 分段造成的信息裂缝。类比:书签定位章节后仍要翻原书核对脚注。

  4. 与 Video-LLM 微调对比:不训练新视频底座,而是 orchestrate 现有 MLLM + 外部模块,算力更省、工具可热更新。

实践案例

案例 1:Video2RAG 入库(概念)

# 伪代码:预处理流水线
segments = scene_detect(video) # 按镜头切分,记录 start/end 时间戳
for seg in segments:
frames = uniform_sample(seg, n=10)
frames = visual_prompt(frames) # 人脸框、物体框画在图上
audio_text = asr(seg) + diarize(seg)
caption = mllm_dense_caption(frames, audio_text, time_hint=seg.range)
db.insert(embedding(caption), metadata=seg.range)
# 查询时:encode(question) → 向量检索 → 按问题中的时间词过滤

入库一次,多次问答共享;token 只花在检索到的片段上。

案例 2:DnC + rewinder 答题

问题:"主角在雨夜追逐后是否进了仓库?"
Step 1 检索 → 命中「雨夜街道」「仓库门口」两段 Scene Caption
Step 2 子任务 A:确认追逐结束时间 → 调 rewinder 看 1:23:40–1:24:10 原片
Step 3 子任务 B:确认是否进入建筑 → 对比门框与室内光照
Step 4 Conclusive Synthesis 合并子答案
若只靠 Caption 写「两人在雨中」但没说进门,rewinder 补看避免幻觉。

案例 3:与均匀采帧基线对比

策略24h 视频 token细节召回
均匀 32 帧极易漏关键 10 秒
全片 ASR 摘要丢画面信息
OmAgent Video2RAG + rewinder按查询伸缩可回到任意时间段

发版长视频功能前应报 预处理耗时 + 平均 rewinder 次数,不只报准确率。

踩过的坑

  1. 把 OmAgent 当单模型权重:核心是流水线 + Agent,不是换一个 checkpoint 就行。

  2. 忽略预处理成本:场景检测、ASR、逐段 Caption 对 24h 片源可能跑数小时,需离线批处理。

  3. rewinder 无上限:复杂问题可能连环回拉,延迟和算力失控,生产要设预算。

  4. 用 MVBench 短 clip 验证:短视频榜测不出分治与检索价值,要用长片 QA。

适用 vs 不适用场景

适用

  • 数小时监控 / 电影 / 纪录片「找细节、多跳推理」
  • 已有 MLLM,想外挂检索与工具而非重训
  • long-video-retrieval-2023 检索路线对照实验

不适用

  • 30 秒短视频分类(直接 videollama2-2024 即可)
  • 实时低延迟流(预处理 + 多轮工具太慢)
  • 无存储条件的边缘设备

历史小故事(可跳过)

学到什么

  • 长视频理解 = 记忆结构 + 按需放大:先粗索引,再像素级回查。
  • 分治 Loop 让 MLLM 像项目经理:拆任务比一次 CoT 更稳。
  • 工具调用是扩展点:新 OCR、跟踪器可接入,不必动底座。
  • 评测要含 2000+ 复杂 QA:单一短视频榜掩盖长片短板。
  • 与流式方案取舍:流式省存储,Agent 检索适合离线库已建好的场景。
  • benchmark 2000+ 复杂 QA 适合作为长视频 Agent 的固定回归集,比临时抽片测更稳。

若你正在做监控复盘产品,优先评估 Video2RAG 离线建库成本能否接受;实时场景可先看 videollm-online-2024 能否覆盖 80% 查询,再用 OmAgent 补长尾细节题。

延伸阅读

关联

维护提示:

  • 长视频 Agent 路线与 videollm-online-2024 流式路线对照阅读,避免孤立记 OmAgent。
  • 报分请注明预处理是否离线、平均 rewinder 调用次数与检索 top-k。
  • 候选队列见 research/papers-video-understanding.md;专题站 /stations/video-understanding/
  • 训练 I/O 默认对照 decord;评测可试 lmms-eval
  • vid-llm-survey-2023 范式分类对照,区分「端到端 Video-LLM」与「Agent 编排」。
  • 24h 级场景务必说明存储后端(向量库 / 文件系统)与 ASR 语种配置。
  • 关联条目使用 [[slug]] 格式,build 时由 backlink 脚本补全反向链。
  • 复杂 QA benchmark 体量 2000+,复现请 pinned 官方仓库 commit。
  • Scene Caption 维度(时间、人物、地点)影响检索质量,ablation 时单独报告。
  • 发版前用 lmms-eval 或官方脚本复现;pinned 依赖以各仓库 README 为准。

反向链接

  • decord —— Decord — Video-LLM 数据管线的高效视频解码库
  • flash-vstream-2024 —— Flash-VStream — STAR 双进程记忆的低延迟长流理解
  • lmms-eval —— LMMs-Eval — 多模态大模型统一评测框架
  • long-video-retrieval-2023 —— R-VLM — 长视频不靠均匀采帧,靠可学习检索选片段
  • qwen2-vl-2024 —— Qwen2-VL — 动态分辨率 + M-RoPE,工业级视频理解的里程碑
  • vid-llm-survey-2023 —— Vid-LLM Survey — 用大语言模型理解视频的全景地图
  • videoagent-longform-2024 —— VideoAgent (Wang) — LLM Agent 迭代选帧理解长视频
  • videollama2-2024 —— VideoLLaMA 2 — 时空卷积连接器 + 音视频联合理解
  • videollm-online-2024 —— VideoLLM-online — 流式视频对话的 LIVE 框架
  • vinoground-2024 —— Vinoground — 时序反事实短视频探针