A Coarse-to-Fine Pseudo-Labeling (C2FPL) Framework for Unsupervised Video Anomaly Detection 论文解读

题目:用于无监督视频异常检测的粗到细伪标记 (C2FPL) 框架

链接:A Coarse-To-Fine Pseudo-Labeling (C2FPL) Framework for Unsupervised Video Anomaly Detection (thecvf.com)

引言

文章提出了一种片段级伪标签的生成框架,再用这些伪标签进行监督学习以训练出视频异常检测模型。

作者认为为视频打上标签仍然很麻烦,哪怕是视频级的,标注人员仍然需要看完一整个视频,以确保其中没有异常。
于是就提出完全无监督的方案来去掉人工标注这一步骤。

文章最大的贡献即提出了 C2FPL 框架,并基于此框架提出了无监督异常检测系统,将伪标签的生成过程由粗到细(Coarse-to-Fine),先是生成视频级的标签,后细化为片段级。作者虽然说也实现了帧级标签,但实际上就是片段级的标签全部应用到所有帧上

方法论

直接来看文献里的流程图吧,如下图所示。

模型的训练流程

左边粉色框是特征分割成片段,再提取特征的过程,右边三个蓝色框就是C2FPL的三个主要阶段了。还是按序号从1至6依次解读。


将每个视频 V_{i} 分割成 m_{i} 个不重叠的片段 S_{ij},每个片段 16 帧。不同的视频将拥有不同的片段数量。


使用预训练的 I3D 特征提取器提取特征,每个片段得到一个 2048 维特征向量 \mathbf{f} _{ij} 。并对特征应用 10-crop 增强。


使用高斯混合模型算法为视频聚类。
避免由于特征维度高但样本量小带来的维度灾难,使用 \mathbf{x} _{i} = [µ_{i} , σ_{i}] (视频片段特征幅度的均值标准差) 来表示每个视频 V_{i},计算公式如下:

之后用 \mathbf{x} _{i} 将视频聚类为正常簇 \mathcal{C}_{0}^{t} 和异常簇 \mathcal{C}_{1}^{t} 两类。


使用假设检验检测异常片段。零假设:给定的视频片段是正常的。特征分布建模为高斯分布,估计其 P 值,如果小于显著水平 α,则拒绝零假设,该片段是异常的。

先仅使用正常视频片段。 \mathbf{z} _{ij}=\left \| \mathbf{f}_{ij} \right \| _{2} 为片段的低维表示,遵循高斯分布\mathcal{N} (\mathbf{\Gamma } ,\mathbf{\Sigma } ),Γ, Σ 即所有正常片段 \mathbf{z} _{ij} 的均值和方差,拿到 Γ, Σ 两个值。计算公式如下:

然后使用异常视频。对所有片段的 \mathbf{z} _{ij} 计算其 P 值 p _{ij} ,如果小于 α ,则该片段可能会被标记为异常。

在这里如果直接低于α就标记为异常,则标记会出现零碎不连续的情况,如上图所示。这个图是伪标记方法应用在异常视频arson011上的情况。蓝色折线展示了视频中所有片段的片段级p值,其中p值越低,该片段越不可能正常。红色折线是实际的片段标签,可以观察到估计的 p 值与实际的异常标签之间存在高度一致性。


为解决④最后出现的问题,作者采用了一种平滑操作,一次选择连续的 \omega _{i}=\left \lceil\beta m_{i} \right \rceil (0 < β < 1,应用时取了0.2,⌈·⌉表示向上取整) 个片段做为一个窗口,逐片段滑动,计算平均 p 值,选择 p 最低的窗口,这个窗口里的所有片段都打上伪标签 1,其余片段打上伪标签 0。p 值的计算公式如下:

其实这里没怎么看明白为何只要 p 最低的窗口, 如果一个视频相距较远的两个时段里都出现异常,只取 p 值最低的窗口是否会漏掉一些异常片段?


以监督学习的方式训练异常检测器,它包含两个全连接(FC)隐藏层和一个输出层,输出层映射到一个二元类别上。在每个FC层之后都应用了一个dropout层和ReLU激活函数。此外,遵循Zaheer等人的方法,作者添加了两个自注意层。每个自注意层后都接有一个softmax激活函数,其中每一层的维度都与主干网络中相应的全连接层相同。最终的异常分数预测由输出sigmoid函数产生,训练时使用的损失函数为二元交叉熵。

最后贴上该方法的算法伪代码,如下图所示。

算法伪代码

实际效果

和目前的无监督方法比较超过的比较多,但是和弱监督方法比较在性能上并没有太大的亮点。

在XD-Violence数据集上的实战效果

直接贴上表注释的翻译吧:

表2. 在XD-Violence数据集上的帧级AUC性能比较。FNS 表示该方法是否使用固定数量的片段m(当FNS为真时,m=32),而“-”表示此信息不可用。在每种监督模式下的 AUC Top2 按顺序以蓝色和红色显示。†表示我们使用I3D特征重新计算了[24]中方法的AUC。

从定性结果上可以观察到,在许多情况下,预测的异常分数通常与实际的异常情况有良好的相关性,证明该方法尽管在没有任何监督的情况下进行训练,但仍具有良好的异常检测能力,如下图所示,异常分数的峰值与标签为异常的地方是吻合的。

D图可视化了一个失败案例,即shooting008视频(UCF-Crime)。检测器在实际枪击事件发生后的几帧预测为了异常。仔细检查这段视频发现,一个持枪的人在枪击事件后进入了现场,检测器将其标记为异常,但实际的帧标签是正常,这种差异会影响到帧级的AUC。

暂无评论

发送评论 编辑评论


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