基于Hadoop的视频摘要技术的设计

中国新通信 / 2018年10月15日 09:41

互联网+

基于SQL on Hadoop的数据仓库技术

马元元

【摘要】 随着现代社会的高速发展,公共安全面临着巨大的隐患,相应的视频监控也广布在了城市的各处。传统的利用人工快进和倒退,在海量的视频摘要中提取有用的图像和镜头不仅耗费大量的人力和物力,容错的效率也成为了急于要解决的问题。本文正是基于上述问题,对Hadoop的视频摘要技术的设计进行研究,并对如何利用Hadoop集群对视频摘要的图像进行高速、准确提取这一问题进行论述。

【关键词】 视频摘要 图像提取 Hadoop集群技术 显著特征检测算法

一、引言

随着社会的快速发展,我国社会的公共安全和网络健康问题日益突出态势日趋复杂和严峻。正因为如此,视频摘要技术对城市公共场所视频监控的管理和互联网海量未知视频的鉴别承载了十分重要的意义。Hadoop分布式文件系统(HDFS)具有高容错和可伸缩的特点,HDFS利用MapReduce引擎使用ffmepg将视频切割为一帧一帧的图像,然后将图像转换为Opencv视觉库中的Face Recoginizer可识别的数据流。针对上述的处理需求,采用了SWS_SCALE算法和PCA(principal Componet Analysis) 显著特征检测算法对视频摘要进行提取,在实验验证中,取得了较好的效果。

二、视频摘要提取技术介绍

视频摘要提取,一般是以自动化或者半自动的方法,通过对视频结构和内容的分析,从原始的视频文件中去除时空的冗余,提取有价值的视频片段,并根据其特点象征重新排列组合成一段能够表现视频内容的浓缩视频录像。一般而言,视频摘要主要分为静态视频摘要和动态的视频摘要两种。

静态视频摘要也称为视频的概述,指从原始视频数据集合中抽取静态语义单元片段,诸如标题语义、关键帧、矢量图像等等视频镜头语义的特征信息。目前,静态视频摘要的提取技术主要基于关键帧相似切割拼凑算法来实现,允许对原始视频数据快速检索和快速浏览。关键帧提取技术主要根据颜色对比、纹理特征和运动元素等视觉差异特征元素切割图像,并最终合成一组视频的短片。这种差异特征元素算法主要是依赖于阀值的选择区间,并且选择区间是根据相邻帧之间对比计算阀值f(n),这样不仅耗费大量的时间频度T(n),也增加了问题的规模(n),即当n趋近于无穷大时,T(n)/f(n)的极限值为不等于0的常数,称f(n)是T(n)的同数量级数,记作T(n)=O(f(n)),称O(f(n))为计算的时间复杂度。

动态视频摘要提取又称动态视频浓缩,一般分为影视视频剪辑、专题视频剪辑、一般视频剪辑三种。影视视频剪辑主要用于电影电视行业,是对原始数据进行目的性、连贯性的剪辑和处理,专题视频主要用于特定内容的专题报道。一般视频剪辑采用通用的浓缩方法进行摘要提取。

动态视频浓缩是在原始视频基础上,先进行特定场景建模,然后对原始视频进行片段剪辑和目标摘要提取,进行静态图像排版、密集片段帧的插入,并配合背景模型植入。在原始视频数据的提取中,因为数据量相对特定,目标对象相对连续,在多轨道的剪辑中根据故事的主线不会丢失隐形的信息,来实现提取的视频摘要无痕融合。

三、基于 Hadoop的视频摘要提取的关键技术

Hadoop是一系列开源产品的组合,不仅可以对海量数据进行处理,也可以对多样化类型的数据进行处理和分析。Hadoop实现了一个高容错的分布式文件系统(Hadoop Distributed File System),简称为HDFS,并且HDFS 和MapReduce组成了Hadoop的核心。因为原始数据本身就是一个视频大文件,所以我们利用HDFS大数据分布式的特点进行读取和小规模的随机读取,HDFS原则上可以存储任何类型的数据,所以视频数据可以不加任何处理的上传到HDFS上。使用MapReduce对视频数据进行分析后,根据设定的Block大小分割成64M或者128M大小的数据块,分布式的存储于集群的DataNode上,NameNode通过维护文件系统的元数据对文件进行管理,而面向user的是一个完整连续的文件,隐藏了分割细节。我们利用Hadoop对视频摘要的提取并不能直接进行,因为分割存储后帧不完整(即有可能缺少关键帧或者缺少头数据)。所以我们按照Block起止位置进行定义,数据大小同Block大小相当,向前读取,丢弃第一个关键帧之前的数据,确定Split的真正起始帧位置,Split的终止帧位置设定在Block结束字节位置附近,定义在结束字节位置之后的第一个帧。在此基础上也用到ffmpeg分布式解码库,将原始视频转化为数据流,然后再使用MapReduce进行映射。

3.1 MapReduce

对于原始的视频数据层叠到Hadoop分布式文件系统(HDFS)进行存储,对较小的视频文件进行合并处理或者HBase存储图像,MapReduce是一种通用执行驱动引擎,可以对存储的视频文件进行分析,也可以通过HBase生成的HFile进行并行化、分布式处理。

