武志平
【摘要】在视频监控领域数据量显著增长的背景下,基于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