基于HBase的监控视频存储方案设计

2015-05-05 22:34吴国庆
科技与创新 2015年7期

吴国庆

摘 要:近年来,一系列建设都向纵深方向发展,监控视频系统被广泛应用于各行业中。在此背景下,如何有效存储监控视频数据成为了这一领域的热点问题。从系统的相关方面入手描述系统,主要阐述了基于HBase的监控视频存储方案的设计过程。

关键词:HBase;监控视频;存储方案;设计过程

中图分类号:TN948.6 文献标识码:A DOI:10.15913/j.cnki.kjycx.2015.07.007

1 系统应用架构

基于HBase的监控视频存储方案共分为6个层次。

1.1 硬件与虚拟化层

该层的作用是为基于HBase的监控视频存储系统提供主要的基础环境支持。底层采用云计算技术,将整个计算环境建立在采用了虚拟化技术的PC机服务器集群上。

1.2 分布式文件系统层

该层的作用是为系统提供底层存储平台。HDFS可以提供高吞吐量的数据访问,向数据库层提供访问、存储接口,其他模块则可以借用其在系统中存取数据。同时,它负载均衡、副本策略等机制也可以保证其可靠性和可用性,为系统提供了一定的存储空间。

1.3 数据库层

该层的作用是为系统提供数据存储支持,向业务逻辑层提供数据持久化功能,并借助行关键字设置和索引机制形成数据访问能力。将HBase作为数据库,可以满足系统各方面的需求,将系统中各种数据都存储在数据库层中。

1.4 业务逻辑层

该层的作用是进行与用户管理、视频检索、人体行为识别和视频预处理之类相关的操作,通过数据库层实现对数据的读写操作。它主要提供数据入库、人体行为识别、视频查询和视频特征抽取之类的业务。

1.5 用户接口层

该层的作用是接受用户操作请求和查看系统反馈结果。使用Web服务器接受请求,并开展各种验证和处理工作,借助动态页面生成技术展示结果。

1.6 分布式系统管理层

该层的作用是管理系统服务器集群,并提供全局配置信息管理功能。在系统中,ZooKeeper可以快速响应集群中机器的变化,从而提供相应的服务。

2 总体设计

2.1 视频预处理模块

这个模块主要负责处理监控视频,提取出该视频中的各种信息。

2.2 MPEG-7 标准化特征值处理模块

这个模块主要利用MPEG-7描述定义语言和与之配套的标准描述子来描述图片的特征值述。其中,MPEG-7位于信息检索系统的中心。

2.3 行为识别模块

这个模块主要负责识别运动对象和合成行为视频片段。即首先判断出对象图片表达的行为,再将后者合成为行为视频,并存储其在数据库中。

2.4 数据存储模块

这个模块主要负责系统数据的存储,包括用户信息、视频信息、视频片段信息和运动对象图片等。

2.5 数据检索模块

这个模块主要负责数据检索工作,包括运动对象行为、MPEG-7 特征值、事件地点信息和事件时间信息的检索这4个部分。

2.6 管理模块

这个模块主要是针对管理员设计的,它包括2部分,即用户管理和系统管理。

3 数据库设计

数据库模块的总体设计思路是为系统提供持久化的数据支持。在设计数据库时,要能够完整地实现系统的功能,并尽量提高系统的性能。其数据库包括视频表、图片表、视频片段表和用户表4个主要内容。

3.1 视频表设计

视频表主要是用来存储与原始视频相关的信息,将视频发生的时间、视频内容记录的地点和原始视频数据作为列族video_infor中的一列存入视频表中。当用户通过客户端检索时,需要以事件时间和事件发生的地点这2个条件完成筛选工作。

3.2 图片表设计

图片表主要是保存运动对象的原始图片和图片的各种信息。在基于HBase的海量小视频存储和检索系统中,考虑到一个运动对象对应多张运动对象图片,所以,要提取运动对象每张图片的特征,而系统会将每张运动对象的图片特征值存储在一个单独的XML文件中。

3.3 视频片段表设计

视频片段表主要记录对象执行某些行为的视频片段信息,具体设计如下。列和列族:考虑到人物对象的行为数目是有限的,所以,将对象执行走、跑、跳等动作的视频片段设置为列族video_segment中的一列,以展现系统在行为识别模块上的拓展性。

3.4 用户表设计

用户表主要用于记录用户的基本信息和用户的历史信息,具体设计如下。列和列族:用户表中包括用户昵称、密码和最后登录的时间。对于最后登录时间,可以利用HBase中的时间戳来记录用户登录的历史数据,它可以作为后期系统分析资料使用。

4 数据库模块与系统业务逻辑交互设计

4.1 用户信息交互

用户信息的交互主要是用户通过基于HBase的监控视频存储系统注册或者修改用户信息,并完成系统管理员对系统中所有用户信息的增加、删除、修改和查看等操作。

4.2 视频预处理交互

数据库模块与视频预处理模块的交互主要是通过视频表和图片表完成的,具体的交互过程如下:视频预处理模块对从监控摄像头中获取的原始视频进行一系列的处理,将原始视频数据和视频信息存储在视频表中,将运动对象图片和根据 MPEG-7标准描述的图像特征值信息存储在图片表中。

4.3 行为识别交互

系统的行为识别模块与数据库模块的交互也非常频繁,详细过程如下:①行为识别模块需要读取图片表中的对象灰度图,并得到对象图片ID;②行为识别模块处理对象灰度图,识别出人体的行为,并结合对象图片ID合成执行对应动作的视频片段。

4.4 视频片段查询交互

视频片段查询交互的具体过程是:①将用户选择的事件时间、事件地点与视频表中的相关数据相匹配,得到一组视频ID;②结合视频ID,将用户上传的图片特征值信息与数据库图片表中的特征值信息进行对比,得到一组对象图片ID,并获取视频ID和对象ID;③根据用户选择的目标人物行为名称和由中间结果集得到的视频ID,查询对象ID对应的视频片段表,从而获取命中的视频片段内容并将其展示到用户客户端。

5 结束语

本文设计了基于HBase的监控视频存储方案,在一定程度上解决了海量小视频的存储问题。

参考文献

[1]张洪磊.基于Hadoop的医院数据中心系统设计与实现[D].杭州:浙江大学,2014.

〔编辑:白洁〕

Abstract: In recent years, a series of construction are to the depth direction, video surveillance systems are widely used in various industries. In this context, how to effectively store surveillance video data has become a hot issue in this area. Describe the system starting from the relevant aspects of the system, mainly on the design process HBase based surveillance video storage solutions.

Key words: HBase; surveillance video; storage solutions; design process