视频时间定位(Temporal AI 词典:Grounding">Grounding)是指:给模型一段视频和一句自然语言描述,让它回答这段描述对应视频里的哪个时间段,输出具体的起始秒和结束秒。比如给一段 20 分钟的足球集锦,问“门将扑出点球的那一下”,模型要回答“第 12 分 34 秒到第 12 分 41 秒”,而不只是说“有这件事”。
打个比方:在一卷没有刻度的录音带上贴标签
想象一卷很长的录音带,你要找出“有人说‘我们下周再聊’的那一句”。你会一边快进一边听,听到就按下暂停,然后看一眼计数器读数。
模型做这件事的流程类似:视频先被抽成若干帧,每帧过视觉编码器变成一串特征向量;同时每个特征还要额外带上一个“时间戳信号”(时间位置编码,temporal position embedding),否则特征本身不知道自己是第 5 秒还是第 500 秒——单看一帧画面,是看不出它在片子里的位置的。然后文本查询也被编码,与视觉特征做跨模态对齐(cross-modal alignment),找出最匹配的那一段,最后预测出起止时刻。
为什么长视频里“时间感”经常错位
这几乎是长视频定位的通病,原因很具体:
- 抽帧把精度丢在了门口。 算力有限,长视频通常稀疏采样,比如每几秒取一帧。若采样间隔是 3 秒,模型根本不可能给出秒级边界,只能给个大概。
- 位置编码的外推问题。 训练数据里多是几十秒的短视频片段,位置编码见惯了这个长度;到了几十分钟的视频,超出训练范围的“第 1800 秒”对模型来说是陌生的数字。
- 画面本身不含时长信息。 一个动作是持续 2 秒还是 20 秒,从单帧看不出来,全靠模型从帧间变化和时间嵌入里推断,容易把相邻的两个事件糊成一段。
- 中间部分容易被忽略。 长上下文里,开头和结尾的信息更容易被抓住,中间大段内容注意力衰减,模型给出的时间段常常“偏头偏尾”。
- 时间戳是“生成”出来的。 当模型用语言方式输出“第 12 分 34 秒”,这个数字是逐字生成的,不像回归头那样连续取值,容易产生漂移和凑整。
实践中的缓解办法也很直白:分层采样(先粗看全片定位大致区段,再在候选区段内密集取帧精定位)、显式给每帧喂绝对时间戳、以及在长视频上做针对性训练。以官方页面和论文原文为准,不同模型的实现差异很大。
和几个“邻居”的区别
| 任务 | 输入 | 输出 | 粒度 |
|---|---|---|---|
| 视频时间定位(Temporal Grounding) | 视频 + 一句查询 | 起止时间戳 | 秒级区间 |
| 时序动作定位(Temporal Action Localization) | 视频 | 预定义类别的动作区间 | 秒级区间,无语言查询 |
| 视频检索(Video Retrieval) | 查询 + 视频库 | 相关视频或片段的排序 | 粗粒度,top-k |
| 视频问答(VideoQA) | 视频 + 问题 | 自然语言答案 | 不需要时间戳 |
关键差别在“语言驱动”和“边界精度”:检索只要排对序,问答只要答对内容,而时间定位必须把一句话固定到一条时间轴上。
对实际工作意味着什么
对从业者,它是视频搜索、自动剪辑、监控回放检索、字幕与章节对齐、内容审核的底层能力:一句“把所有进球瞬间剪出来”背后就是它。评估时常见的口径是预测区间与真值区间的交并比(tIoU),以及在不同 tIoU 阈值下的召回率;但更重要的是按视频时长分桶看效果——短视频上的好看数字,往往不能照搬到长视频。对普通人,这项能力成熟后,视频会像文本一样可以被“搜索内容”而不只是“搜索标题”;同时也该知道,模型报出的秒数在长视频里通常只是个近似值,精确到帧的剪辑还得人工确认。
