胡旦华,刘燕萍,张宇晴
(1.中国电建集团福建省电力勘测设计院有限公司,350003,福州;2.同济大学浙江学院,314051,浙江,嘉兴;3.福建师范大学数学与信息学院,350007,福州)
随着数字孪生技术的智能化,以及虚拟现实与可视化技术的飞速发展与应用,人们开始通过数字模型信息表达现实世界,满足对现实社会的深度感知。视频监控在当今社会日常生活中发挥着关重要的作用,被广泛应用于城市安全发展的各个领域[1]。随着相关软硬件技术的发展,监控处理技术也经历了多次变革。20世纪90年代初期主要以模拟监控视频信息处理技术为主,信息存储与检索不便,视频信息的提取和检索完全依靠人工处理。到20世纪90年代中期开始出现数字监控技术,模拟信号数字化使得存储效率和处理能力大大提高,此时监控图形系统都是独立的,缺乏信息共享和传输机制。近年来,随着高速网络技术的发展和普及,信息传输和共享都实现了数字化,存储和处理变得更加方便。互联网+时代和5G技术的发展更为监控传输和处理技术提供了速度和质量保证,基于高速传输的网络通讯、数字图像处理和人工智能技术使监控系统智能化发展成为了可能。从日常生活和个人家庭到国家安全和社会治安,监控系统为城市安全、社会管理等提供了不可或缺的安全保障。图1所示为实时视频监控与虚拟三维场景的结合效果。
图1 虚拟三维场景实况监控投影
伴随着越来越多的监控系统组建和联网,随之而来的是海量的视频图像数据处理。海量数据的分析给相关业内人员带来了较大检索难度和工作强度。由于手工查找处理速度慢,且随着工作强度和时间增长,容易导致信息的遗漏和错误。计算机视觉影像处理技术在序列监控视频影像中的应用成了研究的新动向。通过图像处理、模式识别、人工智能等技术,对监控系统中采集到视频图像进行处理和分析,减少枯燥繁重的体力劳动,得到人们所需要的监控信息[2]。
一般情况下在监控影像视频系统中主要关注和研究的对象是运动目标提取和跟踪,如行人分析、车辆提取和跟踪等。通过图像分割、变化检测、模式识别等方法,提取目标的颜色、形状等梯度特征,协助分析识别分类目标物体,指导做出准确的规划和判断等。现阶段的视频监控系统中,目标检测及运动分析主要应用在公共安全场所、电厂电站企业的安全监控、道路车辆违规检测、交通路口车流和人流监测,公安军事等方面。对于变电站的安全监控,通过提取运动目标,可对一线工人的作业路线、电网安全运营等进行安全预警,为国网安全运营做出保障。对于军事领域,随着军队现代化建设,目标检测与跟踪已被应用与无人机侦察、精确制导等方面。综上所述,研究虚拟三维场景系统中的实况监控投影及运动对象的检测对于变电站的安全运营具有重要的应用价值。
基于视频序列影像的运动目标检测即将运动物体从视频帧序列中分割出来,通常情况下,除了进行目标前后景分割处理,还需对分割出来的前景区域进一步进行形态学分析,得到更加准确的目标区域。当前常用的前后景分割算法有帧差法、光流法、减背景法。背景提取与更新主要分为非模型法和模型法两类。非模型方法有时间差分法、时间中值滤波法等,即根据已有图像序列,通过一定规则为每个像素设置一个背景值。模型方法包括线性预测法、混合高斯模型法、非参数模型法、基于纹理特征的方法等,即通过建立逐帧像素的对应模型,根据其参数变化的影响分析实时更新背景图像。Friedman and Russell[3]首先提出了基于混合高斯模型的方法,该模型用3个高斯分布混合表示背景、前景和阴影来表示每个像素点,采用EM(Expectation Maximum)算法对相关参数进行更新达到了图像的分割。Stauffer[4]提出多个高斯分布混合建模处理复杂的背景变化,先用K均值法对每个像素建模,然后将所有K个分布按照各自的权重或者方差大小降序排列,选取满足一定规则的前B个分布来表征背景分布,该方法执行效率较低。Oliver[5]基于本征函数的方法取得了较好的效果,简化了算法的复杂度,提高了算法执行的效率。Elgammal[6]构建了无参数的背景模型,建立了相应的数学函数分析模型,提高了算法的稳健性。Marko[7]提出了基于纹理特征建模的算法,建造级联分类器进行目标识别,成功应用于人脸检测和监视环境中行人的检测。Kaewtrakulpong[8]提出了一种运动阴影检测的自适应混合模型,该方法可有效提取阴影区域的运动跟随目标。比较而言,非模型方法运算简单但背景图像不准确,模型方法背景准确但运算复杂。Papageogiou[9]采用类似于Haar小波的算子对图像区域进行密集编码,使用不同方向、区域内的Haar小波系数的绝对值进行局部特征的描述,可以有效用于检测行人和车辆。Shashua[10]则采用了SIFT 特征,使用Adaboost训练分类器进行行人的检测。Dalal and Triggs[11]提出HOG特征检测算子用在图片行人检测中,并使用SVM支持向量机进行训练和分类,其中每个图片的HOG特征包含多个单元,每个单元累加特定方向的梯度值投票,计算出描述子后,在高维连续HOG向量上训练SVM分类器,此方法需要足够的训练样本。如图2所示为HOG检测算法实现的人员信息提取。
(a) (b) (c)
Maji[12]用不重叠的多分辨率的HOG描述子和基于Lazebnik[13]提出的空间金字塔匹配核的直方图相交核SVM对这些最好的结果进行了改进。Jie[14]提出韦伯特征,通过视觉上的韦伯定理引用到图像处理领域而来,由差分激励和核方向2个部分组成,对明暗变化和噪声干扰有一定提高。Wu[15]提出通过面向形状的局部图像特征,用于检测和分割图像中被遮挡的对象。随着卷积神经网络[16]在ImageNet大型视觉识别挑战上取得的成功,越来越多的研究人员将视觉提取类的算法应用于图像识别[17]、语音识别等各个应用领域,其展现的效果和性能也达到了一定的目标。
不同系列的摄像系统具有不同的底层架构,相关摄像头的开发与调用依赖于其SDK开发包,根据其介绍和功能,下载并配置SDK开发包。遍历相关描述文件,并在Visual Studio 2017中打开或创建C++项目文件,在属性管理器中配置C/C++包含目录及链接器附加库目录,将目录链接到SDK开发包的头文件及库文件对应文件夹中。
网络库:基本通讯架构之一,该库主要支持不同端口设备之间的协议通讯,同时具有支持和协调远程调控,设置相关协议参数和码流数据等功能。
RTSP库:作为通讯协议代码的基本支撑库,通过RTSP掩码可以有效支持传输协议的完成,当需要对设备的影像进行读取、存档、下载等操作时,必须加载和设置RTSP掩码进行协议通讯。
转封装库:可以完成2种不同意义上的工作。一类是通过转封装库进行码流的转换,将标准码流转换为设备可读取的码流格式;另一类是基于协议标准,将标准码流通过转义封装成为第3方格式码流,通过RTSP协议读取、下载等操作时,必须通过转封装库进行不同格式码流的转换,以实现流运算。
语音对讲库:用于语音对讲时通过声卡采集数据并按照指定的编码格式编码码流或者解码播放音频码流数据(不带封装格式的码流数据)。Windows64位或者Linux系统下无语音对讲功能。
字符转换库:基本运算转义符操作支撑库。主要用于字符集的转换。根据SDK内部字符的编码标准,根据协议需要,通过libiconv库进行不同字符集的转换。转换过程中,需要采用libiconv库的编码协议进行接口设置,以便于SDK的字符处理。
帧分析库:用于分析视音频帧数据,调用NET_DVR_SetESRealPlayCallBack、NET_DVR_SetPlayBackESCallBack设置裸码流回调函数等接口时,必须加载该库文件。
播放库:码流运算基本库之一。基于一定的解码和编码原则对序列影像进行逐帧记录和编码,同时采用句柄方式进行码流数据的索引和处理。
在虚拟场景中实现即时场景的监控数据导入,首先需要初始化SDK开发包,根据其网络通讯库和RTSP通讯库设置服务器的IP地址、消息回调函数和连接时间,实现虚拟场景和视频影像的通讯。通过注册用户设备,可以实现视频影像的预览、回放和下载,同时基于相关调用机制实现视频影像的处理和分析。SDK调用实现监控视频显示及2次开发的主要流程如图3所示。
图3 SDK调用基本流程
从SDK调用的基本流程可以看出,实现视频数据的即时通讯,必须进行SDK的初始化,同时根据设备的RTSP进行注册,在完成相关的操作处理后,还需设备的注销和相关SDK资源的释放。在上述操作中,初始化是完成网络资源的预分配,通过设置相关内置时间参数,可以完成相关连接超时和网络超时检测。同时,由于SDK内部架构采用异步调用模式,通过设置异常消息的回调函数,可以有效处理在此阶段的异常信息。对于用户注册设备,主要是实现相关协议参数的核对,通过注册可以调用SDK基本库的所有功能模块。对于其相关子模块,本文只调用其预览和下载模块。从前端设备取实时码流,解码显示以及播放控制等功能,同时支持软解码和解码卡解码,由启动预览、实时流数据捕获和录像、停止预览3个部分组成。通过设置预览接口中预览参数的播放窗口句柄为空值,并调用捕获数据的接口(即设置NET_DVR_RealPlay_V40 接口中的回调函数或调用接口,获取码流数据进行后续解码播放处理)。
混合高斯模型,相对于单高斯模型只能描述单模态背景的缺陷,其对背景复杂且动态变化的多模态形式能够进行更加准确的描述,增加了其在实际应用中的适用性和稳健性。在真实世界的场景中,许多背景都是动态的、复杂的、交互的,例如室外的光照变化、树叶的摆动等,这些背景都处于动态的变化中。混合高斯背景模型通过对图像中的每个像素点赋予一定的权重并建立k个高斯分布,采用k个高斯分布的加权和结果估计样本的概率密度分布,该方法对运动物体的检测和对背景模型的更新同时进行,计算中利用新的图像帧对背景进行实时更新,使得其背景运算模型更加接近真实场景。多维正态分布概率密度函数如公式(1)所示:
(1)
式中:∑表示模型协方差矩阵。混合高斯背景模型可写成公式(2)形式:
(2)
式中:P(x)表示混合高斯模型;Ck表示混合高斯模型中第k个高斯分布的样本,可以表示为(μk,θk);wk表示第k个高斯分布在该高斯模型中所占的权重比例;N(x|Ck)表示模型中第k个高斯分布。
假设某一像素的值的变化在一段时间内是连续的,可有如下表示:
{X1,X2,…,Xt}={I(x0,y0,i):1≤i≤t}
式中:t时某像素可用Xi表示,I(x0,y0,i)表示此时图像坐标(x0,y0)处的像素值。对图像中每一个像素建立k个高斯分布,k一般为3~5。混合高斯模型的公式如下所示:
(3)
式中:p(Xt)表示像素X的混合高斯模型;第i个高斯分布在时间t的权值、期望、模型协方差矩阵分别用ωi,t、μi,t、∑i表示;η(Xt,μi,t,∑i,t)为针对像素Xi的单高斯分布函数。
对于m×n的背景模型图像分辨率,则其需要初始化的高斯分布数为m×n×k。并通过公式(4)对背景模型中各个高斯分布的权重、期望和方差进行实时更新维护。
(4)
使用稳健混合高斯模型进行运动目标检测时,需要计算各个高斯分布的方差并对其进行降序排列,选择排序靠前的几个高斯分布作为真实背景模型的分布。在排序之后的k个高斯分布中选取前B个分布组成背景模型,其中B遵循公式(5):
(5)
式中T为预先设定的参数阈值用于判断是否接受成为背景模型。本文计算中根据概率分布确定其取值范围为0.7~0.75。检测运动目标时,若图像中某一个像素能满足前B个分布中的任意一个高斯分布,则判定该像素属于背景,否则属于前景,即运动目标。
本次实验的环境为Visual Studio 2017+OpenCV3.4.5,运行计算机配置为Intel® CoreTMi7 CPU @ 3.70 GHz及16 GB内存。实验所用视频分辨率为960×540,帧速率为24.00 帧/s。在测试用环境变量中配置系统变量,添加OpenCV链接库下的相关文件,然后将bin目录下的dll动态链接库文件拷贝到系统目录system32中。打开Visual Studio 2017并新建项目文件,在属性管理器中配置VC++目录中的包含目录和库目录,并在链接器附加依赖项中添加lib文件名称。
分别使用GMM和帧间差分法对同一段变电站工作区内的监控视频做前后景分割测试。图4为使用基于GMM的减背景法进行前后景分割检测并通过形态学处理分割结果,速度为18~20 帧/s。图5为使用帧间差分法进行前后景分割并通过形态学方法处理分割结果,速度为15~18 帧/s。图6所示为针对相同帧不同方法的检测结果对比。
(a)原始帧 (b)前景部分二值图像
(a)原始帧 (b)帧差结果
从测试结果可知,2种方法处理视频的速度均可满足实时处理的需求。由图4与图5的算法提取分析可以得出:1)无论是GMM或帧间差分法,都能成功检测到监控视频中的运动目标,而分割结果经过形态学处理后,在填充空洞、凹陷及断开粘连目标上都有着明显提高;2)对于较小的运动目标,2种方法均可准确将其从背景中分割出来,而当运动目标为较大物体时,帧间差分法则由于检测的内部空洞等原因将同一物体分割为细小的碎块,分割准确度不如基于GMM的减背景法。图6分析对比也验证了以上两点,同时帧间差分法存在当几个运动目标之间距离近时,存在被误判为同一运动物体的可能。由实验结果可知,基于GMM的减背景法在前后景分割的实验中,分割结果的准确性优于帧间差分法,且检测速率也满足实时处理的需求,故可应用于监控视频运动目标实时检测。
图6 对比分析,左为基于GMM的减背景法,右为帧间差分法
使用基于GMM的减背景法进行监控视频运动人员实时计数实验,如图7所示。此处选用非密集人流的道路监控视频,视频共722帧,前50帧用于初始背景模型的训练,后672帧进行计数并人工检测和统计结果。
图7 监控视频运动目标实时统计
每2帧检查一次并记录,最终记录数目翻倍来表示统计结果,如表1所示。可知完全统计正确的帧数为542帧,准确率为80.6%,且在统计有误的帧中,约有2/3人员计数误差为±1人。
表1 运动人员实时计数实验结果
根据上述实验,基于GMM的减背景法的运动目标检测与统计结果有着较好的准确性与鲁棒性,可应用于背景变化较小、人员运动简单的场景动态人员检测。
在虚拟场景中投影监控视频可以有效实现虚实结合,基于视频信息的分析和提取是智能化安全保障的前提。如何对投影的监控视频进行目标信息提取是当前研究的一个重点,对特殊的场所如变电站、发电厂等具有重要的应用价值。本文通过讨论国内外的研究现状,详细介绍了在三维虚拟场景中调用监控视频的方法,同时针对获取的视频监控,通过采用混合高斯背景模型实现了视频内部运动目标的准确提取,通过和其他方法以及实际场景的比较,证实了GMM方法的准确性和稳健性。