基于外观和动作特征双预测模型的视频异常行为检测

2021-11-05 01:29李自强王正勇陈洪刚李林怡何小海
计算机应用 2021年10期
关键词:编码器外观预测

李自强,王正勇,陈洪刚*,李林怡,何小海

(1.四川大学电子信息学院,成都 610065;2.中国民航局第二研究所,成都 610041)

0 引言

视频的异常行为检测是计算机视觉领域极具挑战性的问题,其中一个主要原因在于对异常没有一个通用的定义,其判定通常依赖于所处的特定场景。例如一辆汽车行驶在步行街上是一个异常行为,而在公路上则是正常的。这种非常依赖于场景前后关系的行为识别是当前异常行为检测所面临的重大挑战。为了应对这个问题,一个典型的方法就是将与正常视频差异过大或未出现过的行为作为异常行为,但是这一方法可能将未在训练集中出现的正常行为当作异常。一方面,异常行为发生频率较低,而监控视频数据量大且多以正常行为为主,因此对视频进行人工标注成本太高;另一方面,实际获取的数据集只是真实场景下正常行为和异常行为的子集,故无法囊括所有发生的行为[1]。这种数据不平衡和异常样本缺乏的问题使得当前大多数研究都采用弱监督学习和半监督学习方法。

当前提出的弱监督学习方法[2-3]多是采用基于多示例学习(Multiple Instance Learning,MIL)的异常检测方法,将训练集中的每个视频当作一个包,视频的每一帧当作一个实例,把含有异常帧的视频标记为正包,全是正常帧的记为负包。这类方法是在已经获知一个视频是否含有异常事件的假设下来研究异常检测问题,只是不知道异常的时序位置和类型,但真实情况下这种先验知识是不存在的。因此当前研究多采用基于重建或预测的半监督学习方法。对于基于重建的方法[4-6],其通常使用卷积自编码器或者生成对抗网络(Generative Adversarial Network,GAN)来学习以较小的重建误差来重建正常样本,并希望当重建异常样本时,训练好的模型能够产生较大的误差。而对于基于预测的方法[7-9],研究者们认为异常事件是意料之外的,难以被预测,故在正常视频上训练的网络能够在异常帧上产生更大的预测误差。然而这两种方法并未达到理想的效果,主要在于这些方法只关注视频帧外观上的重建和预测,而忽略了异常事件的区分是通过外观、动作或两者兼之来判断,比如:步行街上行驶的汽车与正常场景的区别在于外观;而打架、游荡等行为需要通过动作判定,抛掷物品需要两者共同判定。考虑到动作信息对于异常检测的重要作用,很多基于重建或预测的方法采用预训练模型来提取动作信息,例如:Liu 等[9]和Nguyen 等[10]采用光流网络来提取动作特征,Morais等[7]使用姿态估计网络提取人体关节点表征动作信息。然而这些方法会使得网络更加复杂,且容易受预训练模型本身的影响。

为了解决上述问题,更好地学习视频表征,本文提出了一种对动作和外观进行联合预测的孪生网络。该网络的两个分支采用相同结构的自编码器,每个分支网络由编码器、记忆增强模块和解码器组成,其中编码器和解码器采用残差结构的上下采样层用于更好地提取特征和预测帧图。两个子网络的输入不同,外观子网络输入RGB 视频帧预测未来帧,而动作子网络则使用相同长度且更容易获得的RGB 帧差图代替光流图作为输入预测未来帧差图,最后将两个分支网络的预测帧图再融合相加得到预测帧的下一帧,即预测未来两帧。

1 相关工作

视频异常检测方法大致可以分为基于传统机器学习的方法和深度学习的方法两类。传统方法主要是通过手动提取的动作和外观特征来检测异常,比如定向光流直方图[11]、定向梯度直方图[12]和3D梯度特征[13]等,例如:Kim等[14]为了能更好地捕捉局部运动特征,利用混合概率主成分分析来建模光流;Mahadevan 等[15]使用混合动态纹理(Mixture of Dynamic Texture,MDT)来检测时间上的异常;胡学敏等[16]提出使用运动特征图来检测人群异常行为。这些传统方法所提取的特征有限,而视频中包含丰富的高维特征难以通过传统方法提取。

