郑慧君
基于MapReduce的抗闪光镜头边界检测
郑慧君
(东莞职业技术学院计算机工程系,东莞 523808)
利用MapReduce编程模型并行计算的思想,将视频数据切割成若干个视频片段,分配给若干个任务节点主机进行视频特征值的提取和镜头边界检测。考虑到新闻视频中存在大量的闪光镜头,容易造成误检,用滑动窗口对帧间差异进行分析,修正帧间差值。实验结果表明,改进的镜头算法不仅大大提高镜头检测的效率,还可以有效地避免闪光镜头,取得较好的检测精度。
镜头边界检测;MapReduce;直方图;抗闪光
随着多媒体技术、智能手机的发展,视频信息呈爆炸式增长。如何对海量的视频信息进行基于内容的语义分析,实现基于视频内容的查找、分类和检索,提取视频中有用的信息,成为目前学者研究的重点问题。视频检索必须对视频内容进行结构化处理,也就是对视频的帧按照不同的语义单元进行切块,分成不同的语义单元,这些语义单元称为镜头[1]。随着数字视频的使用越来越广泛,自动视频内容分析技术的需求也越来越大。作为视频结构化处理的基本步骤——镜头检测,它的工作性能与效果将直接影响后续的处理[2]。用传统的手工方法来切割视频非常耗时,对一小时的视频有时需要十个小时的工作来切割,所以需要一种自动的方法来切割视频镜头[3]。
在一些新闻视频中,由于照相机的闪光,造成帧间差异曲线中会出现两个相邻的波峰,镜头算法通常会判断为两次突变,容易造成误检。针对这种情况,提出在镜头算法中先进行闪光过滤,再进一步进行检测,考虑到视频数据量大,算法执行时间过长,采用MapReduce编程模型进行算法设计,在Hadoop环境下,选择合适的节点数,通过实验分析,算法能够有效避免闪光镜头,算法执行时间比单机算法大大减少,提高了算法的执行效率。
目前,国内外研究镜头检测的学者很多,由于压缩域的视频检测算法比较复杂,大多数研究的是非压缩域的镜头检测算法,但是还没有形成稳定的、成熟的算法。根据特征值的不同,比较典型的主要有以下几类检测算法:
(1)基于像素的镜头检测
该方法简单,但是容易受到物体运动、镜头运动、闪光灯因素的干扰。
(2)基于直方图的镜头检测
直方图法通过统计帧的直方图[4],由于直方图和位置信息无关,没有图像的局部信息,计算的是帧间全局的差值,也容易造成误检[5]。张晶[6]等使用了加权的分块直方图法,每块使用不同的权值,有效避免两帧具有相同的直方图造成的误检。陈文飞等[7]使用了X2直方图法,算法复杂度高。
(3)基于边缘轮廓的镜头检测
用Canny或其他算子提取像素轮廓作为特征值,然后计算相邻帧间的轮廓差值[8],该算法能够有效地避免镜头内运动物体造成的误检,但是计算复杂度高。
根据对特种值进行不同处理方式,大量学者也提出了一些新的方法。J Yin等[9]提出了一种新的基于分块颜色直方图和亮度矩的镜头边界检测方法,为了提高镜头分割的鲁棒性和有效性,提出了一种自适应阈值分割算法;Sinnu Susan Thomas等[10]根据同一镜头背景的时间连续性,提出了基于能量最小化的镜头检测方法;
2.1 镜头检测模型
在镜头检测算法中引入MapReduce模型,把镜头检测任务分成若干个Map任务,由Master主机控制若干个节点进行视频的解码和特征的提取,然后进行闪光过滤,由若干个Reduce任务进行镜头边界检测,得出最终的突变镜头和渐变镜头数据,算法检测模型如图1所示。
(1)Input阶段:利用程序把视频文件分成若干个文件,生成<编号,文件路径>的键值对,作为Map函数的参数。
(2)Map阶段:对分割的视频片段进行解码,利用分块的灰度直方图进行特征提取,输出<编号,特征值文件>键值对。
(3)Shuffle阶段:利用时间序列分析法对特征值进行处理,修正闪光帧的特征值。
(4)Reduce阶段:把前一阶段的<编号,特征值文件>作为输入,分别进行突变镜头的检测和渐变镜头的检测,最终得出镜头边界集合。
2.2 特征值的提取
颜色直方图通过统计图像的颜色值而来,反映图像的颜色分布,同一镜头内的帧间的直方图具有连续性,若发生镜头切换,帧间颜色直方图差值曲线就会形成一个大的波峰。
(1)图像灰度化
彩色图像有RGB三个分量,每个分量取值为0-255,颜色值有 1600 多万(255×255×255)种,为了减少直方图的统计工作量,利用公式(1)进行图像的灰度化,利用公式(2)进行图像的直方图统计。
Gray(x,y)表示图像中坐标为(x,y)点的灰度值,His(i)为颜色为i的颜色值个数。
(2)分块直方图计算
灰度直方图和图像并不是一一对应的关系,不同的图像可能具有相同的直方图分布,因为只反映全局的颜色分布,不反映颜色的空间位置,和镜头内对象及其位置无关,因此容易造成误检。采用如图2所示的带权值的分块直方图,对不同的区域使用不同的权值(w1<w2<w3),图像边缘位置权值较小,中间位置权值较大,分块直方图既反映了图像的全局特征,又加入的图像的局部特征,能够有效的避免误检。
图1 基于MapReduce的镜头边界检测模型
图2 图像分块
利用公式(3)计算第n帧和第n+1帧第k块的帧间直方图差。
利用公式(4)对各块进行加权运算,计算带权值的直方图特征值。
2.3 闪光过滤
在2.2小节利用分块直方图进行特征值提取后,对于新闻视频闪光镜头,闪光通常会持续几秒的时间,在闪光的起始位置和结束位置会出现较大的特征值,在帧间帧间差值曲线上会出现距离较近的两个较大的波峰,如图3所示。
从图3可以看出,闪光帧的帧间差值的特点为连续两个距离较近的波峰。利用公式(5)计算相特征值和其平均特征值的商。
τ为该视频片段的帧间差的平均值,C为常量,经多次试验得出取值为3,若满足公式(5),则第n到m间的帧认为是一次闪光,因为通常闪光都在很短时间内完成,因此两个波峰间的距离经常不超过30帧。利用τ更新第n到第m帧的特征值。
图3 闪光帧的帧间差值曲线
2.4 突变检测
突变镜头直接从上一个镜头切换到下一个镜头,中间没有添加任何视频特效,镜头切换的位置在帧间差的特征值曲线上会形成较大的波峰,如图4所示。
图4 突变镜头特征值曲线
2.3 小节已经进行了闪光的过滤,特征值为加权的直方图,也不会收到镜头内物体运动或摄像机运动的影响。突变镜头检测一般设置一个固定的阈值,但是视频直方图数据量大,采用固定的阈值容易造成误检,采用滑动窗口法计算窗口内的最大帧间差和最小帧间差,为减少计算复杂度窗口大小一般选择10,利用公式(6)进行计算。
其中max1为窗口内的最大帧差,max2窗口内的第二大帧差,τ为视频片段的特征值平均值,若是突变镜头帧,则特征值和平均值的差会很大,因此若满足公式(6),则认为是一次突变,加入到突变镜头边界集合中。
2.5 渐变镜头检测
渐变镜头特征值曲线上表现为不太明显的波峰,如图5所示,给检测带来一定的困难,提出基于视频片段的首尾帧差法进行检测。
图5 渐变镜头的相邻帧间差值
(1)把视频分为大小为40的视频片段,分别计算第一帧和最后一帧的帧间差值,经过多次试验,视频大小为30比较合适,一般渐变镜头在30帧内完成。
(2)若满足公式(7),则认为视频片段内发生了渐变镜头切换,因为同一镜头内的帧存在一定的关联性,若发生了渐变则分别进入了两个不同的镜头,首尾帧差则较大。
D(30n,30(n+1))为第30n个视频片段的首位帧间直方图差,δ为所有视频片段的首位帧差平均值,3为实验得出的经验值。
(3)对于满足公式(7)的视频片段,计算视频片段内第一帧和后面帧的帧间差,差值最大的地方即为渐变的中心,加入到渐变镜头集合中。因为随着镜头的渐变,第一帧和后面帧的差值越来越大,直到进入另外一个镜头,差值趋于稳定,渐变镜头的首帧帧差曲线如图6所示。
3.1 实验环境
由于实验所采用的视频数据量不大,采用1个主机(Master)加4个四个任务节点(Salve),四个节点均安装CentOS5.9系统,并且有一个相同的用户Hadoop。Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;4个Salve机器配置DataNode和TaskTracker的角色,负责分布式视频数据存储、Map及Reduce任务的执行。任务节点(Salve)的基本配置如表1所示。
图6 渐变镜头首帧帧曲线
表1 Salve配置
3.2 实验结果分析
(1)算法查全率、查准率分析
在3.1的Hadoop的分布式环境下,选用4段带有闪光的新闻视频,分别用灰度直方图和加权的灰度直方图作为特征值进行检测,通过实验检测的数据和精确的镜头切换位置进行查全率和查准率的计算。
查准率=正确镜头数/(正确镜头数+误检数)
查全率=正确镜头数/实际镜头总数
利用灰度直方图作为特征值,实验结果如表2所示。
表2 灰度直方图法检测结果
从表2看出,利用灰度直方图作为特征,没有进行闪光过滤,算法的误检镜头比较高,所有的闪光帧都会认为是突变,并且算法容易受到镜头内移动物体的影响造成误检。
利用带权值的灰度直方图作为特征值,并且进行闪光过滤后,实验结果如表3所示。
表3 带权值的灰度直方图法检测结果
从表2和表3的对比可以看出,利用带权值的直方图作为特征值,并进行闪光过滤,能够避免闪光和镜头内物体的移动造成的误检,大大提高了差全率和查准率。
该算法采用MapReduce编程模型,利用同一段视频作为实验数据,选择同一主机,任务节点(Salve)从1到 10 进行实验,算法执行时间为[95,60,41,25,19,17,15,14,10,8],算法的执行时间如图 7 所示。
从算法执行时间可以看出,算法执行时间随着节点的增加不断减少,但是不是线性的,因此必须根据视频的大小选择合适的节点数,避免计算资源的浪费。
随着移动互联网的不断发展,视频数据增长速度越来越快,如何从大量的视频数据中找到有用的数据成为研究的一个热点。和文本不同,视频数据结构复杂,不能很好地进行检索,目前互联网上的大部分视频检索系统还处于视频文件名称的检索,还不能进行基于视频内容的检索。镜头检测是视频检索的基础,引起了大量学者的关注。针对新闻视频中的闪光,在算法的执行阶段利用滑动窗口进行闪光过滤,考虑到镜头检测算法执行时间长的问题,提出了基于MapReduce的编程模型。最后利用4段带闪光镜头的视频片段进行了实验,通过和普通算法进行对比分析,改进的算法查准率和查全率大大提高;通过并行分析,选择合适的节点,算法的执行时间大大减少。
图7 算法节点和执行时间曲线
[1]郑慧君,陈俞强.基于MapReduce的快速镜头边界检测算法[J].图学学报.2017,1(38):76-81.
[2]A Sengupta,DM Thounaojam,K Manglem Singh,S Roy.Video Shot Boundary Detection:A Review[C].IEEE International Conference on Electrical,2015:1-6
[3]L Baraldi,C Grana,R Cucchiara.Shot and Scene Detection via Hierarchical Clustering for Re-using Broadcast Video[C].International Conference on Computer Analysis of Images&Patterns 2015,9256:801-811.
[4]P Poirson,P Ammirato.Fast Single Shot Detection and Pose Estimation[C].Fourth International Conference on 3d Vision,2016:676-684.
[5]魏玮,刘静,王丹丹.视频镜头分割方法综述.计算机系统应用.2013,1(22):5-7.
[6]张晶,王学军,蒋恩源.基于颜色加权的新闻视频镜头边界检测方法.吉林大学学报[J].2015,1(33):39-43.
[7]陈文飞,许雪峰.亮度自适应的保熵直方图均衡化方法.计算机工程与应用.2012,48(16):157-161.
[8]张思俊.基于Canny算子的图像边缘检测方法改进研究.计算机与数字工程,2016,8(44):1567-1570.
[9]J Yin,SL Wang,JH Li.Video Shot Segmentation by Adaptive Thresholding with Color and Spatial Information[C].Springer Berlin Heidelberg.2012,128:339-344.
[10]Sinnu Susan Thomas,Sumana Gupta,VenkateshK.S.An Energy Minimization Approach for Automatic Video Shot and Scene Boundary Detection[M].Tenth International Conference on Intelligent Information Hiding&Multimedia Signal Processing,2014:297-300.
Anti-Flash Shot Boundary Detection Based on MapReduce
ZHENG Hui-jun
(Department of Computer Engineering,Dongguan Polytechnic College,Dongguan 523808)
Using the distributed computing of MapReduce model,the video is splinted into several video clips,video feature extraction and shot boundary detection are assigned to several task node hosts.Considering the existence of a large number of flashes in the news video,it is easy to cause false detection,sliding window is used to analyze the differences between frames,then correcting the frame difference.Experi⁃mental results show that the improved shot detection algorithm is effective in accelerating the shot detection process,and it can also effec⁃tively avoid flash lens,achieve better detection accuracy.
Shot Boundary Detection;MapReduce;Histogram;Anti-Flash
广东省省级科技计划项目(No.2014A010103002)、2014年东莞市高等院校、科研机构科技计划一般项目(No.2014106101035)
1007-1423(2017)24-0029-06
10.3969/j.issn.1007-1423.2017.24.007
郑慧君(1985-),男,湖北孝感人,硕士研究生,讲师,研究方向为智能算法、图形图像
2017-05-08
2017-07-20