水印嵌入方法、水印提取方法及装置

文档序号:1941812 发布日期:2021-12-07 浏览:14次 >En<

阅读说明:本技术 水印嵌入方法、水印提取方法及装置 (Watermark embedding method, watermark extracting method and device ) 是由 高静 于 2020-06-01 设计创作,主要内容包括:本发明提供了一种水印嵌入方法、水印提取方法及装置,属于数字图像处理和信息安全技术领域。其中,水印嵌入方法包括:获取原始水印图像和原始视频;利用所述原始水印图像获取视频水印;在所述原始视频的视频帧中通过修改像素值的方法逐帧嵌入所述视频水印,并将嵌入所述视频水印后的视频帧转换为水印视频。本发明的技术方案能够实现视频隐形水印嵌入。(The invention provides a watermark embedding method, a watermark extracting method and a watermark extracting device, and belongs to the technical field of digital image processing and information security. The watermark embedding method comprises the following steps: acquiring an original watermark image and an original video; acquiring a video watermark by using the original watermark image; and embedding the video watermark into the video frame of the original video frame by frame through a method of modifying pixel values, and converting the video frame embedded with the video watermark into a watermark video. The technical scheme of the invention can realize the video invisible watermark embedding.)

水印嵌入方法、水印提取方法及装置

技术领域

本发明涉及数字图像处理和信息安全技术领域,特别是指一种水印嵌入方法、水印提取方法及装置。

背景技术

数字水印技术是在不影响载体感知度的情况下,将水印信息嵌入到文档、图像、音频、视频等载体中,不易被发现或篡改。水印信息的嵌入者可以利用设定的算法秘钥提取水印,通过相应的评估标准评价提取到的水印信息与原始水印信息的差异,进而判定含有水印信息的数据是否已被攻击或者篡改。

视频水印技术作为数字水印技术的一种,是视频版权保护、内容认证、广播监控、拷贝控制等视频产品保护的一种重要手段。

近几年视频水印技术不断发展,视频水印方案主要是基于对视频做出修改的方案。如基于原始视频的水印算法,就是对未压缩的视频进行处理,将水印嵌入到未压缩的视频上。再者就是基于压缩视频的水印算法。

基于原始视频的水印算法主要有空域视频水印和频域视频水印算法。空域视频水印是指直接将水印信息嵌入到原始视频的亮度分量或色度分量上,构成含水印的视频。最低有效位法(Least Significant Bit,LSB)是典型的空域水印算法,是修改色度分量的最低位完成水印的嵌入,这个算法实现简单,但鲁棒性较差,还可能会影响到视频质量。

发明内容

本发明要解决的技术问题是提供一种水印嵌入方法、水印提取方法及装置。

为解决上述技术问题,本发明的实施例提供技术方案如下:

一方面,提供一种水印嵌入方法,包括:

获取原始水印图像和原始视频;

利用所述原始水印图像获取视频水印;

在所述原始视频的视频帧中通过修改像素值的方法逐帧嵌入所述视频水印,并将嵌入所述视频水印后的视频帧转换为水印视频。

一些实施例中,所述利用所述原始水印图像获取视频水印包括:

将所述原始水印图像转换为长度为n的位序列l,n为正整数;

生成一个长度为n的伪随机位序列s;

将序列l和序列s进行逐位的逻辑异或运算,将运算结果与伪随机数相乘得到水印序列作为所述视频水印。

一些实施例中,所述生成一个长度为m的伪随机位序列s包括:

使用RC4算法生成伪随机位序列s。

一些实施例中,所述在所述原始视频的视频帧中通过修改像素值的方法逐帧嵌入所述视频水印,并将嵌入所述视频水印后的视频帧转换为水印视频包括:

将所述原始视频的视频帧分解成n×n个视频块,n为正整数,取决于所述视频帧和所述视频水印的维数;

对于每一视频块,计算所述视频块中像素的平均值Vmean,最大值Vmax和最小值Vmin;确定所述视频块中像素值高于所述平均值的第一像素和像素值低于所述平均值的第二像素;计算所述第一像素的像素值的平均值mhigh和所述第二像素的像素值的平均值mlow;根据Vmean、Vmax、mhigh、mhigh和mlow计算所述视频块中每一像素的新的像素值V’;根据每一像素的新的像素值V’生成带水印的视频块;

