视频异常检测

Flashback 精读:不在线调用大模型,实时异常检测还缺哪一环?

拆解Flashback的离线伪场景记忆、提示分离和异常缩放,核对编码器与消融贡献、实时预算、平滑因果性及零样本调参边界。

Flashback离线伪场景记忆构建与在线视觉文本检索流程

核心判断:把生成移到离线,比让大模型逐帧“多想”更直接

Flashback 把视频异常检测改写为检索:先让语言模型编写正常与异常场景的文字记忆,再用冻结视频编码器寻找最相近的描述。在线阶段不再生成长篇字幕或询问大模型打分,这是它最清楚、最可信的效率贡献。但准确率提升并非单纯来自“记忆足够大”:跨模态底座、正常/异常文本包装和异常向量缩放都很关键。更需要留意的是,快速处理一个片段,不自动等于整条带平滑的预测链已经满足严格因果报警。

本文采用 Lee 等人 Flashback 的 2025 年 5 月 23 日 v2,初稿于 5 月 21 日提交,属于旧论文专题精读而非近期新发表。核读完整主文、所有实验表与局限节,并对照 LAVAD 的实际处理流程;不把论文报告写成本站已完成复现。

取代的是在线生成,而不是视觉表征

最近的路线对照是 LAVAD。LAVAD 先从视频生成字幕,清理字幕,再让 LLM 汇总时间上下文并评异常分数,最后以跨模态相似度细化。它的字幕来自当前测试视频,能够描述库外事件,但生成和反复推理都发生在测试阶段;部分清理与时间窗口还依赖整段或未来信息。

Flashback 继承“视觉和文字对齐”的基础,却替换了文字的来源及使用时机:文字提前合成,标签提前存好,测试时只检索。它也不同于记忆自编码器:记忆不是正常训练视频的特征原型,打分不是重建误差,而是检索文本携带的正常/异常标签。其所谓零样本,具体指不使用目标域视频或标签做梯度训练;预训练编码器和 LLM 的外部知识当然仍然存在。

Flashback离线伪场景记忆构建与在线视觉文本检索流程

图注:离线生成记忆与在线检索两条路径。来源:Lee等,Flashback v2,图2,CC BY 4.0。(来源:论文)

图 2 要沿上下两条路径读:离线语言模型输出场景句子、类别和二元标签,文字编码一次后缓存;在线视频切片、视觉编码、检索、标签聚合,最后映射回帧。冻结模块并不意味着完全没有设计选择,模板、缩放因子和取多少邻居都能改变决策。

从一段视频到异常分数:三处选择真正决定效果

第一处是构造“伪场景”。第 3.2 节用上下文提示说明异常检测用途,再用格式提示要求正常与异常条目各有动作类别和描述。不是向语言模型输入真实异常片段,而是让它调用预训练知识生成候选。正文记载生成百万正常—异常对花费 76 小时、181.43 美元;这是作者当时特定 API 版本的离线成本,不能当成今天的报价。“一次离线构建”也不应误读成一个 API 请求便能吐出全部百万条。

每条文本经冻结文本编码器得到向量,配一个标签:正常为零、异常为一。在线视频默认一秒一片段,取 16 帧,尺寸 448×336;使用 ImageBind 或 PerceptionEncoder 得到共同空间的视觉表示。每个片段与库中向量作点积,取最高的十条,把相似度 softmax 为权重,再算标签加权平均。直观上,异常分数衡量的是“最近邻中异常文字占了多大权重”,并不是语言模型对当下画面校准过的异常概率。

第二处是 repulsive prompting,中文可理解为拉开两类文本的提示包装。原始正常、异常句子可能共享大量对象和动作词,编码后靠得很近。作者给两类句子加入 Normal/Anomalous 类别词,并采用不同的外层模板,使两组表示拉开。这里没有对比学习、梯度更新或新增视觉分支;它操纵的是编码器的输入分布。优势是成本极低,代价是可能让分类词本身主导相似度。因而不能只凭文本聚类图就宣布视觉异常已经被正确分离,必须同时看检测消融。

