视频监控大数据的关键技术和应用随着全国各地平安城市、行业安防等项目的大规模建设,视频监控在安防领域中发挥着越来越重要的作用,成为技术防范的最有力手段。而在新的技术条件和应用需求的推动下,视频监控将迎来系统融合和大数据的新时代,其产生的数据将会迅速地增长,如何从这些数据中获得有效的信息和服务,是我们必须要面对的重要问题。笔者认为,大数据处理技术的应用,将成为下一代视频监控的发展关键。视频监控的大数据趋势视频监控从最早的模拟闭路监控系统开始,经历过模拟监控、数字监控、网络监控等重要发展阶段,如今进入了大数据的时代,并面临着一系列的挑战。视频监控产生的数据正迅速增长视频监控数据的增长有三个主要的因素。首先,视频监控不再是一个独立割裂的系统,系统的融合将催生更丰富的数据。GB/T28181-2011标准的发布和实施,在很大程度上改善了各大平台厂家各自为战、互不兼容的乱象,在“大联网”的背景下,所有的视频监控数据将能实现深度共享和统一处理。此外,安防监控的发展趋势是融合化,视频监控平台与其它多种系统之间如警综、消防、卡口、门禁等,将实现资源和数据的无缝整合,统一协作,形成社会化的大系统。其次,高清视频的编解码能力不断提高,导致数据生成的厚度和精度不断提升,高分辨率和高帧率已成为视频监控主流需求。再次,数据生成点的规模在不断扩大,视频监控的覆盖范围和监控点、卡口的数量都以30%以上的增长率在快速增加。我国安装的监控摄像头目前已超过3000万个,每年产生数万PB的数据量。视频监控数据的管理存在瓶颈数据的爆炸式增长,意味着需要投入更多的资源以及付出更多的努力,才能在这些体量庞大的数据中寻找到有价值的信息。目前对视频监控数据的管理能力较弱,其发展没能跟上数据增长的速度,体现在以下几个方面:1.数据的存储和管理视频监控数据具有高并发、大容量的特点。以1080P为例,在8Mbps的码率下,每个摄像头每天产生的视频数据约84GB,中等城市的监控规模一般为数千到数万个摄像头,而且这些数据一般要求必须在系统中保存30天以上。存储系统还必须具有高级别的容错性,存储介质的故障率通常较高,但故障发生时不应造成监控数据的丢失。此外,由于安防项目本身在不断发展,系统可能要进行在线扩容和升级,这就要求存储系统具有高度的可扩展性,可在系统中简单便捷地增添存储设备。目前主要采用分级集中存储的方案,视频数据按区域存储在不同的子平台中,通常使用RAID来进行存储。但RAID在性能、利用率、可靠性等方面很难达到理想的平衡,而且成本偏高。另外,各区域的视频数据被分割存放,数据共享流程繁琐,不利于存储和计算资源的集中配置,也不利于数据的统一分析。2.数据的智能分析图像视频的理解和识别一直是计算机视觉领域的难题,由于很难智能地分析出视频中蕴含的丰富内容,我们仍然要耗费大量的人力物力,在海量的视频监控数据中查找有价值的信息。例如在“周克华”案中,为了查找嫌疑人线索,长沙警方投入约两千名民警,花了1个多月的时间反复查看监控录像,视频量相当于83万部电影。目前,虽然基于内容的智能分析在安防领域得到了研究和推广,但也仅限于较低层次的应用,例如人脸识别、车牌识别、物体检测、人流统计、周界防范等。智能分析除了受限于算法的发展,更受限于计算能力的发展,智能分析的算法复杂度较高,而且其样本数量庞大,非普通计算系统所能胜任。3.数据的融合与协同应用目前,视频监控系统与其它相关系统之间,只是基于视频浏览等基础功能进行有限的对接。但如果能进行更深入的融合,通过对多种关联数据进行分析,可以挖掘出更有价值的应用,例如刑侦线索分析、案件规律分析、社会舆情分析、金融诈骗分析、公共交通优化等。如何对这些海量的融合数据进行清洗和选择,并建立有效的分析模型是一个有趣的挑战。大数据处理的关键技术大数据在近几年成了炙手可热的流行词汇,并经常和云计算联系在一起,它是指大小超出了常用的软件工具在运行时间内可以承受的收集、管理、处理数据能力的数据集。一般将大数据归纳为三个特征,即3V:体量巨大(Volumn)、类型多样(Variety)、快速处理(Velocity)。在大数据中,绝大部分由非结构化数据组成。据统计,目前在全球所有大数据中占主导地位的是图像视频数据,2012年其占比已达到了80%,2013年预计接近90%。大数据的关键技术涵盖了数据采集、传输、存储、处理、应用等各个环节,本文主要围绕视频大数据的存储和处理来进行阐述。传统的数据处理方法是以处理器为中心,而大数据具有海量和分布性的特点,需要采取以数据为中心的模式,将计算任务分配到数据所在的节点中执行,减少数据移动带来的庞大开销。云计算是大数据处理的核心技术,是大数据挖掘的主流方式。在业界,很多公司已经意识到大数据挖掘的重要意义,研发了一系列针对大数据进行处理的云计算技术,其中最具代表性的是开源的Hadoop及其周边的生态系统。1.Hadoop及其生态系统Hadoop是一个开源的分布式基础架构,可以让用户轻松构建云计算平台。Hadoop的优势在于它的灵活性、扩展性、经济性、可靠性,适合对大容量、高速率、多样化的大数据进行分布式的处理,而且具有很高的性能。例如Visa公司需要计算两年的记录,包括730亿笔交易、高达36TB的数据。如果用传统方法需要1个月,而采用基于Hadoop的处理技术只要13分钟。Hadoop由HDFS分布式文件系统和MapReduce计算模型组成,可以满足大数据存储和处理的需要。而且,围绕Hadoop已经构建了一个庞大的生态系统,如图1所示。图1Hadoop及其生态系统其中,HBase是面向列存储的分布式数据库,Zookeeper是分布式协同工作系统,Avro是数据序列化系统,Pig和Hive是基于Hadoop的数据挖掘语言和工具,Cascading是封装了Hadoop细节的数据处理工作流API,Mahout是机器学习领域经典算法在Hadoop上的实现,Sqoop可以在HDFS和RDBMS之间转换数据,Flume是海量日志采集系统。下面将简单介绍较为关键的HDFS、HBase、MapReduce。2.HDFSHDFS的系统架构如图2所示。HDFS中包括1个NameNode节点,用于记录文件的元数据;还包括多个DataNode节点,提供实际的存储块。存储在HDFS中的文件被分成块,然后将这些块复制到多个DataNode,以提高数据的并发吞吐量。存储块的大小(通常为64MB)和副本的数量在创建文件时由客户机决定,由此保证数据的可靠性。NameNode可以控制所有文件操作,它与DataNode之间通过心跳来传递状态信息。HDFS内部的所有通信都基于标准的TCP/IP协议。图2HDFS的系统架构视频监控数据具有如下特点:1)需要存储大量GB级甚至TB级的大文件;2)文件具有一次写多次读的特点;3)文件读操作以大规模的流式读和小规模的随机读构成;4)系统需要有效处理并发的追加写操作。这些特点正好与HDFS的设计理念相符合。因此HDFS可用于对以视频监控为主的海量数据提供分布式存储和管理。3.HBaseHBase是构建在HDFS之上的NoSQL数据库。NoSQL数据库是无模式、非关系型的,能支持对海量数据的高并发存储和访问,可以灵活地处理非结构性的数据,而不需要事先定义它们,因此具有良好的可扩展性。NoSQL在事务的严格一致性、数据实时同步、支持复杂的查询等方面不具有优势,但在大数据时代,这些特点变得不那么重要。在数据管理方面,HBase将一整张数据表拆分成许多存储于HDFS下的子表,并由Zookeeper负责数据一致性管理。在数据模型方面,HBase以行名、列名、时间戳建立索引,表中的数据项由无结构的字节数组表示。这种灵活的数据模型保证HBase适用于多种不同应用环境。在安防系统中,HBase可适用于各类融合数据的存储和访问,为视频监控与其它不同系统的深度整合提供良好的数据平台。4.MapReduceMapReduce是由Google提出的一个软件架构,是目前云计算平台上实际公认的并行编模型标准,运行于HDFS和HBase系统之上。其执行过程如图3所示。图3MapReduce的执行过程MapReduce包括Map(映射)和Reduce(化简)两个阶段,首先将待处理的海量数据分割后执行map操作,然后对其输出内容进行合并、排序,再执行reduce操作,将最终结果进行汇总。整个执行过程的各种细节在MapReduce框架中自动处理,包括任务调度、负载均衡、数据分配、容错机制、网络通信、本地化计算等。可以说,HDFS和HBase实现了对海量数据高效的分布式存储,而MapReduce在此基础上提供由编程框架自动控制的、对用户透明的计算资源和数据资源的并行调度和数据同步机制,可根据业务规模自动伸缩、从而为程序开发者屏蔽了底层的复杂性,简化了分布式并行处理业务的编程开发工作。一个典型的MapReduce计算处理通常可以分布到上千个计算节点中来处理上TB的数据,这对海量视频监控数据的并行处理尤为重要。大数据技术在视频监控中的应用视频监控产生的数据增长很快,需要构建一个弹性而高效的处理平台,主要解决两方面的问题:1)数据的存储、管理、访问;2)数据的处理和分析,包括转换、挖掘、搜索、智能识别等。基于以上介绍的Hadoop,可以实现一个视频监控大数据的应用框架,将其部署在可扩展的存储和计算资源之上,以满足大数据所带来的各种新的业务需求。1.视频监控大数据的应用框架应用框架包括了负责对数据进行存储和处理的大数据平台、支持高并发访问的视频分发网络、面向应用的平台调度和服务接口。如图4所示。图4视频监控大数据的应用框架其中,大数据平台基于Hadoop集群来实现,是整个应用框架的核心部分,它接入并存储视频监控数据和其它各类安防数据,然后根据指令对其进行处理。视频分发网络则是为了满足视频访问的需要,这些访问可能是跨地域分布的,因此应考虑网络带宽的优化。平台调度和服务则是面向业务和应用的,是大数据平台和用户之间沟通的桥梁,它可以通知大数据平台即时执行来自业务系统的请求,也可以通过设定任务的执行策略,自动触发大数据平台进行指定数据的处理。此外,与平台管理相关的结构化信息保存在关系型数据库中。2.大数据平台大数据平台中有两层对外的接口,分别是统一数据接入层、统一存储和计算接口层。统一数据接入层负责采集视频监控数据和来自其它业务系统的安防数据,它通过配置不同的适配器来接入种类不一的数据类型,对这些数据进行清洗和转换之后,存入HDFS或HBase中。对于视频监控数据的接入来说,应支持多种规范,例如GB/T28181、ONVIF、PSIA等主流协议。统一存储和计算接口层封装了云计算处理框架中的复杂细节,向应用层提供简单易用的开发接口。为了高效支撑日益丰富的数据和应用,未来的云计算处理框架中可能同时采用多种相异的技术,例如对存储来说,可以同时支持HDFS、NoSQL、对象存储等,而这些不同技术类型的差异,将被屏蔽在接口层之下,应用层不需要关心具体数据的存储方式和位置。云计算处理框架构建了一个可扩展的Hadoop集群,可以实现大数据的海量存储和并行处理。Hadoop生产环境的部署较为繁琐,需要开发自动化的配置和管理工具,保障平台的快速部署和良好运作。HDFS可用于存储视频监控录像,HBase则用于存储卡口数据、告警数据、检测数据、案件数据、分析数据等半结构化的信息。MapReduce对存储在HDFS和HBase中的数据进行分割,然后进行大规模的并行处理、分析,从价值密度很低的监控大数据中挖掘出有意义的信息。大数据平台在处理功能上不存在限制,只需要开发好相应的处理算法,就可以装载到云计算处理框架中执行。针对安防监控行业,典型的处理可以归纳为视频转码、智能分析、融合挖掘、信息检索等。视频转码视频转码是安防监控中常见的需求,可在空域、时域上进行重采样后重新压缩,或者转换成更高级别的编码标准,从而可以更有效地利用存储资源、适应更丰富的终端类型。利用Hadoop的特点,能实现对视频转码的并行处