当前位置:网站首页>论文阅读 (52):Self-Training Multi-Sequence Learning with Transformer for Weakly Supervised Video Anomaly

论文阅读 (52):Self-Training Multi-Sequence Learning with Transformer for Weakly Supervised Video Anomaly

2022-06-23 16:49:44因吉

0 引入

0.1 题目

  2022AAAI:变换自学习多序列学习与弱监督视频异常检测 (Self-training multi-sequence learning with transformer for weakly supervised video anomaly detection)

0.2 背景

  使用多实例学习 (Multi-instance learning, MIL) 的弱监督视频异常检测 (Viswo anomaly detection, VAD) 通常基于异常片段的异常分数高于正常片段的异常分数这一事实。在模型的训练伊始,由于模型的精度不足很容易选择出错误的异常片段

0.3 方法

  1)为了减少选择错误的概率,提出了一种多序列学习 (Multi-sequence learning, MSL) 方法和一种基于的MSL排序损失,它使用由多个片段组成的序列作为优化单元;
  2)设计了一个基于变换的MSL网络来同时学习视频级别异常概率和片段级别异常得分;
  3)在推理阶段,使用视频异常概率来抑制片段级别异常得分的波动;
  4)由于VAD需要预测片段级别异常分数,通过逐渐减少所选序列的长度,提出了一种自训练策略来逐步细化异常分数。

0.4 Bib

@inproceedings{
    Li:2022:self,
author		=	{
    Shuo Li and Fang Liu and Li Cheng Jiao},
title		=	{
    Self-training multi-sequence learning with Transformer for weakly supervised video anomaly detection},
journal		=	{
    {
    AAAI} Conference on Artificial Intelligence},
year		=	{
    2022}
}

1 算法

1.1 符号与问题声明

  在弱监督VAD领域,视频的标注信息仅于视频级别给出。即当视频包含异常信息时标记为1 (正),反之为0 (负)。给定一个包含 T T T个片段的视频 V = { v i } i = 1 T V=\{v_i\}_{i=1}^T V={ vi}i=1T,其视频级别标签为 Y ∈ { 0 , 1 } Y\in\{0,1\} Y{ 0,1}。基于MIL的方法将 V V V看作是一个包, v i v_i vi则看作是一个实例。因此,一个正视频看作是一个正包 B a = ( a 1 , a 2 , … , a T ) \mathcal{B}_a=(a_1,a_2,\dots,a_T) Ba=(a1,a2,,aT),一个负视频看作是一个负包 B n = ( n 1 , n 2 , … , n T ) \mathcal{B}_n=(n_1,n_2,\dots,n_T) Bn=(n1,n2,,nT)
  VAD的目标是习得一个将片段映射到 [ 0 , 1 ] [0, 1] [0,1]区间的函数 f θ f_\theta fθ。基于MIL的VAD假设异常片段的异常得分高于正常片段的异常得分。Sultani等人将VAD看作是一个异常得分问题,并提出了一个排序目标函数和MIL排序损失:
max ⁡ i ∈ B a f θ ( a i ) > max ⁡ i ∈ B n f θ ( n i ) . (1) \tag{1} \max_{i\in\mathcal{B}_a}f_\theta(a_i)>\max_{i\in\mathcal{B}_n}f_\theta(n_i). iBamaxfθ(ai)>iBnmaxfθ(ni).(1) L ( B a , B n ) = max ⁡ ( 0 , max ⁡ i ∈ B a f θ ( a i ) − max ⁡ i ∈ B n f θ ( n i ) ) . (2) \tag{2} \mathcal{L}(\mathcal{B}_a,\mathcal{B}_n)=\max(0,\max_{i\in\mathcal{B}_a}f_\theta(a_i)-\max_{i\in\mathcal{B}_n}f_\theta(n_i)). L(Ba,Bn)=max(0,iBamaxfθ(ai)iBnmaxfθ(ni)).(2)为了使得正实例与负实例之间的差距尽可能大,Sultani提供了一个合页损失函数
L ( B a , B n ) = max ⁡ ( 0 , 1 − max ⁡ i ∈ B a f θ ( a i ) + max ⁡ i ∈ B n f θ ( n i ) ) . (3) \tag{3} \mathcal{L}(\mathcal{B}_a,\mathcal{B}_n)=\max(0,1-\max_{i\in\mathcal{B}_a}f_\theta(a_i)+\max_{i\in\mathcal{B}_n}f_\theta(n_i)). L(Ba,Bn)=max(0,1iBamaxfθ(ai)+iBnmaxfθ(ni)).(3)  在优化的初始, f θ f_\theta fθ需要一定的异常预测能力,否则它将选择一个正常实例作为异常实例。这种错误情况下,误差将会被延申到整个训练过程。此外,异常部分通常是多个连续的片段,但基于MIL的方法不考虑这个先验。

