想象你是商场新来的保安,面前有三台监控屏幕。主管给你三种“执勤任务”:第一种,给你一段 10 秒的短视频,你只需回答“这段视频里发生了什么”——顾客在跑步?有人打架?还是有人在挥手?这是动作分类。第二种,给你整整 24 小时的监控录像,你要回答“打架这件事从几点几分开始、到几点几分结束”——这是时序检测。第三种,录像里同时有十几个人穿梭,你不仅要说出打架发生的时间段,还要精准指出“画面右下方那个穿蓝衣服的人,从第 5 分钟开始动手、到第 8 分钟被拉开”——这是时空定位。 同样一台摄像机,三种问法,难度层层加码。你会发现:从“看出是什么”到“说准何时发生”,再到“指明谁在哪干了什么”,AI 对视频的理解粒度从整段视频一路细化到每一帧的每一个角落。本文将带你走进视频理解世界的这三重境界,理解分类、检测与定位之间的关系,以及它们对时序建模能力的差异化要求。

岗位关联

无论你做安防、体育分析还是短视频推荐,视频理解都是绕不开的核心能力。搞懂这三类任务的差别,你才能选对模型、定对指标、建对数据集。

目录
  1. 可视化演示
  2. 任务全景:保安的三重执勤境界
  3. 动作分类:认出“他在跑步”
  4. 时序检测:从几点到几点
  5. 时空定位:指出画面中的谁在哪
  6. 数据标注:给视频“贴标签”的三种姿势
  7. 评估协议:一把尺子量三种任务
  8. 模型设计:AI 的眼睛与记忆
  9. 应用落地:三类任务各显身手
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

演示动作分类、时序检测与时空定位三类任务在粒度与输出信息上的递进差异,理解视频时序建模需求。

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

动作分类:整段视频一个类别 帧序列 类别 粗粒度 仅输出全局动作标签

任务全景:保安的三重执勤境界

商场保安老周带新人小刘熟悉岗位。老周说:“值班分三个层次——最省力的,是看到一段监控片段,随口说出‘有人在跑步’,这叫‘看个大概’;再严一点,是守着全天录像,把‘打架事件’从几点几分开始、几点几分结束记下来,这叫‘掐表记录’;最费神的,是同时盯着十几个人的画面,不仅要说出谁在何时动手,还要指出他在屏幕的哪个角落,这叫‘连人带位置都盯住’。”小刘恍然大悟:原来看监控也有从粗到细的门道。

这段对话,正是视频理解三大任务的缩影。动作分类(Action Classification)输入一段已被裁剪好的短视频,输出整段视频的动作类别;时序检测(Temporal Action Detection)输入未经裁剪的长视频,输出每个动作实例的起止时间戳;时空定位(Spatio-Temporal Action Localization)则在时间维度之外再加一层空间维度,输出“谁在画面的哪个位置、从哪一帧到哪一帧做了什么”。

三者构成了一条从“整段”到“局部”、从“粗粒度”到“细粒度”的递进链。分类看的是全局平均印象,检测需要精确定位时间边界,定位更要把逐帧的空间位置串联起来。对 AI 模型而言,这意味着时序建模的要求也在逐级攀升:分类压平时间足矣,检测必须在时间轴上寻找边界,定位则需要同时理解“何时”与“何地”。理解这条递进链,是进入视频 AI 领域的第一块基石。

动作分类:认出“他在跑步”

老周给小刘出了一道热身题:屏幕上播放一段 10 秒钟的短视频,画面里有人在跑步机上挥汗如雨。小刘脱口而出:“跑步!”老周点点头:“这就是最基本的‘一眼定类’——整段视频只给一个答案。”

技术世界里的动作分类正是如此。研究者把视频切成一个个已修剪片段(trimmed clip),每个片段对应一个确定的主动作。模型要做的事,是把整段视频的所有帧“看一遍”,然后输出一个类别概率向量。以经典的 UCF101、Kinetics 数据集为例,每一段视频都被标注为“打羽毛球”“弹吉他”等类别中的一种,模型的目标就是预测这个类别。

建模上,动作分类通常采用“先提特征、再压平”的策略:用 2D CNN 逐帧提取空间特征,通过全局池化把时间维压缩成一个整体表示,最后送入分类器。这个过程可以用 softmax 分类器来刻画:

