当前位置:网站首页>论文阅读 (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:00 【因吉】
文章目录
0 引入
0.1 题目
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). i∈Bamaxfθ(ai)>i∈Bnmaxfθ(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,i∈Bamaxfθ(ai)−i∈Bnmaxfθ(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,1−i∈Bamaxfθ(ai)+i∈Bnmaxfθ(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=1T−K,si=K1k=0∑K1fθ(vi+k),(4)其中 s i s_i si表示从第 i i i个片段开始的异常得分平均值。然后,具有最大异常得分的序列将被选择,即 max s i ∈ S s i \max_{s_i\in S}s_i maxsi∈Ssi。
图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,i∈Samaxsa,i>sn,i∈Snmaxsn,i,sa,i=K1k=0∑K−1fθ(ai+k),sn,i=K1k=0∑K−1fθ(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,1−sa,i∈Samaxsa,i+sn,i∈Snmaxsn,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 F∈T×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 F∈T×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=σ(Wc⋅Ec[0]),Ec=CTE×2(classtoken∣∣F),(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)=σ(Wr⋅Er[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,1−sa,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。
边栏推荐
- Ctfshow PHP features
- [mae]masked autoencoders mask self encoder
- 一文入门智能开关的3种功能形态
- Date selection of hotel check-in time and check-out time
- Answer 03: why can Smith circle "allow left string and right parallel"?
- Go unit test
- MySQL installation, configuration and uninstall
- 一文读懂麦克风典型应用电路
- Importance of ERP management system
- Hapoxy-集群服务搭建
猜你喜欢
随机推荐
MySQL - reasons for using repeatable read
Thymeleaf - learning notes
Goframe framework: fast implementation of service end flow limiting Middleware
MySQL installation, configuration and uninstall
Performance test bottleneck tuning in 10 minutes! If you want to enter a large factory, you must know
Kotlin invoke convention makes kotlin code more concise
How to use JSON data format
Detailed explanation of ssl/tls principle and packet capturing
[JS reverse hundred examples] pedata encryption information and zlib Application of gunzipsync()
MySQL transaction submission process
Deploy LNMP environment and install Typecho blog
The mail function is normal locally, and the ECS reports an error
A set of code to launch seven golang web frameworks at the same time
How to create a three elimination game
Year end: the "time value" and business methodology of live broadcast E-commerce
Get first and last days by year
JS custom error
Kotlin practical skills you should know
Digital intelligent supply chain collaboration solution for new energy industry
ACM players take you to play with the array!








![QT layout manager [qvboxlayout, qhboxlayout, qgridlayout]](/img/62/a0425a325f123ba91a7a69cf854d2c.png)