1.2 MSL

  为了缓解以上MIL方法的不足,我们提出了一个新颖的MSL方法。如图2所示,给定包含 T T T个片段的视频 V = { v i } i = 1 T V=\{v_i\}_{i=1}^T V={ vi}i=1T,首先通过映射函数 f θ f_\theta fθ预测得到异常得分曲线。假设第5个片段有最大异常得分 f θ ( v 5 ) f_\theta(v_5) fθ(v5)。在基于MIL的方法中,第5个片段将被选择用于优化网络。在所提出的MSL中,我们提供了一个序列选择方法,它将选择包含 K K K个序列的连续片段。具体地,我们计算 K K K个连续片段的所有可能序列的异常分数的平均值:
S = { s i } i = 1 T − K , s i = 1 K ∑ k = 0 K 1 f θ ( v i + k ) , (4) \tag{4} S=\{s_i\}_{i=1}^{T-K},\qquad s_i=\frac{1}{K}\sum_{k=0}^{K_1}f_\theta(v_{i+k}), S={ si}i=1TK,si=K1k=0K1fθ(vi+k),(4)其中 s i s_i si表示从第 i i i个片段开始的异常得分平均值。然后,具有最大异常得分的序列将被选择,即 max ⁡ s i ∈ S s i \max_{s_i\in S}s_i maxsiSsi

  图2:MIL与所提MSL方法实例选择的比较:a)包含 T T T个片段视频的异常得分曲线,假设第5个片段有最大异常得分 f θ ( v 5 ) f_\theta(v_5) fθ(v5);b)MIL方法将选择第5个片段;以及c)MSL将选择从第 i i i个片段开始的连续 K K K个片段序列。

  基于以上序列选择方法,可以得到MSL排序优化函数:
max ⁡ s a , i ∈ S a s a , i > max ⁡ s n , i ∈ S n s n , i , s a , i = 1 K ∑ k = 0 K − 1 f θ ( a i + k ) , s n , i = 1 K ∑ k = 0 K − 1 f θ ( n i + k ) , (5) \tag{5} \max_{s_{a,i}\in S_a}s_{a,i}>\max_{s_{n,i}\in S_n}s_{n,i},\\ s_{a,i}=\frac{1}{K}\sum_{k=0}^{K-1}f_\theta(a_{i+k}),\qquad s_{n,i}=\frac{1}{K}\sum_{k=0}^{K-1}f_\theta(n_{i+k}), sa,iSamaxsa,i>sn,iSnmaxsn,i,sa,i=K1k=0K1fθ(ai+k),sn,i=K1k=0K1fθ(ni+k),(5)其中 s a , i s_{a,i} sa,i s n , i s_{n,i} sn,i分别表示异常视频和正常视频的异常得分。为了保证正负实例之间较大的间距,与公式3类似,我们的MSL合页排序损失被定义为:
L ( B a , B n ) = max ⁡ ( 0 , 1 − max ⁡ s a , i ∈ S a s a , i + max ⁡ s n , i ∈ S n s n , i ) ) . (6) \tag{6} \mathcal{L}(\mathcal{B}_a,\mathcal{B}_n)=\max(0,1-\max_{s_{a,i}\in S_a}s_{a,i}+\max_{s_{n,i}\in S_n}s_{n,i})). L(Ba,Bn)=max(0,1sa,iSamaxsa,i+sn,iSnmaxsn,i)).(6)MIL可以看作是MSL的一种特殊情况,当 K = 1 K=1 K=1时两者等价;当 K = T K=T K=T时,MSL任务异常视频中的每一个片段都是异常的。

