视频重拍摄检测是检测视频侵权的重要方法之一,可用于被动检测视频的版权。本文针对手持重拍摄视频,结合了手持拍摄视频的特点,对视频帧间进行速度场计算,根据连续两个速度场的方向判定速度场的变化程度,提取多个变化程度以得到一组速度场变化程度值,选取该组值的平均值与方差作为二维手持抖动特征,并使用支持向量机(support vector machine, SVM)进行重拍摄检测实验。对比实验证明该算法具有更高的准确率。 Video recaptured detection is one of the important methods of detecting video infringement. It is a passive detection method and can be used for video copyright. In this paper, combining with the hand-held video characteristics and the velocity field algorithm, we calculate the velocity field between frames, according to the moving trend to judge whether velocity field changes or not. We extract a set of velocity change values and select the average and variance value as a two-dimen- sional characteristic, and finally we use support vector machine (SVM) for experiments. The experiment result shows that this algorithm has a higher accuracy.
蒋卓彦,孙锬锋,蒋兴浩
上海交通大学,上海
收稿日期:2016年11月27日;录用日期:2016年12月8日;发布日期:2016年12月15日
视频重拍摄检测是检测视频侵权的重要方法之一,可用于被动检测视频的版权。本文针对手持重拍摄视频,结合了手持拍摄视频的特点,对视频帧间进行速度场计算,根据连续两个速度场的方向判定速度场的变化程度,提取多个变化程度以得到一组速度场变化程度值,选取该组值的平均值与方差作为二维手持抖动特征,并使用支持向量机(support vector machine, SVM)进行重拍摄检测实验。对比实验证明该算法具有更高的准确率。
关键词 :被动检测,手持重拍摄,速度场,速度场变化程度,SVM
到今天为止,影视盗版依然是危害娱乐产业可持续发展的一大问题,为了解决这个风险问题,常见的做法是使用加密算法等基于内容保护的条件接收系统(conditional access system, CAS)或者数字版权管理(digital right management, DRM)以确保传输途径的安全。然而这种保护措施下的视频文件最终还是需要将内容呈现给终端用户,对于盗版者直接使用一个摄像机在屏幕前记录显示画面的手段,原有保护措施无效。因此现在迫切需要一种能够直接针对于视频内容侵权检测的方法。
针对目前的实际检测需求,现有两种相对应的检测方案:
第一种是基于水印的检测方法,基于水印的检测方法属于一种隐式的鉴定策略,该方法是在视频呈现的内容里插入可用于司法鉴定的水印,水印本身不会伴随数字模拟信号的转化消失。当一个盗版视频出现在一个未经授权的销售平台时,可以通过水印追踪到上传用户或者制作盗版的设备信息。
第二种方法是基于视频内容失真的检测方法。该类方法针对不同的失真情况有分别不同的对应方法:Xavier Rolland-Neviere [
本文提出了一种基于速度场的手持重拍摄检测算法,分析手持重拍摄视频帧间的速度变化,结合了手持视频的特点与速度场算法 [
手持重拍摄的视频相对于静止拍摄的视频而言,该类视频会带入由于手持录像设备不稳定而使得重拍摄画面产生全局性无规律抖动的现象。本文尝试从视频时域的角度来分析该种现象,并结合速度场的相关知识,提出了一组基于速度场的二维手持视频特征。
如上所说,手持重拍摄会在视频中引入一个全局性无规律抖动的现象,如图1所示。对于一般的视频来说,视频帧内部的运动是有其内在的趋势的,这也是视频压缩的原理,而对于手持重拍摄而言,手部的抖动是如量子化一般无法人为进行控制的,没有方法可以预测到下一次手部抖动的运动趋势。
因此如果能够提取视频中的运动趋势,对其加以解析,就可以通过视频帧内运动趋势的无序性或有序性来判定视频是否经过手持重拍摄。
速度场的概念来源于粒子图像测速技术(Particle Image Velocimetry, PIV),该技术被广泛用于表示物体的运动速度和方向。随着电脑和多媒体处理技术的发展,PIV技术逐渐演变成为数字粒子图像测速技术(Digital Particle Image Velocimetry, DPIV),DPI V的技术要点是精确计算相邻两张图片中的位移矢量。速度场凭借其度量精准,系统简单,不会对本身流场产生影响以及计算相对快速等特点被广受关注。
在速度场算法中将原有的图片以16 px × 16 px区域块为单位,将一张图片划分为多个速度场区域块,使用基于时域的互相关算法计算每一个区域块的位移矢量,具体算法由文献 [
图1. 手持重拍摄场景图
本文特征算法使用速度场工具,量化相邻两帧视频帧中的运动趋势为位移矢量,之后对位移矢量进行分析以提取所需的手持特征。
如上文所说,通过速度场可以获取视频中相邻两张帧的位移矢量,其中位移矢量包含运动方向和运动速度大小两个方面,对于手持重拍摄视频产生的全局性无规律抖动这一现象,本文算法选取位移矢量中的运动方向为主要考察点。
以25 fps帧率的视频为例,相邻两帧间隔为0.04 s,对于原始视频帧内宏观状态的大多数运动物体而言,在0.04 s的时间内物体的运动方向基本一致;而对于手持重拍摄视频内的物体而言,会出现前后运动方向可能一致,也有可能有很大的区别,甚至180度反向的可能。
本文算法针对手持重拍摄视频运动方向可能出现的各种情况,在运动方向所在的二维平面上根据x轴,y轴以及两轴之间的45度角平分线,将该平面划分为8个区域,如图2(a)所示,任意一个向量都可以划分到8个区域中的一个,然后将其所在区域与相邻区域都被划定为运动方向基本一致的区域,以红色为标注。以图2(b)中的位移矢量为例,该位移矢量属于1区域,将1,2,8区域标红。如果下一个相邻同位置的速度场区块所在方向属于红色区域则认定为两个运动方向基本一致;如果不在红色区域,而在3,4,5,6,7的黑色区域,则认定为该区块的两个运动方向不一致。
对于一个固定的视频,其速度场区块数目是确定的,假定为n块,假设其中有m个区块被划分为运动方向基本一致,m/n值越大则表示相邻速度场运动方向相似,m/n值越小则表示相邻速度场运动方向存在差异越大,m/n可以表示为量化后的速度场方向变化程度。
对于原始视频而言,因为不存在手持导致的全局性无规律抖动,得到的多组m/n值一般都比较大,且整体波动较小;而对于手持重拍摄视频而言,得到的多组m/n值一般都比较小,且整体波动较大,因此提取多组m/n值的平均值和方差作为最终的二维手持特征。
基于速度场的手持重拍摄视频检测算法的具体框架如图3所示,对于一部视频而言,在本文算法中一共有以下5步进行处理:1) 对视频解码成帧;2) 提取视频相邻帧的速度场;3) 比对相邻速度场的方向并对其进行区域判定和速度场方向变化程度计算;4) 统计速度场方向变化程度值的平均值与方差;5) 使用SVM分类以得到最终结果。
图2. 运动方向区域划分图。(a) 区域划分图;(b) 某向量示例图
图3. 算法框架图
如上文所说,本文以视频的运动趋势差异为主要分析点,综合运动强度与运动频率特性,使用相关的算法提取特征从而达到手持重拍摄视频检测的目的。
本文算法流程如图4所示,算法流程的详细步骤会在之后的章节给出。
对测试视频进行解码操作,以得到多张视频帧,使用速度场算法计算相邻(或相邻几帧)视频帧的速度场,可以得到多个速度场矩阵。
速度场公式由文献 [
其中F是傅里叶变换,
速度场矩阵由水平速度场矩阵和垂直速度长矩阵构成,通过对速度场某一区块的水平速度和垂直速度提取计算,可以获得该区块的速度大小与方向。
需要注意的是,在实验中使用矢量图观测速度场发现:
1) 对于静止的视频,只需计算相邻帧速度场就能得到比较清晰一致的运动轨迹;
2) 对于动态的视频而言,使用矢量图观测运动轨迹不是很清晰,很难鉴定该运动轨迹是由帧内运动造成还是由手持抖动造成。
图4. 算法流程图
这是因为动态视频中相邻单帧的手持抖动运动轨迹与视频内部本身的运动轨迹差别较小,以25 fps的视频为例,相邻两帧间的时长仅为0.04 s,视频在0.04 s的时间内帧内运动的轨迹长度与手持抖动造成的视频全局性轨迹长度难以明确区分。
因此这里引入了手持特征的运动频率特性的考虑,使用了减采样的方法。取待检测视频,每次分别间隔视频相邻
在上一步操作中,我们获得了一个视频中的多个速度场矩阵,下面将对速度场的矩阵进行处理:
首先提取速度场中的每一区块的速度方向,并对其判定所属区域。区域划分如图5所示。
所属区域共分8格,以x轴,y轴以及45度角平分线划分速度方向区域,对比相邻两个速度场在同一区块速度场的方向,并统计属于同一方向或相邻区域方向的位置数量。
以图5为例,如(a)中前速度场中某区块指向了1区域,则对1以及其相邻的区域(2,8)标红,如果后一个速度场对应该区块的方向落在标红的区域内,则认为该速度场区块方向变化小,如图(b),将该块归类为速度场变化程度小;如果后一个速度场对应该区块的方向,没有落在标红的区域内,则认为该速度场区块方向变化小,如图(c),将该块归类为速度场变化程度大。
设速度场中所有区块的数量为n,统计该速度场中所有速度场变化程度小的区块数量为m,然后计算速度场方向变化程度(velocity change, VC),公式如下:
图5. 区域划分图。(a) 前速度场中某个区块的方向;(b)后速度场中对应某个区块可能的方向1;(c) 后速度场中对应某个区块可能的方向2
速度场的变化程度(VC)体现了这个速度场中的运动趋势特性,VC值越高表示在该速度场中,运动方向变化小的区块数量越多,变化大的区块数量越少,体现了前后两帧之间的有序性;与之相反,VC值越低表示在该速度场中,运动方向变化小的区块数量越少,变化大的区块数量越多,体现了前后两帧之间的无序性。
同样需要注意的是,在实验过程中发现:
背景静止的视频在静止背景上同样出现细微速度场区块,但是速度场强度很小,根据经验判断为背景噪点,噪点的出现也是属于无序的运动,在实验中是很难区分该速度场方向的变化由噪点引起的还是由手持抖动引起的。
视频的背景噪点是由于录像设备所决定基本都会存在,产生细微速度场的原因是由于速度场本身非常敏感,细微的噪点运动也会引起速度场的强度的变化。
因此这里引入了手持特征的运动强度特性的考虑,使用了设定阈值的方法。在实验数据分析时发现,速度场中会出现区块强度小于最大强度0.1%的数据,这部分的数据通常都出现于背景上并且强度非常小,根据经验判断为噪声因素,但是由于速度场非常敏感,在之前的实验统计中由噪声带来的速度场强度变化也全部计入总数,导致实验结果误差偏大。因此这里设定阈值为速度场计算所得最大区块强度的0.1%,如果速度场区块强度如果低于设定的阈值,则不计入之后的区块统计。
在上一步操作中,我们获得了视频对应的一组速度场的速度场变化程度,即一组VC值,如图6所示:
观测对比手持重拍摄视频与原始视频两组VC值发现:1) 手持重拍摄视频的VC值的平均值明显低于原始视频。2) 手持重拍摄视频的VC值的波动程度明显大于原始视频。
因此本文提取VC值的平均值与方差作为二维特征,计算公式如下:
图6. VC值。(a) 原始视频VC值;(b) 对应原始视频的手持重拍摄视频VC值
SVM即支持向量机,属于机器学习领域中一个有监督的学习模型,通常用于模式识别与分类。
SVM的主要思想概括来讲为以下两点:
1) 针对线性可分情况直接进行分析;
2) 针对线性不可分情况,通过非线性算法将低维输入空间的不可份样本转化至高维空间,使其线性可分。
在本文算法中使用matlab自带的SVM工具完成最后的训练和测试步骤。因为本文算法特征已经高度总结了手持重拍摄对视频的影响,最终的手持特征只有两维,只需要在两维平面上就可以完成,而不需要高维的线性算法,因此直接使用matlab中自带的SVM工具进行训练测试即可。
本文使用了从YUV序列挑选的10部视频(Waterfall, Paris, Hall monitor, Container, City, Bridge, Akiyo, Salesman, Station, Old town crossing)如图7所示,以及对应的10部重拍摄视频,以每30张帧提取为一个视频,共提取了正负样本共700段,其中包括由原始视频截取的正样本350段,由重拍摄视频截取的负样本350段,然后从正、负样本中各选取一半共350段样本用作训练集加以训练,正、负样本中剩下的350段视频用作测试集加以测试。之所以选取以上10部视频是因为需要与对比论文 [
用作测试的350段视频中,由原始视频截取的175段正样本里有169段视频被判断为原始视频,有6段被判断为重拍摄视频,由重拍摄视频截取的175段负样本则被全部判断为重拍摄视频,实验结果如表1所示。
纵观表1,我们可以得出以下结论。
1) 从表中数据可以看出本文算法在正样本的检测上准确率达到了96.6%,在负样本的检测上达到了100%,平均准确率达到了98.3%,实验表明了本文算法中的二维手持特征能很好的区分手持重拍摄视频与原始视频。
2) 本文算法还与Marco Visentini-Scarzanella’s [
本文算法实验的所有测试样本中,175段正样本内有6段被误判,而在175段负样本内没有漏判的情况,对误判的6段正样本视频进行误差分析,观察原始视频时发现都来源于同一部YUV序列,如图8所示。
从图中可以发现原始视频中有很明显的不规则的彩色条纹,彩色条纹的实质是拍摄原始视频时的背景噪声,这严重影响了视频的质量,导致在实验中难以区分速度场的变化是由噪声引起的还是手持特征引起的,也因此导致了误判的发生。
本文算法统计了检测视频在各个阶段的耗时比较,默认svm已经在测试前训练完成本文算法模型,对10段长度为300帧,分辨率为352 × 288的视频进行检测,统计各阶段耗时,结果如表2所示。
从表中我们可以看出,检测10部长度为300帧,分辨率为352 × 288的视频,步骤中涉及到的本文算法的总用时是3.44 s秒,平均每部用时0.34 s,这说明本文算法的检测效率非常高,可以适用于平台性的大规模视频检测。
本文提出了一种基于速度场的手持重拍摄视频检测算法,该算法有效的利用了手持拍摄视频在时域上的无序性从而与原始视频进行区分。算法具体流程中通过提取视频相邻帧建的速度场,利用速度场改变方向区块的比例来量化该种特性,并通过减采样的方法将无序性放大,还利用了阈值进行去噪,使得
图7. 视频集
图8. 误判原始视频
准确率 | 本文算法 | Marco’s [ |
---|---|---|
TPR | 96.6% | 90% |
TNR | 100% | 70% |
平均准确率 | 98.3% | 80% |
表1. 实验结果
TPR:true positive rate,在本文算法中表示原始视频被判断为原始视频的概率;TNR:true negative rate,在本文算法中表示重拍摄视频被判断为重拍摄视频的概率。
耗时 | 本文算法 |
---|---|
速度场变化程度计算 | 3.2 s |
二维特征提取 | 0.18 s |
SVM分类 | 0.06 s |
总计 | 3.44 s |
表2. 运行消耗时间(在matlab中运行)
手持抖动特征在无序性特征上能够更精确。实验结果表明,手持抖动的无序性特征能够有效的对手持重拍摄视频与原始视频进行区分,该算法针对手持重拍摄视频有非常好的检测效果,并且检测的效率非常高。但是,如果视频中的噪声过大会影响最终的实验结果,因此下一步的工作目标是对视频噪声和手持抖动特征进行更好的分离。
在此感谢国家自然科学基金项目的支持,感谢研究生导师孙锬锋先生与蒋兴浩先生的指导和帮助,也要向所有文献作者与研究相同领域的前辈们表示由衷的感谢。
蒋卓彦,孙锬锋,蒋兴浩. 基于速度场的手持重拍摄视频检测算法 Analysis of Hand-Held Recaptured Video Detection Algorithm Exploiting Velocity Field[J]. 计算机科学与应用, 2016, 06(12): 761-771. http://dx.doi.org/10.12677/CSA.2016.612091