想象一下,你坐在客厅里,面前摊着一本厚重的相册。每一张照片都定格了一个瞬间——有人物、有风景、有表情。但当你合上相册,打开电视,画面动了起来:一个人从门口走进来,微笑着坐下,拿起茶杯……这时,你不仅能看到“是什么”,还能看到“正在发生什么”。视频,就是无数张照片沿着时间轴奔跑起来的故事。而多模态模型要做的,就是像一位导演一样,既看懂每一帧画面的细节,又理解镜头切换、动作连贯、事件因果的完整剧情。本文就用“看剧”这个日常生活场景,带你零基础看懂多模态模型是如何“追剧”的。 视频理解的核心,是把“会动的画面”变成模型能计算的数字信号。这需要解决三个问题:从哪里看(采样策略)、怎么看(时空建模)、看完怎么记住(长视频处理),最后还要让模型真正“看懂”动作和事件,并配上字幕(视频-文本对齐)。整个过程就像导演看样片:先挑关键镜头,再理解空间和时间的韵律,最后串联成完整故事。

岗位关联

职业价值:掌握视频理解技术,你就能从事视频问答、内容审核、智能剪辑等高价值 AI 应用的研发,是通往多模态大模型方向的关键一步。

目录
  1. 可视化演示
  2. 视频与图片差异
  3. 视频采样策略
  4. 时空特征建模
  5. 长视频处理
  6. 动作事件理解
  7. 视频文本对齐
  8. 应用工程实践
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示视频帧采样策略、3D卷积与Transformer时空建模、视频问答流程,点击按钮切换不同维度演示。

本节配有交互动效(进入视口后自动加载,约 3KB)。

视频帧采样策略对比 均匀采样从N帧中每隔N/K帧取一帧 关键帧采样选取信息量最大的帧 Uniform: step = N/K, Key: max(Δinfo) 采样策略平衡计算效率与信息保留

视频与图片差异

看照片和看视频的感觉完全不同。照片像一封静止的信,你打开它,所有信息瞬间呈现在眼前;视频则像一场正在进行的谈话,你得一直听下去才知道对方要表达什么。对 AI 模型来说,这个区别是本质性的:图片是“二维空间的快照”,视频是“二维空间 + 时间维度的连续流”。

从技术上讲,视频比图片多出的时间维度,带来了三个根本性变化。第一,时间维度引入了运动信息——同样是一杯水,静止图片只能告诉你“这里有杯水”,视频却能告诉你“水在被喝还是在被倒掉”。第二,事件重要性超过物体重要性——在视频里,模型不仅要知道“画面里有一个人”,还要知道“这个人正在做什么”,动作和事件的分量比静态物体更重。第三,算力挑战随之而来——一秒视频通常有 24~30 帧,处理一段 10 秒的视频,计算量是一张图片的数百倍。

所以,视频理解绝不是在图片模型上“多看几张”那么简单,而是需要一套全新的方法论来处理时间这个维度。就像导演看样片时关注的不是单张画面的美感,而是镜头与镜头之间如何讲出一个连贯的故事。理解了这一层差异,我们就知道为什么视频理解需要专门设计了。

视频理解复杂度=图片理解复杂度×空间分辨率×时间帧数\text{视频理解复杂度} = \text{图片理解复杂度} \times \text{空间分辨率} \times \text{时间帧数}
这个公式想表达的是:视频理解的计算量,大致等于单张图片的计算量乘以参与的帧数。帧数越多,计算越昂贵。
  1. 视频理解复杂度指模型理解整段视频所需的总计算量。
    视频理解复杂度\text{视频理解复杂度}
  2. 乘以图片理解复杂度以单帧图像的处理难度为基准单位。
    图片理解复杂度\text{图片理解复杂度}
  3. 乘以空间分辨率画面越清晰,每个像素都要参与计算,复杂度倍增。
    ×空间分辨率\times \text{空间分辨率}
  4. 乘以时间帧数视频由很多帧组成,帧数越多,重复计算的次数就越多。
    ×时间帧数\times \text{时间帧数}

