【Video Agent 03】(CVPR 2025)DrVideo: Document Retrieval Based Long Video Understanding
【Video Agent】(CVPR 2025)DrVideo: Document Retrieval Based Long Video Understanding
写在前面:如果想了解更多关于长视频理解和视频智能体新工作,可以关注笔者的Github仓库:Awesome-Video-Agent。
论文简介 🍀
- 📖 题目:DrVideo: Document Retrieval Based Long Video Understanding
- 📅 来源:CVPR 2025
- 🏫 单位:Hunan University、Monash University
- 🌍 主页:https://github.com/Upper9527/DrVideo
- 💻 代码:已开源
- ✒️ 摘要:当前关于长视频理解(long video understanding)的研究仍然不够清晰。现有的大多数视频理解方法主要关注仅持续几十秒的短视频,而对处理长视频的技术探索仍然有限。长视频中帧数量的增加带来了两个主要挑战:难以定位关键信息以及难以进行长距离推理。为此,本文提出 DrVideo,一种基于文档检索(document retrieval)的长视频理解系统。DrVideo 的核心思想是:将长视频理解问题转化为长文档理解任务,从而能够有效利用大语言模型的能力。具体而言,DrVideo 首先将长视频转换为一个粗粒度的、基于文本的长文档,并基于该文档初步检索关键帧,随后利用增强的关键帧信息对文档进行更新。在此基础上,DrVideo 采用基于智能体(agent-based)的迭代循环机制,持续搜索缺失信息并不断增强文档内容,直到收集到足够的与问题相关的信息,从而以思维链(chain-of-thought)方式进行最终预测。在多个长视频基准上的大量实验验证了该方法的有效性。DrVideo 在 EgoSchema 基准(3 分钟)、MovieChat-1K 基准(10 分钟)以及 Video-MME 基准中的长视频子集(平均 44 分钟)上显著优于现有基于大语言模型的最先进方法。代码已公开于:https://github.com/Upper9527/DrVideo
一、论文阅读
1.1 引言(Introduction)
视频理解是计算机视觉中的一项具有挑战性的任务,需要处理时空信息并具备高级推理能力。以往的研究已经能够成功处理持续约几十秒的短视频。然而,如何处理长视频仍然是一个尚未充分解决的问题。近年来,大语言模型(LLMs)的发展在长文本序列的语言理解和推理方面展现出了强大的能力。这些进展启发了视频语言模型(Video-LMs)的发展,以解决长视频理解问题。
Video-LM 通常将视频编码为一系列视觉 token,然后与语言 token 连接形成一个长序列,并利用 LLM 对该长序列进行理解。尽管 Video-LM 改进了视频理解能力,但仍然存在以下局限性。(i)它们无法将整个视频作为输入处理。例如,视觉编码器 OpenAI 的 CLIP-L-14 对每张图像输出 24×24 个 token,而 LLaVA-NeXT-Video 的最大序列长度仅为 8192。(ii)这些方法通常采用均匀或随机的大步长帧采样来处理长视频,而不考虑视频内容,例如 PLLaVA 使用步长 16,IG-VLM 使用步长 6,这会导致潜在的关键信息丢失。(iii)简单地拼接视觉 token 会增加 LLM 在长视频序列中定位与问题相关视觉信息的难度,从而使跨视觉 token 序列进行长距离推理更加困难。
除了将视频编码为视觉 token 序列的研究之外,另一类研究将原始视频转换为字幕描述,然后利用 LLM 的长距离推理能力来预测最终答案。早期工作 LLoVi 使用一个短期视频模型结合 LLM 来解决长视频理解任务。给定一个长视频,LLoVi 首先将其划分为多个短片段并将其转换为简短的文本描述,随后由 LLM 对这些文本描述进行总结,并最终利用该总结回答给定的问题。受 LLoVi 启发,VideoAgent 设计了一种基于智能体的系统,以进一步利用 LLM 的推理能力并定位与问题相关的视频片段或图像。最初,VideoAgent 仅从视频中采样极少量帧(例如 5 帧),并将其转换为文本描述作为 LLM 的输入。随后,通过与 LLM、视觉语言模型以及 CLIP 的持续反馈和交互,它通过图文相似度以由粗到细的方式逐渐找到与问题相关的帧。最后,VideoAgent 根据这些与问题相关的帧来回答问题。尽管这些基于 LLM 的方法在长距离推理方面取得了一定进展并取得了有前景的结果,但仍然存在以下问题。
-
这些方法难以准确识别与问题相关的帧。 例如,VideoAgent 在长视频上执行稀疏采样(例如仅选择 5 帧),然后在初始稀疏空间中基于 CLIP 图文相似度以由粗到细的方式从未采样帧中搜索关键帧,并利用 LLM 推断的缺失问题相关信息进行搜索。虽然这种方式提高了推理效率,但不可避免地以缺乏对视频整体内容的把握为代价,尤其是在长视频包含多个事件(例如超过 100 个事件)且内容变化显著时。此外,由于 CLIP 文本编码器是在简单语言结构和有限上下文(最大长度为 77)的条件下训练的,它难以理解复杂的视频语义,从而限制了检索的准确性。
-
这些方法将视频转换为字幕描述,虽然解决了长距离推理问题,但忽视了关键信息的丢失。 具体而言,即使识别出了与问题相关的帧,生成的字幕也无法覆盖关键帧中的所有重要信息。例如,字幕“一个女人正在照镜子”并不能帮助回答问题“视频中女人站在镜子前时穿着什么”。在这种情况下,LLM 只能进行盲目且带有偏差的猜测来回答问题。
为了解决上述问题,本文转而思考人类是如何理解长视频的。具体来说,人类需要首先对视频形成整体理解,并识别跨片段发生的事件。随后,人类会定位与问题相关的片段,对其进行详细观察,并基于提取到的信息回答问题。受到这一过程的启发,本文提出 DrVideo,一种基于文档检索的长视频理解系统,该系统能够逐步寻找关键帧并生成与问题相关的增强文档,从而使 LLM 能够做出可靠预测。DrVideo 的核心思想是将长视频理解问题转化为长文档理解问题,并利用 LLM 在关键信息定位和长距离推理方面在各种自然语言处理任务中展现出的强大能力。需要注意的是,本文中的长文档检索指的是在单个长文档内部进行段落检索,而不是从由多个长文档组成的语料库中进行检索。
具体而言,DrVideo 使用预训练的帧级或片段级视觉字幕模型(例如 LLaVA-NeXT)将原始长视频转换为长文档,使 LLM 能够整体理解视频内容。不同于 VideoAgent 通过稀疏采样并基于图文相似度识别关键帧且不进行信息增强,DrVideo 采用密集采样,并提出了一个检索模块和一个多阶段智能体交互循环,通过逐步推理动态发现潜在缺失的信息,并与文档增强模块交互以在语言空间中补充这些信息。一旦收集到足够的与问题相关的信息,这些信息将被输入到回答模块中以获得最终预测。
DrVideo 在多个长视频基准上相比现有基于 LLM 的最先进方法取得了显著的性能提升(在 EgoSchema 子集上提升 3.8%,在 MovieChat-1K global 模式上提升 8.3%,在 MovieChat-1K breakpoint 模式上提升 24.8%,以及在 Video-MME 长视频划分上提升 6.3%),这些基准的视频长度从 3 分钟、10 分钟到超过 1 小时不等。令人惊讶的是,在 Video-MME 基准的长视频划分中结合字幕信息后,DrVideo 的准确率达到 71.7%,超过了许多经过大量工程优化的大规模专有模型(例如 Gemini 1.5 Flash、GPT-4o mini 和 GPT4V )。这突显了 DrVideo 的巨大潜力。此外,DrVideo 是一个无需训练的框架,并且对研究人员友好,因为该方法的结果可以在一张 RTX 4090 显卡上通过合理次数的 GPT 调用进行复现。本文工作的贡献可以总结如下:
- 本文提出 DrVideo,这是首个基于文档检索的长视频理解系统,通过将长视频理解任务转化为长文档检索与理解任务,从而有效利用大语言模型的能力。
- 不同于以往工作,本文提出了一个检索模块以及一种新的多阶段智能体交互循环,该循环能够动态地发现潜在缺失信息,并在语言空间中对这些信息进行增强。
- 在多个长视频基准(即 EgoSchema、MovieChat-1K 和 Video-MME 的长视频划分)上,DrVideo 相比现有基于 LLM 的最先进方法取得了明显的性能优势。
1.2 方法(Methodology)
在本节中,本文详细介绍所提出的基于文档检索的长视频理解系统。如图 1 所示,给定一个长视频及一个关于该视频的问题,DrVideo 首先将长视频转换为一个长文档,称为初始视频文档。然后,检索模块通过计算问题与初始视频文档之间的相似性,识别出前 K 个关键帧。文档增强模块丰富这些关键帧的信息,并将其添加到初始视频文档中,形成一个新的视频文档(称为更新后的视频文档),该文档作为后续多阶段智能体交互循环的起点。