根据带水印的视频块生成带水印的视频帧,并根据带水印的视频帧生成所述水印视频。

一些实施例中,n的值如下:

其中M,N和X,Y分别表示所述视频帧和所述视频水印的维数。

一些实施例中,计算所述视频块中每一像素的新的像素值V’包括:

如果提取的位为0:

若像素的初始像素值V小于mlow,则V’=Vmin;若Vmean<V<mhigh,则V’=Vmean;否则V’=V–1;

如果提取的位大于0:

若V>mhigh,则V’=Vmax;若mlow<V<Vmean,则V’=Vmean;否则V’=V+1。

本发明的实施例还提供了一种水印提取方法,包括:

获取原始视频和水印视频,所述水印视频为采用如上所述的水印嵌入方法生成;

将所述原始视频的视频帧分解成n乘n个第一视频块,n为正整数;

将所述水印视频的视频帧分解成n乘n个第二视频块;

根据分解后的第一视频块和第二视频块提取视频水印。

一些实施例中,所述根据分解后的第一视频块和第二视频块提取视频水印包括:

对于每一第一视频块,计算所述第一视频块的像素值之和,以及与所述第一视频帧对应的第二视频块的像素值之和,如果第一视频块的像素值之和大于对应的第二视频块的像素值之和,则提取位为0,否则提取位为1;

重复上一步骤,得到n乘n的序列;

生成一个长度为n的伪随机位序列s;

利用伪随机位序列s对n乘n的序列进行逐位的逻辑异或运算,得到所述视频水印。

本发明的实施例还提供了一种水印嵌入装置,包括:

第一获取模块,用于获取原始水印图像和原始视频;

第二获取模块,用于利用所述原始水印图像获取视频水印;

转换模块,用于在所述原始视频的视频帧中通过修改像素值的方法逐帧嵌入所述视频水印,并将嵌入所述视频水印后的视频帧转换为水印视频。

一些实施例中,所述第二获取模块具体用于将所述原始水印图像转换为长度为n的位序列l,n为正整数;生成一个长度为n的伪随机位序列s;将序列l和序列s进行逐位的逻辑异或运算,将运算结果与伪随机数相乘得到水印序列作为所述视频水印。

一些实施例中,所述第二获取模块具体用于使用RC4算法生成伪随机位序列s。

一些实施例中,所述转换模块具体用于将所述原始视频的视频帧分解成n×n个视频块,n为正整数,取决于所述视频帧和所述视频水印的维数;对于每一视频块,计算所述视频块中像素的平均值Vmean,最大值Vmax和最小值Vmin;确定所述视频块中像素值高于所述平均值的第一像素和像素值低于所述平均值的第二像素;计算所述第一像素的像素值的平均值mhigh和所述第二像素的像素值的平均值mlow;根据Vmean、Vmax、mhigh、mhigh和mlow计算所述视频块中每一像素的新的像素值V’;根据每一像素的新的像素值V’生成带水印的视频块;根据带水印的视频块生成带水印的视频帧,并根据带水印的视频帧生成所述水印视频。

一些实施例中,n的值如下:

其中M,N和X,Y分别表示所述视频帧和所述视频水印的维数。

一些实施例中,所述转换模块具体用于执行以下步骤:

如果提取的位为0:

若像素的初始像素值V小于mlow,则V’=Vmin;若Vmean<V<mhigh,则V’=Vmean;否则V’=V–1;

如果提取的位大于0:

若V>mhigh,则V’=Vmax;若mlow<V<Vmean,则V’=Vmean;否则V’=V+1。

本发明的实施例还提供了一种水印提取装置,包括:

第三获取模块,用于获取原始视频和水印视频,所述水印视频为采用如上所述的水印嵌入方法生成;

第一分解模块,用于将所述原始视频的视频帧分解成n乘n个第一视频块,n为正整数;

第二分解模块,用于将所述水印视频的视频帧分解成n乘n个第二视频块;

提取模块,用于根据分解后的第一视频块和第二视频块提取视频水印。

一些实施例中,所述提取模块具体用于对于每一第一视频块,计算所述第一视频块的像素值之和,以及与所述第一视频帧对应的第二视频块的像素值之和,如果第一视频块的像素值之和大于对应的第二视频块的像素值之和,则提取位为0,否则提取位为1;重复上一步骤,得到n乘n的序列;生成一个长度为n的伪随机位序列s;利用伪随机位序列s对n乘n的序列进行逐位的逻辑异或运算,得到所述视频水印。

