假设你正在做一个视频审核系统,要判断一段监控里"快递员有没有把包裹放到门口"。这对人来说是看一眼的事,但让AI来做,它得先认出快递员、包裹、门,再理解"放置"这个动作,还要看前后的状态变化。这个任务有一个专门的称呼——视频VQA(Video Visual Question Answering)。

我第一次听到这个词时,以为是给图像VQA加个视频维度:把视频拆成帧,每帧单独问一次,再把答案合并。后来读了最早的VQA论文才发现,图像VQA问的是"这是什么",视频VQA问的是"发生了什么"——后者要求模型理解时间,而时间一直是深度学习不擅长的。
| 对比项 | 图像VQA | 视频VQA |
|---|---|---|
| 输入 | 一张静态图片 | 一组有序帧 |
| 核心特征 | 空间外观、物体关系 | 动作、事件顺序、因果 |
| 典型问题 | 猫是什么颜色? | 猫先抓老鼠还是先睡觉? |
| 主要难点 | 物体识别、关系推理 | 跨帧跟踪、时序建模、长程依赖 |
这张表省略了一个关键差异:静态图里物体关系是固定的,你看到鸡蛋在碗里,它就一直那样。视频里同样两个物体,位置随时可能互换。问"鸡蛋原本在哪儿?"就要求模型不仅记住当前状态,还要追踪状态变化的轨迹。有些任务甚至要求模型理解"为什么"——这已经不是感知问题,而是因果推理,也是现在所有多模态模型最薄弱的环节。
模型是怎么"看"视频的
现在主流的视频大语言模型,流程可以拆成五步。
- 抽帧:按固定帧率取帧,比如每秒1帧;更聪明的做法是先用场景检测挑出关键帧。
- 编码:用预训练视觉编码器(比如CLIP的ViT)把每一帧转成一组特征向量,也叫token。
- 压缩:几十帧的token全部拼接,极易超过语言模型的长度上限,所以要用池化、交叉注意力等方式压缩到固定长度。
- 融合:把压缩后的视频token和问题token一起送入大语言模型,让模型自己学对齐。
- 生成:语言模型按自回归方式输出答案。
这个流程和图像VQA很像,真正的区别在第1步和第3步。抽帧决定了时间分辨率:帧抽稀了,快速动作就没了;压缩太狠,模型会丢掉细节。每一步都是权衡。
为什么"每帧平均一下"一定不行
我最早写视频理解代码时踩过一个坑:把视频每帧的特征向量求平均,当作整个视频的表示。结果模型把所有问题都答成"是"或"不是"——它根本没有足够的信息做判断。
后来我才想通:平均操作本质上抹掉了时间信息。一个"苹果从桌上掉到地上"的视频,平均后的特征和一个"苹果静止在桌上"的视频,在高层语义上可能非常接近。模型知道有苹果、有桌子,却不知道它们之间的动态关系。
真正让模型感知时间变化的是时序建模。早期方法用LSTM逐帧读入特征,靠循环网络的记忆去累积变化。LSTM能应对短序列,但视频一长,前面的信息会被遗忘。后来Transformer的自注意力可以建立任意两帧之间的关系,可计算量随帧数平方增长。一段10秒24fps的视频有240帧,两两交互接近6万次,这还只是一层。所以后来的工作都在做同一件事:保留关键信息的前提下减少token数量,随机采样只是最粗笨的办法。
注意力机制在这里起着类似"老师划重点"的作用,而问题就是划线指令。问"第一次进球是在什么时候?"模型就需要在时间轴上定位"进球"这个动作的局部片段,而不是无差别地平均所有帧。听起来不难,但模型常常把视觉重点放在最显著的运动区域上,忽略了跟问题相关的细微变化。
看起来漂亮的分数,可能只是模型在猜
视频VQA的评测大多在几个公开数据集上进行,比如MSVD-QA、MSRVTT-QA和TGIF-QA。其中TGIF-QA把问题明确分成动作、数量、时空关系和重复计数四类,这个分类对分析模型能力很有帮助。TGIF-QA论文
但高分不等于真懂。VQA领域很早就发现,模型会利用训练集中的语言偏见。许多问题自带暗示,答案词频分布极不均衡,模型直接猜最常见答案也能拿不低的准确率。这在视频VQA的数量型问题上尤其明显——重复计数任务的答案集中在少数几个数字上,模型根本不用数数,按统计分布猜就行。图像VQA的研究者有更系统的讨论。Don’t Just Assume; Look and Answer
2023年后,大家开始把视频VQA搬到大语言模型上。以Video-ChatGPT为代表的模型,用一个视频编码器把整段视频变成一个压缩表示,再喂给LLM做开放域问答。Video-ChatGPT论文这类模型能流畅地描述场景,但时序推理依然很弱。你给它看"一个人把杯子端起来喝了一口",问它"喝完水后杯子放哪了?",它常常只会说"杯子在桌上",却答不对位置的变化顺序。原因在于语言模型强于语义联想,弱于严格的视觉顺序追踪。
几个常见的误会
为什么不拆成帧,逐帧用图像VQA回答?
大多数视频问题依赖时间顺序,单帧里根本没有答案。比如"这个人是先解锁手机还是先打开相机?",任何一帧都答不了。逐帧处理也没法跨帧跟踪同一个物体,更不用说计算事件先后了。
视频VQA和视频理解是一回事吗?
不是。视频VQA是一个具体任务,视频理解是模型需要具备的能力。现在大部分模型只是在记忆常见的时空模式,并没有建立对物理世界的真正理解。
视频VQA能落地做监控吗?
特定场景可以做试点,开放世界还不行。模型对没见过的事件和因果场景容易一本正经地胡说八道。如果你要在监控里用,建议把问题限定为"有没有人出现"这类描述性判断,别让它做"为什么"推理。
所以,视频VQA的现状可以总结为三句话:静态识别已经够用,短时动作勉强可行,因果时序还不可靠。它答对很多问题,可能是因为训练数据里见过相似情节,而不是真正在时间轴上推理。如果你今天就要用这类模型,把问题设计得偏向"有什么"、"是不是",暂时别指望它解决"接下来会怎样"的问题。每一次正确答案,都可能是概率分布给的幸运儿。
原创文章,作者:guanweilu,如若转载,请注明出处:https://guanweilu.cn/article/463.html