刘智慧,周 媛,苗耀锋
(西安外事学院 现代教育技术中心,西安 710077)
近年来,数字监控设备的普及使得所需储存的数字视频内容大量增加,从这些视频内容中分析取得重要的信息与事件将依赖于视频处理的技术:人脸识别、车牌识别、对象检索及移动检测等技术。由于视频处理运算的复杂度是相当高的,有此需求的个人、商家、公司或政府等单位,都要花费很大的成本去购置高性能的设备来进行复杂视频处理运算。而云计算平台具有并行化运算及集中式资源共享的特性,刚好可以解决这样的问题[1]。如何将视频处理模块进行云端化的架构及流程即是本文探讨的主要问题。
要将视频处理模块功能整合到云端平台中,可采用下列三种方式:1)视频处理模块直接执行:等同于在单台个人计算机执行一支视频处理程序,无法有效利用云端资源。2)替原本的视频处理模块,重写工作分配程序:在租赁的多台虚拟主机上,自行重写Client/Server程序及负载平衡机制,来分派视频处理工作到这些主机上,并以Socket方式进行虚拟主机间的沟通。3)使用某种PaaS的平台,利用它提供的框架,修改视频处理算法:例如使用Hadoop,利用Hadoop提供的应用程序开发接口,采用如Java/C/C++语言修改既有的视频处理模块,以实作Hadoop的MapReduce机制。
图1 云端视频处理平台的系统架构与运行流程
本论文以Hadoop并行化架构为基础,着重PaaS层的中介平台开发,开发一套云端视频处理平台来作为视频处理与云端平台的媒介。
我们提出的平台架构及其运作流程如图1所示,系统的前端用户接口采用GWT工具[2]所开发,是一个网络桌面系统。系统主要包含三个功能:1)Web Server;2)Hadoop;3)VA Server。Web Server服务器端程序采用GWT工具开发,主要将前端用户所传来的视频分析要求和参数转送给Hadoop系统。Hadoop系统主要分为二个部份,第一部份是MapReduce,主要是处理分布式并行运算;第二个部份是HDFS,用来进行分布式储存和备份系统的数据及分析结果。VA Server安装有多种视频处理模块VA-1,VA-2,…,VA-N,当它接收到VA Client所传送过来的task时,会利用VA loader加载需要的视频处理模块,然后由Processor模块进行分析,再将分析的结果回传给VA Client,然后由VA Client直接将分析结果写入HDFS。
接下来,我们将介绍整个系统的运作流程,每个流程都用带括号的数字表示。
使用者利用前端网络桌面系统的使用者接口来启动某个云端视频处理应用程序,并输入需要的分析参数,这个request将被传送给后端的Web Server。
1)Web Server依据request的需求,自动产生Hadoop系统执行所需要的input config files,然后将input config files储存在HDFS,以供Hadoop MapReduce platform使用。
2) Web Server开始启动Hadoop系统的Map-Reduce程序。
3)由HDFS读取需要的input config files,针对requested job的MapReduce运作,作需要的配置,并且将此job分割为许多较小的tasks,然后分散到TaskTrackers,然后每个TaskTrackers再传送task给自己的VA Client模块。
4)VA Client模块将此task,传送给自己的VA Server。
5)VA Server根据task的参数,读取要分析的live/stored video sources。
6)VA loader加载要使用的VA模块,然后Processor开始对接收到的视频进行分析,再将所得到的分析结果,回传给VA Client。
7)VA Client将分析结果写入HDFS。
8)Web Server周期性去读取储存于HDFS的分析结果。
9)Web Server将分析结果回传给前端网络桌面系统的使用者接口来显示。
图2 车牌识别系统流程图
本文的车牌识别方法主要有三个步骤:车牌定位、字符切割与字符识别,个别模块分述如下。
1)车牌定位:采用垂直方向的影像梯度做前处理,利用预先设定大小的移动窗口快速扫描整张影像,同时利用统计的车牌样本的边缘密度、长宽比、最小长宽等信息,检查扫描区域是否为影像中的车牌候选区域。
2)字符切割:字符切割采用X-Y切割的方式[3],首先针对车牌候选区块做X方向扫描以定出字符区域的最高及最低的水平位置。接着对Y方向进行扫描,以车牌候选区块的1/6高度为搜寻区域,找出垂直灰阶投影的区部峰值,并针对峰值间以最符合字符区块长宽比为原则进行区块合并。
3)字符识别:步骤2)求得车牌字符后,将每个字符影像进行正规化,并撷取局部特征为Zone、Cross、Histogram和Profile等四大类。
我们使用了八台e-Box主机(Atom 1.8GHz)来构建一个小型的实验性云计算平台,我们的云端视频处理系统安装于此云计算平台。在前端的行动摄影机部份,此行动式摄影机可通过3G/WiMax/WiFi的无线网络上传实时取得的影音信息到中央服务器组以进行视频及分析。我们的云端视频处理平台,将针对行动式摄影机取得的实时影音数据流,作并行化的视频处理运算,来验证此云端平台的可行性及有效性。
在网络桌面系统的实作部份,我们使用了Ext GWT[4]来加以实作,Ext GWT是一个以GWT为基础的因特网应用程序框架,可帮助程序设计者快速开发GWT的使用者接口。如图3所示,是我们的前端网络桌面的画面,为了同时分析四个行动式摄影机所传送过来的实时影像,我们同时开启四个分析窗口,当开始车牌识别分析时,这些分析要求会被传送给后面的云端视频处理平台,然后将这些分析工作,分散给不同的云端主机进行运算,最后再回传结果并显示在前端的应用程序窗口,如图3的(1)所显示的车牌号码6797QD,即为视频中所行驶的车辆所挂的车牌号码。此外,我们的网络桌面可实时显示目前每个云端主机的CPU使用率,来观察每个云端主机目前的负载情况,如图3的(2)所示,并证明分析工作有被分散到多个云端主机上,所以每个云端主机的CPU使用率都很低,表示分析工作并没有集中到同一个云端主机,而造成某个主机过高的CPU使用率。
我们使用了八台e-Box主机来测量车牌识别的执行时间,来观察多台主机并行化视频处理的效能。总共的执行时间(Total Time)分为:
1)从储存装置读取要分析的影像数据,然后通过网络传输到云端主机的时间(Query Time);
2)将识别出的车牌号码通过网络传输,写入到储存装置的时间(InsertResult Time);
3)作车牌检测及识别的时间(VA Time)。
本次实验总共测量处理1000 frames所需的时间,frame的大小为352×240,并且每张frame都具有车牌,所以每张frame都会被检测并且识别出正确的车牌号码。Query Time和InsertResult Time在不同的云端主机个数的实验结果如图4所示,VA Time和Total Time在不同的云端主机个数的实验结果如图5所示。如同所预期的,当可以并行作车牌识别的云端主机个数增加时,InsertResult Time、VA Time、Total Time都随之减少,尤其是占最大比例计算时间的VA Time,当主机个数呈倍数增加时,VA Time即呈倍数减少。
然而,Query Time却没有随着主机个数的增加而减少,这是因为受限于网络的频宽,存取影像数据的I/O速度和主机间互相竞争存取网络和储存装置所导致,即使有多台主机的并行化处理,仍然无法减少Query Time。当主机个数增加到3台时,是能够减少Query Time的,但是当主机个数过多时,由于大家同时竞争存取网络和储存装置,而导致Query Time小量增加。然而这个问题应该可以通过增加云端平台局域网络的频宽及使用高速且分布式的储存装置来加以改善。然而,Query Time只占了整体执行时间的一小部份,因此并不会严重地影响到执行的效能,整体的执行时间仍然依赖于VA Time,当视频分析的主机个数增加时,确实大量地减少所需要的VA Time来提升效能。
本论文提出了一个云端视频处理平台,可通过云端化的程序及流程将视频处理模块整合到云端平台上,以进行有效率的并行化运算。对于需要云端化视频处理平台的公司而言,如保安公司,此平台可简便地云端化即有的视频处理模块。对具有大型云端主机出租的供货商,如中国电信、中国联通,此平台可为供货商提供的云端硬件资源,构建应用程序云端化的架构。对制造视频处理模块的厂商而言,可让设计者不需要考虑云端化应用程序设计实作的复杂度,仍然用原来的概念及方式来编写应用程序。
图4 Query和InsertResult Time的执行时间
图5 车牌识别时间(VA Time)和总执行时间
[1]祝家钰,肖丹,等.云计算下负载均衡的多维QoS 约束任务调度机制[J].计算机工程与应用,2012,25(3): 90-95.
[2]曾谊晖,鄂加强,等.基于Berkeley DB和GWT的对象持久性研究[J].微计算机信息,2011,27(2):195-150.
[3]王睿,李斌,等.基于形状上下文识别算法的车牌识别研究[J].计算机仿真,2011,28(11): 343-345.
[4]胡晓红,付永军,等.基于策略的Web服务安全解决方案研究[J].微计算机信息,2008,16(3): 93-94.