微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 ReactVAU:一个会"偷懒"的监控AI,如何在保持警觉的同时省下一半算力

ReactVAU:一个会"偷懒"的监控AI,如何在保持警觉的同时省下一半算力

2026-10-13 13:43
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-10-13 13:43 • 科技行者

2024年前后,如果你去查监控视频异常检测领域最火的那批研究,会发现一个挺尴尬的共同点:这些模型全都得先看完整段视频,才能告诉你哪里出了问题。

这听起来没什么大不了,直到你意识到这些模型的目标场景是实时监控。想象一下,一个摄像头对着地铁站,AI需要看到未来五分钟才能判断当前这一秒有没有人在打架。这不是技术细节的疏忽,是根本性的逻辑矛盾:真实世界的监控系统根本不可能拿到未来的画面。

这篇来自国立清华大学和英伟达台北研究院的论文,把这个矛盾摆到了台面上。论文题目是《ReactVAU:面向流式视频异常理解的快慢解耦框架》,作者团队包括Chia-Hui Chen、Shih-Ying Yeh、Fu-En Yang、Min-Hung Chen和Shang-Hong Lai。他们做的事情说起来简单:让AI只看过去和现在,不看未来,同时还要保证够快、够准、还能说清楚"发生了什么"。

**核心问题:鱼与熊掌真的不能兼得吗**

先说清楚当时的技术格局是什么样的。

传统的视频异常检测(VAD,Video Anomaly Detection)走的是"黑箱"路线,输出一个异常概率分数,但不会告诉你为什么。这类方法比如CLIP-TSA、VadCLIP,在UCF-Crime数据集上能做到87%到88%左右的AUC(曲线下面积,一种衡量分类模型区分正负样本能力的指标,数值越接近100%说明模型越准)。但它们没法解释"为什么这一段是异常",这对安防场景来说是硬伤,警察不会因为一个数字就出警。

于是大家开始把多模态大语言模型(MLLM,能同时理解图像和文字,并生成自然语言描述的AI模型)接进来,试图让AI不仅能判断异常,还能用人话讲清楚发生了什么。这类顶尖的视频异常理解(VAU,Video Anomaly Understanding)模型,比如Holmes-VAU、VADER,效果确实好,Holmes-VAD在UCF-Crime上甚至冲到了89.51%的AUC。

问题出在哪?这些模型全部依赖离线推理。它们需要先拿到完整视频,做全局时间采样,计算整段的异常密度分布,然后才生成文字描述。换句话说,它们必须先看完"电影"才能写影评,而监控系统需要的是"直播解说"。当研究者强行把这类离线模型塞进在线场景测试时,性能崩得很难看。论文里提到,把LAVAD这个离线模型强行改成在线版本(Online-LAVAD)后,UCF-Crime上的AUC从80.28%直接掉到76.06%,XD-Violence上的AP(平均精度,衡量模型在类别不平衡数据上表现的指标)从62.01%暴跌到52.63%,跌了将近10个百分点。这不是小幅度的性能损失,这是方法论层面的水土不服。

那有没有专门为流式场景设计的模型?有,比如StreamForest,它用一套叫做"持久事件记忆森林"的机制,把历史画面压缩存储,理论上可以无限期处理视频流。但这类通用流式模型又撞上了另一堵墙:它们不是为异常检测这种"小概率事件"设计的。

**方法一:把异常检测拆成快慢两条线**

ReactVAU的第一个核心思路,是承认一个朴素的事实:监控视频里,绝大部分时间都是正常的,异常事件又少又短。

如果你用一个重型的多模态大语言模型去均匀处理每一帧画面,那绝大部分算力都花在了"什么都没发生"的画面上。这就好比你雇了一个法医专家,让他对着一整天的监控录像逐帧检查,可这一天里真正出事的可能只有三十秒。法医专家的专业能力被浪费在了看人走路、看车停车这种琐事上。如果不这样拆分会怎样?论文的效率实验给出了答案:StreamForest这种纯重型模型的推理延迟稳定在216.1毫秒每次查询,不管画面是不是有异常都要付出这个代价。