本发明的实施例还提供了一种水印嵌入装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现如上所述的水印嵌入方法。

本发明的实施例还提供了一种水印提取装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现如上所述的水印提取方法。

本发明的实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的水印嵌入方法中的步骤或实现如上所述的水印提取方法中的步骤。

本发明的实施例具有以下有益效果:

上述方案中,通过直接修改视频的像素值来嵌入水印,算法简单但具有很好的抗攻击能力。

附图说明

图1为本发明实施例水印嵌入方法的流程示意图;

图2为本发明实施例水印提取方法的流程示意图;

图3为本发明实施例调制视频水印的示意图;

图4为本发明实施例视频水印嵌入的实现示意图;

图5为视频裁剪前的图像;

图6为视频裁剪后的图像;

图7为原始水印的图像;

图8为视频裁剪后提取的水印的图像;

图9为水印视频帧裁剪前的峰值信噪比PSNR和归一化相关系数NC;

图10为水印视频帧裁剪后的PSNR和NC;

图11为本发明实施例水印嵌入装置的结构示意图;

图12为本发明实施例水印提取装置的结构示意图。

具体实施方式

为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

嵌入水印可以视为在强背景(原始图像)下迭加一个弱信号(水印),由于人类视觉系统HVS(Human Visual System)的分辨率受到一定限制,只要迭加信号的幅度低于HVS的对比度门限,HVS就无法感觉到信号的存在,因此通过对原始图像做一定的调整,可以在不改变视觉效果的情况下嵌入一些水印信息。

基于上述分析,本发明实施例提供一种水印嵌入方法,如图1所示,包括:

步骤101:获取原始水印图像和原始视频;

步骤102:利用所述原始水印图像获取视频水印;

步骤103:在所述原始视频的视频帧中通过修改像素值的方法逐帧嵌入所述视频水印,并将嵌入所述视频水印后的视频帧转换为水印视频。

本实施例中,通过直接修改视频的像素值来嵌入水印,算法简单但具有很好的抗攻击能力。

一些实施例中,所述利用所述原始水印图像获取视频水印包括:

将所述原始水印图像转换为长度为n的位序列l,n为正整数;

生成一个长度为n的伪随机位序列s;

将序列l和序列s进行逐位的逻辑异或运算,将运算结果与伪随机数相乘得到水印序列作为所述视频水印。

一些实施例中,所述生成一个长度为m的伪随机位序列s包括:

使用RC4算法生成伪随机位序列s。

一些实施例中,所述在所述原始视频的视频帧中通过修改像素值的方法逐帧嵌入所述视频水印,并将嵌入所述视频水印后的视频帧转换为水印视频包括:

将所述原始视频的视频帧分解成n×n个视频块,n为正整数,取决于所述视频帧和所述视频水印的维数;

对于每一视频块,计算所述视频块中像素的平均值Vmean,最大值Vmax和最小值Vmin;确定所述视频块中像素值高于所述平均值的第一像素和像素值低于所述平均值的第二像素;计算所述第一像素的像素值的平均值mhigh和所述第二像素的像素值的平均值mlow;根据Vmean、Vmax、mhigh、mhigh和mlow计算所述视频块中每一像素的新的像素值V’;根据每一像素的新的像素值V’生成带水印的视频块;

根据带水印的视频块生成带水印的视频帧,并根据带水印的视频帧生成所述水印视频。

一些实施例中,n的值如下:

其中M,N和X,Y分别表示所述视频帧和所述视频水印的维数。

一些实施例中,计算所述视频块中每一像素的新的像素值V’包括:

如果提取的位为0:

若像素的初始像素值V小于mlow,则V’=Vmin;若Vmean<V<mhigh,则V’=Vmean;否则V’=V–1;

如果提取的位大于0:

若V>mhigh,则V’=Vmax;若mlow<V<Vmean,则V’=Vmean;否则V’=V+1。

本发明的实施例还提供了一种水印提取方法,如图2所示,包括:

步骤201:获取原始视频和水印视频,所述水印视频为采用如上所述的水印嵌入方法生成;