视频采样策略

导演在看长达几小时的外拍素材时,不会一秒一秒地看完每一帧——那样太慢了,他会拖动进度条,每隔一段挑几个关键画面看看。AI 模型处理视频时,也采用了同样的思路,这就是视频采样策略。它的目的很简单:在保留足够信息的同时,尽量减少需要计算的帧数。

最基础的做法是均匀采样:从视频中每隔固定间隔抽取一帧。比如每分钟的视频,每秒钟取一帧,总共取 60 帧。这个方法的优点是完全均匀覆盖,不会错过任何时间段的画面;缺点是如果关键动作恰好发生在两帧之间,模型可能什么也看不到——就像导演快进时恰好跳过了主角眨眼的那个瞬间。更精细的方法是密集采样:以很高的帧率(如每 0.1 秒一帧)密集取图,最大限度捕捉运动细节。信息完整了,但计算量也随之爆炸——用 3 倍帧数就要付 3 倍算力。现实中更常用的是稀疏采样:结合场景检测,只在画面发生显著变化时采样,比如镜头切换、人物入场、动作突变时各取一帧。稀疏采样用极少的帧数覆盖了大部分关键信息,是效率与效果的平衡点,也是当前主流视频理解模型的首选策略。

采样策略决定了视频理解系统“看世界的频率”。采样太稀疏会漏掉关键动作,太密集又会让算力吃不消。所以经验丰富的 AI 工程师会像导演选镜头一样,根据任务需求灵活调配采样密度。理解采样策略,你就抓住了视频理解的入口。

N=⌈Ts⌉N = \left\lceil \frac{T}{s} \right\rceil
其中 N 是采样帧数,T 是视频总时长(秒),s 是采样间隔(秒)。这个公式帮你快速估算:一段 60 秒视频,每 2 秒取一帧,会得到约 30 帧。
  1. N表示采样后得到的帧总数,也就是模型真正“看到”的画面数量。
    NN
  2. T 除以 s视频总时长除以采样间隔,得到抽取的帧数。
    Ts\frac{T}{s}
  3. 向上取整因为即使最后一帧不满一个间隔,也要取出来,所以用天花板函数保证整数。
    ⌈⋅⌉\left\lceil \cdot \right\rceil

时空特征建模

采样只是从视频里“挑出要看的画面”,真正要让模型理解画面内容,还需要一套强大的“眼睛”来同时看到空间和时间两个维度的信息。这就引出了视频理解的核心——时空特征建模。回到导演的比喻:导演看一场戏时,不仅要注意画面里演员的站位(空间特征),还要注意演员的走位变化和台词节奏(时间特征),只有把两者结合起来,才能评判这场戏好不好看。

早期的视频理解模型曾尝试把视频当作“一组独立的图片”,逐帧提取空间特征后直接拼接。但这种做法把时间信息硬生生切断了——模型能看出每帧“有什么”,却看不出“发生了什么”。真正的突破来自于3D卷积网络:它不是对单张图片做 2D 卷积(在宽度和高度两个方向滑动),而是对连续多帧组成的“立方体”做 3D 卷积(在宽度、高度和时间三个方向同时滑动)。这样一来,模型能天然捕捉画面中物体从位置 A 移动到位置 B 的过程,因为时间维度的变化直接参与了特征计算。

3D 卷积让模型第一次拥有了“动态视觉”。就像导演的肉眼能从演员一连串动作中捕捉表演的张力一样,3D 卷积从连续帧中提取运动模式。不过,3D 卷积也有其代价——参数量和计算量比 2D 卷积大得多,这也就是为什么时空建模是视频理解中最“烧钱”的部分,也是研究者持续优化的重点。