回到保安的例子:动作分类就像“扫一眼就能报出在干什么”。它有两大特点:一是输入必须被裁剪好,动作从头贯穿到尾;二是只需要一个视频级的标签。正因为简单,它成为视频理解的“入门第一课”,也是许多预训练模型的训练目标。但它的局限也显而易见——如果让小刘看一整天的监控录像、说出每一次“跑步”的发生时间,这个“扫一眼”的方法就完全失灵了。

y^=softmax(Wx+b),y^i=ezi∑j=1Cezj\hat{y} = \mathrm{softmax}(W x + b), \quad \hat{y}_i = \frac{e^{z_i}}{\sum_{j=1}^{C} e^{z_j}}
softmax 把一组实数打分变成一组加起来等于 1 的概率,模型最终取概率最大的类别作为预测结果。
  1. 特征向量$x$ 表示从整段视频中提取出的全局特征向量,它已经融合了所有帧的信息。
    xx
  2. 线性打分$Wx + b$ 通过权重矩阵 $W$ 和偏置 $b$,把特征向量映射到 $C$ 个类别上的得分 $z$。
    z=Wx+bz = W x + b
  3. 指数归一化对第 $i$ 类的得分取指数 $e^{z_i}$,再除以所有类别指数之和,得到概率 $\hat{y}_i$。
    y^i=ezi∑j=1Cezj\hat{y}_i = \frac{e^{z_i}}{\sum_{j=1}^{C} e^{z_j}}

时序检测:从几点到几点

小刘还没来得及得意,老周就加码了:“别高兴太早。你现在盯着这台显示器,把今天下午 3 点到 5 点之间所有‘打架’事件的时间段给我记下来——开始时间、结束时间,一个都不能差。”

这就是时序检测:输入是未经修剪的长视频(untrimmed video),里面可能前 10 分钟风平浪静、第 11 分钟突然出现动作、之后又归于平静。模型的输出不再是单个标签,而是一系列“动作实例”,每个实例包含一个类别和一对起止时间戳,例如“打架:15:23:10—15:23:48”。任务一下子从“看个大概”变成了“掐表记录”。

如何在时间轴上找到这些边界?主流思路沿用目标检测的“两阶段”套路:先在时间轴上生成若干候选片段(proposal),再对每个片段做动作分类与边界回归,修正起止点。预测的边界是否准确,需要一个量化的重叠指标——时序交并比(tIoU)。类比保安的交接班记录,预测的“时间段”和真实的“时间段”重叠越多,说明记录越准确:

时序检测要求模型具备更强的时序建模能力:不仅要识别动作的类别,还要敏锐捕捉动作的“开始”和“结束”这两个转折点。对保安而言,这意味着必须全程盯住时间轴,不能只看一眼;对 AI 而言,这意味着需要滑窗、候选生成、边界回归等一系列精细的时间定位机制。相比之下,动作分类的“全局池化”此时显得力不从心——它把时间信息都压平了,自然也就难以回答“何时发生”。

IoU(A,B)=∣A∩B∣∣A∪B∣=min⁡(be,pe)−max⁡(bs,ps)max⁡(be,pe)−min⁡(bs,ps)\mathrm{IoU}(A, B) = \frac{|A \cap B|}{|A \cup B|} = \frac{\min(b_e, p_e) - \max(b_s, p_s)}{\max(b_e, p_e) - \min(b_s, p_s)}
IoU 度量两个时间区间的重叠程度:完全重合为 1,完全错开为 0。0.5 以上的 IoU 通常算一次“命中”。
  1. 区间表示$A = [b_s, b_e]$ 表示真实动作的开始与结束时刻,$B = [p_s, p_e]$ 表示模型预测的开始与结束时刻。
    A=[bs,be],B=[ps,pe]A = [b_s, b_e], \quad B = [p_s, p_e]
  2. 交集长度$\min(b_e, p_e) - \max(b_s, p_s)$ 计算两个区间重叠部分的长度,若无重叠则为负值或零。
    ∣A∩B∣=min⁡(be,pe)−max⁡(bs,ps)|A \cap B| = \min(b_e, p_e) - \max(b_s, p_s)
  3. 并集长度$\max(b_e, p_e) - \min(b_s, p_s)$ 计算从最早起点到最晚终点覆盖的总长度。
    ∣A∪B∣=max⁡(be,pe)−min⁡(bs,ps)|A \cup B| = \max(b_e, p_e) - \min(b_s, p_s)

