Two-Pass Zero-Shot Temporal-Spatial Grounding of Rare Traffic Events in Surveillance Video¶
会议: CVPR 2026
arXiv: 2605.01512
代码: 无
领域: 视频理解 / 视频时空 grounding
关键词: 零样本 grounding, 冻结 VLM, 由粗到细, 交通事故检测, 置信度门控
一句话总结¶
针对"禁止在真实事故视频上训练"的稀有事件场景,本文用两个冻结的视觉语言模型搭了一条无需微调的两遍式(粗→细)流水线,配两个确定性置信度门控来判断细化结果是否可信,并把"打类型"这个子任务专门交给第二个 VLM,在 ACCIDENT@CVPR 2026(2027 段真实 CCTV)上把联合时空+类型分数 \(\mathrm{ACC}^S\) 做到 0.539,比基准论文最优 oracle 高 0.127、比最强单 VLM 高 0.143,全程只花约 $20 的 API。
研究背景与动机¶
领域现状:交通事故视频检测有十多年积累,主流是监督式 CCTV 分类(CADP、TAD)、行车记录仪上的无监督异常检测(DoTA)、带时空注意力的事故预判(DSTA、CCD),几乎都依赖大量带标注的事故视频做训练。
现有痛点:事故是罕见且涉隐私/责任的安全关键事件,难以拿到足量标注,很多场景法律上就禁止在真实事故视频上训练。ACCIDENT@CVPR 2026 基准把这个约束写死:开发集给 2211 段 CARLA 合成视频,测试集是 2027 段真实 CCTV,但禁止在真实事故视频上训练。每段视频要同时定位三件事——撞击时刻 \(t\)、撞击位置 \((x,y)\)、碰撞类型 \(c\),最终用三个子分数的调和平均 \(\mathrm{ACC}^S\) 打分。
核心矛盾:调和平均会狠狠惩罚短板组件——任何一个子任务拉胯,整体就崩。官方 Kaggle 公开 baseline(光流 0.251、bbox 动力学 0.270)甚至打不过 naive 基线(0.289);最强单 VLM(Molmo-7B,0.396)空间分很高(\(S=0.596\))但类型分极差(\(C=0.271\))。问题的根在两处:① 单次前向看整段视频,粗时间覆盖和细时间分辨率只能二选一;② 任何单个 VLM 通常只在三个子任务的一个子集上强。
本文目标:在不微调、只用冻结 VLM 的前提下,同时把时间、空间、类型三件事都做好。
切入角度:作者观察到现代 VLM(Qwen3-VL-Plus、Gemini 3)原生就带时空 grounding——能对齐文本时间戳、输出 \([0,1000]^2\) 网格坐标、吃长上下文视频窗口。只是 naive 零样本用法没发挥出来。
核心 idea:用"由粗到细的两遍分解"只在高显著邻域做细化,再用"专家分工"把类型分类甩给在该轴上更强的第二个 VLM——两招同时解掉上面两个矛盾,全程零微调。
方法详解¶
整体框架¶
给定一段时长 \(D\) 秒的交通监控视频 \(V\),目标是预测 \((t^*, x^*, y^*, c^*)\)。整条流水线由三段串起来:第一遍(粗 grounding)用 Qwen3-VL-Plus 以 1 fps 扫全片,吐出一个粗四元组 \((t_1, x_1, y_1, c_1)\);第二遍(细化)只在 \(t_1\) 附近 \(\pm 3\)s 的窗口内以 5 fps、1024px 重采样,刷新时间和位置到 \((t_2, x_2, y_2)\);中间夹两个确定性门控——时间回退门和空间合并门——决定到底采用粗估计还是细估计;最后专家分类用 Gemini 3.1 Flash-Lite 在以 \(t^*\) 为中心的 5s 短片上重新打类型 \(c^*\)。所有模型都冻结、零样本调用,API 失败时(实测约 17% 视频)回退到 YOLO26x + ByteTrack + 物理规则的并行管线。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["监控视频 V"] --> B["第一遍:粗 grounding<br/>Qwen3-VL @1fps<br/>(t1,x1,y1,c1)"]
B --> C["第二遍:窗口细化<br/>±3s @5fps,1024px<br/>(t2,x2,y2)"]
C --> D["Gate 1 时间回退<br/>边界/无效则用 t1"]
C --> E["Gate 2 空间合并<br/>越界则用 (x1,y1)"]
D --> F["专家类型分类<br/>Gemini 3.1 @t* 短片"]
E --> F
F --> G["输出 (t*,x*,y*,c*)"]
关键设计¶
1. 由粗到细两遍分解:把"覆盖广"和"看得细"拆到两遍各管一头
单次前向看整段视频时,采样率高了就覆盖不全、覆盖全了就看不细,这正是稀有瞬时事件最难的地方。本文把它拆成两遍:第一遍以 1 fps、长边 720px、\(\le 30\) 帧扫全片(ACCIDENT 中位时长 26.8s),每帧前面贴一个 [Frame at t.ts] 文本标签把像素网格绑定到绝对秒——这是一个轻量锚点,Qwen3-VL 直接读,不需要训练好的 time-to-token 模块。1 fps 采样 + 整数秒输出 + 逐帧文本标签三者结合,把"产出连续时间戳"变成了"指认某一帧"。第二遍只在 \(W=[\max(0, t_1-3), \min(D, t_1+3)]\) 内以 5 fps、1024px 重采样,问 0.1s 精度的细时刻和一个新坐标点,只细化第一遍锁定的高显著邻域,从而同时拿到广覆盖和高分辨率。
2. 两个确定性置信度门控:让第二遍只在"靠谱时"才覆盖第一遍
细化不是无脑覆写——第二遍的 prompt 明确允许在窗口内看不到碰撞时返回 \(t_2 = -1\),把第二遍变成一个置信度门控的细化器而非盲目覆盖。时间回退门(Gate 1)用边界容差 \(\tau=0.3\)s:当 \(t_2 < 0\)、或 \(t_2\) 贴近窗口任一边界(\(|t_2 - W_{\min}| < \tau\) 或 \(|t_2 - W_{\max}| < \tau\))时,判定为模型在"犹豫式 hedging",回退到更鲁棒的第一遍 \(t_1\),否则取 \(t_2\)。空间合并门(Gate 2)用边距 \(m=10\):只有当第二遍坐标两个轴都落在 \([10, 990]\)(即 \(m \le \tilde{x}_2 \le 1000-m\) 且 \(m \le \tilde{y}_2 \le 1000-m\))时才采用 \((\tilde{x}_2/1000, \tilde{y}_2/1000)\),任一轴被边缘钳住就回退到第一遍坐标。两个门相互独立,正是它们让"两遍"能稳定超过任一单遍。
3. 专家角色分工:把短板子任务甩给在该轴上更强的第二个 VLM
Qwen3-VL 在 1681 段第一遍有效视频上的类型准确率只有 0.462(含 17% 物理回退的全测试集 \(C=0.474\)),明显低于它的空间分——这正是调和平均最怕的短板。于是把"打类型"整个换给 Gemini 3.1 Flash-Lite:以 \(t^*\) 为中心取 \([t^*-3, t^*+2]\) 的 5s 短片,并围绕第一遍中心 \((x_1, y_1)\) 以 \(2.5\times\) 框做空间裁剪(用第一遍中心而非合并后的 \((x^*, y^*)\),因为第一遍给的粗区域对类型分类更稳),喂给一个闭世界 prompt(枚举 5 类、禁止弃权)。这一拆把全测试集类型准确率从 0.474 抬到 0.591(相对 +25%),代价只是每段多一次 API 调用。
损失函数 / 训练策略¶
全程无训练、无微调,只调用冻结 VLM,因此没有损失函数。关键超参全部在测试标签发布前冻结:窗口 \(\Delta=3\)s、时间容差 \(\tau=0.3\)s、空间边距 \(m=10\)、第一遍 1 fps/720px、第二遍 5 fps/1024px、类型短片 5s/\(2.5\times\) 裁剪。碰撞类型空间 \(\mathcal{C}=\{\)head-on, rear-end, t-bone, sideswipe, single\(\}\);坐标在 \([0,1000]^2\) 网格上由 VLM 输出后除以 1000 再合并/评测。Prompt 采用闭世界框架(预先声明视频中必有事故,抑制模型拒答)——这与 ACCIDENT 基准"每段都含事故"一致,开放世界部署需配人类把关。
实验关键数据¶
主实验¶
在 ACCIDENT 2027 段真实 CCTV 上,官方评测器 \(\sigma_t=1\)。\(T,S,C\) 为数据集级均值,\(\mathrm{ACC}^S\) 为逐视频调和平均再取均值;人类天花板 0.843。
| 方法 | \(T\) | \(S\) | \(C\) | \(\mathrm{ACC}^S\) |
|---|---|---|---|---|
| 光流 baseline [11] | — | — | — | .251 |
| BBox 动力学+光流 [11] | — | — | — | .270 |
| Naive baseline [14] | .30 | .25 | .34 | .289 |
| Molmo-7B [4] | .48 | .60 | .27 | .396 |
| Best-of-baselines oracle [14] | .48 | .60 | .49 | .412 |
| Gemini 3.1 单遍(本文消融) | .44 | .49 | .49 | .473 |
| Qwen3-VL 第一遍(本文消融) | .46 | .51 | .47 | .480 |
| Ours (full) | .50 | .54 | .59 | .539 |
| Human [14] | .98 | 1.0 | .92 | .843 |
本文 \(\mathrm{ACC}^S=0.539\)(CI \([0.525, 0.553]\))比 best-of-baselines oracle 高 +0.127、比 Molmo-7B 高 +0.143。\(T=0.497\) 超过 Molmo,\(S=0.538\) 略逊 Molmo 的 0.596,\(C=0.591\) 是所有方法最高。同样 1 fps 输入下 Gemini 单遍仅 0.473,低于 Qwen 第一遍 0.480;配对 bootstrap 显示完整流水线比 Gemini 单遍高 \(\Delta=+0.066\)(\(p<0.001\))。在 1681 段第一遍有效视频上 \(\mathrm{ACC}^S=0.554\),346 段回退视频得 0.457,证实增益来自 VLM 主路而非物理回退。
消融实验¶
逐组件拆解(\(\sigma_t \in \{1,2\}\) 看时间,\(\mathrm{ACC}^S\) 在 \(\sigma_t=1\)):
| 配置 | \(T_{\sigma1}\) | \(S\) | \(C\) | \(\mathrm{ACC}^S\) | 说明 |
|---|---|---|---|---|---|
| 仅第一遍(Qwen 打类型) | 0.463 | 0.506 | 0.474 | 0.480 | 起点 |
| + Gemini 专家类型 | 0.463 | 0.506 | 0.590 | 0.514 | 类型 +0.12,单步最大跳 |
| + 第二遍时间细化 | 0.497 | 0.506 | 0.591 | 0.528 | \(T(\sigma_t{=}1)\) +0.034 |
| + 第二遍空间合并 | 0.497 | 0.538 | 0.591 | 0.539 | \(S\) +7% |
相对仅第一遍,累计增益 \(+0.059\) \(\mathrm{ACC}^S\)。
关键发现¶
- 专家类型分工贡献最大:把 Qwen 的类型头换成 Gemini 单步就让 \(C\) 从 0.474 跳到 0.590,是单组件最大增益——印证"任何单 VLM 只在部分子任务强"的假设。
- 时间存在系统性"晚偏":第一遍预测时刻相对 GT 均值 \(+1.55\)s、中位 \(+0.37\)s,模型倾向选碰撞后残骸帧而非接触瞬间;且时间 MAE 随视频长度增长(\(\le 10\)s 片 0.94s → \(\ge 20\)s 片 >4s),提示需要运动自适应采样。
- 最难的两类会塌缩:79% 的 head-on 被叫成 t-bone、39% 的 sideswipe 被叫成 rear-end,仅靠类型这两类 \(\mathrm{ACC}^S\) 跌到 ~0.12(而 \(T,S\) 健康),作者归因于高俯角 CCTV 的单目深度歧义和网络数据标注偏置。
- 物理-VLM 互补:YOLO+物理(6.63s MAE)与 Qwen 第一遍(3.20s)的 oracle 组合可达 2.13s MAE(\(-33.5\%\)),说明下一步杠杆是物理-VLM 融合而非堆规模。
亮点与洞察¶
- 把"产出时间戳"重构成"指认某一帧":1 fps 采样 + 整数秒输出 + 逐帧
[Frame at t.ts]文本标签三件套,让冻结 VLM 不靠任何 time-to-token 训练就能做时间定位——这个轻量锚点思路可迁移到任何需要时间 grounding 的视频任务。 - 门控用"边界/边缘"当不确定性代理:不需要置信度分数,直接把"细化结果贴近窗口边界或坐标被边缘钳住"判为模型在 hedging 并回退——一种纯确定性、零额外成本的不确定性检测。
- 专家分工是面向调和平均度量的直接对策:当评测是调和平均、最怕短板时,与其追求一个全能模型,不如诊断出最弱子任务再换一个专精模型补上,性价比极高(一次额外 API 调用换 +25% 相对类型增益)。
- 全程约 \(20、每段 ~\)0.01:证明在严格禁训练的稀有事件场景,精心编排的冻结 VLM 流水线能显著超过训练式 baseline 和单次 VLM prompting。
局限与展望¶
- 时间晚偏未解决:模型系统性偏向碰撞后帧,作者提出运动自适应采样但本文未实现。
- 类型在视觉歧义类上崩:head-on↔t-bone、sideswipe↔rear-end 的混淆源于高俯角单目深度歧义,换模型也只是缓解。
- 依赖闭世界假设:prompt 预设"每段必有事故"以抑制拒答,开放世界部署需要额外的人类把关门,泛化到"判断有无事故"的场景需重新设计。
- 17% 视频走物理回退:API 失败率不低,回退路径(0.457)明显弱于 VLM 主路(0.554),稳定性受第三方 API 可用性制约。
- 改进方向:作者明确指出下一步是运动自适应采样 + 物理-VLM 融合(oracle 已证明可降到 2.13s MAE),而非继续堆模型规模。
相关工作与启发¶
- vs 监督式事故检测(CADP/TAD/DoTA/DSTA): 它们几乎都在标注事故视频上训练,本文在禁训练约束下用冻结 VLM 零样本完成联合时空+类型 grounding。
- vs ReVisionLLM [9]: 二者都是由粗到细的递归 grounding(针对长视频),但 ReVisionLLM 的层级是靠分层训练实现的,本文的两遍分解完全无训练、靠 prompt 和门控实现。
- vs LAVAD [23]: LAVAD 是首个全免训练的视频异常检测,但依赖逐帧 VLM caption + LLM 后聚合,丢失了空间 grounding;本文用 VLM 原生时空 grounding 直接保住 \(T+S+C\) 三件事。
- vs Molmo/单 VLM baseline [4]: 单 VLM 强于空间但弱于类型,本文用专家分工补短板,把整体调和平均从 0.396 抬到 0.539。
- vs 并发工作 Thakur & Talele [16]: 它用帧差峰值定时间、Farneback 光流质心定空间、CLIP 相似度定类型,模块化但仅 0.252;本文用 VLM 原生能力 + 门控显著领先。
评分¶
- 新颖性: ⭐⭐⭐⭐ 无训练编排冻结 VLM 解稀有事件 grounding,两遍分解 + 确定性门控 + 专家分工的组合实用且针对度量短板,但单点技术多为已有能力的精巧装配。
- 实验充分度: ⭐⭐⭐⭐ 主表 + 逐组件消融 + 系统性失败诊断(时间偏置/长度退化/类型混淆/物理-VLM oracle)齐全,含 bootstrap CI 与显著性检验。
- 写作质量: ⭐⭐⭐⭐ 动机—矛盾—对策链条清晰,公式与算法伪代码完整,门控逻辑交代到位。
- 价值: ⭐⭐⭐⭐ 在"禁训练 + 隐私敏感"的真实安全关键场景给出低成本可落地方案,对调和平均度量补短板的思路有迁移价值。