Fout(x,y,t)=σ(∑c=0C−1∑i=0kh−1∑j=0kw−1∑k=0kt−1Wc,i,j,k⋅Fin(x+i,y+j,t+k))F_{out}(x, y, t) = \sigma\left(\sum_{c=0}^{C-1} \sum_{i=0}^{k_h-1} \sum_{j=0}^{k_w-1} \sum_{k=0}^{k_t-1} W_{c,i,j,k} \cdot F_{in}(x+i, y+j, t+k)\right)
这个公式表示 3D 卷积的计算过程:用一个三维的卷积核(大小为 k_h × k_w × k_t),同时扫描输入视频立方体的高、宽、时间三个方向,每个位置的输出值是核内所有元素与输入对应元素的加权和。
  1. 输出特征 F_out某位置 (x, y, t) 在卷积后得到的特征值。
    Fout(x,y,t)F_{out}(x, y, t)
  2. 非线性激活 σ对加权结果做非线性变换,让模型能表达更复杂的模式。
    σ(⋅)\sigma(\cdot)
  3. 三重求和遍历对输入通道 c、高度方向 i、宽度方向 j、时间方向 k 全部加权累加。
    ∑c=0C−1∑i=0kh−1∑j=0kw−1∑k=0kt−1\sum_{c=0}^{C-1} \sum_{i=0}^{k_h-1} \sum_{j=0}^{k_w-1} \sum_{k=0}^{k_t-1}
  4. 卷积核权重 W每个位置对应的可学习参数,模型通过训练自动调整这些参数来提取有用的时空模式。
    Wc,i,j,k⋅Fin(x+i,y+j,t+k)W_{c,i,j,k} \cdot F_{in}(x+i, y+j, t+k)

长视频处理

如果一个导演要看的样片长达三小时,他不可能一次全部塞进脑子里——他会把片子切成几个片段,分段落观看,再在脑中把各段落的情节串联起来。长视频处理面临的就是这个难题:内存和算力有限,无法一次处理整段视频。哪怕采了样,一段 10 分钟的视频也有上万帧,远远超出模型单次计算的上限。

主流的解决方案是视频分片:把长视频按时间切成若干短视频段,每段约 10~30 秒。模型逐段处理,就像导演逐段看样片一样。但分片处理带来了新问题——如何保证各片段之间的信息不丢失?于是有了记忆压缩:模型先将每个片段的内容压缩成一个“摘要向量”(像导演看完一段后在笔记本上写下“这段讲主角发现秘密”),再基于这些摘要来理解全局内容。更进一步,研究者提出了跨片注意力机制:让模型在处理某个片段时,能直接“回看”之前所有片段的摘要信息,实现跨时间片段的关联建模——就像导演看完第 3 段时,能回想第 1 段埋下的伏笔一样。

长视频处理让模型拥有了“长时记忆”。如果说视频分片是导演的分段工作法,那么记忆压缩就是导演的笔记系统,跨片注意力则是导演的回溯思考能力。三者配合,让模型能在长达数小时的视频中保持对前因后果的把握,这也是视频理解从“看清片段”走向“看懂整剧”的关键一步。

hglobal=Attention(Qseg,Kmemory,Vmemory)h_{global} = \text{Attention}(Q_{seg}, K_{memory}, V_{memory})
这个公式表示跨片注意力的核心计算:当前视频片段的查询向量(Q),去匹配之前所有片段的记忆键值对(K 和 V),从而获得贯穿全局的视频理解。
  1. Q_seg当前正在处理的视频片段,经过编码后得到的查询向量。
    QsegQ_{seg}
  2. K_memory 和 V_memory之前所有片段的记忆向量,以键值对形式存储,供查询使用。
    Kmemory,VmemoryK_{memory}, V_{memory}
  3. Attention 操作通过计算查询与记忆的相似度,加权聚合出全局信息。
    Attention(⋅)\text{Attention}(\cdot)
  4. h_global融合了全局上下文信息的特征向量,用于后续的动作识别或问答。
    hglobalh_{global}

动作事件理解

当导演掌握了完整的剧情脉络后,最终的考验是能否准确地说出“这段戏里主角做了什么”。这就是视频理解的核心任务——动作事件理解,即让模型识别视频中发生了哪些动作和事件。动作和事件概念上有层级关系:动作是短时、原子的行为,比如“挥手”“踢球”;事件则是由多个动作组成的复杂过程,比如“举行一场婚礼”包含“交换戒指”“拥抱”“切蛋糕”等多个动作。模型需要同时识别这两个层次。