近些年来,由于深度学习在异常检测领域的显著表现,大量的研究都采用基于神经网络的方法[5-10,17-21]。由于视频中的异常一般被定义为与正常行为差异较大或很少发生的行为,加上其异常数据获取困难、人工标注成本高等因素的影响,绝大部分研究采用半监督学习方法,即只使用正常样本进行训练。Hasan 等[19]采用卷积自编码器进行重建帧图像,通过重建误差的大小检测视频帧的异常。在此基础上,Luo 等[20]在自编码网络中加入卷积长短记忆(Convolutional Long Short-Term Memory,ConvLSTM)网络捕捉正常样本的时间信息。考虑到基于重建模型的方法无法充分提取视频中丰富的动作特征,而异常行为又多包含大量的动作特征,为此Liu 等[9]提出基于GAN 的未来帧预测模型,使用连续几帧图像预测下一帧图像,同时通过加入光流约束来提取动作特征。Morias等[7]认为视频中异常多与行人相关,而基于像素的特征对噪声比较敏感,会将场景[9]中的重要信息掩盖,故提出一个预测行人关节点轨迹的异常检测网络,但该方法适合处理与行人相关的异常,而其他类型的异常(如汽车)无法检测,此外人体骨架的检测对远镜头处的行人效果较差。为了更好地提取动作和外观特征,许多研究[10,21]使用双流网络结构分别提取动作和外观特征进行异常检测,并取得了较好的效果。

尽管基于卷积神经网络(Convolutional Neural Network,CNN)的方法很大程度上优于传统方法,但是由于CNN 强大的表征和“生成”能力,使得一些异常样本也能被重建或预测得很好。为了降低CNN 的“生成”能力,更好地建模正常样本的深层特征的分布,Abati 等[5]在自编码器的瓶颈层(Bottleneck)加入自回归模块;Fan 等[21]则训练两个高斯混合变分自编码器,通过高斯混合模型学习正常样本的表征;Gong等[4]通过在编码器后级联一个内存寻址的记忆模块来使得自编码器在重建样本时更加关注正常样本的特有特征。

受到上述研究的启发,本文提出将预测模型应用在外观和动作的孪生网络结构中,期望其更好地对动作和外观信息进行预测,同时为了更好地提取特征和重建图像,在编解码器中采用残差结构的上下采样模块。此外本文不再使用许多方法广泛使用的光流法来提取动作特征,而是使用不需额外计算的视频帧差图,最后通过引入记忆增强模块来应对正常样本多样性和CNN的“生成”能力过强的问题。

2 异常行为检测方法

为了更好地实现基于视频的异常检测,本文提出了一个能同时对动作和外观进行预测的半监督异常检测方法,其网络框架如图1所示。

图1 视频异常行为检测方法的网络框架Fig.1 Network framework of video abnormal behavior detection method

本文网络框架由上下两个外观和动作子网络组成双流结构,两个子网络分别由编码器、记忆增强模块以及解码器依次级联组成。两个子网络的输入为长度都为t的RGB 帧图和帧差图,而最终两子网络输出结果融合相加得到预测的t+2 帧视频图像。

2.1 外观自编码器

外观自编码器的作用是提取视频中静态场景和所关注目标的外观特征,通过连续几帧RGB 图来预测下一帧。该子网络结构借鉴广泛用于图像重建和预测的U-Net,如图1 所示。在编码器和与解码器相同分辨率的高维特征层和低维特征层加入跳连接(skip-connection)来抑制梯度爆炸和每层的信息不平衡,从而保证较高的图像预测质量。

