Real-Time Weakly Supervised Video Anomaly Detection 论文解读

名称:实时弱监督视频异常检测

链接:openaccess.thecvf.com/content/WACV2024/papers/Karim_Real-Time_Weakly_Supervised_Video_Anomaly_Detection_WACV_2024_paper.pdf
关于该论文的翻译,可参考我的OneNote笔记:点击下载

一篇关于视频异常检测的论文,简要整理了一下。文章提出了第一个实时端到端训练的弱监督视频异常检测(wVAD)算法,称为 REWARD (Real-Time End-to-End Weakly Supervised Video Anomaly Relevance Detector)

所谓的实时,即相比起需要把一整个视频送进模型里才能检测出异常的方法来说,作者提出的模型具有很短的决策周期(6.4秒),能在短时间内输出当前是否存在异常片段,以达到实时检测的效果。

所谓端到端,输入直接就是原始数据,输出直接就是最终结果,当下流行的wVAD流程,需要先提取特征,这个特征集才是模型的输入,再进行特征编码,然后再以二分类问题的解法得到异常视频片段预测定位,而作者所提出的方法简化了流行的wVAD方法,直接输入带有异常片段的视频,并且性能更优,如下图所示。

作者的方法在 wVAD 数据集(如 UCF-Crime 和 XD-Violence )上的性能优于决策周期为273秒的最先进方法。

方法论

作者的总体训练框架如下图所示。

简单概述有三步:

1. 提取的视频特征,训练 k近邻 网络,得到 异常片段索引;
2. 异常片段索引与视频特征,训练 多层感知机,得到 高质量异常片段索引;
3. 带有高质量异常片段索引的异常视频,训练 大型视频模型,如Transformer。

作者指出,端到端训练可以通过消除特征细化(feature refinement)的需求来简化整个机器学习流程。此外,它可以带来更好的实时性能,模型可以直接从原始输入数据中学习任务特定的表示,而无需进行特征聚合(feature aggregation) 。

由于异常检测训练时,异常视频的标签通常都不支持有监督学习,所以度量学习损失是一个不错的损失函数。度量学习损失的目标是最小化同类样本之间的距离,并最大化不同类样本之间的距离,从而提高特征的质量。
在之前的论文解读中,是遇到过度量学习损失的,比如这篇提到的基于hinge的排名损失(点击跳转)

但是度量学习损失不能用在作者提到的端到端训练模型中。以MIL排序损失为例,它需要同时训练相同数量的异常视频和正常视频,以最大化两组样本之间的分离度,这会导致两个问题:在单个GPU中同时处理大量视频片段需要大量的内存,而且特征提取器的参数数量比特征编码器多几个数量级,如下图所示。

度量学习损失的内存瓶颈

于是作者的替代方案是:为异常视频生成片段级的伪标签,并用更节省内存的损失函数(应用中使用了二元交叉熵损失,BCE)替换了度量学习损失函数。

为生成片段级伪标签,作者提出了REWARD网络,如下图所示。

每一个环节的说明如下:

① 各正常视频和异常视频划分为 T 个片段,并使用 Uniformer-32 提取特征,以获得正常视频和异常视频的特征表示,分别为:(其中 P 是特征向量的维度)

② 将异常视频特征集 Fa 中的每个片段的特征与正常视频特征集 Fn 中的所有特征向量进行比较,计算它们之间的欧几里得距离,生成一个 T×N 的距离矩阵。

③ 对每一行中的 N 个距离按升序进行排序。

④ 对每一行应用平均池化层,只取前k个元素的平均值(即 k近邻,kNN,应用时取了 k = 20)。
每个 kNN 距离提供了异常视频中每个片段与正常片段的相似度估计距离值越小,表示与正常特征的相似度越高,反之亦然。

⑤ 减去平均值,将 kNN 距离变为零均值

循环应用累积和,并使用ReLU激活函数计算每个片段的异常分数:

异常视频中片段的异常分数 Dt ,如果与正常片段相似的会接近 0,而与正常片段不太相似的会取正值,因此具有较大 Dt 值的片段将作为较优候选

⑦ 将视频中每个片段的异常分数 Dt 除以视频中的最大值进行归一化

⑧ 对第 j 个视频有:选择归一化的值大于阈值 λ (0.5, 1) 的片段收集起来,作为初始异常片段索引集合:(应用时取的 λ = 0.8)

将所有异常视频中的初始集合组合起来,形成集合 I1,集合里面的片段异常分数都很高,用于多层感知机的训练。

⑨ 多层感知机的训练: I1 中异常片段标记为 1,正常片段标记为 0,损失函数为BCE。

⑩ 所有异常视频中的片段都会通过训练好的MLP来估计它们异常的概率 pt。

⑾ 同⑤和⑥,重复平滑操作,将 pt 减去均值,使其变成零均值,循环累积和之后得到每个片段的异常概率 Rt。

⑿ 同⑦, Rt 除以最大值,归一化,使其在 0 到 1 上分布 (符号为 Rt,R上面一个大波浪)。

⒀ 方法同⑧,不同之处在于其阈值要低一些,这里取的视频中片段异常概率 Rt 归一化后的平均值:

所有视频中片段的归一化异常概率高于均值的都收集起来,最终得到经过严选的异常片段索引 I2,至此可将 wVAD 任务转化为二分类问题。

⒁ 有了卓越的训练样本,用BCE损失以端到端的方式训练特征提取器,分类层使用带 Sigmoid 激活函数的单个神经元分类器计算异常相关性概率。实战时和实际标记高度吻合,如下图所示。

应用

作者使用的数据集:UCF-Crime 和 XD-Violence,这两个数据集的介绍就不在此赘述,贴个链接吧:异常检测数据集收集与介绍分析_Johngo学长 (johngo689.com)
能客观评估模型表现,作者只使用了视频信息,而丢掉了其中的音频信息。

评价指标:模型在 UCF-Crime 数据集上的性能使用ROC曲线下的面积(AUC)指标来评估,以及在 XD-Violence 数据集上使用平均精度(AP),即P-R曲线下的面积来评估。
文中还以每秒帧数(fps)的形式展示了算法的计算效率结果,以评估其实时推理能力。

结果:

在 6.4s 附近的决策周期内没有能打的,实时推理能力很强。(但还是没上90%)

作者的方法基于 Uniformer-32 在 Nvidia RTX-2070 GPU 上的推理计算速率为63.3 fps。以63.3 fps的速度能够在0.5秒内处理32帧,从而导致总共6.9秒的决策延迟。在 Intel Core i7 8700K CPU 上,对于 UCF-Crime 数据集,使用 Uniformer-32 进行训练期间的 kNN 计算大约需要 5 小时。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