MapReduce是一种云计算的核心计算模式,在处理海量的原始视频时,通过ffmpeg对原始视频进行解码,MapReduce模式的主要思想是把分割要执行的图像拆解成map(映射)和reduce(简化),流程图如下所示:

MapReduce指定一個Map 函数,把键值对(key/value)映射成新的键值对(key/value),形成一系列中间结果形式的key/value 对,然后把它们传给Reduce(规约)函数,把具有相同中间形式key 的value 合并在一起。Map 和Reduce 函数具有一定的关联性。

3.2 OpenCV库中的GrabCut切割算法和Eigen Recognition图像识别算法

OpenCV是计算机视觉开源软件库。提供的视觉处理算法丰富不需要添加新的外部支持也可以完整的编译链接生成执行程序,实现背景估计和前景或后景分离。按照对目标物体的输入条件,把对原始视频切割的图像进行拼接,展示目标或者过程,生成视频摘要,保留用户对原始视频需要的活动细节,做到对视频的浓缩,并且可以保留目标片段在原始视频中出现的时空顺序和位置,并对无目标出现或者无运动的时间区域帧进行压缩。在对视频摘要的提取过程中主要运用到了OpenCV库中的GrabCut切割算法和Eigen Recognition图像识别算法。

Grabcut算法基本思想是:在视频每一个关键帧的图像上画一个方框,grabCut默认方框内为前景,设置掩码为2,方框外部都是背景,设置掩码为0。在根据算法将方框内不检查出来的背景位置掩码由2改0。最后警告算法处理,方框中掩码依然为2,即前景,其他为背景。算法函数如下:

void grabCut(InputArray img, InputOutputArray mask, Rect rect,

InputOutputArray bgdModel, InputOutputArray fgdModel, int iterCount,

int mode=GC_EVAL )

// img:待分割的源圖像,必须是8位3通道(CV_8UC3)图像,在处理的过程中不会被修改;

// mask:掩码图像,大小和原图像一致。可以有如下几种取值:GC_BGD(=0),背景; GC_FGD(=1),前景;GC_PR_BGD(=2),可能的 GC_PR_FGD(=3),可能的前景。

// rect:用于限定需要进行分割的图像范围,只有该矩形窗口内的图像部分才被处理;

// bgdModel:背景模型,如果为null,函数内部会自动创建一个 bgdModel;

// fgdModel:前景模型,如果为null,函数内部会自动创建一个fgdModel;

// iterCount:迭代次数,必须大于0;

// mode:用于指示grabCut函数进行什么操作。可以有如下几种选择:

GC_INIT_WITH_RECT(=0),用矩形窗初始化GrabCut;

GC_INIT_WITH_MASK(=1),用掩码图像初始化GrabCut;

GC_EVAL(=2),执行分割。

Eigen Recognition图像识别算法是基于集合特征生物脸识别:标记点(眼睛、耳朵、鼻子等的位置)构造一个特征向量(点与点之间的距离、角度等)。通过计算特征向量的欧氏距离来进行识别,这种方法对光的变化也是很稳健的。对特征提取的方法有盖伯小波(Gabor Waelets),离散傅立叶变换(DCT),局部二值模式(LBP)。图像表示的高维问题,二维灰度图像x*y大小是一个ɑ=xy维的向量空间,所以一个100×100px图像就是10,000维的图像空间。我们可以通过主成分分析(PCA)一个高维数据集被相关变量表示,相关的变量转换成一个最大方差的向量,被称为主成分。

算法描述:

X={x1,x2,…,xn}表示一个随机特征,其中xi∈Rd

1.计算均值向量μ

3.计算特征值λi和对应的特征向量vi

Svi=λivi,i= 1,2,…,n

4.对特征值进行递减排序,特征向量和它顺序一致。K个主成分就是k个最大的特征值对应的特征向量。

X的K个主成分:y=W T(x-μ)

其中:W=(v1,v2,…,vk)

PCA的基重构:x=Wy+μ

其中:W=(v1,v2,…,vk)

如上所述,会出现一个问题,比如说我们有400个切割的矢量图,每张100×100px,那么PCA需要解决协方差矩阵S=XXT,而X的大小10000*400,得到的大小矩阵是10000×1000,这大概需要800m的内存。正因为如此我们必须配合使用hadoop的HDFS层叠分布式存储技术,才能有效解决大数据量的内存需求。

总结:基于Hadoop对视频摘要技术的实现,不仅解决了海量的原始视频存储问题,也高效的、准确的提高了对公共安全和网络视频鉴别的困难。通过MapReduce快速高效的处理和分析能够实时查看分析过程中的快照输出,能够支持高并发、密集型的场景,提高图像处理速度和质量。

参 考 文 献

[1]刘刚,侯宾,翟周伟.Hadoop开源云计算平台[M],北京:北京邮电大学出版社,2011,08

[2]张良将基于Hadoop云平台的海量数字图像数据挖掘的研究.上海,上海交通大学,2013

[3]欧阳建权,李锦涛,张勇东视频摘要技术综述[J]计算机工程,2005.5.30

1.环球科技网遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.环球科技网的原创文章,请转载时务必注明文章作者和"来源:环球科技网",不尊重原创的行为环球科技网或将追究责任;3.作者投稿可能会经环球科技网编辑修改或补充。