第三处是 scaled anomaly penalization。作者将异常文本向量乘小于一的系数 α,然后才算点积和排名,默认取 0.95。这不是对最终异常分数统一乘一个常数:它能改变入选的邻居、softmax 权重及正常异常竞争。若实现中在缩放后又把向量单位归一化,幅值变化便会被抵消,因此复现必须核对归一化顺序。

这一操作也有适用条件。对正相似度,乘 0.95 会降低得分;对负点积却会让数值靠近零,未必始终是“惩罚”。实际高相似度邻居通常才决定结果,但论文没有把任意输入都降低异常倾向作为数学保证。本文据此建议检查不同场景的相似度分布,而不要把该系数视为通用概率校准。

检测结果:强编码器是贡献的一部分

表 1 按监督层次分组,UCF-Crime 报帧级 ROC-AUC,XD-Violence 同时报帧级 AP 与 AUC。Flashback-PE 得到 87.29、75.13、90.54;对应 LAVAD 是 80.28、62.01、85.36。相减分别为 7.01、13.12 和 5.18 个百分点。它证明该完整系统在这些对照下有明显收益,但不是所有监督方法上的最高值:同表 VadCLIP 的 UCF AUC 为 88.02、XD AP 为 84.51。

换成 ImageBind 后,Flashback-IB 为 81.65、60.13、83.52;后两项低于 LAVAD。换句话说,离线检索这套机制不会自动跨底座兑现全部优势,PE 与 IB 的差距需要作为主要结果来读。与不同监督量、不同预训练底座的方法比较,能展示实用位置,不能隔离检索设计的因果贡献。论文亦注明部分 Holmes-VAD 数字转引 VERA,而不是把所有基线都在同一机器上重训所得。

表 3(b) 才更接近模块归因:去掉提示包装,UCF AUC 为 74.98、XD AP 为 71.01;完整 RP 为 87.29 和 75.13。仅类别词或仅模板均恢复部分表现,二者结合效果更好。正常、异常中心夹角由 8.12° 到 33.29°,与结果方向一致。不过这个相关性还不能证明“夹角越大越好”:纯几何调整在 UCF 上为 81.56,却把 XD AP 拉到 64.98,已经表明粗暴改变表示空间不等价于有效语义分离。

Flashback五组消融表含库抽样提示检索数量记忆规模与切片参数

图注:机制、记忆规模与实时约束消融。来源:Lee等,Flashback v2,表3,CC BY 4.0。(Flashback v2 Table 3 CC BY4,第 8 页,来源:论文)

表 3 请同时看子表 (b) 的机制消融、(d) 的库大小和 (e) 的延迟约束。不能只选最高 AUC,也不能用图中两团点分开来替代表里的实际检测结果。原表含表头、指标与参数,便于交叉核对。

检索数量也不是越大越好。表 3(c) 中 K 从 1 增至 10,UCF AUC 由 82.00 到 87.29;到 40 则降为 86.31。XD AP 相应为 73.55、75.13、74.86,但 XD AUC 在 K=40 时达到 90.73,略高于默认的 90.54。因此“所有指标都在十个邻居最好”并不成立,默认值更像多指标折中。作者认为较远邻居稀释标签平均,这是合理解释,但缺少逐邻居噪声标注来直接验证。

记忆从一万对扩展到百万对,UCF AUC 从 82.61 到 87.29,XD AP 从 72.17 到 75.13;速度仅由 42.95 到 42.06 FPS。这个范围内视觉编码显然比检索更耗时,但不能推出无限扩库都不增加代价。文本和向量分别占约 0.3 GiB、3.9 GiB,部署时还要加编码器与运行缓存。扩库的边际收益也有差别:五十万到百万对,XD AP 仅由 75.11 到 75.13,UCF 却继续改善。

实时性要分处理吞吐、决策间隔和报警延迟

作者设定实时条件为:新决策间隔不超过一秒,而且处理时间不超过该间隔。表 2 的默认一秒无重叠片段,处理时间 0.713 秒,满足此计算条件;RTX 3090 上按 30 FPS 输入折算为 42.06 FPS,而非模型真的逐一编码了每秒 42 个独立输入帧。LAVAD 为 1.26 FPS,因而约为 34 倍。正文另外报告 L40S 上 63.16 FPS,不应把不同硬件数字混合计算加速比。