步骤202:将所述原始视频的视频帧分解成n乘n个第一视频块,n为正整数;

步骤203:将所述水印视频的视频帧分解成n乘n个第二视频块;

步骤204:根据分解后的第一视频块和第二视频块提取视频水印。

一些实施例中,所述根据分解后的第一视频块和第二视频块提取视频水印包括:

对于每一第一视频块,计算所述第一视频块的像素值之和,以及与所述第一视频帧对应的第二视频块的像素值之和,如果第一视频块的像素值之和大于对应的第二视频块的像素值之和,则提取位为0,否则提取位为1;

重复上一步骤,得到n乘n的序列;

生成一个长度为n的伪随机位序列s;

利用伪随机位序列s对n乘n的序列进行逐位的逻辑异或运算,得到所述视频水印。

下面结合附图以及具体的实施例对本发明的水印嵌入及提取方法进行进一步介绍,本发明的技术方案包括以下步骤:

S1、给定要用作水印图像的标志或二进制图像(即原始水印图像),调制视频水印;

依据图像系统理论,对图像而言,不同的成像手段得到不同的图像系统。数字图像系统是一个混合系统,输入的是空间位置连续信号,因此可看作是一个长度为n的位序列,即原始水印图像可以转换为长度为n的序列l:

l=[l1,l2,…,ln],li∈{0,1};

使用RC4算法生成一个长度为n的伪随机位序列s=[s1,s2,…,sn],si∈{0,1},将序列l和序列s通过一个逐位的逻辑异或运算进行水印的调制,将得到的结果与使用MATLAB随机数生成器生成的伪随机数(0,1)相乘得到最终的被调制的水印序列w=[w1,w2,…,wn],作为视频水印,实现过程如图3所示。

S2、逐帧嵌入已完成调制的视频水印后,将原始视频转换为水印视频;

在水印嵌入之前,将视频帧分解成n×n个块,n的值如下,

其中M,N和X,Y分别表示原始视频帧和视频水印的维数。

水印嵌入每个视频块的过程如下:

步骤S21,计算每个视频块的像素的平均值Vmean,最大值Vmax和最小值Vmin,其中,像素值可以为像素的灰阶值;

步骤S22,查找该视频块中高于和低于平均值的像素的像素值;

步骤S23,计算低于该视频块平均值的像素的平均值mlow和高于该视频块平均值的像素的平均值mhigh;

步骤S24,根据以下方法计算每一像素新的像素值v′:

如果提取的位为0:

若像素的初始像素值V小于mlow,则V’=Vmin;若Vmean<V<mhigh,则V’=Vmean;否则V’=V–1;

如果提取的位大于0(比如为1):

若V>mhigh,则V’=Vmax;若mlow<V<Vmean,则V’=Vmean;否则V’=V+1。

步骤S25,用生成的带水印的视频帧替换原始视频的视频帧。

如图4所示,总体上视频水印嵌入的实现主要包括5个步骤:选择原始视频和水印图像、将原始视频转换为多个视频帧、调制水印图像、应用水印嵌入算法将调制出的水印嵌入至每一个视频帧中、最后将嵌入水印的视频帧转换为视频文件。

S3、比较原始视频与水印视频的相关性,提取视频水印。

所述步骤S3,将原始视频转换为视频帧,并将每一视频帧分成n*n的视频块;将水印视频转换为视频帧,并将每一视频帧分成n*n的视频块,n值同水印嵌入时的n值。比较原始视频帧与水印视频帧的相关性,提取水印。

视频帧的相关性比较可以按照下列步骤进行:

S31,计算每对相应视频块的像素之和,如果原始视频的视频块像素之和大于对应的水印视频的视频块的像素之和,则认为提取的位为0,否则认为为1;其中,原始视频的视频块在视频帧中的位置与对应的水印视频的视频块在视频帧中的位置相同;

S32,对提取出来的数据进行XOR处理,采用嵌入水印时相同的伪随机序列,得到提取出来的视频水印。