动作识别是最基础的任务,模型对一小段视频进行分类,输出动作标签(如“打篮球”“弹钢琴”)。这需要利用上一节讲到的时空特征,因为动作本身就体现在空间位置随时间的变化中。时序检测更进一步:不仅要知道“发生了什么动作”,还要标出“动作从哪一秒开始、到哪一秒结束”,就像在剧本上给每场戏标注起止时间一样,输出“动作类别 + 开始时间 + 结束时间”三元组。行为理解则是更高级的层次,要求理解多个动作之间的逻辑关联和因果顺序——不仅要看到“这个人拿起了刀”,还要结合上下文人知道“他在切菜准备做饭”。

理解了动作事件理解的分层结构,你就掌握了视频理解的“最后一块拼图”:从看到画面(空间特征),到看到运动(时间特征),再到看到“什么人在做什么事”(动作识别),最终到看懂“他们为什么要这样做”(行为理解)。这个从下到上的递进,正是大脑处理视觉信息的层级逻辑,也是 AI 模型模仿人类视觉认知的方式。

P(A1:M∣V)=∏m=1MP(am∣a<m,V)P(A_{1:M} | V) = \prod_{m=1}^{M} P(a_m | a_{<m}, V)
视频中发生的一连串动作事件,可以按顺序分解为逐个动作的条件概率乘积——就像导演看完整段戏后,按时间线把每个动作按顺序排列出来,并评估每一步在给定上下文后的合理程度。
  1. P(A_1M | V):给定视频 V,整串动作序列 A_1 到 A_M 同时成立的概率。
    P(A1:M∣V)P(A_{1:M} | V)
  2. 连乘符号把每个动作的条件概率相乘,表示整串事件发生的联合概率。
    ∏m=1M\prod_{m=1}^{M}
  3. P(a_m | a_<m, V)第 m 个动作的概率,取决于视频内容以及它之前所有动作。
    P(am∣a<m,V)P(a_m | a_{<m}, V)

视频文本对齐

你看外国电影时,没有字幕会很难受——画面完全看得懂,但听不懂台词。反过来,如果只给你字幕而没有画面,你也很难想象出电影的实际场景。视频文本对齐要解决的就是这样一个问题:让模型把“看见的内容”和“听到/读到的文字”对应起来,打通视觉与语言的鸿沟。

具体实现上,多模态匹配是核心手段:模型把视频片段编码成一组“视频特征向量”,把对应的文本(如字幕、视频描述)编码成“文本特征向量”,然后通过对比学习,把所有语义上匹配的视频-文本对的距离拉近,把不匹配的对推远。在推理阶段实现视频问答:用户提出关于视频内容的问题(如“视频里的人穿什么颜色的衣服?”),模型先在视频中找到与问题最相关的时空区域,再生成答案。更进一步,开放词汇技术让模型不需要预先定义动作或物体的标签集合,而是直接匹配文本描述——比如你可以问“视频里是否有人在倒水”,模型直接在视频中寻找与“倒水”语义最接近的动作片段。

视频文本对齐赋予了模型“跨界沟通”的能力。就像导演既能看懂画面,又能听懂台词表达一样,视频理解模型通过文本对齐,将视觉信息和语言信息连接起来,让模型可以实现自然语言交互——这也正是多模态模型被称为“多模态”的本质所在。