时空定位:指出画面中的谁在哪

老周看小刘学得快,决定上终极考题。屏幕上商场大厅人头攒动,老周问:“刚才 15:23:10 到 15:23:48 有人打架,你现在告诉我——打架的人在画面哪个位置?两个人分别在哪个方向?”小刘傻眼了:他刚才只记了时间段,根本没注意人长什么样、站在哪。

时空定位补上的正是这一环。它的输出既不是一维的时间戳,也不是整段视频的类别,而是时空管状体(tube):从动作开始帧到结束帧,每一帧都附带一个检测框,标记出行为人的空间位置;把这些逐帧的框按时间串联起来,就形成一条“在时间中穿梭的管道”。任务同时考验“是什么动作”(分类)、“何时发生”(检测)和“在哪发生”(空间定位),是视频理解的“终局三合一”。

评估时空定位时,不能只看时间重叠,还要考虑空间框是否贴合真实目标。于是研究者把时间维的一维 IoU 拓展成时间+空间联合的 3D IoU:想象两个“时空盒子”,一个由真实动作的每一帧检测框堆叠而成,另一个由模型的预测框堆叠而成,两个盒子在时空中的重合度就是 3D IoU。

对保安小刘而言,时空定位意味着从“记录事件”升级到“还原现场”:不仅要知道发生了什么、什么时候,还要能在画面中指出相关人物。对 AI 系统而言,这需要在每帧运行空间检测器,再通过时序建模把检测结果串联成连贯的管状体。管状体越长、目标在画面中移动越剧烈,串联的难度就越高——这正是时空定位被称为“难度最高”任务的原因。

IoU3D(A,B)=∣A∩B∣∣A∪B∣\mathrm{IoU}_{3D}(\mathcal{A}, \mathcal{B}) = \frac{|\mathcal{A} \cap \mathcal{B}|}{|\mathcal{A} \cup \mathcal{B}|}
这里的 $\mathcal{A}$ 和 $\mathcal{B}$ 是由逐帧框组成的时空管状体,3D IoU 衡量两者在“时刻 × 画面位置”这一三维空间中的重叠占比。
  1. 时空管状体$\mathcal{A} = \{a_t\}_{t=t_s}^{t_e}$ 表示真实动作在每一帧上的标注框序列集合。
    A={at}t=tste\mathcal{A} = \{a_t\}_{t=t_s}^{t_e}
  2. 交集体积$|\mathcal{A} \cap \mathcal{B}|$ 统计两个管状体在逐帧上的重叠面积累积,即时空交集“体积”。
    ∣A∩B∣=∑tarea(at∩bt)|\mathcal{A} \cap \mathcal{B}| = \sum_t \mathrm{area}(a_t \cap b_t)
  3. 并集体积$|\mathcal{A} \cup \mathcal{B}|$ 表示两个管状体在时空中的总覆盖“体积”。
    ∣A∪B∣=∑tarea(at∪bt)|\mathcal{A} \cup \mathcal{B}| = \sum_t \mathrm{area}(a_t \cup b_t)

数据标注:给视频“贴标签”的三种姿势

老周终于相信小刘的悟性,开始教他写值班日志。日志有三种写法:第一种,每看到一个短视频片段,就写下“跑步”两个字,一秒钟搞定;第二种,遇到长录像,要在时间边上标“15:23:10 开始、15:23:48 结束”,需要对着时钟反复回放;第三种,要把每一帧里打架的人框出来,几乎是一帧一帧地手绘。小刘感叹:“这三种日志的工作量,简直是 1 倍、10 倍和 100 倍的区别!”

这正是三类任务在数据标注成本上的真实写照。动作分类只需要视频级标签(video-level label),标注员看完整个片段后选一个类别即可,成本最低,因此 UCF101、Kinetics 这类数据集可以做得很大。时序检测需要时间戳标注,标注员必须在时间轴上精确标记起止帧,主观性较强——不同人对“动作何时开始”的理解可能有半秒偏差,成本明显上升,ActivityNet 等数据集规模也相应缩小。时空定位则要求时空框标注,标注员逐帧画目标框,成本呈数量级增长,因此 AVA 这类时空定位数据集的规模通常较小。