本实施例的技术方案提供了一种基于空间域的视频隐形水印嵌入和提取方法,将直接修改全视频帧像素值与视频水印嵌入提取相结合。相比较于频域、编码域、压缩域视频水印嵌入算法,本发明的基于空间域修改全视频帧像素值的算法实现简单,在水印嵌入同步性上有很好的效果。另外,本发明的算法实现的是隐形水印,视频信号的改变幅度很小,视觉系统很难察觉,避免了对视频视觉质量的改变。同时对水印的鲁棒性指标和水印不可见性指标进行计算,可以判断算法具有很好的抗攻击性。

视频裁剪前后的水印鲁棒性可以参见图5-图10,图5所示为视频裁剪前的图像,图6所示为视频裁剪后的图像,图7所示为原始水印的图像,图8所示为视频裁剪后提取的水印的图像,图9所示为水印视频帧裁剪前的峰值信噪比PSNR和归一化相关系数NC,图10为水印视频帧裁剪后的PSNR和NC,PSNR大于48说明图像质量极好,NC值越大表示两张图相关性越好;NC值大于0.6,说明提取的水印有效。

本发明的实施例还提供了一种水印嵌入装置,如图11所示,包括:

第一获取模块11,用于获取原始水印图像和原始视频;

第二获取模块12,用于利用所述原始水印图像获取视频水印;

转换模块13,用于在所述原始视频的视频帧中通过修改像素值的方法逐帧嵌入所述视频水印,并将嵌入所述视频水印后的视频帧转换为水印视频。

本实施例中,通过直接修改视频的像素值来嵌入水印,算法简单但具有很好的抗攻击能力。

一些实施例中,所述第二获取模块具体用于将所述原始水印图像转换为长度为n的位序列l,n为正整数;生成一个长度为n的伪随机位序列s;将序列l和序列s进行逐位的逻辑异或运算,将运算结果与伪随机数相乘得到水印序列作为所述视频水印。

一些实施例中,所述第二获取模块具体用于使用RC4算法生成伪随机位序列s。

一些实施例中,所述转换模块具体用于将所述原始视频的视频帧分解成n×n个视频块,n为正整数,取决于所述视频帧和所述视频水印的维数;对于每一视频块,计算所述视频块中像素的平均值Vmean,最大值Vmax和最小值Vmin;确定所述视频块中像素值高于所述平均值的第一像素和像素值低于所述平均值的第二像素;计算所述第一像素的像素值的平均值mhigh和所述第二像素的像素值的平均值mlow;根据Vmean、Vmax、mhigh、mhigh和mlow计算所述视频块中每一像素的新的像素值V’;根据每一像素的新的像素值V’生成带水印的视频块;根据带水印的视频块生成带水印的视频帧,并根据带水印的视频帧生成所述水印视频。

一些实施例中,n的值如下:

其中M,N和X,Y分别表示所述视频帧和所述视频水印的维数。

一些实施例中,所述转换模块具体用于执行以下步骤:

如果提取的位为0:

若像素的初始像素值V小于mlow,则V’=Vmin;若Vmean<V<mhigh,则V’=Vmean;否则V’=V–1;

如果提取的位大于0:

若V>mhigh,则V’=Vmax;若mlow<V<Vmean,则V’=Vmean;否则V’=V+1。

本发明的实施例还提供了一种水印提取装置,如图12所示,包括:

第三获取模块21,用于获取原始视频和水印视频,所述水印视频为采用如上所述的水印嵌入方法生成;

第一分解模块22,用于将所述原始视频的视频帧分解成n乘n个第一视频块,n为正整数;

第二分解模块23,用于将所述水印视频的视频帧分解成n乘n个第二视频块;

提取模块24,用于根据分解后的第一视频块和第二视频块提取视频水印。

一些实施例中,所述提取模块具体用于对于每一第一视频块,计算所述第一视频块的像素值之和,以及与所述第一视频帧对应的第二视频块的像素值之和,如果第一视频块的像素值之和大于对应的第二视频块的像素值之和,则提取位为0,否则提取位为1;重复上一步骤,得到n乘n的序列;生成一个长度为n的伪随机位序列s;利用伪随机位序列s对n乘n的序列进行逐位的逻辑异或运算,得到所述视频水印。

本发明的实施例还提供了一种水印嵌入装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现如上所述的水印嵌入方法。

本发明的实施例还提供了一种水印提取装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现如上所述的水印提取方法。

本发明的实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的水印嵌入方法中的步骤或实现如上所述的水印提取方法中的步骤。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种图像数据的处理方法、装置、电子设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类