ReactVAU的解法是设计两个模块:一个轻量的快速检测模块(Fast Detection Module)永远在线,负责持续监控画面,判断"这里有没有可疑迹象";一个重量级的慢速推理模块(Slow Reasoning Module)平时处于休眠状态,只有快速模块拉响警报时才会被唤醒,去做深入的语义验证和因果描述。

这套机制的效果体现在延迟数据上。在UCF-Crime测试集(异常事件占比约43%,本身就是个异常密度很高的数据集)上,ReactVAU把7B参数的大模型调用次数从34670次砍到15955次,降低了54%。加权平均延迟从216.1毫秒降到98.3毫秒,直接砍掉一半以上。更关键的是,论文还做了一个现实场景的推算:真实监控里异常事件通常只占5%到10%,在这种更贴近现实的比例下,ReactVAU的大模型调用次数能降低95%,平均延迟压到31.0毫秒每次查询。

**方法二:把时间问题变成空间问题**

快速检测模块具体怎么实现?这里有个挺巧妙的设计,叫空间网格折叠(Spatial Grid Folding,简称SGF)。

传统做法是用3D卷积神经网络去提取视频的时序特征,这类模型计算量很大,不适合放在需要持续在线运行的快速模块里。ReactVAU的做法是:把连续四帧画面(1秒钟,4FPS的采样率)拼成一张2×2的网格图片,然后丢给一个轻量的视觉语言模型(VLM,Vision-Language Model,能同时处理图片和文本的AI模型)去判断"这个网格图里有没有异常"。

这个设计的巧思在于,它把一个时序推理问题伪装成了一个空间推理问题。视觉语言模型天生擅长处理静态图片里的空间关系,因为它们在海量图文对上做过预训练。与其重新训练一套时序建模能力,不如利用模型已经很擅长的空间理解能力,把"这四帧连起来看发生了什么变化"转换成"这张拼图里有没有不协调的地方"。这就像你想知道一个人跑步的姿势对不对,与其录一段视频慢速回放分析关节角度变化,不如把关键几帧拼成一张连续动作图,一眼扫过去就能看出摆臂有没有问题。前者需要专业的运动分析知识,后者调动的是人类天生就有的图像模式识别能力。

具体的模型选择是PaliGemma2-3B,这是一个30亿参数的视觉语言模型,视觉编码器用的是SigLIP-So400m,这个编码器和后面重型慢速模块用的是同一套,保证了整个系统对视觉特征的理解是一致的。团队在UCF-Crime和XD-Violence数据集基础上专门构造了一批网格图片数据集,对模型做了一轮微调,只更新投影层和LoRA(一种参数高效微调技术,只训练模型的一小部分参数就能达到接近全量微调的效果)权重。

消融实验(逐步去掉或添加某个组件,观察性能变化,用来验证每个设计是否真的有用的实验方法)的结果很说明问题:直接把PaliGemma2从单帧输入切换成零样本网格图输入,AP反而从53.71%掉到43.42%,因为模型原本训练时没见过这种拼图输入,预训练的空间先验被打乱了。但经过针对性微调后,AP直接飙升到79.55%。这说明网格折叠这个思路本身是对的,只是需要让模型"学会"怎么读这种拼图。

**方法三:给"重要证据"上保险**

第三个核心组件解决的是另一个隐藏问题:慢速模块平时在睡觉,那这段时间里,视觉记忆要怎么更新?

如果直接照搬通用流式视频理解的记忆压缩方案,会遇到一个致命缺陷。这类方案的设计初衷是处理无限长的视频流,为了控制内存占用,它们会不断把旧的、不重要的画面合并压缩。但它们判断"重不重要"的标准,通常是基于画面相似度、时间距离、合并频率这些通用指标,完全不知道"异常"这个概念。结果就是,一段三秒钟的打架画面,可能因为它和前后正常画面在视觉上没那么突兀,被悄悄合并进了背景事件里,等真正需要回溯的时候,这段关键证据已经被稀释得面目全非了。

