Interleaving OneClass and Weakly-Supervised Models with Adaptive Thresholding for Unsupervised Video

摘要

在没有人工标注的情况下,典型的无监督视频异常检测(UVAD)方法需要训练两个相互生成伪标签的模型。在之前的工作中,这两个模型相互紧密纠缠,不知道如何在不显著修改训练框架的情况下升级它们的方法。其次,以往的工作通常采用固定阈值来获得伪标签,但用户指定的阈值不可靠,不可避免地会在训练过程中引入误差。为了缓解这两个问题,我们提出了一种新的交错框架,交替训练UVAD的一类分类(OCC)模型和弱监督(WS)模型。我们方法中的OCC或WS模型可以很容易地替换为其他OCC或WS模型,这有助于我们的方法随着两个领域的最新发展而升级。为了解决固定阈值问题,我们突破了传统的认知边界,提出了一种可以同时训练正常和异常数据的加权OCC模型。我们还提出了一种自适应机制,可以从宽松到严格的方式自动找到WS模型的最优阈值。实验表明,该方法优于以往的方法。

引言

视频异常检测(Video Anomaly Detection, VAD)是一项识别视频中异常事件的任务,异常事件可能是火灾报警、工业产品缺陷或交通事故等。大多数以前的VAD方法可以分为两类:单类分类(One-Class Classification, OCC)方法[3 - 5,11,13,17,21-23,27-31,34,35,37,39,42,44-46,52,53,58,59]和弱监督(weak - supervised, WS)方法[2,7,8,20,25,33,38,43,49,50,56,57,60]。OCC方法仅在正常数据上进行训练以建立正常分布。在检验时刻,任何偏离正态分布的数据都被视为异常[13,21,22,59]。相比之下,WS方法需要视频级标签来表示视频是正常的(视频中没有发生异常事件)或异常的(至少有一个异常事件)。

与有监督方法(包括OCC和WS方法)领域的大量工作相反,设计纯粹的无监督VAD方法的所付出的代价要少得多[10]。许多先前的作品[13,16]将OCC模型称为无监督方法,但严格地说,它们不是,因为它们所依赖的训练数据被手动标记为正常。在本文中,我们试图解决不需要任何人工注释标签的纯无监督VAD (UVAD)任务,这不仅节省了人力,而且可以利用CCTV摄像机每天捕获的大量监控视频。

由于缺乏监控信号,UVAD极具挑战性,尽管有潜在的应用,但解决这一挑战的工作很少。据我们所知,[55]的工作是第一个UVAD方法。它训练两个VAD模型,包括一个OCC模型和一个二元分类模型,以生成伪标签来相互训练。然而,这种方法有两个问题。首先,在设计之初,这两个模型在合作学习框架中紧密地纠缠在一起。具体来说,OCC模型是一种重构视频特征的自动编码器(AutoEncoder, AE),其异常事件识别能力较低,极大地限制了UVAD方法的性能。将AE模型升级到其他OCC模型并不容易,否则可能也需要更改二元分类器模型,因为它与AE模型共享相同的数据组织方案。其次,该方法采用固定阈值机制将事件标注为伪标签,但阈值由用户手动指定,不准确,可能会给训练过程注入误差。

在本文中,我们提出了一种新的框架,该框架将OCC方法和具有自适应阈值的WS方法交织在一起用于UVAD。由于OCC和WS模型之间只有微弱的联系,我们认为任何OCC或WS模型都适合我们精心设计的交叉框架。这一特性使我们的方法能够立即利用两个主流VAD领域的最新发展。更重要的是,在我们的框架中,我们将当前必须在正常数据上训练的OCC模型扩展为可以在正常和异常数据上训练的加权OCC范式,完全避免了OCC模型阈值的必要性。另一方面,我们提出了一种由松到严的自适应阈值机制,自动为WS模型找到最合适的阈值。利用最先进的OCC和WS模型,并解决了容易出错的固定阈值问题,我们实现了一种非常有效的UVAD方法,甚至可以与有监督的方法相竞争。

综上所述,本工作的主要贡献包括:

  1. 我们提出了一个新的交叉UVAD框架,交替运行OCC和WSVAD模型,它不依赖于固定阈值来生成二元标签。
  2. 我们提出了一种加权OCC模型来同时训练正常数据和异常数据,避免了为OCC模型训练指定正常数据的阈值。
  3. 对于WS模型,我们提出了一个inner-outer-loop UVAD框架,在该框架内我们逐步收紧WS模型的阈值,并在此过程中找到最合适的阈值。
  4. 实验结果表明,该方法优于以往的UVAD方法,也优于该方法的固定阈值变体。我们的UVAD框架可以退化为有监督的OCC或WS方法。退化模型在现有的OCC和WS方法中具有很强的竞争力。