| 任务 | 标注形式 | 标注成本 | 典型数据集 |

|---|---|---|---|

| 动作分类 | 视频级类别标签 | 低 | UCF101、Kinetics |

| 时序检测 | 起止时间戳 | 中 | ActivityNet、THUMOS |

| 时空定位 | 逐帧时空框 | 高 | AVA、UCF101-24 |

数据标注的“成本递增”规律深刻影响研究策略。当你只有视频级标签时,可以训练动作分类模型;若想升级到时序检测,先要付出时间戳标注的代价。反过来,正因时序检测标注存在主观性,评估时必须引入容差机制——允许预测边界与真实边界有一定的 IoU 松弛(通常取 0.5 或 0.3),否则标注噪声会让所有模型都“考不及格”。保安日志的三种写法,贴切地映射出三种任务背后的“数据代价”。

评估协议:一把尺子量三种任务

月底考核,老周给小刘出了三套卷子。第一套:给出 10 段短视频,每段报出动作类别,答对 9 个,准确率 90%。第二套:给出 1 小时长录像,找出所有“打架”时间段,要求预测与真实记录有至少一半重叠才算对。第三套:不仅时间段要对,空间框也得对得上,重合度 30% 才算命中。小刘发现:三套卷子的评分标准完全不同,难度也天差地别。

视频理解领域同样为三类任务设计了各自的评估协议。动作分类用 Top-1 或 Top-5 准确率:预测类别与真实标签一致即得分,简单直观。时序检测用 tIoU 阈值下的 时序 mAP(mean Average Precision):先把预测片段与真实片段按 IoU 阈值匹配,再在时间轴上计算每种类别的平均精度。时空定位则使用 3D IoU 阈值下的 视频 mAP(video-mAP),匹配时必须同时满足时间和空间的重叠要求。

无论是时序 mAP 还是视频 mAP,核心都是 mAP——各类别 AP 的平均值。AP 反映模型在“召回更多的正确动作”与“保持预测精度”之间的综合表现:

为什么不用准确率来评估检测?因为准确率只关心“类别对不对”,完全不理会“预测的时间/空间边界与真实边界是否贴合”。假设模型把 3 秒的“跑步”预测成 8 秒,类别对了、但边界一团糟,准确率可能照样 100%,这显然不能反映真实水平。如同保安的第二套卷子:单纯报出“发生过打架”而不记录准确起止时间,仍然拿不到分。不同任务、不同评估尺,背后是对“正确”的不同定义。

mAP=1C∑c=1CAPc\mathrm{mAP} = \frac{1}{C} \sum_{c=1}^{C} \mathrm{AP}_c
mAP 先对每个动作类别计算 AP(准确率-召回率曲线下的面积),再对全部类别取平均。它衡量的是模型在不同“严格程度”下的综合检测能力。
  1. 单类别 AP$\mathrm{AP}_c$ 是在第 $c$ 个类别上,以召回率为横轴、准确率为纵轴画出的曲线下面积。
    APc=∫01Pc(Rc) dRc\mathrm{AP}_c = \int_0^1 P_c(R_c)\, dR_c
  2. 类别遍历$\sum_{c=1}^{C}$ 对全部 $C$ 个动作类别依次累加它们的 AP 值。
    ∑c=1CAPc\sum_{c=1}^{C} \mathrm{AP}_c
  3. 平均$\frac{1}{C}$ 把总和除以类别数,得到所有类别的平均检测精度。
    1C∑c=1CAPc\frac{1}{C} \sum_{c=1}^{C} \mathrm{AP}_c

模型设计:AI 的眼睛与记忆

老周总结带徒心得:小刘能快速上岗,靠的是三层能力——第一层是“眼力”,扫一眼画面就知道什么动作;第二层是“记性”,能掐着表记住动作的起止;第三层是“追踪力”,一边盯人、一边记位置。AI 的模型设计,也恰好对应这三种能力的增强。