这就好比你把一段重要的会议录音和一堆日常闲聊录音放在同一个压缩算法里处理,压缩算法只关心"哪些片段听起来差不多可以合并省空间",它不知道哪段录音里藏着后来引发官司的关键证词。如果不做特殊保护,这段证词大概率会在若干轮压缩后变得模糊不清,甚至彻底消失在背景噪音里。

ReactVAU为此设计了异常感知持久记忆(AAPM,Anomaly-Aware Persistent Memory),核心是三层保护机制。

第一层叫异常优先分数(Anomaly Priority Score),给原本的记忆合并惩罚公式加了一项指数级的保护权重,分数越高的节点对(也就是越可能包含异常的画面片段)越不容易被合并压缩。第二层是异常池(Anomaly Pool),专门开辟一块独立空间存放高置信度的可疑帧,这块空间在正常的记忆配额之外,不会被日常的背景画面挤占,容量是8帧,每帧保留128个特征token(token是模型处理信息的最小单元,可以理解为模型"看"到的信息颗粒)。第三层是动态密集采样,平时用每秒1帧的稀疏频率更新记忆,一旦快速模块拉响警报,立刻切换到逐帧的密集编码模式,把可疑事件的每一个微小动态都记录下来。

这套机制生效之后的数据变化很直观。在消融实验里,从"快慢解耦但两个模块都微调"的87.17%的UCF-Crime AUC,加上AAPM之后提升到88.44%;XD-Violence的AP从86.90%提升到88.50%,AUC从94.16%提升到95.25%。这些提升幅度看着不算爆炸性,但考虑到这是在已经比较成熟的架构上做的增量优化,每一个百分点都对应着更少的证据丢失和更准确的最终判断。

**慢速模块:证据链齐全之后再开口**

当快速模块的分数超过触发阈值(论文里叫τtrigger),沉睡的7B参数重型模型才会被唤醒。它拿到的不是一段孤立的可疑画面,而是一整套结构化拼接起来的记忆序列,包括长期压缩记忆、短期精细记忆、异常池里的高清证据,以及当前时刻的密集感知信息。

重型模块会先输出一个二次验证分数(Sreason),这个分数和快速模块的初始分数(Sdet)会做加权融合,公式是最终分数等于0.4倍的快速分数加上0.6倍的推理分数。为什么不直接用重型模块的判断替代快速模块的判断?论文的实验给出了答案:直接替换(Replace策略)的AUC只有87.28%,比加权融合的88.44%低了超过一个百分点。原因是重型模块看的是长时间的完整历史,它的语义推理倾向于"平滑"掉一些瞬时的剧烈变化,而快速模块虽然目光短浅,但对突发的视觉扰动极其敏感。两者各有偏科,融合起来才互补。

只有当融合后的分数超过确认阈值τconfirm,系统才会真正判定异常成立,并生成详细的文字描述。这个描述不是凭空编的,而是严格基于经过AAPM保护的记忆序列,通过标准的自回归语言生成(模型逐词预测下一个词,最终拼出完整句子的生成方式)来完成。

**实验结果说了什么**

在三个基准数据集上,ReactVAU的表现值得细看。

UCF-Crime数据集(包含13类异常事件的1900段监控视频)上,ReactVAU拿到88.44%的AUC,超过了同为在线方法的MoniTor(82.57%)和StreamForest微调版(85.26%),并且逼近了能看到未来帧的离线微调模型Holmes-VAD(89.51%)。

XD-Violence数据集(专注暴力事件,4754段视频)上,ReactVAU拿到88.50%的AP和95.25%的AUC,是所有对比方法里的最高分,包括离线方法在内。