Lalign=−log⁡exp⁡(sim(fv,ft)/τ)∑j=1Nexp⁡(sim(fv,ftj)/τ)\mathcal{L}_{align} = -\log \frac{\exp(\text{sim}(f_v, f_t) / \tau)}{\sum_{j=1}^{N} \exp(\text{sim}(f_v, f_{t_j}) / \tau)}
这是视频-文本对齐中常用的对比学习损失。对于一对匹配的视频和文本,模型要最大化它们特征的余弦相似度,同时使其远高于任何不匹配的视频-文本对。
  1. sim(f_v, f_t)视频特征 f_v 和文本特征 f_t 的相似度(通常用余弦相似度)。
    sim(fv,ft)\text{sim}(f_v, f_t)
  2. 除以温度系数 τ控制相似度分布的陡峭程度,让模型更自信地区分匹配与不匹配。
    τ\tau
  3. 除以所有负样本的相似度之和分母中包含 1 个正样本和 N-1 个负样本,最大化正样本相对优势。
    ∑j=1Nexp⁡(⋅)\sum_{j=1}^{N} \exp(\cdot)
  4. 负对数把“最大化正样本概率”转化为最小化损失,方便用梯度下降优化。

应用工程实践

掌握了视频理解的核心原理后,回到实际工程。导演在拍摄完成后,还有一项繁重的工作——剪辑。AI 工程师做的事情类似:把理解能力转化为可用的系统。当你用手机对着一段视频问“这个人最后去了哪里?”,这背后就是视频问答应用:系统先对视频采样和编码,存储成特征库,然后把你的问题转成文本特征,在特征库中找到答案区域,最后由大语言模型生成回答。整个过程必须在数秒内完成,对工程的实时性要求很高。

在视频处理流水线中,镜头分割是一个关键预处理步骤——把用户上传的长视频先切成单个镜头,再逐镜头提取特征,这能大幅提升问答的准确性。一个镜头是一个连续拍摄的片段,镜头之间的切换点是视频内容发生“突跳”的位置——就像导演喊“咔”的那一刻。工程上通常用帧间差异检测来定位这些切入点。在推理优化方面,实际部署时需要考虑计算资源的限制:采帧率调低、模型蒸馏(用大模型教小模型)、帧特征缓存复用等技巧,都是工程师手中的常用工具。

从原理到应用,视频理解技术正在快速走进真实世界。视频问答让用户能和视频对话,镜头分割让海量素材自动整理,推理优化让这些功能在手机上也能流畅运行。就像一位从样片到成片全程掌控的导演,视频理解技术正在成为 AI 理解真实世界动态场景的核心能力。

帧间距离=∥ft−ft−1∥2\text{帧间距离} = \left\| \mathbf{f}_{t} - \mathbf{f}_{t-1} \right\|_2
相邻两帧特征向量之间的欧氏距离。当这个距离超过某个阈值时,说明画面发生了显著变化,很可能是一个镜头切换点。
  1. f_t 和 f_(t-1)第 t 帧和第 t-1 帧的视觉特征向量。
    ft,ft−1\mathbf{f}_{t}, \mathbf{f}_{t-1}
  2. 差的 L2 范数计算两帧特征的欧氏距离,值越大说明画面变化越剧烈。
    ∥⋅∥2\left\| \cdot \right\|_2

AI 应用场景

视频问答系统

阶段:模型微调与推理部署

解决的问题:传统视频检索只能靠人工打标签,无法回答开放式问题。AI 视频问答允许用户直接用自然语言提问,如“视频中主角在餐厅点了什么菜?”,系统自动定位答案。

具体案例:某在线教育平台构建了课程视频问答助手,学生可随时向课程视频提问“老师的板书里提到了哪三种分类方法?”,系统在数秒内定位到对应视频片段并给出文字答案。

安防监控行为分析

阶段:时空特征建模与动作识别

解决的问题:传统监控需要人盯着屏幕才能发现异常行为。基于视频理解的系统可以自动识别“倒地”“奔跑”“聚集”等动作事件,实时报警。

具体案例:某园区部署了智能安防系统,利用 3D 卷积网络对监控视频进行时空建模,识别“人员跌倒”事件,准确率超过 90%,显著降低人工监控压力。

智能视频剪辑

阶段:镜头分割与事件理解

解决的问题:传统剪辑需要人工从头到尾看完素材,耗时数小时。AI 自动分析视频中的镜头切换点和精彩动作,自动生成精华片段。

