基于深度学习的远程视频监控异常图像检测*
2021-02-25杨亚虎陈天华
杨亚虎,王 瑜,陈天华
(北京工商大学 人工智能学院,北京 100048)
0 引 言
随着现代科技的迅猛发展,以及人们对安全性要求的显著提高,成像设备的使用数量越来越多,覆盖范围也越来越广。传统的成像设备只能捕捉、存储和回放视频,对于异常图像[1],例如模糊、遮挡和场景切换等,并不能立即向监控中心发出警报,且多由工作人员值守,容易疲劳、误报,尤其对于复杂场景更是难以应对。因此,研究全自动远程视频监控异常图像智能检测方法很有必要。
智能视频监控系统是在计算机视觉(Computer Vision)发展的基础上提出来的,目前已有较多研究成果和实际应用的案例,但大多数仅针对某一类异常干扰进行识别。文献[2]考虑到不同模糊检测算法的互补特性,进而提出了基于随机森林的像素级融合、基于条件随机场的图像级融合,以及基于回归树场图像内容感知的融合三种融合方法。文献[3]通过结合稀疏自编码器的自动提取图像特征的能力和深度置信网络优秀的分类性能,提出了一种基于深度学习的监控视频树叶遮挡检测方法。文献[4]将RGB图像进行双边滤波,并将滤波后的图像转换到HSV空间,在HSV彩色空间内利用矢量求导方法计算彩色图像的梯度,最后利用改进的线段分割检测(Line Segmentation Detection,LSD)算法实现图像直线的提取。文献[5]根据动态高低阈值判断是否发生场景突变和场景渐变,有效克服了传统灰度法的误检和直方图法的漏检问题。此外,南京航空航天大学[6]、中国石油大学[7]也开展了相关研究。中国科学院自动化研究所[8]从底层、中层、高层对对智能视频监控技术进行了详细综述。以上算法在其特定应用场景下具有良好的识别效果,但不能同时识别出多种异常干扰。
近年来,深度学习技术在分类、检测和识别等领域表现优越。基于卷积神经网络而衍生的分类网络中,最具代表的是VGG16、VGG19、SqueezeNet、InceptionV4、DenseNet121、ResNet18和ResNet50等端到端的图像分类网络。基于这些技术,视频监控中的异常事件检测也有很大进展[3,9-10]。相比于传统通过人工提取特征,再使用支持向量机(Support Vector Machine,SVM)分类器进行摄像头异常干扰的分类识别[11],或利用尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)函数获取图像的特征,通过图像特征的变化来判断摄像头是否发生干扰[12],将深度学习技术引入摄像头异常干扰识别当中,结合云计算和图像处理器的优秀加速计算性能,为摄像头异常干扰识别提供了全新的思路。
为此,本文针对上述算法的不足,提出了一种基于深度学习的全自动远程视频监控异常图像识别算法。算法利用设计的CNN网络提取标准化后的视频差分图特征,实时输出多种异常干扰图像识别结果,且具有较高的识别准确率。
1 研究方法
1.1 差分图的获取
成像设备采集到的视频序列具有连续性的特点,如果镜头没有遮挡、场景切换、模糊等异常发生,则连续帧的变化很微弱;如果有上述异常发生,则连续的帧与帧之间会有明显的变化。帧间差分法借鉴了上述思想,可以获得帧间差异明显的差分图。该类算法对视频流中的两帧图像Fn(x,y)和Fn-1(x,y)进行差分运算,获得视频差分图像Dn(x,y),如式(1)所示:
Dn(x,y)=|Fn(x,y)-Fn-1(x,y)| 。
(1)
通过对视频流中的彩色图像求取差分图,以削弱图像的相似部分,突出图像的变化部分,可以为深度学习网络的特征提取提供强有力的基准。
1.2 数据预处理
获得视频差分图后,由于差分图可能具有不同的分辨率,不适合直接输入到神经网络的输入层。此外,为了使得训练后的模型更具有泛化性,需要对其进行标准化处理。图像标准化将数据实现中心化处理,根据凸优化理论与数据概率分布相关知识,数据中心化符合数据分布规律,更容易取得训练之后的泛化效果。对于采用不同成像设备采集到的视频图像,或者是来源不同的视频图像,由于明暗、对比度等各种问题,会出现像素值过大的情况,此时进行图像标准化以后,数据与数据之间的差异被控制在一个很小的范围内,避免了梯度发生振荡,可以加速收敛速度,也可以在一定程度上提高收敛精度。
本文先将原始视频差分图像统一成256×256格式,再进行图像标准化,如式(2)所示:
(2)
式中:x表示图像,μ是图像的均值,σ表示标准方差。视频图像标准化前后对比如图1所示。
图1 视频图像标准化前后对比
对于标准化后的视频差分图Cn(x,y),当其超过一定阈值T时,像素值设为1,否则为0,即可获得二值差分图Rn′(x,y),如式(3)所示:
(3)
1.3 卷积神经网络的设计
获得标准化后的视频差分图后,利用自行设计的卷积神经网络深度学习模型可以全自动地实现远程视频监控异常图像检测。
1.3.1 卷积层
卷积神经网络中的卷积操作可以看作是输入样本和卷积核的内积运算,第一层卷积层对输入样本进行卷积操作后就可以得到特征图。为了得到和原始输入样本大小相同的特征图,本文采用对输入样本进行SAME的填充方式,填充后再进行卷积操作。卷积层是使用同一卷积核对每个输入样本自上而下、自左向右进行卷积操作的。对256×256的输入样本填充,并使用3×3×16的卷积核进行卷积操作后,得到256×256×16的特征图。另外,卷积结果不能直接作为特征图,需通过激活函数计算后,把函数输出结果作为特征图。常见的激活函数有sigmoid、tanh、ReLU等函数,本文使用的是ReLU函数,图2中卷积核的滑动步长为1。本文第二个卷积层的卷积核大小及尺寸为3×3×32,卷积过程中同样使用SAME的填充方式进行填充。
图2 卷积操作示意图
由于Xavier初始化方法结合了ReLU函数,并得到了优秀的分类效果,因此本文方法使用的两个卷积层中,卷积核的参数都由Xavier初始化产生。
由于低层特征在这里主要表现为视频干扰图像的外观特征,包括纹理、颜色、边缘和形状,区分时是逐块进行,并未涉及太多语义层,因而设计了两层卷积层。
1.3.2 池化层
池化层的作用是减小卷积层产生的特征图尺寸。选取一个区域,根据该区域的特征图得到新的特征图,这个过程被称为池化操作。例如,对一个2×2的区域进行池化操作后,得到的新特征图会被压缩为原来尺寸的1/4,因此池化操作可以降低特征图的维度。主要的池化操作有最大池化、平均池化和Lp池化,如图3所示。本文所用的是图3(a)所示的最大池化,最大池化是选取图像区域内的最大值作为新的特征图。
图3 主要的池化操作
1.3.3 局部响应归一化层
为了提高准确率,本文在网络设计时加入了局部响应归一化层(Local Response Normalization,LRN),对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,可以增强模型的泛化能力。局部响应归一化公式如式(4)所示:
(4)
1.3.4 全连接层
和多层感知器一样,全连接层也是首先计算激活值,然后通过激活函数计算各单元的输出值。本文使用ReLU函数。由于全连接层的输入即是卷积层或池化层的输出,表现为二维的特征图,所以需要对二维特征图进行降维处理。本文第一个全连接层和第二个全连接层中神经元的个数分别为256,全连接层的操作如图4所示。
图4 全连接层操作示意图
通过卷积对输入图像进行特征提取,池化将得到的特征图像进行分块降维,最后全连接层将学到的分布式特征表示映射到样本标记空间。
1.3.5 输出层
和多层感知器的输出层一样,卷积神经网络的输出层也是使用似然函数计算各类别的似然概率。因为本文输出有四种类别,具体包括遮挡、场景切换、模糊和正常,所以共有4个输出单元,每个单元对应一个类别,使用式(5)的softmax函数可以计算输出单元的似然概率,然后把概率最大的数字作为最终的分类结果输出。
(5)
式中:Q表示总的输出单元数,本文取值为4;xq为输出层的输入;p(yk)表示第k个输出单元的概率。
1.4 网络训练
为了验证本文提出的算法效果,具体实验设计过程包括训练数据的准备、模型参数的确定、模型训练,以及模型对视频监控异常图像检测的结果等。实验环境为Ubuntu16.04 LTS,Python 3,全自动远程视频监控异常图像检测网络模型在深度学习框架TensorFlow 1.8.0上搭建,模型在一块显存为12 GB的GPU(NVIDIA Titan XP)上训练。
1.4.1 模型相关参数
在网络模型训练时,本文采用了Xavier的神经网络权值初始化方法,保证每层神经元输入输出方差一致,从而避免变化尺度在最后一层网络中爆炸或者弥散。Xavier初始化方法即将参数初始化成式(6)范围内的均匀分布:
(6)
式中:nk和nk+1分别表示输入层和输出层神经元个数。
由于卷积层和池化层都可以看作是有部分连接的全连接层,因此,卷积神经网络的参数训练也是使用误差反向传播算法进行训练。网络训练时采用批处理方式,批处理量为10,学习率0.000 1,最大训练次数(epochs)为100。各层的参数汇总如表1所示,其中,参数Shape表示卷积核的大小和个数,Strides表示进行卷积操作时卷积核移动的步长。
表1 网络结构参数
CNN中采用反向传播算法时的权值调整表示如下:
(7)
式中:ΔWj为权值调整量,η为学习率,E为输出误差。
经过上述网络训练后,得到的用于全自动远程视频监控异常图像检测的模型结构如图5所示,其中,送入网络结构输入层的是经过标准化以后的视频差分图。
图5 网络结构
1.4.2 模型评价指标
利用训练数据训练模型后,用测试数据评估模型的性能,具体如式(8)所示:
(8)
1.5 算法流程
本文提出的全自动远程视频监控异常图像检测算法具体包括四步:第一步,对视频流数据每隔30帧取差分图,并标准化差分图;第二步,设计全自动远程视频监控异常图像检测模型;第三步,设置训练模型的相关参数和策略并将训练后的模型保存在saved_model文件夹下;第四步,用测试集数据验证saved_model文件夹下模型的分类性能,并采用客观评测方法评估模型。
2 实验结果与分析
2.1 实验数据
实验所用的视频数据集源于北京工商大学计算成像实验室自主拍摄的视频,共有正常、遮挡、模糊、场景切换4类视频,每类100个,每个时长约30 s。其中,遮挡异常定义为视频监控时出现图6(a)所示的镜头遮挡现象,模糊异常定义为视频监控时出现图6(b)所示的镜头模糊现象,切换异常定义为视频监控时突然出现图6(c)所示的镜头转换现象。利用320个视频得到的差分图进行训练,160个全新的视频用来测试,即用于训练的视频差分图共有15 550幅,其中正常3 791幅,遮挡3 813幅,模糊3 864幅,场景切换4 082幅,测试视频160个。视频像素大小为1 920 pixel×1 080 pixel。图3为从4类监控视频中截取的部分视频图像。
图6 四种监控视频图像示例
2.2 结果与分析
为了验证本文提出方法的有效性,精心设计了模型的实验过程,并从四种情况中随机选择三种进行组合,以考察模型的鲁棒性。实验使用深度学习框架TensorFlow1.8.0搭建智能检测模型,在一个显存为12 GB的GPU(NVIDIA Titan XP)上进行模型训练,设置最大迭代次数(epochs)为100,当Loss足够小时,模型训练完毕。图7为训练过程中Accuracy和Loss随训练次数的变化图,可见经过100次训练,Loss值已降到0.04左右并保持稳定,模型训练完毕。
图7 Accuracy-Loss变化图
为了得到最佳的网络参数组合,本文通过调节变量,具体包括卷积核大小、学习率的大小、激活函数的种类等,考察这些参数对模型的影响。实验结果如表2所示。
表2 参数对模型的影响
从表2的实验结果可以得到以下结论:
(1)通过分析不同卷积核大小对准确率的影响,可知利用3×3大小的卷积核得到的结果最优。
(2)学习率太小,更新速度慢,学习率过大,可能跨过最优解。因此,在刚开始训练,距离最优解较远时可以采用稍大的学习率,随着迭代次数增加,在逼近最优解的过程中,逐渐减小学习率。可见,学习率对于模型也具有很大的影响。
(3)sigmoid在压缩数据幅度方面有优势,对于深度网络,使用sigmoid可以保证数据幅度不会出现振荡,只要数据幅度平稳就不会出现太大的失误。但是sigmoid存在梯度消失的问题,在反向传播上有劣势,所以在优化过程中存在不足。ReLU不会对数据做幅度压缩,所以如果数据的幅度不断扩张,那么模型的层数越深,幅度的扩张也会越厉害,最终会影响模型的表现。但是ReLU在反向传播方面可以将相同的梯度传到后面,这样在学习过程中可以更好地发挥作用。在实际效果中,Xavier初始化也和ReLU非常匹配。
训练好的模型对输入的标准化后的视频差分图处理过程可视化如图8所示。
图8 网络模型中间层输出的可视化示例
由图8可以看出,浅层神经网络对于标准化的视频差分图边缘特征提取较好,提取的特征内容全面,而深层网络提取的特征则更加抽象,这也正好验证了浅层网络提取精细的外观特征、深层网络提取抽象的语义特征的结论。
最佳网络参数组合下的模型在测试数据上的准确率如表3所示。
表3 测试集表现
从表3的实验结果可以看出,本文提出的远程视频监控异常图像检测方法具有良好的检测准确率,可以同时对多种异常进行检测,是对单一异常情况检测的拓展和提升,具有多种视频监控异常图像在线检测的功能。
进一步地,为了突出本文所提算法的有效性,本文与文献[3-4,11-13]的算法进行了对比实验,并采用文献[11]的客观评价准则,比较结果如表4所示。
表4 不同算法的实验结果对比
根据实验对比结果可以看出,与传统的和基于深度学习的监控摄像头异常干扰识别算法相比,本文方法在准确率和漏检率上有大的提升,误识率上次于改进的LSD算法和稀疏自编码器(Sparse Auto-Encoder,SAE)与深度置信网络(Deep Belief Network,DBN)组合的算法;所设计的网络较经典CNN网络AlexNet在准确率、漏检率和误识率方面均有所提升,因此整体上表现更佳。
损失函数用于估计模型的预测值和真实值之间的不一致程度,它是一个非负实值函数。本文使用的损失函数是交叉熵损失函数,如式(9)所示:
(9)
式中:M表示类别数量;yc表示指标变量,如果类别和样本具有相同的类别,则为1,否则为0;pc表示观察到的样本属于类别c的预测概率。本文模型和文献[11]模型的损失函数对比如图9所示。
图9 两种模型的损失函数对比图
图9的实验结果表明,本文方法和文献[11]方法损失函数值的趋势都在减小,但本文减小得更快而且变化较平稳,预测值更接近真实值,并最终稳定在了0.04左右;文献[11]方法减小得相对较慢而且变化过程中有大的抖动,预测值离真实值较远,最终稳定在了0.085左右。
为了考察模型的鲁棒性,统计模型在三种异常共四种组合上的检测准确率,如表5所示。
表5 模型在各组合上的表现
由表5可以看出,该模型不仅具备同时检测多种视频监控异常图像的功能,同时还具有良好的鲁棒性,这为模型应用于实际复杂场景奠定了坚实基础。
3 结束语
本文提出了一种基于深度学习的远程视频监控异常图像检测算法,结合视频差分图和卷积神经网络,先对视频差分图像进行标准化,然后利用自行设计的卷积神经网络提取特征及下采样,最后对监控视频进行分类检测。实验结果表明,该方法相较于传统的单一异常检测,不仅在检测性能上得到了整体的提升,而且可同时检测出多种异常,模型预测值更接近真实值,可有效避免人工提取特征的麻烦,更好地应用于安防监控领域。在下一步的工作中,应该考虑将视频中的动作识别方法[14-16]引入监控摄像头异常干扰识别,在达到更好的分类识别效果的基础上,研制出能够高速处理海量视频数据的端到端异常检测系统。