HIVAU-70K这个专门评测语义解释能力的基准上,情况更有意思。这个数据集分三个粒度:片段级(Clip)、事件级(Event)、视频级(Video)。ReactVAU在事件级和视频级的CIDEr分数(一种衡量生成文本是否抓住了关键信息的指标,会给稀有但重要的词汇更高权重)上都拿到了最高分,事件级2.032,视频级2.016。但在片段级,离线方法VADER反而更强(1.040对ReactVAU的0.920)。这个差距背后的原因很实在:VADER是离线方法,它能提前看到整段视频,把有限的处理资源集中到异常密集的区域;而ReactVAU是每秒更新一次记忆的因果式处理,短片段里积累的证据自然就少一些。随着事件和视频层级的上下文拉长,AAPM保护下的记忆优势才逐渐显现出来。

**效率和准确率的取舍**

论文还做了一个阈值权衡分析。触发阈值τtrigger设得越低,快速模块越容易触发慢速验证,准确率会提高但延迟也会上升;阈值设得越高,延迟降低但可能漏掉一些不那么明显的异常。论文测试了从严格(τ=0.55)到宽松(τ=0.16,对应98%的召回率)多个档位,最终选定了一个折中点,在延迟和AUC之间找到了帕累托最优(意思是在不牺牲一方的前提下无法进一步改善另一方的状态)。

这个设计思路其实很贴近现实生活里的取舍。你去医院验血,如果把异常指标的判断阈值设得极低,几乎所有轻微波动都会被标记为"需要复查",医生会被淹没在大量假阳性里;如果阈值设得太高,真正的问题可能被漏掉。ReactVAU把这个权衡做成了一个可调节的旋钮,让部署方可以根据自己的硬件条件和风险承受度去调整,这比固定一个阈值要灵活得多。

**写在后面**

读完这篇论文,有个细节让我停下来想了挺久:论文特意区分了UCF-Crime测试集上43%的异常占比和现实场景里5%到10%的真实异常率,还专门做了一张理论推算表格。这个动作看起来是个小心思,但其实暴露了一个容易被忽略的坑,学术benchmark往往因为需要平衡正负样本而刻意提高了异常事件的密度,如果直接拿benchmark上的效率数字去套现实部署,很可能会严重低估节省下来的算力。这提醒我们,看任何"效率提升X%"的论文结论时,都得先确认这个X%是在什么样的数据分布下测出来的。

另一个让我觉得有意思的地方是分数融合那个实验。团队试了替换、自适应加权、几种不同比例的固定加权,最后发现最简单的固定权重0.4:0.6反而效果最好,比看起来更"聪明"的自适应策略(AUC 88.08%)还高了0.36个百分点。这在工程实践里其实很常见,复杂的自适应机制不一定总能打过精心调过的简单方案,尤其是在训练数据有限、场景相对稳定的情况下。这或许是给所有做多模型融合的研究者的一个提醒:先把简单方案的上限摸清楚,再决定要不要上复杂度。

论文里还留了一个没细说的问题:如果一段视频里连续发生多次异常,快速模块反复触发慢速模块的情况下,系统的整体延迟和准确率会怎么变化?现实里的突发事件往往不是孤立的,一场斗殴可能牵扯出后续的人群骚动,这种连锁反应场景下,ReactVAU的"事件驱动"机制会不会因为频繁唤醒重型模块而失去效率优势?这个问题论文没有展开,倒是值得后续研究者接着追问下去。

Q&A

Q1:ReactVAU是什么?

A:ReactVAU是国立清华大学和英伟达台北研究院联合提出的一个流式视频异常理解框架,通过快慢两个模块的解耦设计,让AI在不依赖未来帧的前提下实时检测监控视频中的异常事件并生成文字解释。

Q2:ReactVAU相比传统方法能节省多少算力?

A:在UCF-Crime测试集上,ReactVAU把重型大模型的调用次数降低了54%,平均延迟从216.1毫秒降到98.3毫秒。在更贴近真实场景的5%异常率推算下,调用次数最多能降低95%,延迟压到31毫秒左右。

Q3:空间网格折叠(SGF)是怎么工作的?

A:SGF把连续四帧画面拼成一张2×2的网格图片,让轻量视觉语言模型通过分析这张静态拼图来判断有没有异常,从而把耗时的时序建模问题转化成模型更擅长的空间推理问题,降低了持续在线检测的计算成本。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-