具体案例:某短视频平台开发了自动剪辑工具,将 2 小时的球赛自动浓缩为 5 分钟精彩集锦,自动识别出进球、抢断等关键事件,供运营人员直接选用。

Python 演示

python52 行
import numpy as np  class VideoFrameSampler:    """视频帧采样器:演示均匀采样和稀疏采样的区别"""     def __init__(self, total_frames, interval):        self.total_frames = total_frames        self.interval = interval     def uniform_sample(self):        """均匀采样:每隔 interval 帧取一帧"""        indices = list(range(0, self.total_frames, self.interval))        return indices     def sparse_sample(self, frame_diff_threshold=0.8):        """稀疏采样:只在画面变化超过阈值时取帧"""        result = [0]        for i in range(1, self.total_frames):            prev_vec = np.sin(np.linspace(0, 2 * np.pi, 32) + i * 0.1)            cur_vec = np.sin(np.linspace(0, 2 * np.pi, 32) + i * 0.1 + 0.5)            diff = np.linalg.norm(cur_vec - prev_vec)            if diff > frame_diff_threshold:                result.append(i)        return result  def compute_frame_stats(sampler, method):    """计算采样率统计信息"""    if method == "uniform":        selected = sampler.uniform_sample()    elif method == "sparse":        selected = sampler.sparse_sample()    else:        raise ValueError("Unknown sampler method")    ratio = len(selected) / sampler.total_frames    return selected, ratio  def main():    sampler = VideoFrameSampler(total_frames=300, interval=10)    uni_indices, uni_ratio = compute_frame_stats(sampler, "uniform")    spa_indices, spa_ratio = compute_frame_stats(sampler, "sparse")    print("均匀采样帧数:", len(uni_indices))    print("均匀采样比例: {:.1%}".format(uni_ratio))    print("稀疏采样帧数:", len(spa_indices))    print("稀疏采样比例: {:.1%}".format(spa_ratio))    print("稀疏采样示例帧号:", spa_indices[:10])  if __name__ == "__main__":    main()
目的:演示视频处理中两种常用采样策略——均匀采样均匀、稳定但帧数可能冗余;稀疏采样帧数少但依赖画面变化检测阈值。
  1. class VideoFrameSampler定义视频采样器类,将采样逻辑封装成可复用模块。
  2. self.total_frames视频总帧数,模拟一段 10 秒 30fps 的视频。
  3. def uniform_sample实现均匀采样,从第 0 帧开始每隔固定间隔取一帧。
  4. def sparse_sample实现稀疏采样,用简化帧差特征模拟画面变化检测。
  5. np.linalg.norm(cur_vec - prev_vec)计算相邻帧的差异程度,超过阈值则认为画面突变为关键帧。
  6. compute_frame_stats统一计算各采样策略的帧数占比,方便对比分析。

常见误区

误区既然视频信息丰富,那我把采样帧数提高,模型理解效果肯定越好,反正硬件扛得住。

正解采样帧数增加不一定提升效果。就像导演如果盯着每一帧看,反而可能迷失在细节中看不到整体剧情。过密的采样会引入大量冗余帧,增加计算开销,还可能让模型被无关细节干扰。真正重要的是采样帧能否覆盖关键动作变化——稀疏采样配合场景检测,往往能以更少帧数取得相当甚至更好的效果。

为何常见:直观上“信息越多越好”,忽略了模型能力上限和冗余信息带来的噪声问题。

误区3D 卷积无非是逐帧做 2D 卷积之后把结果堆在一起,原理上没区别。

正解3D 卷积和“逐帧 2D 卷积后拼接”有本质区别。逐帧 2D 卷积的时间维信息在特征提取阶段完全隔离,模型根本无法捕捉跨帧运动模式。而 3D 卷积的卷积核在时间维上也滑动计算,每一层都在同时融合多帧的信息,运动特征得以逐层构建。这就像导演要理解演员的走位,必须连续观看动作过程,而不能只看一张张剧照。

为何常见:视觉上觉得“多帧叠加”就能理解运动,忽略了卷积核感受野在时间维上的关键作用。