相关工作

One-Class Classification VAD (OCC)

基于OCC的VAD方法只能访问正常数据,并尝试对正常数据进行建模,以识别与正常行为明显不同的异常行为。早期的作品使用手工制作的特征来帮助检测异常[4,27,46,58]。随着深度学习的快速发展,最近的方法转向使用深度神经网络提取正常表示[30,35,42,45]。一些方法通过使用重建/预测模型来重建表示来识别正常模式[5,13,17,21,22,28,29,31,37,39,52,53,59]。这些模型可能导致重建良好的异常,从而限制了基于OCC方法的性能。因此,其他基于OCC的方法转向通过使用代理任务来识别正常表示[3,11,23,34,44]。此外,最近,Hirschorn和Avidan[16]提出为正常数据建立一个多元高斯分布,并将偏离该分布的实例检测为异常。然而,上述方法对所有样本一视同仁,忽略了正常样本之间潜在的重要性差异。

Weakly-Supervised VAD (WS)

在弱监督VAD中,在训练阶段可以使用视频级别的注释。Sultani等人[0]首先提出使用视频级标签,基于多实例学习(multi-instance learning, MIL)框架求解WS VAD[2,7]。从那时起,许多研究[25,33,43,49,56,57]将WS VAD任务视为MIL问题。Tian等人通过使用鲁棒时间特征幅度(RTFM)损失函数进行训练,将MIL方法扩展到Top-k MIL方法。上述方法直接训练视频级标签的监督,粗粒度的监督限制了WS模型的准确性。最近,两阶段自训练方法[8,20,50,60]采用两阶段pipeline,使用更细粒度的标签对网络进行更严格的监督。我们框架中的WS模型与[8]共享类似的思想,并被定制为使用细粒度的片段级标签。

Unsupervised VAD (UVAD)

无监督VAD需要从包含正常和异常样本的数据中识别异常,而不需要任何注释。这是一项具有挑战性的新任务,在文献中几乎没有被探索过。虽然在OCC和WSVAD方面取得了重大进展,但直接将它们单独应用于解决UVAD并没有取得良好的效果。Zaheer等人首先提出了这一任务,并提出了通过生成式合作学习(GCL)来解决UVAD。根据[55],训练集的一个重要属性是正常事件比异常事件更频繁。我们提出的方法利用属性对OCC和WSVAD模型进行修改,并将修改后的两个模型组合在一起,从未标记的训练数据中学习。

Adaptive Thresholding in Deep Learning

在大量未标记数据上训练的半/无监督学习方法[6,12]通常通过对模型置信度设定阈值来识别未标记数据的类别[32,51]。由模型确定的样本,其属于特定类别的概率高于相应的阈值,可以标记为这样的样本,并添加到后续的训练中。Sohn等人[36]提出使用固定的严格阈值来确定高质量的伪标签。Guo和Li[14]进一步提出从预定义的阈值中获得每个类别的自适应阈值。最近,Wang等人开发了一种自适应的方式来调整每个类别的阈值。上述方法通常假设有少量的标签数据,而我们采用自适应阈值来区分异常和正常数据,而不需要事先进行任何注释。

Our Method

如图1所示,我们方法的核心是一对OCC和WSVAD模型交替训练,同时为彼此提供伪标签(内循环)。这两个模型仅通过伪标签连接。任何能够以这种格式提供这种标签的模型都可以在我们的方法中使用。另一点是,以前的伪标签是0和1二元标签,它们是通过固定阈值的阈值分割方法获得的。本文的主要贡献是避免了传统的阈值设置或自动计算阈值。

在这里插入图片描述

图1

1、Interleave OCC and WS Training UVAD

