陈明
(成都广播电视大学 四川成都 610051)
面向云计算的视频监控人脸识别模型
陈明
(成都广播电视大学四川成都610051)
视频监控系统的广泛使用,使得在大范围跨平台利用海量的视频数据去查找犯罪信息成为关键问题。文章在讨论云计算具有高性能计算能力和海量存储能力的基础上,提出了将大范围的视频监控系统中的人脸识别这个难题使用云平台来解决,并由此设计出面向云计算的视频监控人脸识别模型。
云计算;视频监控;人脸识别;模型
目前,随着电子技术、通讯技术、信息处理技术的高速发展和社会稳定的需要,许多重要的场所都安装了视频监控设备,这为人们在处理安全事件时提供了最直接的现场证据。但是,目前很多单位的监控系统都是独立的,只能在一定的范围内查找或跟踪,在遇到需要跟踪识别目标时,由于摄像头覆盖点位少、范围扩展窄(如大到整个城市,细小到一个单位或者一个很小的住宅小区),要寻找一个人,需要协调多个单位,浪费大量的人力物力,使系统的处理滞后,从而导致跟踪或识别的失败。
所以,在此情况下,局部单位的摄像机不能很好地发挥识别和跟踪的作用,我们需要协调并整合这些摄像机,从而达到协作监控以及视频跟踪的目的。
由于视频监控的特殊需要,画面质量需要不断提高,并且视频线路也在不断增加,这些因素在导致视频监控系统的存储容量成倍增长的同时,也增大了系统的处理需求。特别是海量的视频数据的识别处理,这远远不是一台或局部服务器群集的处理能力所能承受的。
将云计算的高性能处理能力和海量且廉价的存储引入到视频监控系统中来,有利于实现大范围内进行视频监控人脸识别和跟踪。
2.1什么是云计算
云计算作为继服务计算和网格计算之后的一种新的计算模式,正逐步被人们认可接受。在远程的数据中心,千万台电脑和服务器连接成一片电脑云,可以提供海量的存储能力和超强的计算能力,并具有高度的可扩展性。用户通过电脑、手机、其他智能终端等方式接入云计算,就可以按自己的需求进行存储和运算。
对云计算的定义,不同单位或社会组织有所不同。如:IBM公司在2007年的技术白皮书中对云计算定义这样描述:云计算一词用来同时描述一个系统平台或者一种类型的应用程序。一个云计算的平台按需进行动态地部署(provision)、配置(configuration)、重新配置(reconfigure)以及取消服务(deprovision)等。IDC的云计算定义为:云计算是一个新的IT开发和使用模型,它可以通过互联网实时地提供需要的服务(产品)和解决方案[1]。
这些对于云计算的定义中,包含两个方面:一方面描述了基础设施,是用来构造上层应用程序的基础;另一方面描述了建立在这种基础设施之上的云计算应用。云计算是从网格计算、集群技术以及超级计算中继承和发展而来的,拥有比它们更高的灵活性和更强的处理计算能力。它是能够提供动态资源池、虚拟化和高可用性的下一代计算平台(见图1)。
图1 云计算的技术结构
通过这些技术手段,云计算具备高可扩展性和高可用性。可扩展性表达了云计算能够无缝地延伸到大规模的集群之上,甚至包含数千个节点同时进行处理。高可用性代表了云计算能够容忍节点的错误,甚至有很大一部分节点发生失效也不会影响程序的正确运行。
2.2云计算和视频监控人脸识别的结合
在本模型中,前端系统配备摄像头和视频服务器,通过摄像头进行视频的采集,采集的视频数据可以直接发送到云计算系统中,也可以通过视频服务器进行处理。一般情况下,本模型将图像处于变化中的数据实时发送至云平台,普通的录像数据保存在本地,不发送至云平台,然后这些数据通过云平台进行处理,最后实现识别的目的[2]。
布置在远端监控终端能够实时地请求需要监控视频数据,这些数据可以由云平台实时提供,也可以由云平台请求具体的视频服务器提供,然后再转发至监控终端。在识别请求时,由云计算平台的虚拟计算对被监控的某一区域的视频数据进行识别计算。对使用该系统的用户而言,他只需要与云计算平台联系,包括视频的监控、被监控现场的特定目标识别和跟踪。
本模型的视频监控数据存储在本地,变化数据发往云平台,从而保证了本地和远程的冗余,即使网络断开也不影响本地的使用。
在视频监控系统中,若有必要去跟踪或寻找某一个人,则在海量的摄像头和摄像数据面前,需要的是海量的计算和存储能力,普通且单一的服务器计算显然已经不再适合[3];在云计算平台中,云计算提供的低成本、高性能计算能力和海量存储能力的特点为海量的视频数据处理上提供了新的思路。
在云计算平台中,通过对云系统的存储资源进行统一整合管理,为用户提供一个统一的存储空间。在视频数据存储方面,面对PB级的海量存储需求,云计算这种新型的服务模式要求存储架构保持很低的成本,这是一种高效的集群存储技术,不仅突破了SAN的性能瓶颈,而且可以实现性能与容量的线性扩展,满足视频取证监控系统的需求。
云计算平台提供强大的计算能力,这得益于它的计算虚拟化技术。它将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,或者让几台服务器变成一台服务器来用。硬件资源不再受限于物理上的界限,而是让CPU、内存、I/O等硬件变成可以动态管理的资源池,从而提高资源的利用率。资源池的动态更新变得容易,可以随时增加成千上万的服务器。
3.1面向云计算的视频监控人脸识别的系统架构
随着视频监控技术的发展,视频监控系统已经由最开始的模拟摄像机发展到现在的网络摄像机,模拟摄像机的分辨率不高,需要的存储量相对较小,但是网络摄像机一般都是高清像素,需要很大的存储空间,更需要高性能的计算能力,如果要全局的处理联动跟踪,小型的存储和单一的服务器基本无法实现,所以需要使用当前最新技术——“云计算”来处理[4]。
由于视频监控系统厂家不统一,存储方式和摄像机也截然不同,故我们这里做出如下假定:
假定1:模型中任何一个单一的监控系统都具有移动侦测能力,一旦图像有变动那么就主动传送至云平台。
假定2:在模型中的每一个视频服务(包括DVR、和单一的带视频服务的摄像头以及其他一些视频服务)都能主动和被动向云平台发送移动侦测视频流和某一段历史时间的视频流,同时也能够发送实时视频流数据至云平台,但其大部分录像仍然保存在本地,以弥补网络带宽不足或网络断开的缺陷。
假定3:模型中,每一个和云平台相连的设备都具有足够的网络带宽。
基于假定1-3,我们给出模型图(见图2)。
图2 模型结构图
图2中,模型主要分为4大模块,即:云计算平台、管理终端、前端监控系统端、用户终端。云计算平台用于存储和匹配计算;管理终端用于管理系统的用户、权限、资源使用情况、接入等;前端监控设备为系统提供录像资料;用户终端是监控系统的直接用户、服务的受益者。
3.2基本结构的定义
为实现图2中的模型,我们需要对系统中的摄像机数据、源人脸图像、目标数据等做出定义。
定义1:源人脸图像匹配数据结构
我们设Sp为源图像数据,定义源图像数据结构如下:
T=Ticket,为源图像进入云平台时,为其分配的识别序号,具有唯一性。
P=Picture,为源图像数据,包括图像数据和图像格式信息。
Ts为源图像进入云平台时的时间。
Te为识别成功的时间。
S为识别成功与否的标志,成功为True,失败为Fa1se。
A为最后一次识别成功的地址。
定义2:视频摄像机的数据结构定义
视频服务为视频数据的提供者,一个视频服务可以包含一个或多个摄像机数据,系统中数量庞大的摄像机需要进行区分,这就要求对摄像机和视频服务器进行编码定义。
设Cb为摄像机编码,定义为:
Cb={XXXX(国际区号)XXXX(国内区号)XXXX (县或区编号)XXXX(保留位再细分)XXXXXXXX}
……(2)
系统编码设计时保证编码的唯一性,不足位的,前面加0;假如是在中国(0086) 成都(0028)成华区(0001)的某一处摄像机,那么其编码就为Cb={008600280001000000000001}。
设Cs为摄像机数据结构,由此摄像机的数据结构定义为:
Cb为摄像机编码,结构见式(2)。
Ip为摄像机所在视频服务器的IP地址,一般为公共IP地址,如果出现私有IP地址,这台摄像机需要能够及时与之连接;当云平台请求该视频服务器的信息时,能够访问到该IP地址。多台摄像机可能会对应一个IP地址。
Time为摄像机安装时间。
Name为摄像机的名称,命名规则可以按照用途或地址命名。
Work为摄像机是否是处于工作状态,非工作状态包括维修、拆除等状态。
Demo为该摄像机的用户或其他信息备注。
3.3人脸识别算法设计
人脸识别是根据已有的人脸特征,在待识别的人脸图像中,找出最接近的图像。目前所利用的人脸特征一般为形状特征、灰度分布和频域特征三种。其中:形状特征包括人脸各主要部位的形状以及人脸各部位之间的相对位置;灰度分布特征将人脸图像看成一维或二维灰度模式,所计算出的不同灰度模式之间的距离就是整体的灰度分布特征;频域特征,即将人脸图像变换到频域后所作的特征脸分析,此时的特征即为频域特征[5]。
在对特定人物的视频取证,可能只能得到一幅图像,也就是要用单样本来进行人脸识别。人脸识别方法可以分为两类,即基于几何特征和基于模板匹配。在基于单样本的人脸识别方法中,主要有样本扩张法、特征子空间扩展法、通用学习框架法、图像增强法、神经网络法和三维识别法等。
这些方法中,侧重点不一样。比如:样本扩张法利用各种技术从原样本图像合成多个虚拟图像,扩张每类的训练样本数目,使单训练样本人脸识别问题变成一般的人脸识别问题。这种方法对解决表情变化的情况较有效,缺点是生成的这些虚拟人脸图像与原人脸图像高度相关,并不是真正独立的人脸图像。神经网络法的优点是避免了复杂的特征提取工作[6],以并行方式处理信息,能显著提高速度。三维人脸识别法在解决单样本人脸识别中相对有效,但三维图像的数据量和计算量十分巨大,对计算机硬件要求高。
利用云计算平台的强大计算能力,采用多种方法的结合,尽量减少由于姿态、光照等因素造成的识别率低的问题。为提高人脸识别的准确率,本文采用两步检测识别方法:
a)预识别利用前述的方法进行检测和识别。当识别相似度在某个阈值K1以上(该阈值K1可以自定义调整),立即启动精确检测识别功能,自动启动摄像机云台控制模块,调节到科学合理的位置,以便拍摄到更清晰的人脸等目标。
b)精确识别通过预识别后的一系列操作,可得到更清晰的人脸图像。然后对该系列人脸图像深度进行识别。如果出现与待识别目标的相似度小于阈值K2(阈值K2也可自定义为预先设定),则可判断该目标不是要跟踪的特定目标;否则,要取证的特定目标需要该目标判定,此时,立即启动目标跟踪模块和协同跟踪模块(见图3)。
图3 识别流程
(1)用户提交图像和识别范围——用户将需要识别的源人脸图像提交给系统,同时提交的图像可能存在多个,那么就需要进行队列处理,采用FIFO的方式,发送至图像处理模块;识别范围是指需要在某一个视频监控系统区域内对该区域源人脸图像进行比对识别,范围提交常规可参照前述定义2的编码方式,比如要对中国(0086)成都(0028)成华区(0001)这个范围摄像机数据进行对比,那么提交的范围就为:{008600280001},如果要有选择的对某几个范围进行对比识别,那么就采用集合的方式提交范围:{范围1,范围2,…}。
(2)图像特征处理—系统获得源图像和识别范围后,对图像进行特征处理,并将识别范围解析成为系统识别的每台摄像机,获取其编码集合提交下一流程;
(3) 资源分配—将资源分配成为n个小任务,分别将这些小任务提交给云平台,进行多线程处理;
(4)云平台—完成对图像的对比和视频监控图像的调用,最后生成对比结果;
(5)返回结果——结果是一个集合,一个由0个或N个低点和时间组成的集合。
云计算的研究和应用前景广阔。利用云计算的海量虚拟存储能力以及强大的虚拟计算能力,文章提出了一种新型的视频监控系统人脸识别技术的解决方案。布置在远端的用户端,只需要提交源人脸图像和识别范围,即可获得对比的数据和结果。但是,基于云计算平台的视频控系统中,以下几个方面还有待进一步研究:(1)将庞大的数据任由云平台实时调用,现有的网络带宽费用昂贵,且视频流量数据量大;(2) 视频信息的安全,确保监控的视频信息保存在云计算系统中以及在与云平台的传输过程中不被窃密或遭到破坏。而基于视频的实时人脸识别中,遇到人体姿态多样、现场光线昏暗等情况,将对识别的正确性造成较大影响,这也是下一步需要研究的问题。
[1]云计算的定义和特点.中国云计算网[EB/OL].http://www.chinacloud.en/how.aspxTid= 741&eid=17.(2009-02-15).
[2]陈康,郑纬民.云计算:系统实例与研究现状[J].软件学报,2009(5).
[3]张建勋,古志民,郑超.云计算研究进展综述[J].计算机应用研究,2010(2).
[4]彭召意,周玉,文志强.基于云计算的视频取证监控系统[J].计算机应用研究,2011(8).
[5]蒋建国,孙洪艳,齐美彬.基于mean—shift算法的人脸实时跟踪方法[J].计算机应用研究,2008(7).
[6]文志强.基于均值偏移算法的运动目标跟踪技术的研究[D].长沙:中南大学,2008.
[责任编辑何一辉]
G434
A
1008-7656(2015)04-0086-05
2015-10-09
陈明,成都广播电视大学助教,研究方向:计算机应用、网络安全。