误区把长视频切成小段,逐段送入模型就行,不需要额外设计。

正解直接分片会丢失片段间的长程依赖关系——第 1 段埋下伏笔,第 5 段揭晓答案,逐段独立的模型对此无能为力。需要引入记忆压缩机制和跨片注意力,把每个片段压缩成摘要存入记忆库,当前片段查询全局记忆获得上下文。就像是导演不只要分段看片,还要不断翻阅笔记回顾前面剧情,才能保证整个故事连贯。

为何常见:把视频分片类比于“大文件分块处理”,忽略了视频内容本身具有跨时间的语义连续性。

误区视频问答和视频字幕生成是一回事,都是输出一段文字描述视频内容。

正解视频字幕生成是单向的“视频→描述”任务,产生的描述是通用的、不针对特定问题。视频问答则是交互式的“视频+问题→答案”任务,模型需要根据具体问题,聚焦视频中相应的时间片段和空间区域,提取相关信息生成答案。就像导演看完样片可以介绍剧情,但面对“第三幕主角为什么离开房间”这种具体问题时,需要回溯特定片段仔细推理,而不是泛泛而谈。

为何常见:两者都涉及“视频→文本”的表面形式,让初学者误以为底层机制相同。

误区CLIP 在图文对齐上表现很好,直接拿它来做视频-文本对齐也差不多能行。

正解CLIP 是一个图片-文本对齐模型,它只能处理静态画面。视频多了时间维度,模型需要捕捉动作变化与文本描述之间的对应关系。比如“人从椅子上站起来”这句话,与单帧的“人坐着”图片无法对齐,必须结合多帧的运动信息才行。视频-文本对齐需要在 CLIP 基础上引入时间建模模块,或者使用专门的视频多模态模型进行训练,才能建立时间维度上的语义匹配。

为何常见:CLIP 被广泛使用,名气大,容易误以为它是“万能”的对齐模型。

面试题

Q1. 视频理解比图片理解复杂,最核心的原因是什么?

单选题 · mid

  • A.视频文件体积更大,需要更多存储空间
  • B.视频引入了时间维度,需要建模动态变化← 正确答案
  • C.视频分辨率通常比图片高得多
  • D.视频都需要进行语音识别处理

答案:B。视频的核心区别在于时间维度——运动、动作、事件都依赖跨帧信息。体积大只是表象,分辨率也不是本质区别,语音识别更是视频理解的可选辅助而非必要条件。看剧时关注的是情节发展即时间线上的变化,而非单张画面的清晰度。

Q2. 视频采样策略中的“均匀采样”是指什么?

单选题 · easy

  • A.随机从视频中抽取若干帧画面
  • B.只在镜头切换时采集帧画面
  • C.每隔固定时间间隔抽取一帧画面← 正确答案
  • D.只采集视频的第一帧和最后一帧

答案:C。均匀采样的定义是按固定间隔(如每 0.5 秒)从视频中取一帧,覆盖所有时间段。随机采样或只在场景切换时采样属于稀疏采样的变体;只取首尾帧会丢失中间绝大部分信息。就像导演快进看片时按固定时间间隔停一下,而不是随机停顿。

Q3. 3D卷积相比2D卷积,在视频理解中最大的优势是什么?

单选题 · mid

  • A.计算速度更快,训练效率更高
  • B.能够同时建模空间信息和时间信息← 正确答案
  • C.参数数量更少,不易过拟合
  • D.完全不需要进行视频帧采样

答案:B。3D 卷积的卷积核在高、宽之外还包含时间维滑动,因此能天然融合连续帧信息,捕捉运动特征。2D 卷积逐帧处理无法建模跨帧变化。3D 卷积通常计算量更大而非更小,参数也更多,且仍需依赖采样策略来降低计算成本。

Q4. 处理长视频时,“跨片注意力”机制的主要作用是?

单选题 · hard

  • A.增加视频采样帧数以提高识别精度
  • B.减少输入模型的视频片段长度
  • C.让模型在处理当前片段时参考历史片段信息← 正确答案
  • D.将视频压缩为单个特征向量