V = { V 1 , V 2 , ⋯   , V i , ⋯   } \mathcal{V}=\{V_{1},V_{2},\cdots,V_{i},\cdots\} V={V1,V2,,Vi,}表示一组没有正常或异常标签的视频。我们想在这些视频上训练OCC模型和WS模型。对于OCC模型,我们从训练视频中提取一组对象 X = { X 1 , X 2 , ⋯   , X i , ⋯   } \mathcal{X}=\{X_{1},X_{2},\cdots,X_{i},\cdots\} X={X1,X2,,Xi,},其中 X i X_i Xi可以是视频片段[55],从视频[22]中裁剪出的时空立方体,或人物姿势序列[16]等。每个对象 X i X_i Xi都是OCC模型处理的基本构建块。注意集合 V \mathcal{V} V X \mathcal{X} X的大小不同, X \mathcal{X} X的大小比 V \mathcal{V} V大得多。对于WS模型,我们将训练视频分割成片段,得到一组片段 S = { S 1 , S 2 , ⋯   , S i , ⋯   } \mathcal{S}=\{S_{1},S_{2},\cdots,S_{i},\cdots\} S={S1,S2,,Si,}。每个片段 S i S_i Si都是WS模型处理的基本元素。

通常,为了训练OCC模型,我们需要准备一组伪标签

l X = { l X 1 , l X 2 , ⋯   , l X i , ⋯   } ( 1 ) l_{\mathcal{X}}=\{l_{X_1},l_{X_2},\cdots,l_{X_i},\cdots\}\quad(1) lX={lX1,lX2,,lXi,}(1)

对应于 X \mathcal{X} X,其中 l X i ∈ { 0 , 1 } l_{X_{i}}\in\{0,1\} lXi{0,1} X i X_i Xi的标签, l X i = 1 l_{X_{i}}=1 lXi=1为异常,否则为正常。类似地,为了训练WS模型,我们需要准备一组伪标签

l S = { l S 1 , l S 2 , ⋯   , l S i , ⋯   , } ( 2 ) l_{\mathcal{S}}=\{l_{S_1},l_{S_2},\cdots,l_{S_i},\cdots,\}\quad(2) lS={lS1,lS2,,lSi,,}(2)

其中 l S i ∈ { 0 , 1 } l_{S_{i}}\in\{0,1\} lSi{0,1}为片段 S i S_i Si的标签。

OCC Model and Pseudo Labels l S l_S lS

在此之前,OCC模型被认为只在正常数据上训练。当我们将OCC集成到UVAD框架中时,我们需要识别训练数据集中的正常数据,这就是产生问题的来源。在本文中,我们通过将传统的OCC范式扩展到可以在正常和异常数据上训练的加权范式来突破这种认知界限。

形式上,我们将 f O C C f_{OCC} fOCC定义为OCC模型,并在所有数据中最小化以下加权负对数似然:

L o c c = − w X l o g ( p Z ( f o c c ( X ) ) ) , ( 3 ) \mathcal{L}_{occ}=-w_Xlog(p_Z(f_{occ}(X))),\quad(3) Locc=wXlog(pZ(focc(X))),(3)

其中 X ∈ X X\in\mathcal{X} XX是从整个训练数据集中采样而不是正常部分, Z = f o c c ( X ) Z=f_{occ}(X) Z=focc(X)是模型从 X X X中提取的特征, p Z p_{Z} pZ是已建立的正常数据分布, w X ∈ [ 0 , 1 ] w_{X}\in[0,1] wX[0,1]是对象 X X X的权值,表示对象的正常程度。新的公式在训练OCC模型时考虑了所有的训练数据,避免了区分正常数据和异常数据的阈值。具有较大 w X w_{X} wX的对象被OCC模型的学习分布更好地捕获,而其他对象则不然。加权OCC模型自我调整以匹配每个训练对象 X X X的重要性。在实践中,我们通过以下方式计算 w X w_{X} wX

w X = 1 − x ^ , ( 4 ) w_X=1-\hat{x},\quad(4) wX=1x^,(4)

式中, x ^ \hat{x} x^为WS模型计算出的目标 X X X的异常评分,其取值范围为[0,1]。

假设训练了上述加权OCC模型,设 x i = p Z ( f o c c ( X i ) ) x_i=p_Z(f_{occ}(X_i)) xi=pZ(focc(Xi))为OCC模型计算出的目标 X i X_i Xi的异常分数。我们可以通过平均视频片段 S i S_i Si中出现的所有目标的异常分数来计算视频片段 S i S_i Si的异常分数 s ^ i \hat{s}_i s^i。然后,OCC提供的WS模型的伪标签可以通过以下阈值确定:

l S i = { 1 , if Rank ( s ^ i ) < T w s , 0 , otherwise , ( 5 ) l_{S_i}=\begin{cases}1,&\text{if}\quad\text{Rank}(\hat{s}_i)<T_{ws},\\0,&\text{otherwise},\end{cases}\quad(5) lSi={1,0,ifRank(s^i)<Tws,otherwise,(5)

其中Rank(·)按异常得分从小到大排序片段,返回所有片段中 S i S_i Si的索引, T w s T_{ws} Tws为阈值。

WS Model and Pseudo Labels w X w_X wX (not l X l_{\mathcal{X}} lX)

使用片段级伪注释 L S L_{\mathcal{S}} LS(由Eq. 5得到),我们随机选择 C = 16 C=16 C=16个异常片段组成一个正包 B + = { S i + } i = 1 C B^{+}=\{S_{i}^{+}\}_{i=1}^{C} B+={Si+}i=1C,随机选择 C C C个正常片段组成一个负包 B − = { S j − } j = 1 C B^{-}=\{S_{j}^{-}\}_{j=1}^{C} B={Sj}j=1C。注意,之前的方法[38,40]通常基于视频级别标签将同一视频片段视为一个包。不同的是,由于OCC模型提供的片段级标签,我们可以更灵活地组成正负袋。然后,通过多实例学习,我们训练了一个WS模型,以确保正袋的最大异常分数超过负袋的最大异常分数:

L w s = max ⁡ ( 0 , m − f w s ( B + ) + f w s ( B − ) ) + L B C E ( B + ) + L B C E ( B − ) , \mathcal{L}_{ws}=\max(0,m-f_{ws}(B^{+})+f_{ws}(B^{-}))+\\\mathcal{L}_{BCE}(B^{+})+\mathcal{L}_{BCE}(B^{-}), Lws=max(0,mfws(B+)+fws(B))+LBCE(B+)+LBCE(B),(6)

其中 f w s f_{ws} fws为WS模型, m m m为边界, f w s ( B ) f_{ws}(B) fws(B)(其中 B B B可为 B + B^+ B+ B − B^- B)返回一个包中片段的最大异常评分[38],或特征[40]的Top-k最大值的平均值。最后,

L B C E ( B ) = − Y log ⁡ ( f w s ( B ) ) + ( 1 − Y ) log ⁡ ( 1 − f w s ( B ) ) , ( 7 ) \mathcal{L}_{BCE}(B)=-Y\log(f_{ws}(B))+(1-Y)\log(1-f_{ws}(B)),(7) LBCE(B)=Ylog(fws(B))+(1Y)log(1fws(B)),(7)

其中 Y Y Y是袋子 B B B的标签。

在训练好的WS模型中,我们计算对象 X i X_{i} Xi的异常分数 x ^ i \hat{x}_{i} x^i,方法是简单地将 x ^ i \hat{x}_{i} x^i设置为包含对象 X i X_i Xi的相应片段的异常分数。我们提出的加权OCC模型不再需要在式1中使用二元标签 l X l_{\mathcal{X}} lX。相反,WS模型为加权OCC模型提供 w X i = 1 − x ^ i w_{X_{i}}=1-\hat{x}_{i} wXi=1x^i的权重。

Discussion

如图所示,我们方法中的OCC和WS模型通过伪标签弱连接。这种设计允许在我们的模型中使用任何可以提供此类标签的OCC或WS模型。我们认为这是UVAD方法的一个重要特性,因为现代OCC和WS方法发展迅速,利用这两个领域的发展是一个自然的想法。通过我们的设计,我们可以灵活地将框架中的OCC/WS模型替换为其他高级OCC/WS模型。

2、Adaptive Thresholding

我们已经解决了OCC模型的阈值问题,但是我们仍然需要对公式5中定义的WS模型进行阈值处理,因为WS模型需要二元标签来辅助正负袋的构建。然而,手动指定阈值 T w s T_{ws} Tws很少是准确的。鉴于此,我们提出了一种从松到严寻找自适应阈值的方法。

我们的关键思想是首先在一开始就表明一个相对宽松的门槛。在这种情况下,比实际异常数目更多的片段被错误地标记为异常。然后,逐步降低阈值,对异常片段做出更严格的判断。我们认为异常片段的实际数量一定存在于最大和最小阈值之间,并试图在此阈值退火过程中找到最接近真实异常数据比例的阈值。

为此,在OCC和WS模型的交替训练趋同后(我们称之为内环),我们一次又一次地重新运行内环,形成我们的内环-外环UVAD框架(见图1)。对于第一个内环,我们设置 T w s 1 = R % × N T_{ws}^{1}=R\%\times N Tws1=R%×N,其中例如 R = 30 % R=30\% R=30%, N N N为训练数据集中片段的总数。这个设置非常宽松,因为通常数据集中异常数据的比例远低于30%。在我们的实验中,我们设置了不同的 R R R(例如从15%到35%),并发现它对我们的最终结果影响不大,这表明了我们方法的鲁棒性。在后一种内循环中,我们使用前一种内循环中所有训练好的OCC模型来确定阈值。回想一下,在OCC和WS模型之间的每次交替训练之后,我们得到一个唯一的OCC模型。我们使用该模型计算片段异常分数,对片段进行排序,并使用 A j A_{j} Aj表示由第 j j j个唯一OCC模型识别的前 R % R\% R%异常片段的集合。在第 i i i个内循环中使用的排序阈值 T w s i T_{ws}^{i} Twsi计算为:

T w s i = N u m ( A 1 ∩ A 2 ∩ ⋯ ∩ A M i − 1 ) , ∀ i > 1 , ( 8 ) T_{ws}^i=\mathrm{Num}(A_1\cap A_2\cap\cdots\cap A_{M_{i-1}}),\forall i>1,\quad(8) Twsi=Num(A1A2AMi1),i>1,(8)

其中 M i − 1 M_{i-1} Mi1为从1到i−1的循环中训练的OCC模型的总数,Num(·)表示交集集中元素的个数。交集的大小越来越小,使得阈值越来越严格。随着越来越多的voters认为这些片段不正常,这些片段的置信度就越高。

为了阐明上述自适应阈值方法的效果,我们在图2中可视化了一个最初非常弱的WS模型是如何随着更多内循环的执行而逐渐改进的。在图中,我们展示了一个中间有异常事件的视频。在第一个内循环( T w s = 1643 T_{ws}=1643 Tws=1643)中,WS模型错误地将异常事件识别为正常事件(见左侧曲线)。在执行越来越多的内循环后, T w s T_{ws} Tws越来越小(内循环5次后最终减少到834),WS模型开始逐步识别异常事件。因此,WS模型可以为OCC模型的训练提供更准确的 w X w_X wX(右图)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图2

3、Alternate Training with Inner-Outer Loops

加权OCC训练依赖于WS模型生成的伪标签,相反,WS训练需要从OCC中获得伪标签。这个先有蛋还是先有鸡的问题需要在每个内部循环的一开始就解决。我们的解决方案是使用来自内部循环以外的其他地方的伪标签预训练OCC模型。

Starting the Inner Loop

对于第一个内循环,我们随机采样权重 w X ∼ B e t a ( α , β ) w_{X}\sim\mathrm{Beta}(\alpha,\beta) wXBeta(α,β),即从 α = 5 \alpha=5 α=5 β = 1 \beta=1 β=1的Beta分布中采样 w X w_X wX。采样的权重大都在1左右,有一小部分权重接近于0,这符合通常的假设,即训练数据中正常数据较多,异常数据较少。对于其他内循环,其OCC模型由最后一个内循环中最终WS模型生成的 w X w_X wX预训练(见图1中的红色箭头)。我们在新的内循环中从头开始训练OCC和WS模型,而不是继承上一个循环的参数。

Inner Loop Convergence Analysis

我们根据经验分析了内环的收敛性,并通过图5中的实验验证了这一点。一开始,我们随机初始化权重wX来训练我们的OCC模型。虽然随机初始化不精确,但OCC模型仍然可以从训练数据中学习正常模式,因为我们假设训练数据集中的正常数据比异常数据多得多。然后OCC模型生成相对可靠的伪标签来训练WS模型。很有信心,WS模型比随机初始化可以为OCC模型提供更好的权值,我们用随机初始化交替训练更好的OCC模型和更好的WS模型,直到收敛。

Outer Loop Stopping Criteria

一开始, T w s T_{ws} Tws大于异常片段的实数,随着外循环的运行, T w s T_{ws} Tws逐渐接近实数,最后由于集合交集操作, T w s T_{ws} Tws小于实数。当 T w s T_{ws} Tws最接近实数时,我们需要停止外循环。实验发现,在最初的几个内环中, T w s T_{ws} Tws的下降速度非常快,然后 T w s T_{ws} Tws的变化率变得很小,这表明所有OCCs对异常片段和 { A i ∣ i = 1 , … , M i − 1 } \{A_{i}|i=1,\ldots,M_{i-1}\} {Aii=1,,Mi1}之间的交集数量达成了共识,可能是真实值。基于此考虑,在我们的方法中,一旦两个连续内环之间的排名阈值变化量小于其第一次变化量的 Q % Q\% Q%,则整个训练过程停止。如图3所示, T w s T_{ws} Tws的变化与WS模型的精度之间具有高度的相关性。

在这里插入图片描述

图3

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值