← 返回题目列表

视频理解中的抽帧策略如何设计?

中等 第 19 / 25 题 更新于 2026/09/18
多模态大模型视频理解抽帧Token预算

简化版

抽帧的目标是在有限视觉 Token 下同时保留全局时间覆盖和关键事件细节。均匀抽帧适合作为基线,但会漏掉短时事件;生产方案常用“稀疏全局帧 + 镜头/运动/查询驱动的局部密集帧”,并保留时间戳和原始顺序。评测要按长视频、短事件、动作顺序和静态问答分桶,同时比较准确率、延迟与每分钟视频成本。

详细版

若 10 分钟视频是 30 FPS,共 18000 帧,而模型预算只有 60 帧,均匀抽样约每 10 秒取一帧,持续 1 秒的关键动作很可能完全漏掉。可先检测镜头边界并用低成本特征计算运动或语义变化,为每个镜头保底 1 帧,再给高变化片段分配额外预算;问题已知时,还可借助 ASR、OCR 或文本—视频相似度定位候选时间窗。

抽样器输出必须带时间戳,避免模型把稀疏帧误认为连续过程。场景切换附近宜取前后帧,快速动作宜取短片段而非孤立图像,长时间静态画面可去重。系统应设最大时长与帧数,缓存通用全局特征,并将抽帧 Recall 与最终问答准确率分开诊断。

视频 -> 镜头切分 -> 全局保底帧
                 -> 高运动片段 -> 局部密集帧 -> 时间排序 -> VLM
问题/ASR/OCR ------------------^

完整版教学

一、抽帧本质是预算分配

视频同时包含空间和时间信息,但 VLM 可接收的视觉 Token 有限。把所有帧送入模型不仅成本极高,大量相似帧还会稀释关键信号。抽帧不是简单压缩文件,而是在“覆盖整个时间轴”和“看清短暂事件”之间分配观察机会。

对于 30 FPS 的 1 小时视频,共有 108000 帧;即便每帧压成 256 个视觉 Token,也不可直接放入普通上下文。若预算 120 帧,平均每 30 秒才有一帧。这个数量级说明任何单一固定间隔都无法兼顾所有事件,必须利用结构或查询信息。

二、均匀抽帧为何仍是重要基线

均匀抽帧在时间轴上等距选择,简单、确定且覆盖全程。对“视频主要在哪里拍摄”“演讲者穿什么颜色”等持续性信息,它往往够用。它还便于缓存:同一视频面对不同问题,可复用相同帧特征。

设总帧数为 T、预算为 K,可取中点位置:

i_k = floor((k + 0.5) × T / K),  k = 0 ... K-1

中点采样比始终取区间首帧更均衡,但仍可能漏掉恰好落在间隔之间的短事件。均匀方案应作为对照组,而不是默认终点。

三、镜头感知解决内容分布不均

视频通常由镜头构成,同一镜头内部视觉相似,切换点前后内容突变。先用颜色直方图、感知特征或专用检测器找边界,再为每个镜头分配代表帧,可以减少重复并保护短镜头。渐变、闪光和快速摇镜会制造伪边界,因此检测阈值需在业务数据上校准。

策略长处典型失败
固定间隔稳定、便宜漏短事件
镜头代表帧内容覆盖好镜头内动作丢失
运动强度采样捕捉动作相机抖动误触发
查询感知采样与问题相关查询歧义或检索漏召回
分层粗到细质量与成本平衡管线复杂、需二次读取

四、短事件为什么需要局部片段

“杯子何时掉落”包含动作顺序,仅看到掉落前和掉落后两张图,可能知道状态变化,却不一定区分是人拿走还是掉落。快速动作应保留连续若干帧或短 clip,让时间编码器观察运动方向。孤立关键帧适合物体与场景,连续片段更适合动作与因果。

记忆钩子:静态问题需要“看见什么”,动作问题还需要“先后怎样”;关键帧保空间,短片段保时间。

若候选事件中心为 125 秒,可在 [123,127] 秒以 4 FPS 取 16 帧,同时保留全局稀疏帧。这样既知道事件发生细节,也能理解它在全片中的上下文。局部加密不能挤掉全部全局预算,否则问题指错片段时系统无从恢复。

五、查询感知怎样工作

当问题提前已知,可用 ASR 中的关键词、画面 OCR、对象检测或低成本视频嵌入召回相关时间窗。例如问题问“比分什么时候变成 2:1”,OCR 的记分牌变化比全画面运动更有价值。候选召回应偏高,随后让较强模型重排,避免早期过滤掉真值。

一种预算分配是 40% 给均匀全局帧,40% 给 Top-k 候选窗口,20% 留给候选周边上下文。对于 80 帧预算,即 32 帧全局、32 帧局部、16 帧边界。比例应由问题类型和验证集确定,而不是所有视频硬编码一致。

六、时间信息不能在预处理时丢失

抽出的帧必须附原视频时间戳、帧序号和镜头 ID,并按时间排序。可在输入中插入 <t=125.0s> 标记,让模型知道相邻视觉块可能相隔几十秒。变帧率视频不能只用 frame_index / nominal_fps 推时间,应读取容器的展示时间戳。

重复帧去重也需保留持续时间:一张静态画面代表 2 秒和代表 20 分钟,语义不同。若问题要求“持续多久”,仅有代表帧而无区间边界就无法回答。字幕和音频对齐时也应使用统一时间基准,防止音画偏移。

七、如何评测抽样器本身

最终 QA 正确率受抽样器和理解模型共同影响。可标注证据时间段,先测所抽帧是否命中证据,定义时间召回;再在给定真值帧的条件下测模型上限。这样能够判断失败是“没看到”还是“看到但没理解”。

对 100 个关键事件,若抽样命中 85 个,则 evidence recall 为 85%;其中模型答对 68 个,条件正确率为 68/85=80%。增加帧数后召回升到 95%,但模型因上下文噪声只答对 70 个,说明更多帧不必然带来同等收益。还要报告每分钟处理时延、GPU 成本和缓存大小。

八、常见误区与追问

  • 误区:提高固定 FPS 就能解决所有问题。 长视频下预算仍会爆炸,而且大量静态重复帧浪费上下文。
  • 误区:镜头代表帧足以理解动作。 单帧缺少方向与顺序,快速动作需要局部连续片段。
  • 误区:抽帧后只按文件名排序即可。 需要可靠时间戳,尤其要处理变帧率与多段拼接视频。
  • 追问:问题未知时怎么抽? 使用镜头覆盖、运动/语义变化和全局保底,生成可复用的通用表示。
  • 追问:如何避免查询召回失败? 保留一部分均匀帧,并让候选阶段以高召回为目标。
  • 追问:直播场景有什么不同? 只能在线处理,应使用滑动窗口、事件触发缓存和有限历史摘要。

九、加强记忆

视频抽帧可记成“全局铺底、镜头去重、事件加密、时间不丢、分层评测”。先算总帧与预算的数量级,再根据静态或动作问题选择单帧还是 clip;查询已知时用 ASR/OCR 辅助召回,但保留均匀兜底;最后拆开证据召回与模型理解测量。这样设计的不是一个固定 FPS,而是一套可解释的时间预算系统。