基于Spark的人脸检测并行处理系统

2016-05-30 09:45武志平
水能经济 2016年12期
关键词:计算机应用技术

武志平

【摘要】在视频监控领域数据量显著增长的背景下,基于Spark搭建一套分布式视频监控系统变得十分必要。本文提出了基于Spark并行运行人脸检测算法的方法,并且基于Spark搭建了一套分布式人脸检测视频监控系统,并进行了性能测试。实验结果表明,基于Spark的分布式视频监控系统使人脸检测的处理效率有了较大提高。该系统可以应用于安防、金融、大型考试管理等领域。

【关键词】计算机应用技术;Spark;分布式人脸检测

引言

人脸识别是基于人的脸部特征信息进行身份识别的一种技术。目前在安防领域、金融领域、大型考试管理等领域都部署了用于身份识别的摄像头,如果能在数据中心部署搭建基于第二代大数据处理平台Spark的分布式视频监控系统,接收这些摄像头传输的数据,并行处理其中的人脸信息,会对处理效率有很大提高。

1、系统组件及总体架构

1.1 系统组件

1.1.1 Spark

Spark是第二代大数据处理平台,效率比原先的Hadoop MapReduce有较大提升。Spark尤其适合于迭代式数据处理和流式数据处理,而视频数据即为流式数据,也有相对应的许多用于视频处理的机器学习算法,所以从理论上来说,Spark非常适合于处理视频数据。Spark的实现语言是Scala,因为Scala编译器可以将Scala程序编译成JVM上运行的字节码,所以这种语言可以和Java进行无缝衔接。

1.1.2 JavaCV

JavaCV是利用Java的JNI技术对OpenCV封装后的一个开源视觉处理库。目前里面集成了OpenCV、FFmpeg等常用的图像和视频处理库。因为图像和视频处理的相关算法一大部分都是用C++语言实现的,而Spark大数据处理平台和Yarn资源管理平台上运行的代码均需要用Java语言进行编写,所以JavaCV可以说是将两种语言结合的桥梁。

1.2 系统总体架构

本系统底层仍然采用Hdfs存储数据,其上使用基于分布式NoSQL数据库Hbase的存储系统存储视频数据和算法输出结果,其中算法输出结果可能为视频、图片或文本。存储系统之上的数据处理平台采用Spark,Spark上搭建了JavaCV用于处理视频数据。数据采集方面直接通过IP连接网络摄像头,接收摄像头传输过来的数据。

2、人脸检测算法并行化处理流程

2.1 基于JavaCV的人脸检测算法处理流程

基于JavaCV的人脸检测算法使用了Haar分类器,它使用Haar-like特征做检测,使用积分图对Haar-like特征的求值进行加速,以提高检测速度,它是一系列强分类器的级联,形成决策树,可以提高检测的准确率。

JavaCV所实现的人脸检测算法处理流程如下:

1)将RGB帧图像转化为灰度图,并将图片缩小,以便于提取和对比特征;

2)加载已训练完成的Haar分类器;

3)通过积分图对比图像的特征值,从而检测出人脸,并用矩形框标出检测结果。

2.2 人脸检测算法并行化处理流程

本文中实现的系统可以通过Spark Streaming程序实现同时接收不同路的摄像头传输的数据,并对其中的人脸信息进行处理,并行运行人脸检测算法,从而提高人脸检测效率。本系统从网络摄像头中取得视频流,通过分布式解码取得帧图像,之后构造二元组,每个二元组在Spark Streaming中即为一个RDD,其中Key可以唯一标识一个摄像头传输数据中的一帧图像,可以是本地摄像头的设备号或者网络摄像头的IP结合帧号標识,Frame表示该路摄像头传输的视频帧数据,可以是BufferImage类型或IplImage类型。Spark Streaming程序读取该二元组,通过继承实现的接口取得帧图像,之后即可运行相应的人脸检测算法,最后可以将算法的输出结果存入到存储系统或者展示到前台页面。

3、实验及结果分析

实验将程序运行时间作为因变量,输入视频文件的数量作为自变量。输入视频文件格式为mp4,每个时长约为12s,大小约为1MB。实验结果如图1所示。可以看出,人脸检测程序运行时间随Spark集群节点数增加而减少。如果集群能添加更多节点,则可以推断出程序运行效率会进一步提高。

4、结论

本文提出并实现了基于Spark的分布式视频监控系统,通过该系统可以接收多路摄像头传输的数据,并且并行运行人脸检测算法。本文主要研究了人脸检测算法在Spark上的并行化实现,并将该算法在由3台服务器组成的Spark集群上运行,并进行了性能测试。实验结果表明,基于Spark的分布式视频监控系统使人脸检测的处理效率有了较大提高。

该系统可以在安防领域(例如机场、车站、码头等)、金融领域(例如ATM自助终端、银行柜面系统、电子支付等)、大型考试管理等领域部署应用,在视频监控领域数据量显著增长以及人脸检测广泛应用的背景下,对提高算法处理效率具有重要意义。

参考文献:

[1] 黄凯奇,陈晓棠,康运锋等. 智能视频监控技术综述[J]. 计算机学报,2015,38(6): 1093-1118

[2] Shalince Dominic,C. Aparna,Aswin S Nath,et al. A review of face detection system[C]. 2016 International Conference on Electrical, Electronics, and Optimization Techniques (ICEEOT),2016,3536-3539

猜你喜欢
计算机应用技术
基于JavaScript技术在最小二乘法拟合上的实现
计算机应用技术对企业信息化的影响
计算机应用技术对企业信息化的影响研究
计算机应用技术在高职院校学籍管理工作中应用策略
计算机应用技术对企业信息化的影响
计算机应用技术学科建设实践与发展探讨
计算机应用技术专业应用现代信息技术组织教学的工作综述
计算机应用技术与企业信息化建设
基于项目课程的计算机应用技术专业人才培养方案设计