更有用的反例是表 3(e):一秒片段、半秒重叠、16 帧取样时,处理 0.683 秒,虽标出 44.06 FPS,却超过半秒决策预算,队列会积压。八帧版本处理 0.364 秒可满足半秒预算,但 UCF AUC 降至 84.66。吞吐看起来更高,不代表能在当前切片频率下持续在线,这正是此表比单个 FPS 更有价值的地方。

还有两个尚需代码或实测补足的边界。第 3.3 节对覆盖帧的片段分数平均后,再作一维高斯平滑;实现细节给出 100 帧宽度,但没有在本文所读材料中明确单边因果边界。若实际使用对称滤波,就会读到未来分数或引入等待。即使完全因果,片段本身也要先积累,再加处理时间。因此 0.713 秒不能直接当作从异常发生到用户收到告警的总延迟。这是对在线证据范围的限定,不是否认移除 LLM 后的速度收益。

此外,ROC-AUC与AP体现排序能力,均不直接回答固定阈值下每天产生多少误报。实际部署若要比较两种记忆配置,应固定同一误报预算再看召回,同时记录正常片段总时长;否则更高的曲线面积仍可能对应不可接受的告警负担。原文没有给出完整的这种运营指标,本文不替它补全。

文本解释是检索证据,不是实时因果推理

Flashback异常曲线与检索文本对照包括扒窃误报例

图注:成功与标签定义冲突案例。来源:Lee等,Flashback v2,图3,CC BY 4.0。(来源:论文)

图 3(c) 的扒窃例非常值得保留:库把 Pickpocketing 定义为异常,而 XD-Violence 的评价规则在此视为正常,所以系统会被计为误报。它揭示的不是简单识别失败,而是“常识异常”和“任务定义”不一致。图中灰色描述也提醒,检索句子可能有细节不符;句子流畅来自预写文本,不能据此认为画面事实已被验证。

作者在局限节承认固定动作标签难以随情境动态改变,解释仅是返回最相近句子,不能回答严重程度等开放追问。本文进一步认为,陌生事件可能被硬匹配到库内语义,系统应该有低相似度拒答或不确定状态,而不是永远给出一条看似精确的说明。该机制尤其需要用正常但少见的活动测试,防止语言先验将不熟悉等同危险。

两个协议疑点与可落地的下一步

第一,第 4.5 节把 UCF 与 XD 合成一个评价池扫描 α,观察 AUC 后选 0.95。这确实避免“分别为两个数据集调两个参数”,但仍不是完全独立于评价标签的模型选择证据。应在额外验证域预先锁定 α,再把未接触测试集作为最终报告;不能把无梯度训练直接等同无调参。

第二,表 3 图注说四个不重叠的一万条子集,正文却写十万条;表中均值又与十万库一行一致。本文保留该不一致,不把它伪装成已核定的采样规模。因此报告的标准差只说明原作者这四个库子集的波动,不是多次重新生成百万库的稳定性,更不是跨相机泛化置信区间。论文提到几何替代法的补充材料,但本次可读版本未附独立补充细节,不对其具体实现作额外推断。

复现建议按顺序做:固定原库和模板,核对缩放与归一化顺序;记录编码、检索、平滑、解码及排队各自耗时;将平滑改成明确因果版本重新报准确率与报警延迟;最后在独立域选择 α,并按误报语义检查标签定义。值得继承的核心是“把昂贵知识生成提前,在线只做可审计检索”,而不是照搬百万规模或某个固定阈值。

资料与许可

  • Flashback v2 全文与PDF:第 3–6 节、表 1–3、图 2–5,CC BY 4.0。
  • LAVAD 原文:核对字幕清理、中心时间窗与分数细化机制;本文不转载其图。

图 2、表 3、图 3 来源为 Lee 等人的 Flashback v2,保留作者和 CC BY 4.0 署名。以上数字均来自原文,并非本站运行结果。