• 一种基于熵的视频运动矢量隐写检测方法

    • 摘要:

      本发明公开了一种基于熵的视频运动矢量隐写检测方法;本方法采用滑动窗口选取局部区域内若干运动矢量,计算选取的运动矢量在水平分量H,垂直分量V,方向D,和长度L四个变量各自最低4bit的熵,得到一个滑动窗口内的16维熵值;通过在视频帧内移动滑动窗口,得到多组熵值,计算出16维熵均值,作为隐写分析特征.通过该方法,可以捕捉视频运动矢量隐写带来的"熵增加"异常,实现运动矢量的隐写检测.

    • 专利类型:

      发明专利

    • 申请/专利号:

      CN201610066493.8

    • 申请日期:

      2016.01.30

    • 公开/公告号:

      CN105721875A

    • 公开/公告日:

      2016-06-29

    • 发明人:

      王丽娜 徐一波 翟黎明 任延珍 谭选择 任魏翔

    • 申请人:

      武汉大学

    • 主分类号:

      H04N19/467(2014.01)I,H,H04,H04N,H04N19

    • 分类号:

      H04N19/467(2014.01)I,H04N17/00(2006.01)I,H,H04,H04N,H04N19,H04N17,H04N19/467,H04N17/00

    • 主权项:

      一种基于熵的视频运动矢量隐写检测方法,其特征在于:包括如下步骤:步骤1,检测者准备好cover非隐写样本,并在cover样本上进行隐写嵌入,得到对应的stego隐写样本;步骤2,提取视频每帧HVDL特征,并对cover样本和stego样本加入标签,获得对等的cover和stego训练样本特征;所述的提取方法包括以下步骤:步骤2.1,解码一个包含运动矢量的视频帧,获取该帧内每个宏块的运动矢量数值;此时视频帧转化为各大小尺寸的宏块及其宏块运动矢量(H,V)的组合;步骤2.2,对步骤2.1得到的包含运动矢量视频帧,选取滑动窗口;滑动窗口内的运动矢量不止一个,看作是一个二维变量(H,V);将运动矢量(H,V)这个2维变量扩展成16维变量,并计算窗口内该16维变量熵值,最后移动滑动窗口计算出多组熵值;所述的步骤2.2包括以下步骤:步骤2.2.1,设定一个大小为m*n的滑动窗口,其中m和n均为正整数;其中,m为滑动窗口高度,其代表最大宏块高度的m倍;n为滑动窗口的宽度,其代表该宽度为最大宏块宽度的n倍;步骤2.2.2,对于滑动窗口内宏块的运动矢量(H,V),通过计算运动矢量的H分量、V分量、方向D和长度L最低4bit,将2个变量转换为16个变量:<mfenced open = "(" close = ")"><mtable><mtr><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>H</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>H</mi><mo>,</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>H</mi><mo>,</mo><mn>3</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>H</mi><mo>,</mo><mn>4</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>V</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>V</mi><mo>,</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>V</mi><mo>,</mo><mn>3</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>V</mi><mo>,</mo><mn>4</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>D</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>D</mi><mo>,</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>D</mi><mo>,</mo><mn>3</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>D</mi><mo>,</mo><mn>4</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>L</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>L</mi><mo>,</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>L</mi><mo>,</mo><mn>3</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>L</mi><mo>,</mo><mn>4</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced>其中,Q为量化函数,以H分量为例,t代表了取H的倒数第t个bit,V、D、L的量化方法相同;α为运动矢量与水平右侧方向形成的角度,α∈[0,2π),因此D是α被划分为16等分后对应的0到15数值;代表运动矢量的取整长度;步骤2.2.3,对于滑动窗口内的每个运动矢量,都看作是这个滑动窗口内运动矢量(H,V)变量的观测值;基于步骤2.2.2,得到了16维变量的观测值,每个变量取值0或1;此16个变量的熵E为:E=‑(P0 log2 P0+P1 log2 P1)其中,P0即变量为0的概率,P1即变量为1概率;步骤2.2.4,每个滑动窗口都可计算得到一组16维熵值;累计计算滑动窗口数量,并累计每一维熵值;步骤2.2.5,若已扫描完这个视频帧,则跳转步骤3;否则,将滑动窗口一次水平或垂直移动一个最大宏块单位,会得到一个与此前被扫描过窗口不完全重复的新的滑动窗口,执行步骤2.2.3;步骤2.3,依据步骤2.2.5中的累计滑动窗口数量,及其各维熵的累积之和,对多组熵值数据求均值,得到16维熵均值,并将之作为特征输出;若还有后续视频帧,则回到步骤2.1,若没有后续视频帧,则完成特征提取;步骤3,使用SVM或其他分类器,对提取的特征进行特征的训练,得到训练模型;步骤4,对于任何一个给定的待测视频,同样使用步骤2的方法提取HVDL特征构造检测特征,将步骤3中训练得到的训练模型,对得到的每帧特征进行是否隐写进行预测,给出检测结果.