1.3 基于变换的MSL网络

1.3.1 卷积变换编码器

  变换器 (Transformer) 使用序列数据作为输入从而对长期关联建模,已在多个领域成果显著。视频的片段之间的表示非常重要。然而,变换器并不擅长学习相邻片段的局部表示。受此启发,如图1(c )所示,我们将原始变换器中的线性投影替换为DW Conv1D投影。 新的Transformer被命名为卷积变换编码器 (Convolutional transformer encoder, CTE)。

  图1:总体框架。a)包含MSL变换器网络 (MSLNet) 与骨架的MSL架构。通过估计提取到特征 F ∈ T × D F\in T\times D FT×D并输入到MSLNet获取异常得分,其中 T T T D D D分别表示片段的数量和单个片段的维度。MSLNet包含一个视频分类器,其获取实例异常概率 p p p,以及一个片段回归,其获取每个片段的异常得分 f θ ( v i ) f_\theta(v_i) fθ(vi)。BCE表示二元交叉熵损失 (Binary cross entropy loss);b)自训练MSL管道,其中 K K K通过自训练机制从 T T T到1逐渐变化。基于序列选择方法,MSL的优化过程分为两个步骤,即选择序列的伪标签预测及使用;c)设计的卷积变换编码器 (CTE)。

1.3.2 MSL变换网络

  如图1(a)所示,所设计架构包含一个骨架和MSLNet。任意的行为识别方法都可以作为骨架,如C3D、I3D,以及VideoSwin。本文的骨架使用行为识别数据集上的预训练权重,每个视频将获取一个特征 F ∈ T × D F\in T\times D FT×D
  MSLNet包含一个视频分类器和一个片段回归器。视频分类器包含两个CTE层和一个用于预测视频是否包含异常的线性头:
p = σ ( W c ⋅ E c [ 0 ] ) , E c = C T E × 2 ( c l a s s t o k e n ∣ ∣ F ) , (7) \tag{7} p=\sigma(\mathcal{W}^c\cdot E^c[0]),\qquad E^c=CTE_{\times2}(class token||F), p=σ(WcEc[0]),Ec=CTE×2(classtokenF),(7)其中 W c \mathcal{W}^c Wc是线性头的参数、 p p p是视频异常预测概率,以及class token是用于预测汇聚于CTE上特征的概率。由于VAD是一个二分类问题,因此sigmoid函数 σ \sigma σ被选用。
  片段回归器用于预测每一个片段的异常得分:
f θ ( v i ) = σ ( W r ⋅ E r [ i ] ) , E r = C T E × 2 ( E c ) , (8) \tag{8} f_\theta(v_i)=\sigma(\mathcal{W}^r\cdot E^r[i]),\qquad E^r=CTE_{\times2}(E^c), fθ(vi)=σ(WrEr[i]),Er=CTE×2(Ec),(8)其中 W r \mathcal{W}^r Wr是线性头的参数、 E r [ i ] E^r[i] Er[i]是第 i i i个片段的特征。由于片段异常得分预测属于回归问题,因此同样选用 σ \sigma σ
  视频分类和片段回归可以看作是一个多任务问题,因此总的优化目标为:
L = L ( B a , B n ) + B C E ( p , Y ) . (9) \tag{9} \mathcal{L}=\mathcal{L}(\mathcal{B}_a,\mathcal{B}_n)+BCE(p,Y). L=L(Ba,Bn)+BCE(p,Y).(9)  为了降低片段回归器的异常得分预测波动,我们提出了一个干预阶段的异常得分纠正机制
f ^ θ ( v i ) = f θ ( v i ) × p . (10) \tag{10} \hat{f}_\theta(v_i)=f_\theta(v_i)\times p. f^θ(vi)=fθ(vi)×p.(10)