对于编解码器部分,以 Conv-AE(Convolutional AutoEncoder)[19]为基础,对编码器的下采样层和解码器的上采样层进行改进,将原有的单流结构调整为图2 所示的残差结构来鼓励网络更好地提取特征和提高帧图的预测质量。编码器由1个预处理模块和3个残差结构的下采样模块组成,该下采样模块的两个分支分别采用卷积和池化来压缩特征,如图2(a)。同理,解码器由3个残差结构的上采样模块和1个生成模块组成,而上采样模块采用不同大小的卷积核的反卷积来实现,如图2(b)。编码器与解码器形成对称结构,编码器的预处理模块通过连续两次卷积操作将输入的几帧视频提取为64维的低维特征,而解码器的生成模块与之相反,通过3个卷积层将低维特征转为3维的图像。

图2 下采样及上采样模块网络结构Fig.2 Network architecture of down-sampling and up-sampling modules

给定连续输入视频帧I1,I2,…,It,经过编码器Ea下采样提取关于图像场景、目标外观信息等深层特征后,解码器Da通过Za预测得到第t+1帧

2.2 动作自编码器

除了较大的目标外观变化外,不寻常的目标动作也可以作为衡量视频帧是否异常的重要条件,而动作自编码器被鼓励学习连续视频帧间的动作关系。为了简化网络的设计,动作自编码子网络采用与外观自编码器相同的网络结构,只有输入数据不同。当前大部分研究提取动作特征采用的是光流估计法[22],提取的目标光流可以很好地表示目标的运动变化;但是其需要通过额外的神经网络生成,故计算量较大,不适合在实际应用环境中使用。此外光流估计本身并不是专门为检测异常行为而设计的网络,直接将其嵌入到图1 中所设计的网络中,实际效果并不理想,这一点将在实验部分说明。受到Wang 等[23]和Ionescu 等[24]采用了连续视频帧的帧差图来提取动作特征的启发,本文提出使用帧差图代替光流图,从而达到不使用预训练模型、减少计算量的目的。故动作自编码器输入与外观子网络相同长度的连续帧差图来预测下一帧帧差图。

与式(1)类似,定义输入的连续帧差图为X1,X2,…,Xt,该t张帧差图通过连续t+1 张视频帧I1,I2,…,It,It+1前后帧相减处理获得,其中,Zm表示编码器Em输出的动作特征向量,然后解码器Dm重建得到最终的帧差图

2.3 记忆增强模块

在半监督的异常检测研究中,如何使得设计的网络更好地学习到正常样本的特征,尽可能降低与异常行为无关的背景噪声影响是富有挑战性的问题。在使用自编码器实现重建和预测任务时,由于神经网络极强的学习能力,使得部分异常样本也能重建得和正常样本一样好,导致最终的异常分数差异不明显,出现较高的误检率。参照Gong 等[4]和Park 等[17]所提方法,本文方法引入记忆增强模块旨在学习最能表征所有正常样本的有限个原型特征,并保存在内存项中,在预测时给与内存项相似度高的特征分配更高的权重,从而期望异常样本获得较大的重建误差。

如图1 所示,外观和动作自编码子网络都嵌入了记忆增强模块。定义记忆增强模块的输入和输出为z和,大小为H×W×C,其中H、W、C分别表示特征向量的高、宽和通道数。定义zk(k=1,2,…,K),其表示z中大小为1×1×C的一项,其中K=H×W。记忆增强模块中还包含存储M个正常样本特征的内存项,同理定义每个内存项为pm(m=1,2,…,M),大小为1×1×C。在训练过程中会不断更新和读取内存项。

对于读取操作,首先计算每个z与所有pm的余弦相似度,生成一个大小为M×K的二维的相似度矩阵,之后在M维度上对该相似度矩阵应用softmax 函数,获得相应的匹配概率ωk,m,计算式如下:

式中:s(⋅,⋅)代表余弦相似度计算,如式(8)所示:

对于每个zk,该模块将读取内存项中所有pm,计算相应的权重ωk,m,即zk与内存项中的特征越相似,其权重ωk,m越大。最后在原输入特征zk的基础上,将内存项中保存的正常特征通过对应权重ωk,m加到zk上,对正常特征起到增强效果,从而解码器将更加关注正常特征的重建预测。增强后的特征如式(9)所示:

从图1 所示的记忆增强模块网络结构可知,更新操作与读取操作的前期都要计算余弦相似度和应用softmax 函数。故对应的权重νk,m计算如下:

更新后的特征计算与式(9)的过程相反。在训练阶段,输入都为正常视频,内存项在不断更新的过程中,期望学习到正常样本广泛具有的正常特征,故在迭代过程中,通过相似度计算,不断将与pm相似度高的特征通过权重νk,m加入原有特征pm中。更新每个内存项如式(11)所示:

式中l2(⋅,⋅)表示L2正则化。

为了使内存项真正记住正常样本的特征,该模块使用特征压缩损失Lc和特征分离损失Ls两个损失函数来保证网络的收敛。Lc希望输入特征zk与内存中与其最相似的一项的相似度更加接近。如式(12)所示,引入L2范数惩罚它们之间的差异。

式中:pτ表示所有内存项与zk相似度最高的一项,即固定k时,式(7)中ωk,m取得最大值时的m定义为τ。

网络原本的目的是希望每个内存项都能学习到不同的正常样本特征,仅仅使用Lc可能会使得内存中所有项都越来越相似,这会完全背离该设计的初衷。因此,引入特征分离损失函数来鼓励内存项间差异更大,降低相似度,从而学习到不同的特征,损失函数定义如下:

式中:τ和γ分别表示式(7)中ωk,m取得最大值和第二大值时的索引m的值。

2.4 总损失函数

根据图1 所示,外观自编码网络被鼓励预测好It+1,而动作自编码网络被鼓励预测Xt+1,同时为了联合利用到外观特征与动作特征,保证预测的It+1和Xt+1真实有效,将It+1与Xt+1相加获得预测的It+2。因此总损失函数由三部分组成:外观损失La、动作损失Lm和预测损失Lp,其中,Lp是第t+2帧的真实图It+2与预测图的密度损失函数,计算方法可参照式(3)。通过超参数λa、λm和λp来平衡3 个损失函数,如式(14)所示:

其中:La是由外观自编码器网络的密度损失和对应的特征压缩损失和特征分离损失构成。La如式(15)所示:

同理Lm定义如下:

式中αc、αs为超参数。

2.5 异常评价分数

在测试阶段,本文将给定连续t+1 帧视频,前t帧图直接送入外观子网络预测第t+1帧RGB图,同时这t+1帧计算得到t张连续帧差图后送入动作子网络预测第t+1帧与第t+2帧真实视频间的帧差图,最终两子网络预测结果相加得到第t+2帧的预测图。对于基于预测思想的异常检测网络来说,预测的图与真实图的差异大小决定该帧是否异常,而本文采用动作和外观双预测的孪生网络,外观方面的异常会使得的预测效果较差,动作层面的异常会导致的预测效果较差,而外观和外观兼有的异常则会导致的预测效果都不理想。为了更全面地评价所有的异常情况,同时简化异常分数的计算,本文网络将t+2帧的预测图质量作为评估依据,这是因为上述三种异常情况都会导致t+2帧的预测效果下降。峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)是一种比较常用的图像质量评价方法,广泛用于基于重建或预测的异常检测模型。参考Liu等[9]的方法,计算的PSNR:

式中N表示视频帧中的像素数量。的值越小,代表图像预测的质量越差,就越可能是异常帧。此外,由于内存增强模块中的内存单元存储了正常样本的原型特征,在测试阶段,当输入的是正常视频帧时,其深层特征zk与内存项pm的相似度较高,而输入异常样本则相反,故可以计算zk和与之最相近的pτ之间的L2距离:

