想象一下:你录了两小时学校文艺汇演的完整视频,想找到女儿上台唱歌那一段。你不想把两小时从头到尾再刷一遍,于是请身边的剪辑师助手帮忙:“帮我找到女儿唱歌的片段。”他目光在时间轴上快速扫描,几秒后指向屏幕:“从 48 分 20 秒到 51 分 05 秒,就是这里。”这个“听懂描述→在视频时间轴上圈出片段”的能力,就是时序定位(Temporal Grounding)。 如果把视频看作一条时间大河,文字描述就是你要捞的那条鱼的特征:“红尾巴、会唱歌”。时序定位要在长河里指出这条鱼从哪一刻游到哪一刻,而不是只告诉你“河里有鱼”。这比图像定位更难:图像定位是在一张照片里框出物体,而视频中场景在变、事件在展开,模型必须同时看懂“什么”和“什么时候”。 这门技术是视频检索、视频摘要、精彩片段剪辑的地基,也是衡量多模态大模型有没有真正看懂视频的尺子。接下来,我们就跟着这位剪辑师助手,把时序定位的来龙去脉拆解明白。
掌握时序定位的评测方法,你就能用一把标准化的“时间尺”量化多模态模型对视频的理解能力,在视频检索、自动剪辑、模型评测等场景中直接创造价值。
可视化演示
展示视频时序定位如何根据文本描述精确匹配时间区间,以及跨模态注意力对齐机制和检索摘要应用。
本节配有交互动效(进入视口后自动加载,约 3KB)。
视频时序定位流程 文本查询:自然语言描述目标事件 视频时序:3D卷积提取时空特征序列 跨模态对齐:注意力匹配文本与视频时段 Text → [start, end] in Video 输出时间区间而非空间边界框
概念定义
还记得那位剪辑师助手吗?他站在两小时演出视频前,任务不是判断“演出精不精彩”,也不是笼统地说“视频里有人唱歌”,而要精确地在时间轴上圈出答案:“第 48 分 20 秒到 51 分 05 秒,女儿在唱歌。”这段被圈出的时间区间,就是时序定位的输出。
在学术上,时序定位(Temporal Grounding)指:给定一段未裁剪视频和一个文本查询(如“女儿唱歌”),模型在视频时间轴上预测一个连续区间 \([s, e]\),使区间内事件与文本语义匹配。注意“未裁剪”三个字——输入是原始长录像,中间可能混着报幕、颁奖、别人的节目等大量无关内容,模型必须自己决定“从哪开始、到哪结束”。
初学者常把它与图像定位混淆。图像定位是在静态照片的空间里框出物体,输出 \((x,y,w,h)\);时序定位则在一维时间轴上输出 \((s,e)\)。两者最大的差异是“时间演化”:照片里的猫不会到处跑,而视频里的事件有开头、发展、高潮、结尾,同一个动作可能持续 5 秒也可能持续 50 秒,所以模型既要理解“画面里有什么”,还要判断“这件事从什么时候开始、到什么时候结束”。
借用剪辑师的话说:图像定位像在一张全家福里找爷爷站在哪个位置,时序定位则是握着“女儿唱歌”这张便签,回到整段录像里找出对应的那几分钟。后者显然需要更多关于“时间”的智慧。
核心任务
剪辑师助手想完成任务,脑内其实跑了两件事:先听懂“唱歌”的语义,再确定这段语义在时间轴上的起止点。时序定位的“核心任务”也正是这样被拆开的。
形式化地说,模型接收文本查询 \(q\) 与视频帧序列 \(V=(\mathbf{v}_1,\dots,\mathbf{v}_T)\),输出一个区间 \([s,e]\)。其中,语义时序理解是基础——模型要知道“先上场再唱歌再谢幕”这类先后逻辑;跨模态对齐是桥梁——把“唱歌”与“嘴在动、音调起伏”的画面映射到同一个语义空间;起止区间定位是最终目标——选出与文本最匹配的一段连续时间。
剪辑师助手“听懂”与“定位”缺一不可:只懂语义说不清时间,等于知道女儿唱过歌却指不出第几分钟;只懂时间不懂语义,等于闭着眼睛乱指。这正是任务设计的精巧之处。
- 起点与终点\(s\) 和 \(e\) 分别表示预测片段在视频时间轴上的开始秒与结束秒,是模型要输出的答案。
- 候选片段特征\(\mathbf{v}_{[s,e]}\) 表示从第 \(s\) 秒到第 \(e\) 秒这段视频聚合出的特征,相当于把一段画面浓缩成一个向量。
- 打分函数\(f(\mathbf{q}, \mathbf{v}_{[s,e]})\) 计算文本查询与候选片段语义匹配的程度,得分越高说明越“像”要找的内容。
- 最优区间在所有可能的时间区间中挑选得分最高的一组起止点,就是最终的定位结果。
数据基准
怎么判定剪辑师助手这次找得准不准?你展开一把尺子,在时间轴上量一量他圈的片段和真实片段重合了多少。这把尺子,就是数据与基准。
评测的第一步是准备“标准答案”。主流数据集(如 ActivityNet Captions、Charades-STA)把视频切成带时间戳的片段,并为每个片段配一句自然语言描述,形成大量“文本-区间”标注对。这相当于给所有参赛的剪辑师助手发同一套考题。
第二步是定义“重合程度”,即 tIoU(时间交并比):两个时间区间的重叠时长除以它们共同覆盖的总时长。第三步是设计评估协议:通常在多个阈值(0.3/0.5/0.7)下报告 R@1,即模型给出的 Top-1 片段在这些阈值下“算对”的比例。阈值越严,越能区分出真正精细的模型。
所以评价一位剪辑师助手,不能只问“找到没有”,还要看圈的范围与真实片段交叠了多少。尺子的刻度选得越细,越能挑出真正眼尖的那一位。
- 预测与真实区间\(\hat{I}=[\hat{s},\hat{e}]\) 是模型圈出的片段,\(I=[s,e]\) 是人工标注的真实片段。
- 重叠长度取两个终点中的较小者减去两个起点中的较大者,即为相交部分的时长;若为负数则说明没有交集,取 0。
- 覆盖总长度取两个终点中的较大者减去两个起点中的较小者,即两个区间拼在一起覆盖的总时长。
- 交并比重叠时长除以总覆盖时长,得到 0 到 1 之间的实数,越接近 1 表示定位越准。
模型方法
面对两小时录像,剪辑师助手有两种办案思路:老派“撒网派”先把时间轴切成许多候选小段,再逐段比对“像不像唱歌”;新派“直击派”目光紧贴时间轴,试图一步到位盯出起止点。
这两种思路对应模型方法的两大流派。两阶段方法先生成一组候选片段(proposals),再用跨模态匹配模块打分排序,精修边界;单阶段方法则跳过显式候选,让模型直接在时间轴上预测起止时刻。两阶段解释性强、召回有保障;单阶段端到端训练、推理更高效。
无论哪条路线,跨模态融合都是引擎。常见的做法是用注意力机制让文本去“逐帧扫描”视频:先算每秒画面与查询的相关度,再把相关度聚合成时刻估计。下面公式展示这种“软对齐”:预测的起点其实是对各时刻做加权平均的结果。
撒网派与直击派殊途同归——最终都靠“文本与画面对不对得上”拍板,就像助手反复默念“唱歌、唱歌”,再在画面里寻找嘴唇张合最吻合的那一段。
\hat{s} \;=\; \displaystyle\sum_{t=1}^{T} p_t \cdot t, \qquadp_t \;=\; \frac{\exp(\mathbf{q}^{\top}\mathbf{W}\mathbf{v}_t)}{\sum_{\tau=1}^{T}\exp(\mathbf{q}^{\top}\mathbf{W}\mathbf{v}_{\tau})}- 帧特征与文本向量\(\mathbf{v}_t\) 是第 \(t\) 秒的视频帧特征,\(\mathbf{q}\) 是文本查询向量,两者初始不在同一个“语言体系”里。
- 可学习的融合矩阵\(\mathbf{W}\) 把文本方向和视频帧方向映射到同一语义空间,让“唱歌”与“嘴张合的画面”可以互相比较。
- 注意力权重对所有时间步做 softmax,得到“这个时刻与查询相关的概率”,所有 \(p_t\) 之和为 1。
- 期望起点把每个时间戳按概率加权求和,得到预测的起点时刻,这是一种可微的“软决策”。
技术挑战
剪辑师助手也有翻车的时候:舞台上灯光乱闪、女儿和同学穿着同款裙子、描述里只有一句“女儿唱歌”。真实世界正是他的考场,而考题从不友好。
三个挑战尤为突出。第一是文本歧义:同一句话可以匹配多个长度与位置都不相同的区间——“女儿唱歌”可以是 30 秒的独唱,也可以是合唱里女儿出现的 5 秒镜头。第二是长视频稀疏:两小时里目标片段只有几分钟,若用滑窗枚举候选,窗口数量随视频时长平方级增长,模型像在干草堆里找针,还要忍受海量无关窗口。第三是语义漂移:事件本身有“走上台→开唱→谢幕”的演化,不同阶段画面差异巨大,很难用一个固定向量代表整个片段。
这些挑战意味着,朴素的“先分类再滑窗”方案在真实场景中会频繁误报:模型知道视频里有唱歌,却总把边界提前或推后几十秒。
就像助手不能因为全场鼓掌就断定“女儿在唱歌”,他必须分辨语义何时真正开始、何时结束。这是时序定位最难的关卡,也是它最值得研究的理由。
评测应用
助手学成出师,该去哪上班?答案是所有和大量视频打交道的岗位。时序定位一旦和标准评测协议结合,就能把“看懂视频”变成一组可量化、可比较的数字。
第一站是视频检索:在海量素材库中输入“嘉宾落泪的瞬间”,系统直接返回对应时间区间,剪辑师不用再拖拽进度条。第二站是视频摘要:把数小时直播自动切成一组有起止时间的片段,每一段都是“带时间戳的摘要单元”。第三站是能力量化:在多模态模型评测中,时序定位基准用统一的 tIoU/R@1 指标为不同模型的时间理解能力打分。
无论找人、剪片还是给大模型“摸底”,这位助手的本质工作始终如一:把一句描述翻译成一个精确的时间区间,让机器对视频的“时间感”变得可见、可比。
未来趋势
助手的进化没有终点。他正在学习处理更长的家庭录像、只靠口头描述来训练,以及和其他 AI 助手一起参加统一的“视频理解”考试。
三个方向值得关注。长视频理解:面对小时级视频,模型需要更高效的时间建模与采样,而不是把全部帧塞进显存。弱监督学习:训练时只给视频级文本标签、不给起止时间戳,标注成本大幅下降。多模态大模型:把时序定位当作检验模型细粒度时间感知的试金石。统一评测:将时序定位与视频问答、视频摘要等任务放进同一套协议,形成更全面的能力画像。
未来的剪辑师助手,大概会从“能指出片段”进化为“能解释为什么指这段”。而每一步进化,都离不开更精细的时间尺子来检验。读懂时序定位,也就推开了一扇理解视频 AI 的窗。
AI 应用场景
视频素材“以文搜秒”检索
阶段:多模态检索与视频理解
解决的问题:传统视频检索靠人工打标签,只能描述“视频里有什么”,无法回答“这件事发生在第几分钟”。AI 通过时序定位把文本直接映射到时间轴,实现“以文搜秒”,把检索粒度从“视频文件”细化到“具体片段”。
具体案例:综艺节目后期剪辑师面对 10 小时素材,输入“嘉宾落泪的瞬间”,系统返回若干候选时间区间,剪辑师快速锁定可用镜头,不再逐帧拖拽。
直播回放精彩片段自动剪辑
阶段:内容生成与视频摘要
解决的问题:直播回放长达数小时,人工剪辑耗时耗力且容易漏掉关键瞬间。利用时序定位,系统根据“进球后的庆祝”“获奖者上台”等描述自动定位多个候选片段。
具体案例:体育赛事回放中,输入“进球后的庆祝”后自动定位出全场所有相关区间并拼接成集锦,剪辑时间从 2 小时压缩到 5 分钟。
多模态大模型的时序能力评测
阶段:模型评测与能力量化
解决的问题:传统指标只测视频分类准确率,难以刻画模型对时间关系的理解。通过时序定位基准,用统一的 tIoU/R@1 指标在多模态大模型之间横向比较“细粒度时间感知”能力。
具体案例:评测团队在含有“文本-时间戳”标注的数据集上对多个多模态大模型打分,输出版本化的 R@1 报告,用来指导模型迭代方向。
Python 演示
import numpy as np np.random.seed(42) # 模拟一段 120 秒的视频, 每秒一个 64 维特征向量video_len = 120frame_feats = np.random.randn(video_len, 64).astype(np.float32) # 手工设定真实目标片段: 第 42~68 秒, 并让该片段特征偏向查询gt_start, gt_end = 42, 68query_feat = np.mean(frame_feats[gt_start:gt_end], axis=0)for t in range(gt_start, gt_end): frame_feats[t] = frame_feats[t] + query_feat * 0.5 def temporal_iou(pred, truth): # 计算两个 [起点, 终点) 区间的交并比 tIoU s1, e1 = pred s2, e2 = truth inter = max(0, min(e1, e2) - max(s1, s2)) union = max(0, max(e1, e2) - min(s1, s2)) return inter / union if union > 0 else 0.0 def sliding_window_search(query_feat, frame_feats, max_dur=15): # 滑动窗口生成候选片段, 用余弦相似度打分, 返回最优区间 T = len(frame_feats) best_score, best_interval = -1.0, None for s in range(T): for e in range(s + 1, min(s + max_dur + 1, T + 1)): seg_feat = np.mean(frame_feats[s:e], axis=0) norm = np.linalg.norm(seg_feat) * np.linalg.norm(query_feat) + 1e-8 score = np.dot(seg_feat, query_feat) / norm if score > best_score: best_score = score best_interval = (s, e) return best_interval if __name__ == "__main__": pred_interval = sliding_window_search(query_feat, frame_feats) iou = temporal_iou(pred_interval, (gt_start, gt_end)) print("预测区间:", pred_interval) print("真实区间:", (gt_start, gt_end)) print("tIoU:", round(iou, 4))
frame_feats = np.random.randn(video_len, 64).astype(np.float32)生成 120 秒的模拟视频特征,每秒一个 64 维向量,代表这一帧的画面内容。query_feat = np.mean(frame_feats[gt_start:gt_end], axis=0)模拟“听懂文本描述”:用真实片段的平均特征当作查询向量,代表描述指向的语义。inter = max(0, min(e1, e2) - max(s1, s2))计算两个时间区间重叠的长度,为 0 表示完全不重叠。union = max(0, max(e1, e2) - min(s1, s2))计算两个时间区间共同覆盖的总长度。def sliding_window_search(query_feat, frame_feats, max_dur=15)滑动窗口枚举所有不超过 15 秒的候选片段,体现“先生成候选片段再打分”的两阶段思想。score = np.dot(seg_feat, query_feat) / norm用余弦相似度衡量候选片段与文本查询的语义匹配程度。
常见误区
误区视频不就是很多张图吗?我只要对每一帧跑一个图像定位模型,把每帧圈出的物体连起来,就完成时序定位了。
正解时序定位的单元是“有语义的事件片段”,不是孤立帧。事件有前后因果,比如“走上台→开口唱→唱完鞠躬”,只看单帧很难判断“正在唱歌”的起止边界。模型必须聚合多帧的时序上下文,才能判断事件从哪一秒开始、到哪一秒结束。把逐帧结果简单拼接会忽略时间连续性,导致边界抖动、片段破碎。
为何常见:图像定位和视频理解确实共用很多视觉特征,初学者容易把视频当作图像的简单叠加,忽略了时间维度的独特结构。
误区模型能判断视频里有“女儿唱歌”这个类别,那它的时序定位能力应该也不错吧?
正解分类回答的是“有没有”,定位回答的是“在哪一段”。一个能识别“有唱歌事件”的模型,可能完全不知道事件在第 48 分钟才开始。时序定位要求预测出具体的时间区间 \([s,e]\),并用 tIoU 等指标量化区间重合度,任务粒度比分类细得多。
为何常见:日常生活中“知道这件事”和“知道发生的时间”常被混为一谈,尤其是人对视频的时间感知本来就比较模糊。
误区模型 A 的 tIoU=0.6,模型 B 的 tIoU=0.5,所以 A 在所有场景下都显著优于 B。
正解tIoU 只是一个区间重叠度量,评测结论依赖阈值设置。通常要在 0.3/0.5/0.7 等多个阈值下报告 R@1,才能完整刻画模型。A 在宽松阈值下高,不代表在严格阈值 0.7 下也高;且 tIoU 不衡量区间内部的语义质量,需结合其他指标综合判断。
为何常见:单一数字便于比较,人们容易把“平均分高”直接等同于“全面更优”,忽略了评测协议中的阈值和细节。
误区多撒网总能捞到鱼。我把时间轴切成密密麻麻的小窗口,全都交给模型打分,召回肯定更高。
正解候选太多会带来两个问题:一是正负样本极度不均衡,模型容易被大量无意义窗口带偏;二是计算成本暴涨,长视频中窗口数量随时长平方级增长。优秀的模型会用稀疏但高质量的提议,或用单阶段方法直接回归边界,兼顾召回与效率。
为何常见:搜索式思维深入人心,在短序列上“暴力枚举”效果尚可,但视频时长拉长后平方级开销立刻暴露。
面试题
Q1. 时序定位(Temporal Grounding)的核心目标是( )。
- A.预测整条视频所属的类别标签
- B.定位文本对应的起止时间区间← 正确答案
- C.把视频每一帧都转写成字幕
- D.从视频中提取若干关键代表帧
答案:B。时序定位回答的不是“视频里有什么”,而是“描述的事件在哪段时间发生”,输出是一个连续时间区间。A 是视频分类,C 是视频字幕生成,D 是关键帧提取,都不涉及输出连续时间区间。
Q2. 评测时序定位精度时,tIoU 衡量的是( )。
- A.预测区间与真实区间的重叠程度← 正确答案
- B.模型回答文本的语法通顺程度
- C.视频帧画面清晰度的平均值
- D.预测类别与真实类别的匹配数
答案:A。tIoU 是时间交并比,衡量预测区间与真实区间的重叠时长占总共覆盖时长的比例。B 属于文本生成评估,C 属于画质评估,D 属于分类评估。
Q3. 与图像定位相比,时序定位最主要的额外难点是( )。
- A.必须处理图像中复杂的光照变化
- B.必须对齐文本与时间上的动态事件← 正确答案
- C.必须输出更高分辨率的边界框
- D.必须使用更大的卷积神经网络
答案:B。图像定位在二维空间框目标,时序定位必须把文本与沿时间轴演变的事件对齐,难在“时间”这一维度。A、C、D 属于图像层面的干扰或输出形式,不是时序特有的难点。
Q4. 两阶段时序定位方法的基本流程是( )。
- A.先对视频分类,再预测整体时长
- B.先生成候选片段,再筛选与回归边界← 正确答案
- C.先抽取关键帧,再对关键帧聚类
- D.先训练语言模型,再翻译视频内容
答案:B。两阶段方法先由时序提议模块生成候选片段,再通过跨模态匹配筛选并精修边界。A 是视频分类,C 是关键帧处理,D 是翻译类任务,均不符合两阶段定位流程。
Q5. 下列属于时序定位实际应用的场景有( )。
- A.在视频素材库按文字检索片段← 正确答案
- B.自动生成一条视频的摘要集合← 正确答案
- C.将手机照片按拍摄时间排序
- D.从直播流中剪辑精彩瞬间← 正确答案
答案:ABD。以文搜片段、自动生成摘要、直播精彩剪辑都依赖“文本→时间区间”的定位能力。C 是对静态照片排序,不涉及文本与视频时间区间的匹配。
Q6. 长视频上时序定位性能下降的重要原因之一是( )。
- A.候选窗口过多使目标变得极为稀疏← 正确答案
- B.视频帧率越高画面内容越不清晰
- C.文本查询越短模型性能反而越差
- D.音频与画面时间轴完全同步
答案:A。长视频中滑窗候选数量随帧数平方级增长,真实目标只占极小比例,导致正样本稀疏、训练与推理负担剧增。B、C、D 都不是长视频特有的根本原因。
Q7. 通常报告时序定位检索性能的指标是( )。
- A.固定 tIoU 阈值下的召回率← 正确答案
- B.字幕生成结果的 BLEU 分数
- C.视频分类结果的 Top-1 准确率
- D.图像检测输出的平均精确率
答案:A。时序定位的检索性能通常报告 R@1 在固定 tIoU 阈值(如 0.5)下的结果。BLEU 用于字幕生成,Top-1 用于分类,平均精确率用于图像检测。
Q8. 关于时序定位中的边界预测,下列说法正确的有( )。
- A.边界往往模糊需要引入上下文← 正确答案
- B.起止点回归会结合片段级语义← 正确答案
- C.直接分类每一帧就已足够精确
- D.边界预测完全不依赖文本信息
答案:AB。事件边界往往模糊,需要结合前后帧上下文判断;边界回归通常利用片段级语义信息,并且必须依赖文本查询来明确“找什么”。C 和 D 与这些核心经验相悖,故错误。
Q9. 弱监督时序定位与传统监督方法的关键区别是( )。
- A.不使用任何视频与文本数据
- B.训练时不需要帧级时间标注← 正确答案
- C.训练时不需要任何文本描述
- D.推理阶段不产生时间区间
答案:B。弱监督时序定位只使用“视频-文本”整体标签进行训练,不需要人工标注起止时间戳。A 没有数据无法训练,C 没有文本就无法建立跨模态匹配,D 与任务定义矛盾。
Q10. 当评测阈值从 tIoU=0.5 提高到 0.7 时,通常会发生( )。
- A.R@1 指标下降且要求边界更精确← 正确答案
- B.R@1 指标上升表明模型定位更强
- C.模型输出区间的长度反而会变长
- D.评测结果与阈值高低完全无关
答案:A。阈值越严,预测区间与真实区间的重叠度要求越高,模型必须把边界圈得更准,多数模型的 R@1 会下降。B 与趋势相反,C 与模型输出无关,D 否认了阈值的作用。