动作分类模型:主打“眼力”。用 2D CNN(如 ResNet)逐帧提取空间特征后,通过时序池化把所有帧的特征合并成一个全局向量。最简单的时序平均池化,就是把每一帧的特征沿着时间方向取平均:

时序检测模型:在“眼力”之上增强“记性”。它不再把所有帧一视同仁地平均,而是通过候选生成在时间轴上搜索可能是动作的片段,再用边界回归精确修正起止点。为了捕捉动作的时间边界,模型往往引入 3D 卷积或 Transformer 等时序建模模块,让相邻帧的信息相互流动。时空定位模型则再加一层“追踪力”:每帧运行空间检测器,通过时序建模把逐帧检测框串联成管状体。可以看到,从分类到检测再到定位,模型的时序建模模块越来越重,信息从“全局压缩”走向“局部精修”。AI 的三层能力,与保安的三重境界一一呼应。

g=1T∑t=1Thtg = \frac{1}{T} \sum_{t=1}^{T} h_t
时序池化把 $T$ 帧的特征压缩成一个代表整段视频的向量,相当于保安把 10 秒画面“浓缩成一句话”。
  1. 逐帧特征$h_t$ 是第 $t$ 帧经过 CNN 提取出的特征向量,$T$ 是视频总帧数。
    hth_t
  2. 时间求和$\sum_{t=1}^{T} h_t$ 把所有帧的特征逐元素相加,完成时间维的累积。
    ∑t=1Tht\sum_{t=1}^{T} h_t
  3. 取平均$\frac{1}{T}$ 将累加结果除以帧数,得到平均特征 $g$,作为整段视频的表征。
    g=1T∑t=1Thtg = \frac{1}{T} \sum_{t=1}^{T} h_t

应用落地:三类任务各显身手

小刘终于出师,被派到不同岗位轮值。在商场中控室,他负责盯防“人员闯入禁入区域”——出现异常时立刻报警并回放时间段,这是安防监控,同时用到动作分类与时序检测。在体育赛事直播间,他协助导播快速回放“球员扣篮”的精彩瞬间,需要在多机位画面中框出球员位置,这是体育分析中的时空定位。下班后刷短视频,他看到平台能从海量视频中搜出“跑步”和“冲浪”的动作片段,这是视频检索,依赖动作分类的预训练模型。他甚至想象,未来的智能家居可以通过挥手动作控制灯光,那是人机交互中的实时手势分类。

  • 安防监控:从“有人摔倒”的分类告警,到“从几点到几点有人非法闯入”的时序检测,再到“哪个区域的哪个人在打架”的时空定位,三类任务共同构成智能安防的识别链条。传统监控只能录像存证,AI 让保安从“事后回放”升级为“实时预警”。
  • 体育赛事分析:教练需要知道某位球员在“第 3 节 2 分 15 秒”完成了扣篮,还希望自动剪辑出该球员所有高光时刻。这里既有时序检测(定位动作时刻),又有时空定位(追踪球员在画面中的运动轨迹),大幅降低人工剪辑成本。
  • 短视频平台内容理解:用户搜索“运镜跑步”时,平台需要从海量短视频中召回包含该动作的片段。动作分类的预训练模型为此提供了底层语义特征;结合时序检测,还能定位到视频内部的具体秒数,让“以动作搜视频”成为可能。

三类任务不是彼此孤立的,而是层层嵌套的能力组件:分类模型可作为检测模型的骨干,检测模型又可作为定位模型的时序建模基础。从保安的“一眼定类”到“掐表记录”再到“连人带位盯住”,每一次任务升级都让 AI 对视频的理解更精细,也让我们离真正的“视频理解”更近一步。

AI 应用场景

场景一:安防监控中的异常行为预警

阶段:模型部署与实时推理

解决的问题:传统安防依赖保安紧盯几十块屏幕,注意力极易疲劳,且事后回溯录像耗时耗力。AI 先用动作分类模型对监控画面做初步筛查,再叠加上时序检测模型,在检测到“打架”或“闯入”动作时记录起止时间段,并触发实时告警。

具体案例:某商场部署智能监控后,系统在 3 秒内识别出扶梯口两人发生推搡,自动截取从“推搡开始”到“人群散开”的完整片段,通知安保人员到场处理,全程无需人工盯屏。