1.4 自训练MSL

  如图1(b)所示,自训练机制用于训练过程的精细化。MSLNet的训练过程包含两个阶段,这之前包含初始化过程:首先获取训练视频的伪标签 Y ^ \hat{\mathcal{Y}} Y^,片段级别的伪标签则通过视频的真实标签 Y \mathcal{Y} Y获取,即片段标签与视频真实标签等同。
  在训练的初试阶段, f θ f_\theta fθ的异常得分获取能力是不足的, f θ f_\theta fθ将很可能选择到错误的序列。因此,MSL的两个阶段为:
  1)阶段1—临时阶段:通过将公式4中的预测异常得分 f θ ( v i ) f_\theta(v_i) fθ(vi)使用片段的伪标签 y ^ i \hat{y}_i y^i替换,来选择具有最大伪标签平均值的序列。基于该序列计算 s a , i s_{a,i} sa,i s n , i s_{n,i} sn,i,并通过合页排序损失优化MSLNet:
L ( B a , B n ) = max ⁡ ( 0 , 1 − s a , i + s n , i ) . (11) \tag{11} \mathcal{L}(\mathcal{B}_a,\mathcal{B}_n)=\max(0,1-s_{a,i}+s_{n,i}). L(Ba,Bn)=max(0,1sa,i+sn,i).(11) E 1 E_1 E1轮训练后,MSLNet将具备初步的异常得分预测能力。
  2)阶段2:这一阶段使用公式5和6来优化,在 E 2 E_2 E2轮训练,可以获取新的片段级伪标签 Y ^ \hat{\mathcal{Y}} Y^。通过将序列长度减半并重复以上两个步骤,预测得分的预测能力将逐步精进。自训练MSL的伪代码如算法1。

2 实验

2.1 数据集和评价指标

  1)ShanghaiTech是一个包含437个校园监控130个校园事件13个场景的中等规模视频数据集。然而,其所有的训练数据是正常的。在弱监督设置下,使用238个训练视频和199个测试视频的划分。
  2)UCF-Crime是一个大规模数据集,包含1900个未经修剪的真实街道和室内监控视频,包含13类异常事件,总持续时间为128小时。训练集包含1610个带有视频级标签的视频,测试集包含290个带有帧级标签的视频。
  3)XD-Violence是一个大规模数据集,包含4754个未修剪的视频,总时长为217小时,并从多个来源收集,例如电影、体育、监控和闭路电视。 训练集包含3954个带有视频级标签的视频,测试集包含800个带有帧级标签的视频。
  前两个数据集的评价指标使用AUC和ROC,后一个数据集使用平均精度 (AP)。

2.2 实现细节

  1)从Sports-1M上的预训练C3D的fc6层中提取4096D特征;
  2)从预训练I3D的混合5c层中提取1024D特征;
  3)在Kinetics-400以及来自Kinetics-400上预训练VideoSwin的Stage4层提取1024D特征;
  4) T = 32 T=32 T=32 K = { 32 , 16 , 8 , 4 , 1 } K=\{32,16,8,4,1\} K={ 32,16,8,4,1} D = 16 D=16 D=16
  5)优化器使用SGD、学习率设置为0.001、权重衰减设置为0.0005、批次大小设置为64;
  6) E 1 = 100 E_1=100 E1=100 E 2 = 400 E_2=400 E2=400
  7)每个mini-batch由32个随机选择的正常和异常视频组成。在异常视频中,随机选择前 10%的片段之一作为异常片段;
  8)在CTE中,headers的数量设置为12,并使用内核大小为3的DW Conv1D。

原网站

版权声明
本文为[因吉]所创,转载请带上原文链接,感谢
https://inkiyinji.blog.csdn.net/article/details/125040266

随机推荐