答案:C。跨片注意力的核心是让当前片段通过注意力机制访问之前所有片段的记忆摘要,从而获得全局上下文。它不是采样策略,也不减少片段长度;压缩成单个向量是记忆压缩的一部分但不够全面。就像导演看第 5 段时能翻看前 4 段的笔记,保持对完整剧情的把握。

Q5. 视频理解中“动作”和“事件”的关系是?

单选题 · easy

  • A.两者含义完全相同,可以互换使用
  • B.动作是短时行为,事件由多个动作组成← 正确答案
  • C.事件是短时行为,动作由多个事件组成
  • D.动作只涉及画面,事件只涉及音频

答案:B。动作是单一时长的行为(如“挥手”“起跳”),事件是有明确时间结构的复杂过程(如“结婚典礼”“足球赛进球”)。表达“切菜”是动作,“准备晚餐”是事件。理解这一层级关系是视频理解任务设计的基础。

Q6. 视频文本对齐中,对比学习损失函数的作用是什么?

多选题 · mid

  • A.让匹配的视频和文本特征更接近← 正确答案
  • B.让不匹配的视频和文本特征更远离← 正确答案
  • C.将视频帧直接转换为文本字符
  • D.提高模型的文本生成速度

答案:AB。对比学习的目标正样本对拉近距离,同时将负样本对推远,使模型学会区分匹配与不匹配的跨模态对。它并不生成文本——文本由语言模型生成;文本生成速度取决于解码策略而非对齐损失。视频和文本在各自空间中编码,对齐损失只是建立两个空间的对应关系。

Q7. 视频问答系统中,镜头分割作为预处理步骤的主要作用是什么?

单选题 · hard

  • A.提高视频画质,使帧更清晰
  • B.将视频切分为语义连贯的镜头单元← 正确答案
  • C.删除视频中的所有音频轨道
  • D.降低视频分辨率以节省存储

答案:B。镜头分割将视频按镜头切换点切成连续片段,每个镜头内部语义统一,便于后续特征提取和检索。它不改变画质、不处理音频,也不直接降低存储成本。镜头分割像是把剧本分成场次,每个场次内部情节连贯,方便导演安排和检索。

Q8. 实际部署视频理解系统时,以下哪项是推理优化的有效方法?

单选题 · mid

  • A.无限增加采样帧数
  • B.使用更大的 3D 卷积核
  • C.利用帧特征缓存复用已计算结果← 正确答案
  • D.每次处理都重新提取视频全部特征

答案:C。帧特征缓存可在不同任务共享相同视频的提取结果——同一段视频回答不同问题时无需重新编码,大幅降低计算量。增加采样帧数和卷积核会加重负担,重新提取全部特征是低效做法。就像导演已经整理的笔记可以反复查阅,不必每次重新看素材。

Q9. 视频理解中,时间维度带来的新挑战包括哪些?

多选题 · mid

  • A.计算量随帧数线性增长← 正确答案
  • B.需要建模物体的运动轨迹← 正确答案
  • C.需要理解动作之间的时间顺序← 正确答案
  • D.空间分辨率不再影响模型性能

答案:ABC。时间维度意味着模型要处理更多帧(计算量增长),要跟踪空间位置随时间的运动轨迹,还要理解动作间先后因果顺序。空间分辨率仍然是影响信息质量和计算量的重要因素,视频理解不会因时间维引入而忽略空间信息。

Q10. 视频特征与文本特征通过对比学习对齐后,以下哪个任务可以直接支持?

单选题 · mid

  • A.视频帧率自动提升
  • B.基于自然语言的视频内容检索← 正确答案
  • C.视频自动美颜滤镜
  • D.视频文件自动压缩

答案:B。视频和文本特征对齐后,用户输入自然语言描述(如“有人在草地上踢球”),系统将其编码为文本特征后与视频特征库比对,实现语义检索。帧率提升、美颜滤镜和文件压缩属于视频处理而非跨模态语义理解——它们不需要文本-视频对齐。