论文笔记 AssistPDA:An Online Video Surveillance Assistant for Video Anomaly Prediction, Detection, and Analysis
本文最后更新于:2025年4月7日 下午
论文笔记 AssistPDA: An Online Video Surveillance Assistant for Video Anomaly Prediction, Detection, and Analysis
论文链接:https://arxiv.org/abs/2503.21904v1
代码链接:尚未开源(预计开源)
西电+NUS+NWPU的一篇ArXiv论文,25年3月底挂上来的,这个时间点看上去可能是ICCV的投稿,或者是提早放出来的等CVPR的文章。文章提出了一种Online Video Surveillance Assistant的范式,我认为是第一篇真正将MLLM与视频异常检测(VAD)有机结合的文章。文中提出了Video Anomaly Prediction, Detection, and Analysis三个任务,这三个任务基本都可以看做是新任务,特别是Detection与传统VAD定义不同。为了进行任务,提出了VAPDA-127K数据集。
研究动机
MLLM出来后,有很多工作将其用在VAD上,比如VADor、LAVAD、HolmesVAD、HolmesVAU、HAWK、CUVA等,然而,这些文章都局限于offline的视频异常任务,局限在clip-level或video-level的QA,有的无法进行Detection,(我认为这些方法相比之下没有结合视频异常的特色,只是将LLM用异常数据调了一下。)
本文认为Online Video Surveillance Assistant要有三个能力:Video Anomaly Prediction(VAP)、Video Anomaly Detection(VAD)、Video Anomaly Analysis(VAA)。VAP指的是在异常发生之前对异常进行预测,VAD则是发生时进行预测,VAA则是对异常进行分析或回应用户提问。
NWPU之前另一篇文章(A New Comprehensive Benchmark for Semi-supervised Video Anomaly Detection and Anticipation)有一个Video Anomaly Anticipation任务,和这里的VAA缩写重名,语义又和VAP近似,需要进行区分。
为了进行这些任务,本文基于现有数据集进行改造构建了VAPDA-127K数据集。
此外,由于监控视频的流式特点,MLLM应该要具备对流式数据进行处理的能力。
方法
任务定义
VAP
VAP和Video Anomaly Anticipation不一样,之前NWPU的Anticipation任务是在一个比较小的窗口内,用传统方法去预测后面几帧会不会出现异常,有点像Semi-sup VAD的Prediction-based的方法。但是这里VAP是根据开始时间点来的,需要模型在异常开始之前说出后续可能会发生xx异常(包括异常类别、异常描述)。注意,VAP并不需要预测具体的时间,既不需要说后续x秒内发生,也不需要说异常将持续多少时间,更不需要检测异常的结束。
VAD
VAD和传统的VAD不一样,传统VAD是预测帧级别的异常分数,这里VAD是在异常发生时给出异常类别和异常解释。注意,这里的VAD并不注重定位性能。
VAA
VAA基本就是根据用户需求做QA,文章定义在异常事件发生之后(或者发生过程中),用户对模型进行提问,然后模型进行回答。
数据构建
文章构建了VAPDA-127K数据集,视频数据来源于UCF-Crime和XD-Violence的2415个视频,完全的标注信息则来自于Holmes-VAU的HIVAU-70K数据集。
- 对于VAP的数据,作者以1FPS生成生成图像,然后用Image Caption模型生成caption,然后将一个视频中异常开始之前的所有caption送入LLM来生成数据。(对于异常的可预测性,我表示疑惑,感觉很多情况下异常都不可预测?)
- 对于VAD的数据,作者根据HIVAU-70K提取异常区间,但是认为区间内并不是所有的segment-level caption都与异常有关。所以作者使用到当前segment位置的所有caption,让LLM判断当前是否为异常。(这一步感觉有点疑惑,这里的segment是什么粒度的呢?这里本质上是让LLM生成segment-level的ground truth,实际上还假设了HIVAU的GT不够精准,但是又如何保证这里生成的足够精确呢?)
- 关于VAA的数据,作者让LLM根据已有Caption生成5W (Who, What, When, Where, Why) and 2H (How, How much)的问题和回答,这个和HAWK比较相似。
具体来说,作者使用的Image Caption Model是BLIP2的5个变种(Follow LAVAD的方法),然后LLM选择的是Qwen2.5-72B-Instruct。
最后,作者让5个标注者每个检查10小时,确保数据集准确性。
模型架构
如图是AssistPDA的整体架构,和普通MLLM的架构类似,不过在Vision Encoder和LLM之间加了一个Spatio-Temporal Relation Distillation(STRD)。在推理过程中,视频流会源源不断送进来,而STRD则起到一个特征增强的作用。
STRD的架构如上所示,是一个两层的多头注意力(应该是没有FFN),为了适配online的数据会进行一个预训练的蒸馏。
原本Qwen2-VL的视觉编码器是通过一个卷积把相邻两帧卷在一起,然后多帧进行Transformer的编码,从而获取全局的信息。
预训练则是让视觉编码器只处理相邻两帧,不让它获取全局的信息,然后单独让STRD对这种全局信息进行建模,并通过蒸馏损失来监督。
在online数据进来的时候,每两帧的数据是最小单位,每有两帧数据进来,则会通过STRD获取之前的时序信息,类似Auto-regressive的架构,还可以使用KV-cache来进行加速。A6000的48G显存可以存储20分钟的上下文。
感觉这里是一种解耦空间和时序编码的方法,理论上,不添加新的模块,直接用原来的视觉编码器加上casual的mask也可以实现,不过这样会带来更大的显存开销。
在LLM的选择上,作者使用了2B的Qwen2-VL,属于大模型中比较小的一类了,适合学术界进行研究。
训练与推理
训练分成了两个阶段,第一阶段就是STRD的预训练,第二阶段是加上LLM的指令微调。这里重点介绍指令微调。指令微调的loss分成两部分,第一部分是Language Modeling,这个比较普通,第二个则follow了同一个大组在CVPR24的论文Videollm-online: Online video large language model for streaming video的思路。作者添加了一个特殊的EOS token,当模型想输出回答时,就会输出这个token,否则继续接收视觉数据。
实验
实验设计基本follow Videollm-online。使用的指标有很多,Language Modeling Perplexity(LM-PPL)就是perplexity,Time Difference(TimeDiff)衡量预测点与GT点的时间差异,Fluency则衡量一个dialogue round中正确的百分比。此外,follow CUVA这篇论文,使用了几个与文本GT比较的指标:MoverScore、BLEURT、Unieval。此外,对于VAP和VAD这两个要预测异常类别的任务,使用了weighted F1-score。此外,对于VAP任务,还提出了Average Advance Time(AAT)指标,衡量提前预测的平均时间。
这个F1和AAT具体怎么计算的没说,补充材料也没说……
由于缺乏对应论文比较,所以基本上自主构建baseline来比较,主要比较的有general的MLLM,比如Qwen2-VL、InternVL2,还有VAD MLLM,如Holmes-VAD,还有同团队之前的VideoLLM-online。但是因为这些模型不是针对online的,所以划分了5s的窗口来模拟。
SOTA比较
如上图所示是SOTA比较。
在三个任务的语言比较上,微调过的AssistPDA效果更好,这个是预料之中的(Video-LLaMA2的79.84的Unieval是一个异常点)。在异常分类上,性能还是非常高的,超出其他模型一大截。在提前预测时间上,也是平均29s的优异成绩。
但是,这些指标具体怎么计算的没说,而我觉得这个非常重要。比如AAT会考虑误警率吗,我直接在视频第一帧预测后续会发生异常,那会获得相当高的AAT。对结果来说,29s的提前预测我感觉不是很合理,车祸、纵火、偷窃这些按照常理都不是提早这么多能预测出来的,除非模型过拟合了。
消融实验
消融实验上比较公平的比较,但是怎么没有给F1和AAT指标呢?此外这个VAD中怎么计算的TimeDiff也是一头雾水呢。单看表,不看效率差距,貌似预训练STRD性能也没有提升很多,Table 3的层数也影响不大。
结论
整体来说,文章的思路比较有意思,但是贡献度和扎实程度存疑。文章进行online的视频异常任务,我认为比其他MLLM+VAD的方法更加关注了VAD的特点,是一个十分有意思的方向。然而,这个思路基本和Videollm-online一模一样,其数据集的贡献也有限,基本延续的是其他人的思路。此外,实验部分偏少,有的指标都没说具体怎么算的,感觉至少在补充材料里提一嘴。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!