因此最终的分数由三部分构成:P和Dm(z,p),其中Da(z,p)和Dm(z,p)是D(z,p)分别在外观和动作子网络的分数表示。为了将这3 个分数进行融合,将式(17)、(18)的值归一化到[0,1]得到和。然后通过超参数β来平衡三个分数得到最终的异常评价分数S:

3 实验与结果分析

3.1 数据集

实验在3 个公共的异常检测数据集UCSD-ped2[15]、Avenue[13]和ShanghaiTech[25]上进行。UCSD-ped2 包含16 个正常视频和14 个异常视频,正常视频中主要是摄像头拍摄的人行道上的正常行走的行人,而异常视频内包括在人行道上骑自行车、溜冰、开小汽车、横穿马路等行为。测试集提供帧级别和像素级的标签,所有视频分辨率为320×240。Avenue 数据集包含15 个正常视频和21 个异常视频,分辨率为640×360,其使用固定摄像头拍摄学校走廊的场景,提供矩形框标记异常对象的标签。异常视频则涵盖行人奔跑、抛掷物品和穿越草坪等行为。ShanghaiTech 数据集是当前最具挑战和难度的异常检测公共数据集之一,它包含来自13 个摄像头下的330 个训练视频和107 个测试视频,每个视频分辨率为480×856。图3 展示在3 个数据集中的正常与异常样本示例,红色矩形框标注出正在发生的异常行为。

图3 三个数据集中的一些正常和异常样本Fig.3 Some normal and abnormal samples in three datasets

3.2 评估机制与实验细节

当前常用的评估方法就是采用受试者操作特征(Receiver Operating Characteristic,ROC)曲线,然后取曲线下面积(Area Under Curve,AUC)作为最终的评价指标,AUC 越高,代表异常检测效果越好,本文将计算帧级别AUC 来评估模型的检测效果。整个实验在Ubuntu 20.04、NVIDIA GeForce RTX 2080 Ti、Intel Core i7-9700 CPU 3.00 GHz的平台上进行,采用的深度学习框架为pytorch1.1。网络输入图片尺寸将修改为256×256,使用Adam 优化器优化训练损失,初始学习率lr设为1E-4,其中记忆增强模块的内存项个数M=15,超参数λa=λm=1.0,λp=0.4,αc=0.1,αs=0.4,β=0.65。网络训练50个epoch后损失收敛。

3.3 结果分析

3.3.1 与其他方法的比较

表1 展示了本文所提方法与其他方法的比较。从表1 实验结果可以看出,所提方法与手动提取特征的经典方法MDT相比在UCSD-ped2 上AUC 提升了17.6%。AMC(Appearance-Motion Correspondence)[10]和TWD(TWo-stream Decoder)[26]都采用光流提取动作特征的双流网络结构,与这两种方法相比,本文方法在UCSD-Ped2和Avenue上AUC提升明显,而且本文方法还未采用光流估计的预训练网络,极大降低了网络复杂度。与作为预测方法基准线(Baseline)的FFP(Future Frame Prediction)[9]比较可以看出,本文所提的双分支预测的网络有效。MemAE(Memory-augmented deep AutoEncoder)[4]和Mem-GN(Memory-Guided Normality)[17]都采用记忆增强的方法。与Mem-GN相比,本文方法在UCSD-ped2和ShanghaiTech数据集上取得了较好的结果,而在Avenue上略低于Mem-GN。从图3可以看出,Avenue数据集的场景为校园内的走廊,其背景走廊内光线较暗,离摄像头距离较远导致行人目标过小等问题会使得通过视频帧提取的帧差图含有较多噪声,从而对提取到的动作特征产生影响。而当前极具挑战的ShanghaiTech 数据集来源于13 个不同摄像头,对类似于Mem-GN等只对外观进行预测或重建的方法,其对场景变化的鲁棒性较差。而本文方法通过帧差提取动作特征则极大降低了背景的影响,从而使网络更加关注于前景的变化。

