发明内容
针对现有技术中所存在的不足,本发明的目的在于:提出一种比特流鲁棒数字图像水印嵌入和检测方法及装置。用该方法及装置嵌入数字水印之后的数字图像,即使经过缩放、旋转、剪切、翻转、平移、镜像、打印-扫描等图像处理操作后,通过周期水印的自相关特征,能够计算变换参数并从恢复图像中正确提取水印数据,从而实现了数字图像作品的版权保护功能。
为了达到上述目的,本发明是通过以下步骤进行的。利用由密钥控制的伪随机序列对比特流数据进行调制,将调制信号相加,然后构造为轴对称的水印,最后根据原始数字图像的掩蔽效应周期性地自适应嵌入原始数字图像中。当需要验证数字图像作品的版权时,并不需要原始图像参与,首先预测周期水印并计算周期水印的自相关函数,根据自相关函数的峰值组成的栅格结构判断图像经历的仿射变换并恢复图像;从恢复图像中再次预测水印,利用与嵌入端相同的密钥产生伪随机序列,并按照与嵌入端相同的规则构造为轴对称的信号,解调预测的水印得到二进制码字,从而提出版权信息。
本发明包括嵌入数字水印和检测数字水印两大部分。嵌入数字水印方法及装置包括:将数据调制,然后将调制之后的信号构造为轴对称的水印并将其周期性地自适应嵌入数字图像。检测数字水印的方法及装置包括:预测水印并计算预测水印的自相关函数,利用自相关函数局部峰值的坐标判断图像经历的仿射变换的参数,并根据参数恢复图像。最后从恢复图像中预测水印,通过解调之后提取出数据。现详细说明如下:
本发明的第一方面提供了这样一种比特流鲁棒数字图像水印嵌入的方法,包括下面三个步骤:
第一步是扩谱调制:利用密钥产生一个由伪随机序列构成的集合,集合的元素数量与比特流的比特数量相同,伪随机序列的长度根据对鲁棒性的要求而定。用伪随机序列调制相应的比特,形成新的伪随机序列集合,然后将集合内所有的伪随机序列相加得到最后的伪随机序列。
第二步是构造轴对称的水印信号:将得到的伪随机序列重新排列形成一个二维子块,子块以四个边的任意一个为轴翻转,将两个子块排列在一起形成一个轴对称的宏块,该宏块可以为左右对称、上下对称。然后根据图像大小将宏块平铺,得到一个与原始图像大小相同的周期性水印,最后通过限幅器对周期性水印进行限幅。其中通过限幅器限幅也可以在本步骤开始时进行,对得到的伪随机序列通过限幅器进行限幅。
第三步是根据原始数字图像的掩蔽效应,把上述构造的水印周期性地自适应嵌入原始数字图像中:首先计算原始数字图像每个分量的噪声可见度函数,设置一个对比灵敏度的初始值,将原始图像分量的数据存入一个二维数组,用某个尺寸的小窗口顺序扫描二维数组,计算每个窗口内的方差将其存入另一个二维数组并且找出最大的方差值,用对比灵敏度初始值除以最大的方差值得到一个调整参数,调整参数与方差的乘积加一,取倒数得到的值变为该分量的噪声可见度函数(NVF)。然后将周期水印自适应地嵌入数字图像,原始图像各个分量的NVF值乘以周期水印的值,然后分别加到原始图像各个分量的数值上,在此过程中水印的强度根据鲁棒性和不可见性的要求可以设定。
本发明的第二方面提供了这样一种比特流鲁棒数字图像水印检测的方法,包括下面五个步骤:
第一步是预测周期水印:对数字图像通过滤波的方法得到一个信号,该信号与其自身的噪声可见度函数的乘积,作为周期水印的预测值。
第二步是判断仿射变换并恢复图像:计算周期水印预测值的自相关函数,将自相关函数的值映射为属于某个值域的数据(如图像值域0-255),利用特定形状(如十字、交叉等)滤波的方法获得自相关函数的局部峰值,根据局部峰值的坐标点构成的栅格结构计算图像经历的仿射变换参数,根据参数对数字图像进行逆变换得到恢复图像,如果没有规则的局部峰值,则说明该图像中不含水印,无需继续进行下列步骤。
第三步是再次预测水印:对恢复的数字图像再次按照第一步的方法得到周期水印的预测值。
第四步是判断从第三步得到预测值中是否存在水印:利用与嵌入端相同的密钥产生伪随机序列集合,根据嵌入端的构造原则,将标志比特对应的伪随机序列构造为轴对称的二维宏块,计算宏块与周期水印预测值的互相关函数;将互相关函数的极值,与事先设定的阈值进行比较,如果大于阈值说明存在水印,进行第五步;如果小于阈值,说明图像中不含水印,无需继续进行下列步骤。
第五步是从第三步得到的预测水印中提取数据:根据嵌入端的构造原则,将其他伪随机序列分别构造为轴对称的二维宏块,计算二维宏块与周期水印预测值的互相关函数;求互相关函数的绝对值的最大值,根据绝对值最大的互相关函数值与事先设定的阈值比较,判断水印比特。
本发明的第三方面提供了这样一种比特流鲁棒数字图像水印的嵌入装置,该嵌入装置备有利用伪随机序列对比特流数据进行扩谱调制的调制装置;将调制信号构造为轴对称的水印的构造装置;根据原始数字图像的掩蔽效应,把构造的水印周期性地自适应埋入原始数字图像中的埋入装置。其中调制装置包括能够产生伪随机序列的伪随机数发生器和将调制信号进行叠加的叠加装置。构造装置包括对调制信号进行限幅的限幅器。以及插入在上述构造装置和上述埋入装置之间的计算数字图像的掩蔽效应的计算装置。
本发明的第四方面提供了这样一种比特流鲁棒数字图像水印的检测装置,该检测装置备有用来从数字图像中预测周期水印的水印预测装置;用来计算预测水印的自相关函数,判断图像经历的仿射变换参数并恢复图像的图像校正装置;根据与嵌入端同样的密钥产生的伪随机序列集合,按照跟嵌入端同样的规则构造轴对称的二维宏块,解调预测的周期水印,得到水印数据的解调装置。其中水印预测装置还备有预测周期水印的滤波器和计算数字图像的掩蔽效应的计算装置;图像校正装置包括计算周期水印预测值的自相关函数的计算装置和获得自相关函数的局部峰值的滤波器。解调装置中还备有能够利用密钥产生伪随机序列的伪随机数发生器,将伪随机信号构造为轴对称的二维宏块的构造装置,根据轴对称的二维宏块与预测的周期水印的互相关的值,判断水印比特的匹配滤波器。
本发明“一种比特流鲁棒数字图像水印的嵌入和检测的方法及装置”的效果如下:
1.本发明采用了轴对称的周期性水印嵌入技术,可以有效地消除仿射变换、剪切、翻转、镜像等几何攻击所带来的影响,为检测水印提供了可靠的同步信息。
2.由于本发明采用了扩谱调制技术、纠错码技术,即使在图像经历了某些图像处理操作,仍然可以准确地提取数据,为数字水印的鲁棒性提供了很好的保证。
本发明之所以具有上述效果,主要是因为本发明中的数字图像水印技术利用周期性水印自相关函数的峰值组成的栅格结构也呈现出与水印同样的周期性这一特点,能够重新找到同步信息,从而有效地消除上述几何攻击带来的影响;另外本发明利用扩谱水印技术增强水印的鲁棒性,利用特定形状的滤波器快速准确地定位预测水印自相关函数的局部峰值位置。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细描述,并请参阅附图。图1是表示一种比特流鲁棒数字图像水印嵌入和检测的方法及装置的流程图,其中分为嵌入数字水印和检测数字水印两部分。
嵌入装置的结构包括利用伪随机序列对比特流数据进行扩谱调制的调制装置;将调制信号构造为轴对称的水印的构造装置;根据原始数字图像的掩蔽效应,把构造的水印周期性地自适应埋入原始数字图像中的埋入装置。其中调制装置包括能够通过将原始比特流数据进行纠错编码,然后在码字前面加上用来在检测的时候能够快速判断图像中是否含有水印的一个标志比特的编码器,能够将单极性码字变为双极性码字的转换器,能够产生伪随机序列的伪随机数发生器,以及对调制信号进行叠加的叠加装置。构造装置包括对调制信号进行限幅的限幅器,以及插入在上述构造装置和上述埋入装置之间的计算数字图像的掩蔽效应的计算装置。
通过嵌入装置将数字水印嵌入原始图像中的操作步骤如下:首先,利用BCH纠错码技术通过编码器将多比特二进制数据编码并且在码字前面加上一个标志比特1,然后通过转换器将单极性纠错码字变为双极性码字;第二步,通过伪随机发生器利用密钥产生一个由伪随机序列构成的集合,利用调制装置调制对应的双极性码字,然后通过叠加器将所有的调制信号序列相加得到最后的伪随机序列;第三步,通过构造装置将得到的伪随机序列重新排列形成一个二维子块,子块以四个边的任意一个为轴翻转,将两个子块排列在一起形成一个轴对称的宏块,该宏块可以为左右对称、上下对称,或者将两个字块作为整体,再翻转一次构造为既左右对称又上下对称的宏块,如图2a所示(在本实施例中我们使用了既左右对称又上下对称的宏块),然后根据图像大小将宏块平铺开来得到周期性水印,最后通过限幅器对周期性水印进行限幅;第四步,通过计算装置计算原始数字图像每个分量的噪声可见度函数,用于控制在图像不同区域水印的嵌入强度;第五步,通过埋入装置将周期水印自适应地嵌入数字图像。
检测装置结构包括用来从数字图像中预测周期水印的水印预测装置;用来计算预测水印的自相关函数,判断图像经历的仿射变换参数并恢复图像的图像校正装置;根据与嵌入端同样的密钥产生的伪随机序列集合,按照跟嵌入端同样的规则构造轴对称的二维宏块,解调预测的周期水印,得到水印数据的解调装置。其中水印预测装置还备有预测周期水印的滤波器和计算数字图像的掩蔽效应的计算装置;图像校正装置包括计算周期水印预测值的自相关函数的计算装置和获得自相关函数的局部峰值的滤波器。解调装置中还备有能够利用密钥产生伪随机序列的伪随机数发生器,将伪随机信号构造为轴对称的二维宏块的构造装置,根据轴对称的二维宏块与预测的周期水印的互相关的值,判断水印比特的匹配滤波器。
通过检测装置将数字水印从数字图像中检测的操作步骤如下:第一步,通过水印预测装置,利用滤波器对数字图像进行低通滤波,得到一个信号,该信号与通过计算装置得到的该信号的噪声可见度函数的乘积,即为周期性水印的预测值;第二步,通过图像校正装置,让计算装置利用快速傅立叶变换(FFT)计算周期水印的自相关函数,获取图像经历的变换参数:将自相关函数值的范围映射到0-255,然后通过滤波装置利用图像处理的方法提取局部峰值;之后利用统计的方法,获取峰值之间的距离和角度,并且与嵌入时候设置的距离和角度对比,从而获取数字图像经历的仿射变换的参数,根据参数对图像进行逆变换恢复图像;第三步,利用第一步的方法和装置处理恢复图像再次得到预测周期水印;第四步,通过解调装置利用标志比特密钥对应的伪随机序列判断恢复图像中是否含有标志比特,从而判断是否存在水印;第五步:通过解调装置,利用根据密钥产生的伪随机序列集合,按照跟嵌入端同样的规则构造轴对称的宏块,解调周期水印得到二进制数据;第六步:通过纠错码译码器利用BCH译码技术提取原始水印数据。
以上每步步骤的作用效果参见附表1和附表2。
表1嵌入数字水印方法各步骤作用
步骤 |
操作 |
作用 |
1 |
编写纠错码程序,对多比特的版权 |
增强多比特版权信息对于图 |
|
信息数据进行纠错编码;前面加上一个标志比特之后变换为双极性码字。 |
像处理操作的鲁棒性。 |
2 |
编写调制程序,对双极性码字用根据密钥产生的伪随机序列进行调制之后求和。 |
增强水印对于图像处理操作的鲁棒性。 |
3 |
编写构造周期水印程序,将得到的伪随机序列重新排列形成一个二维子块,子块以四个边的任意一个为轴翻转,将两个子块排列在一起形成一个轴对称的宏块,该宏块可以为左右对称、上下对称,或者将两个字块作为整体,再翻转一次构造为既左右对称又上下对称的宏块,,并且将宏块平铺开来生成周期水印。 |
增强水印对于翻转、剪切、镜像的鲁棒性;检测的时候确定同步。 |
4 |
计算数字图像的掩蔽效应,用某个尺寸的窗口对数字图像扫描,计算噪声可见度函数NVF。 |
增加水印的不可见性。 |
5 |
将周期水印嵌入到数字图像,根据鲁棒性和不可见性的要求设定水印强度,然后将水印加性嵌入到数字图像中。 |
形成加水印图像。 |
表2检测数字水印方法的各步骤作用
步骤 |
操作 |
作用 |
1 |
对数字图像进行低通滤波得到高频图像信号,同时计算该信号的NVF,两者相乘得到周期性水印的预测值; |
检测的时候不需要原始图像参与。 |
2 |
计算周期水印的自相关函数,将自相关函数值的范围映射到0-255,然后提取局部峰值,获取图像可能经历的变换参数,并恢复图像; |
寻找检测水印所需的同步信息。 |
3 |
按照步骤1对恢复图像进行操作,再次预测周期水印 |
得到含有水印数据的信号 |
4 |
计算标志比特对应的伪随机序列构成的轴对称宏块与预测值之间的互相关,计算互相关函数最大值与水印能量开放之比,与事先设定的阈值比较。 |
判断预测值中是否存在嵌入的水印 |
5 |
编写解调译码程序,利用根据密钥产生的伪随机序列对预测水印解调, |
提取多比特的二进制数据 |
6 |
用纠错译码技术提取多比特的数据。 |
获得二进制版权信息 |
图2b是构造轴对称水印的流程图。
图2c是由标志比特1和数据“12345”按照图2的流程构造的周期水印。
图3a是选择的原始RGB图像lena;
图3b是图像lena红色分量的噪声可见度函数NVF。
图4是嵌入图2b所示的周期水印之后的RGB图像lena。
首先,读取图像Lena的颜色值,取出R、G、B三个分量,在三个二维数组中存储。分别计算三个分量的噪声可见度函数。然后将图2b所示的周期水印分别隐藏在图3a所示的lena图像中。在三个分量中加性嵌入水印的公式为:
R′=R+(1-NVF(R))·α+NVF(R)·β
G′=G+(1-NVF(G))·α+NVF(G)·β
B′=B+(1-NVF(B))·α+NVF(B)·β
其中α,β表示水印在图像中的嵌入强度;
具体的数字水印嵌入算法的详细操作步骤如下:
第一步,将数据“12345”编码为二进制“0011 0000 0011 1001”;利用BCH纠错编码后得到单极性码字“xxxxx”。
第二步,单极性码前面加上一个标志比特1,形成码字“1 xxxxx”,然后将所有的0映射为-1,得到双极性码字“1 xxxxx”。
第三步,根据双极性码字的数量,用密钥产生同样数量的相互独立的伪随机序列并且与双极性码字相乘,序列长度我们选择为1024,数据服从均匀分布,均值为0;最后将所有的序列相加,形成一个含有所有码字信息的一维信号。
第四步,将长度为1024的一维信号排列为32*32的二维数据块,然后把数据块分别沿右边缘、下边缘、右下角进行翻转,将四个二维数据块放入一个64*64的二维数组,形成轴对称的宏块。
第五步,读入图像Lena的大小为512*512,将得到的宏块平铺开来,形成512*512的周期水印数组。
第六步,读入图像Lena的颜色值,并且提出RGB三个分量,分别计算Lena图像R、G、B分量的噪声可见度函数NVF,计算中我们用的小窗口大小为3*3,对比灵敏度初始值设置为150。
第七步,将周期水印按照嵌入公式分别嵌入到图像的RGB三个分量,然后将三个分量合成RGB图像,形成加水印的Lena图像。
图5是周期水印的自相关函数及其经过仿射变换之后的自相关函数的峰值组成的栅格结构的变化示意图。这种变换在图像处理过程中会经常发生,但是很多水印算法对这种变换无能为力,因为这种变换破坏了同步信息。本发明从图像中检测水印之前,同样必须先寻找检测水印所需要的同步信息。嵌入的水印是周期性的,是以轴对称的,因此横向和纵向都是周期性的,从数学上很容易得出,周期水印自相关函数的局部峰值具有与周期水印同样的周期,即局部峰值在横向和纵向上亦呈周期出现,同时,周期水印即使经过仿射变换,其自相关函数的峰值位置也会发生相应的变化。正是利用以轴对称的周期信号的这一特点来取得检测水印所需的同步信息。
图6是图像经过仿射变换的一个例子,由图4经过旋转20度之后形成的图像。从图6中提取水印,首先预测周期水印,计算预测值的自相关函数。这里根据信号的傅立叶幅度谱与其自相关函数是一对傅立叶变换对,利用快速傅立叶变换计算预测水印的自相关函数。公式为:
ACF(W)=IFFT(|FFT(W)|2)
将自相关函数值的范围映射到0-255之间,生成一幅灰度图像。利用图像处理的方法提取其中的局部峰值,计算峰值之间的距离和角度,得出仿射变换参数,然后根据参数对图像进行逆变换恢复图像。具体的恢复图像的操作步骤如下:
第一步,首先预测周期水印,读入图6所示的数字图像,分别提出RGB三个颜色分量,对每个分量采用窗口大小为3*3的均值滤波,用原来的像素值减去滤波后的像素值,得到三个水印块,将三者相加之后存为一个二维数组。
第二步,计算二维数组的噪声可见度函数,计算过程中使用的小窗口尺寸为3*3,对比灵敏度初始值仍设为150。将噪声可见度函数的值与二维数组的值对应相乘,得到预测水印,存为二维数组。
第三步,计算预测水印的自相关函数:对预测水印先按照行的顺序进行FFT变换,然后按照列的顺序进行FFT变换,然后对FFT系数取绝对值并平方,存为二维数组;对该数组先按照行的顺序进行IFFT变换,然后按照列的顺序进行IFFT变换,然后对变换后的数值取绝对值,得到自相关函数。
第四步,求出自相关函数值的最小值和最大值,令最小值为0,最大值为255,将其他值映射到0-255之间,生成一幅8bit灰度图像;然后用特定窗口扫描图像,获取局部峰值的位置,如果该点为局部峰值,值设为1,否则为0,得到一幅二值图像。
第五步,统计二值图像中的非零点相互之间的距离,找出数量最多的距离值,该值除以64即为图像改变的倍数,两个局部峰值连线的角度就是图像被旋转的角度,根据两者便可恢复图像。
图7是从图6中提取的局部峰值组成的栅格结构图。
图8是根据从图7中得到的参数恢复的图像。
恢复图像之后,便可以进行水印提取操作,具体从恢复图像中提取数据的操作步骤如下:
第一步,首先预测周期水印,读入恢复的数字图像,分别提出RGB三个颜色分量,对每个分量采用窗口大小为3*3的均值滤波,用原来的像素值减去滤波后的像素值,得到三个水印块,将三者相加之后存为一个二维数组。
第二步,计算二维数组的噪声可见度函数,计算过程中使用的小窗口尺寸为3*3,对比灵敏度初始值仍设为150;将噪声可见度函数的值与二维数组的值对应相乘,得到预测水印。
第三步,利用密钥产生x个伪随机序列,将标志比特对应的序列构造为轴对称的宏块,计算宏块与预测水印的互相关,如果互相关最大值与64×64大小的水印能量开方的比值大于2,说明水印存在;否则不存在,退出。
第四步,将其他序列构造为轴对称的宏块,分别计算宏块与预测水印的互相关,并求互相关绝对值的最大值,如果该值大于0,判定比特为1;否则为0;得到单极性码字“xxxxx”。
第五步,将得到的“xxxxx”经过BCH译码,得到最后的数据“12345”。
至此,本发明中已经描述了用于在数字图像中嵌入以轴对称的周期性数字水印的方法和装置,以及如何通过检测提取水印信息的方法和装置,从而能够有效的保护图像作品的版权。对本领域普通技术人员来说,在不脱离本发明所附权利要求所限定的精神和范围的情况下,可以作出各种改变和变形。