场景二:体育赛事的高光时刻自动剪辑

阶段:数据标注与模型训练

解决的问题:体育比赛录像动辄数小时,人工标注“扣篮”“射门”等关键事件并剪辑高光集锦耗时巨大。通过时序检测定位事件起止时间,再用时空定位追踪球员的检测框轨迹,可自动生成包含“谁在何时何地完成动作”的结构化剪辑素材。

具体案例:某篮球赛事平台利用时空定位模型,自动提取每场比赛所有“扣篮”片段,并附带球员身份与起止时间戳,编导只需在候选片段中做最终筛选,集锦生产效率提升 80%。

场景三:短视频平台的“以动作搜视频”

阶段:特征提取与检索召回

解决的问题:用户希望搜索“有人跑步”“猫咪跳跃”这类没有文字标签的视频,传统关键词检索无能为力。利用动作分类模型为海量视频生成动作语义标签和特征向量,再结合时序检测细化到视频内的起止片段,实现“以动作找片段”的精细化检索。

具体案例:某短视频 App 上线“动作搜索”功能后,用户输入“跑步”即可召回所有包含跑步动作的片段,并直接预览动作发生的具体秒数位置,视频点击率提升 35%。

Python 演示

python54 行
import numpy as np # 模拟三个真实动作实例:类别 + 起止时间(秒)true_actions = [    {"label": "run", "start": 2.0, "end": 4.8},    {"label": "wave", "start": 5.2, "end": 7.0},    {"label": "walk", "start": 7.5, "end": 9.5},] def classify(clip):    """玩具版动作分类:根据片段中间帧的像素均值返回类别"""    middle = clip.shape[0] // 2    feature = clip[middle].sum()    if feature > 150:        return "run"    if feature > 100:        return "wave"    return "walk" def temporal_iou(pred, truth):    """计算两个时间区间 [start, end] 的 IoU"""    inter = max(0.0, min(pred[1], truth[1]) - max(pred[0], truth[0]))    union = max(pred[1], truth[1]) - min(pred[0], truth[0])    return inter / union if union > 0 else 0.0 def evaluate(preds, truths, threshold=0.5):    """统计预测与真实片段在 tIoU 阈值下的命中率"""    hits = 0    for p in preds:        for t in truths:            if p["label"] == t["label"]:                iou = temporal_iou((p["start"], p["end"]), (t["start"], t["end"]))                if iou >= threshold:                    hits += 1                    break    return hits / len(truths) # 伪造 10 秒视频:25fps, 16x16 彩色帧fps = 25total_frames = 10 * fpsrng = np.random.default_rng(0)video = rng.integers(80, 200, (total_frames, 16, 16, 3)).astype(np.float32) # 动作分类:取 2~5 秒当作修剪好的片段clip = video[int(2 * fps):int(5 * fps)]print("动作分类结果:", classify(clip)) # 时序检测:模型预测了三个带噪声的区间pred_actions = [    {"label": "run", "start": 2.3, "end": 5.0},    {"label": "wave", "start": 5.0, "end": 7.2},    {"label": "walk", "start": 7.4, "end": 9.2},]print("tIoU@0.5:", evaluate(pred_actions, true_actions))
目的:演示动作分类与时序检测的区别,以及 tIoU 如何量化预测区间的重叠质量。
  1. clip = video[int(2 * fps):int(5 * fps)]从长视频中“裁剪”出一段已修剪片段,对应动作分类的输入形式。
  2. feature = clip[middle].sum()用中间帧的像素和模拟“视频特征”,是玩具版的简陋特征提取。
  3. classify(clip)根据特征阈值返回动作类别,模拟分类模型的“整段视频→一个标签”。
  4. temporal_iou(pred, truth)计算两个时间区间的交并比,这是时序检测的核心评估工具。
  5. inter = max(0.0, min(pred[1], truth[1]) - max(pred[0], truth[0]))两个区间若无重叠则交集为 0,保证 IoU 非负。
  6. return inter / union if union > 0 else 0.0分母为并集长度,防止除以零。
  7. evaluate(preds, truths, threshold=0.5)遍历预测片段,按类别和 tIoU 阈值匹配真实片段。
  8. if p["label"] == t["label"]类别不一致直接跳过,说明检测的“命中”必须同时满足类别和时间重叠。
  9. video = rng.integers(80, 200, ...)用随机整数模拟视频像素,保证可复现。
  10. print("动作分类结果:", classify(clip))对照两种任务的输出形式差异。