表1 不同方法在不同数据集上的AUC对比 单位:%Tab.1 AUC comparison of different methods on different datasets unit:%

3.3.2 时间性能

为了评估所提方法的时间性能,通过在UCSD-ped2 数据集上使用不同分辨率的输入帧来测试网络的实时性。在分别采用128×128、256×256 和400×400 分辨率时,本文方法的时间性能为93 frame/s、40 frame/s 和16 frame/s。当分辨率为256×256 时,FFP 和Mem-GN 的时间性能分别为25 frame/s 和67 frame/s。故本文方法的时间性能可满足实时性要求。

图4 分别展示了文中所提方法在Avenue、UCSD-ped2 和ShanghaiTech数据集中测试视频上的检测结果。

图4 本文方法在三个数据集的测试视频上的异常检测结果Fig.4 Abnormal detection results of the proposed method on test videos of three datasets

从图4 中可以清楚看出,异常发生时异常分数迅速升高,故可通过设置一个分数阈值将异常帧与正常帧区分出来。

3.4 网络分析

为了进一步证明所提出网络各部分模块的作用,本节将各部分模块依次加入网络中来测试异常检测性能。

表2中,帧差代表动作子网络采用帧差还是光流;Memory表示是否采用记忆增强模块;而残差采样模块表示自编码器网络中编码器和解码器是否采用残差结构的上下采样层。

表2 评估本文网络中不同模块的作用Tab.2 Function evaluation of different modules in the proposed network

从表2 可以看出,在本网络中帧差比光流具有更佳的表现;记忆增强模块的加入使AUC具有较大提升;将图1中自编码器网络中上下采样层从单流结构改为残差的双流结构后,其AUC 有一定程度提升,故该结构更利于编码器提取外观和动作特征并改善解码器预测图的质量。

本文所提方法损失函数中共设置了5 个超参数,考虑到超参数对最终的检测结果有较大影响,故表3对式(14)中3个参数λa、λm和λp对AUC 的影响。3 个超参数分别用于确定外观损失La、动作损失Lm和预测损失Lp的权重。表3 显示3 个参数设定不同比重时,检测结果AUC的变化情况。

表3 损失函数中主要超参数对AUC的影响Tab.3 Influence of main hyperparameters in loss function on AUC

从表3 可知,总体来说,La相较Lm对AUC 的影响更大,Lp的目的是让由融合相加得到的更接近真实帧It+2,而此帧的PSNR作为异常分数的重要部分。

如表4 所示,输入视频帧序列长度t的长度较小时,无法达到预测的目的,其更接近于重建网络;但是,当t的长度逐渐增大时,网络并不能因此学到更多的时序特征,反而会增加网络参数。

表4 不同长度帧序列下的AUCTab.4 AUC under frame sequences with different lengths

4 结语

本文提出了一种基于外观和动作特征双预测的视频异常行为检测方法。该孪生网络同时使用RGB 图和帧差图来提取动作和外观特征,并进行预测。通过在自编码器瓶颈层级联了记忆增强模块,促使网络更好地学习正常样本的特征,降低对异常样本的预测效果。实验结果表明,所提方法提升了视频异常行为的准确率,提高了其在3 个数据集上的AUC 指标。本文方法对提取正常行为的外观和动作特征进行了部分优化,降低预测网络对异常视频的预测效果,但仍未充分提取到正常样本的特征,且网络对背景噪声的鲁棒性欠佳,故在未来工作中,将进一步对该问题进行研究,提高网络对异常行为检测的准确性和稳定性。

猜你喜欢
编码器外观预测
无可预测
基于ResNet18特征编码器的水稻病虫害图像描述生成
外观动作自适应目标跟踪方法
鸟类能识别植物的外观等
A Shopping Story to Remember
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
混凝土预制构件外观质量提升探讨
基于Beaglebone Black 的绝对式编码器接口电路设计*