图1 论文提出的DrVideo框架概述。它包括五个组件:视频-文档转换模块(video-document conversion module),检索模块(retrieval module),文档增强模块(document augmentation module),多级代理交互循环(multi-stage agent interaction loop)和应答模块(answering module)。
该循环包含两个不同的智能体:规划智能体(the planning agent)和交互智能体(the interaction agent)。规划智能体判断更新后的视频文档是否足以回答问题。如果不足,则将更新后的视频文档输入交互智能体,以动态发现缺失的关键帧。交互智能体与文档增强模块(the document augmentation module)交互,请求这些关键帧所需的信息。文档增强模块的输出被添加到当前文档中,以得到最新的更新后视频文档。随后,新的视频文档再次被发送给规划智能体,以进一步判断当前信息是否充足。该搜索与交互循环持续进行,直到规划智能体认为当前信息足以回答问题,或者达到最大迭代次数。循环结束后,最终视频文档及相关问题被送入应答模块(the answering module),以获得最终预测。
1.2.1 视频文件转换模块(Video-Document Conversion Module)
通过将每一个单独的视频帧 V t V_t Vt(或一个短视频片段)转换为一个简短描述 S V t S_{V_t} SVt,本文将输入的长视频转换为初始视频文档 D o c i n i t Doc_{init} Docinit:
D o c i n i t = { 1 , S V 1 } , { 2 , S V 2 } , . . . , { T , S V T } ( 1 ) Doc_{init} = {\{1, S_{V_1\}}, \{2, S_{V_2}\}, ..., \{T, S_{V_T}}\} \quad (1) Docinit={1,SV1},{2,SV2},...,{T,SVT}(1)
其中 T T T 是视频的长度。具体而言, S V t S_{V_t} SVt 由一个VLM模型 ϕ v l m \phi_{vlm} ϕvlm(例如,LLaVA-NeXT )生成,即 S V t = ϕ v l m ( P , V t ) S_{V_t} = \phi_{vlm}(P, V_t) SVt=ϕvlm(P,Vt),其中 P P P 是请求对图像进行简短描述的提示词,例如,用不超过 50 个词描述这张图片。DrVideo 中所使用的描述模型可以被其他描述模型替换(例如,LaViLa、BLIP-2)。采用不同描述模型的实验结果可见表 6。
1.2.2 文档(帧)检索模块(Document (Frames) Retrieval Module)
在获得 D o c i n i t Doc_{init} Docinit 之后,本文引入一个文档检索模块,通过计算问题与整个文档之间的相似性来识别最相关于问题的前若干帧。具体来说,本文使用 OpenAI 的嵌入模型 ϕ e m b \phi_{emb} ϕemb 来获得初始文档的向量表示,即 ε d o c = ϕ e m b ( D o c i n i t ) \varepsilon _{doc} = \phi_{emb}(Doc_{init}) εdoc=ϕemb(Docinit)。给定一个特定的检索文本 R T \mathcal{RT} RT,即问题 Q Q Q,检索模块首先计算嵌入 ε R T = ϕ e m b ( R T ) \varepsilon _{\mathcal{RT}} = \phi_{emb}(\mathcal{RT}) εRT=ϕemb(RT),然后基于 ε R T \varepsilon_{\mathcal{RT}} εRT 与 ε d o c \varepsilon _{doc} εdoc 之间的余弦相似度检索前 K K K 帧:
t o p k d o c = a r g t o p t K c o s ( ε R T , ε d o c t ) ( 2 ) topk_doc = arg \space \underset{t}{top} K cos(\varepsilon_{\mathcal{RT}}, \varepsilon _{doc_t}) \quad (2) topkdoc=arg ttopKcos(εRT,εdoct)(2)
其中 ε d o c t \varepsilon _{doc_t} εdoct 是第 t t t 个描述 S V t S_{V_t} SVt 的嵌入。
1.2.3 文档增强模块(Document Augmentation Module)
对于每个 t ′ ∈ t o p k _ d o c {t}' ∈ topk\_doc t′∈topk_doc,本文使用带有不同提示词 A P \mathcal{AP} AP(增强提示,augmented prompts)的 LLaVA-NeXT 模型来生成一个详细描述 L V t ′ L_{V_{t}'} LVt′,即 L V t ′ = ϕ v l m ( A P t ′ , V t ′ ) L_{V_{t}'} = \phi_{vlm}(\mathcal{AP}_{t}', V_{t}') LVt′=ϕvlm(APt′,Vt′)。初始的 A P t ′ \mathcal{AP}_{t}' APt′ 是一个通用提示:“If there are factual errors in the question, provide a precise description of the image; if not, proceed to answer the question: {Q}”。更新后的视频文档 A D \mathcal{AD} AD 变为:

需要注意的是, K K K 显著小于总帧数(例如, K = 5 K = 5 K=5,而 T = 90 T = 90 T=90),因此附加描述不会显著增加文档的整体长度。
1.2.4 多阶段智能体交互循环(Multi-Stage Agent Interaction Loop)
除了检索到的关键帧之外,本文还进一步引入了一个多阶段智能体交互循环,以动态发现其他潜在关键帧,并使用不同类型的信息对其进行增强,以服务于最终答案。本文采用两个不同的智能体:规划智能体和交互智能体,它们分别针对特定任务而设计。两个智能体使用相同的 LLM,即 GPT-3.5,但被赋予不同的提示,并对不同类型的信息进行推理。具体细节如图 2 所示。

图2.多阶段代理交互循环和应答模块的图示。在多阶段代理交互循环中有两个智能体:一个规划智能体,用于规划下一步;一个交互智能体,用于动态查找丢失的信息并与文档增强模块交互。
1️⃣ 规划智能体(Planning Agent)
给定问题 Q Q Q 和更新后的视频文档 A D i \mathcal{AD}_i ADi(其中 i 表示迭代步骤),以及来自所有先前步骤的分析历史 H H H(初始化为空 {}),规划智能体首先判断更新后的视频文档是否足以生成一个有把握的答案。如果信息充足,则流程转入回答模块以获得最终答案。如果信息不足,则该智能体会分析更新后的视频文档 A D i \mathcal{AD}_i ADi 为何不足。随后,该智能体用其分析结果更新 H i H_i Hi,并将更新后的 H i H_i Hi 传递给交互智能体。
2️⃣ 交互智能体(Interaction Agent)
给定当前视频文档 A D i \mathcal{AD}_i ADi 和更新后的 H i H_i Hi,交互智能体会找到 N N N 个对于回答 Q Q Q 至关重要但细节缺失的帧:
∀ n ∈ N , n ∈ T , n ∉ t o p k _ d o c , a n d N < K ( 4 ) ∀n ∈ N, n ∈ T, n ∉ topk\_doc, and \space N < K \quad (4) ∀n∈N,n∈T,n∈/topk_doc,and N<K(4)
除了识别这 N N N 个缺失的关键帧之外,交互智能体还会为每个 n ∈ N n ∈ N n∈N 确定增强信息的类型。为实现这一点,本文向交互智能体提供了一个任务特定的提示,即:“Your task is to determine which frame needs which type of information and can answer this question accurately, reasonably, and without contradiction. The two types of information are as follows: A: Given an image, get a detailed description of the image (image caption, just like what is shown in this image?) B: Given an image, get a response to the above question (visual question answering)”(你的任务是确定哪个帧需要哪种类型的信息,并且能够准确、合理且无矛盾地回答这个问题。两种信息类型如下:A:给定一张图像,获取该图像的详细描述(图像描述,即这张图里展示了什么?);B:给定一张图像,获取对上述问题的回答(视觉问答))。在获得这 N N N 个帧及其所需信息类型后,该智能体与文档增强模块交互,丰富这些帧的信息,以更新当前视频文档,供下一步使用。
1.2.5 应答模块(Answering Module)
给定最终视频文档 A D f i n a l \mathcal{AD}_{final} ADfinal,本文采用另一个智能体,使用零样本思维链(CoT)方法来给出预测。回答模块输出对应答案、置信度分数以及答案背后的推理过程。除了提升预测准确率之外,CoT 方法还使本文能够追踪推理步骤,从而保证决策过程的透明性与可解释性。
1.3 实验(Experiments)
1.3.1 任务与数据集(Tasks & Datasets)
论文在实验中使用三个公认的基准数据集评估论文DrVideo,重点验证其零样本长视频理解能力。
- EgoSchema:EgoSchema数据集包含5000道多项选择题,这些问题源自5000段三分钟的自我中心视角视频。该数据集仅有500道题目具有公开可访问的标签,完整集合需通过排行榜进行评估。
- MovieChat-1K:MovieChat-1K是一个面向长视频理解的基准数据集,包含1000段来自电影与电视剧的视频,每段时长约10分钟。该数据集包含两种模式:全局模式与断点模式。全局模式指分析整段视频以理解其整体内容与上下文,断点模式则聚焦于特定帧或场景的分析。
- Video-MME:Video-MME 是近期提出的综合性视频分析评估基准。我们在该数据集的“长期视频”子集(long split)上评估DrVideo,视频时长范围为30至60分钟,平均时长44分钟。由于EgoSchema与Video-MME均为多项选择任务,两个数据集均采用准确率作为评估指标。MovieChat-1K基准聚焦开放式问题,我们采用GPT辅助评估方法,对模型回答的准确性(正确/错误)与质量(评分0–5)进行综合评判。评估中选用Gemini-Pro作为辅助工具,并采用相同提示模板以确保公平比较。
1.3.2 实施细节(Implementation Details)
在EgoSchema 数据集上,论文选用LaViLa 作为描述生成模型,将视频转换为文档。需注意,论文的LaViLa模型的训练数据未包含EgoSchema视频,此设定与LLoVi 一致。对于MovieChat-1K与Video-MME基准数据集,论文采用LLaVA-NeXT 作为描述生成模型,为每一帧生成简要描述。视频预处理方面,论文对EgoSchema与MovieChat-1K 的视频以0.5帧每秒的速率进行采样,对Video-MME的视频以0.2帧每秒的速率进行采样。论文进一步选用LLaVA-NeXT,通过不同提示对上述两个数据集中的关键帧进行增强。在对比实验中,论文使用GPT-4(即gpt-4-1106-preview)作为评估代理,用于评估论文的DrVideo在EgoSchema与MovieChat-1K上的性能;在Video-MME上,则采用DeepSeek(即DeepSeek V2.5)作为评估代理。在消融实验中,出于API调用成本的考虑,论文使用GPT-3.5(即gpt-3.5-turbo-1106)对论文的DrVideo的有效性进行评估。
1.3.3 对比实验(Comparison with State-of-the-arts)




1.3.4 消融实验(Ablation Study)

二、代码学习
写在最后
由于笔者🖊️精力有限且本文更多的目的是通过📒博客记录学习过程并分享更多知识,因此文中部分描述不太具体,如有不太理解💫的地方可在评论区👀留言。非特殊赶deadline⏰或假期⛱️期间,笔者会经常上线回复💬。如有不便之处,请海涵~
如果想了解更多关于长视频理解和视频智能体新工作,可以关注笔者的Github仓库:Awesome-Video-Agent。
另外,创造不易,转载请注明出处💗💗💗~
更多推荐



所有评论(0)