常见误区

误区“视频理解不都是识别动作吗?分类和检测只是把结果换个格式输出,本质上没有区别。”

正解三者从数据标注、模型结构到评估协议都有系统性差异。分类输入已修剪片段、输出整段标签,只需全局池化;检测必须在未修剪的长视频中预测起止时间,需要候选生成与边界回归;定位还要在空间维度输出逐帧检测框。类比保安的三种值班日志,从“写一个词”到“记时间段”再到“逐帧画框”,工作量和能力要求完全不同,绝不是换个输出格式那么简单。

为何常见:初学者从“识别动作”这个笼统目标出发,只看到三者都涉及类别预测,容易忽略它们在时间、空间粒度上的本质差异。

误区“给训练好的分类模型丢一整段长视频,它自然能把每个动作的时间段告诉我。”

正解分类模型的核心操作是全局池化——把整段视频的时间信息压成一个向量,时间边界被彻底抹平。它根本不知道动作从哪一帧开始、到哪一帧结束。要让模型具备时序检测能力,必须设计候选片段生成、边界回归和时序建模模块,并用带时间戳的数据专门训练。

为何常见:人们习惯性地认为“能力可以迁移”,却忽略了全局池化这一操作本身就把时间信息丢弃了。

误区“都是定位动作的位置,时序检测和时空定位没什么区别。”

正解时序检测只在时间轴上一维定位,输出是“开始—结束”区间;时空定位要在每一帧输出空间检测框,并把逐帧框串联成时空管状体。类比保安,检测任务只需说“打架发生在 15:23—15:24”,定位任务还要指出“画面右下方两个人”。后者比前者多了一整个空间维度,模型复杂度与标注成本都大幅增加。

为何常见:日常语言里“定位”一词常被混用,让人误以为时序检测已经包含了空间信息。

误区“分类用准确率,检测不也可以用准确率吗?只要类别预测对了就算得分。”

正解分类的准确率只检查类别标签,完全不关心预测的时间边界是否贴合真实边界。若一个模型把 3 秒的“跑步”预测成 8 秒,类别对了但边界严重偏移,准确率依然是 100%,这显然是荒谬的。检测与定位必须使用 tIoU/mAP 等考虑边界重叠的指标,才能反映出模型对时间、空间边界的预测质量。

为何常见:分类任务接触最早,准确率深入骨髓,容易让人形成“所有任务都看准确率”的惯性思维。

误区“把每帧特征平均一下就能代表整个视频,所有视频任务都这么做就行。”

正解时序平均池化适合动作分类这种“全局印象”任务,但检测与定位需要知道动作何时开始、何时结束、目标在画面何处移动。这些任务需要更精细的时序建模——3D 卷积捕捉局部时序模式、Transformer 建模长程依赖、边界回归精修起止点。池化越简单,时间细节丢失越多,任务难度越大,模型设计就必须越精细。

为何常见:初学者先学会分类模型,容易把“全局池化”误当成放之四海而皆准的标配组件。

面试题

Q1. 输入一段已修剪的短视频,输出一个动作类别标签,这属于哪类任务?

单选题 · easy

  • A.动作分类← 正确答案
  • B.时序检测
  • C.时空定位
  • D.视频摘要

答案:A。已修剪视频 + 整段视频一个类别标签,正是动作分类的定义。时序检测需要输出起止时间,时空定位还需空间框,视频摘要与动作识别无关。类比保安“看一段就报一个词”的入门任务。

Q2. 时序检测任务的核心输出是什么?

单选题 · easy

  • A.一个类别标签
  • B.起止时间戳加类别← 正确答案
  • C.每帧检测框
  • D.视频时长统计

答案:B。时序检测在未修剪长视频中定位每个动作实例,输出“类别 + 起止时间戳”。单个类别标签是分类的输出,每帧检测框是定位的输出。保安的第二层境界就是“掐表记录时间段”。

Q3. 时空定位任务中,把逐帧检测框按时间串联起来得到的结构称为?

单选题 · mid

  • A.光流图
  • B.时空管状体← 正确答案
  • C.特征金字塔
  • D.锚框序列

答案:B。时空定位输出的是逐帧检测框,按时间串联后形成“时空管状体”(tube),同时包含时间上的持续与空间上的位移。光流图描述像素运动,特征金字塔是检测器的多尺度结构,锚框序列是通用的候选框集合,三者都不是本任务的输出结构。

Q4. 评估时序检测时,衡量预测区间与真实区间重叠成度的指标是?

单选题 · easy

  • A.Top-1 准确率
  • B.马氏距离
  • C.交并比 IoU← 正确答案
  • D.余弦相似度

答案:C。时序检测用 tIoU(时序交并比)评估预测时间区间与真实区间的重叠程度,重叠越大得分越高。准确率不关心边界,余弦相似度衡量向量方向一致性,马氏距离用于度量点距离,均不适合时间区间的重叠度量。

Q5. 关于三类视频理解任务的标注成本,下列说法正确的有?

多选题 · mid

  • A.分类只需视频级标签← 正确答案
  • B.检测需要起止时间戳← 正确答案
  • C.定位需要逐帧框标注← 正确答案
  • D.三者成本完全一致

答案:ABC。动作分类标注一个视频级类别标签,成本最低;时序检测需要精确标记起止帧,成本更高;时空定位要求逐帧画检测框,成本最高。三者成本逐级递增,D 显然错误。类比保安日志从“一个词”到“逐帧画框”的工作量变化。

Q6. 与时序检测相比,时空定位任务额外输出的关键信息是?

单选题 · hard

  • A.动作类别
  • B.起止时间
  • C.空间位置← 正确答案
  • D.视频帧率

答案:C。时序检测已包含动作类别和起止时间,时空定位在其基础上额外输出每一帧的空间检测框,即“画面中的位置”。帧率是成像参数,不属于任务输出。保安眼里,时空定位比时序检测多出“指出画面里的人在哪”这层能力。

Q7. 动作分类模型中,常见的时序信息聚合方式包括?

多选题 · mid

  • A.平均池化← 正确答案
  • B.最大池化← 正确答案
  • C.边界回归
  • D.非极大值抑制

答案:AB。动作分类通常用平均池化或最大池化把时序特征压缩成全局向量。边界回归是时序检测中修正候选片段起止点的操作,非极大值抑制是检测后处理去重手段,两者都不属于分类模型的时序聚合方式。

Q8. 关于 mAP 评估协议,下列说法正确的有?

多选题 · hard

  • A.mAP 是各类别 AP 的平均← 正确答案
  • B.时序 mAP 需要先按 IoU 匹配预测与真值← 正确答案
  • C.AP 计算基于准确率-召回率曲线← 正确答案
  • D.mAP 越高说明模型推理速度越快

答案:ABC。mAP 先对每个类别计算 AP(准确率-召回率曲线下面积),再对所有类别取平均;时序 mAP 的预测片段必须先与真实片段按 IoU 阈值匹配才会计为命中。mAP 描述的是检测精度,与推理速度无关,因此 D 错误。

Q9. 为什么未修剪视频上的时序检测比已修剪视频上的分类更难?

单选题 · hard

  • A.需要找出动作何时开始和结束← 正确答案
  • B.视频分辨率更高
  • C.只能使用单帧信息
  • D.无法使用深度神经网络

答案:A。未修剪视频中动作只出现在部分时间段,模型必须精确定位起止边界,还要区分“动作段”与“背景段”。分类输入已修剪片段,动作从头贯穿到尾,无需边界判断。分辨率和深度网络可用性并非核心差异,D 更不成立。

Q10. 以下哪种评估方式最严格地衡量时空定位的预测质量?

单选题 · extreme

  • A.Top-1 准确率
  • B.3D IoU 匹配下的视频 mAP← 正确答案
  • C.分类交叉熵损失
  • D.光流端点误差

答案:B。时空定位的输出是时空管状体,必须使用 3D IoU(时间+空间联合重叠)将预测管状体与真实管状体匹配后再计算视频 mAP,类别对、时间对、空间也对才算命中。Top-1 和交叉熵只关心类别,光流端点误差评估的是运动估计而非动作定位,均不符合要求。