连续小波变换的图像水印算法技术
2016-05-21王丽吉建英郭志卓孙永辉
王丽+++吉建英+++郭志卓+++孙永辉
摘 要: 该算法对原始图像进行分块,对每一块进行两层小波分解,对水印图像进行一定次数的Arnold变换,这个次数作为密钥;在嵌入过程中,将所有的图像块分成两组,并且在每一块上选择嵌入位置,分别在两组图像块中嵌入同一水印。水印的提取:根据嵌入的规则,在相应位置提取两幅水印图像,再根据密钥进行一定次数的Arnold变换,将提取出的两幅水印图像合成为一个更加准确的水印图像。该算法能够较好的抵抗常见的图像处理方法,具有较强的鲁棒性。
关键词: 数字水印; Arnold变换; 鲁棒性; 相似度
中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2016)05-08-04
Abstract: The algorithm divides the original image into blocks, makes two layers of wavelet decomposition for each block, makes a certain number of Arnold transformations to the watermark image, and takes the number as the key. In the embedding process, all the image blocks are divided into two groups, select the embedded location on each piece, and embed the same watermark in two groups of image block respectively. Watermark extraction: according to the embedding rules, extract watermark images in the corresponding position, make a certain number of Arnold transformations according to the key, and synthesize the two watermark images extracted into a more accurate image. The algorithm can resist common image processing methods and has strong robustness.
Key words: digital watermark; Arnold transformation; robustness; similarity
0 引言
计算机网络和多媒体技术的飞速发展使得数字化媒体的传播更加便捷,而对其的恶意篡改和盗版也越来越猖撅。传统的版权保护技术已经不能有效满足信息安全的需要,而数字水印[1]技术作为信息隐藏技术研究领域的重要分支,以其较强的鲁棒性、安全性和透明性等特点成为一个新的研究领域,吸引了越来越多科研人员的注意。
目前,全球很多机构支持或开展此项研究,并且发现了一些有效的方法,比如空域算法[2]、变换域算法[3]。其中利用变换域算法获得的图像,即使在原始图像有一定失真的情况下,仍能提取出可信赖的水印,因此,变换域算法吸引了很多研究人员关注。本文对变换域算法做进一步改进,以获得更好的加密效果。
1 数字水印技术的基本概念和变换域算法
在一般的变换域算法中,大部分水印算法采用了扩展频谱通(spread spectrum communication)技术,但是该算法的隐藏和提取信息操作复杂,隐藏信息量不能很大,鉴于这种情况,本文对该算法进行一定的改进,展开基于小波变换和人类视觉系统的盲数字水印算法的研究[4]。
1.1 常用的概念
定义1.1 凡满足如下允许条件
(为的Fourier变换)或者相应的等价条件的函数称为一个母小波(mother wavelet)。对作平移和伸缩得:
其中,称为小波函数,简称小波。
定义1.2 设,为母小波函数,,,则f(t)的连续小波变换为,
。
其重构公式即f(t)的逆连续小波变换。
1.2 算法的基本思想
本算法为一种小波变换域上的数字水印算法。水印算法的鲁棒性非常重要,嵌入水印时应使水印信息尽量均匀分布于图像各部分,这有利于提高水印算法对各种攻击的抵抗能力。嵌入水印时,在原始图像中嵌入两个完全相同的原始水印,这样,在水印检测时能够得到两个水印图像,将这两个图像进行综合处理,可以提高水印算法的鲁棒性。具体的讲,对原始图像分块,每块的尺寸为32×32,然后对每块图像进行小波变换,将图像块分成两组,对每一组图像块将水印系数平均地分别嵌入各块图像中。另外,为了消除水印图像像素的空间相关性,本文还采用了 Arnold变换对水印进行预处理。
1.3 水印算法具有以下特点
⑴ 应用Arnold变换对水印进行预处理,消除水印图像像素的空间相关性,并能产生一个密钥,为水印的安全保密性提供了保障。
⑵ 分块处理平均嵌入水印系数,可以提高水印算法的鲁棒性。
⑶ 分两组图像块嵌入完全相同的水印,也可以提高水印算法的鲁棒性。
1.4 数字水印的嵌入算法
⑴ 对原始图像I分块,每块大小为32×32,分别对每一块进行两层小波分解,得到图像I1。
⑵ 将所有的图像块分成两组:G1,G2。具体分组:将图像块的行从上到下标号,图像块的列从左到右标号。G1由行标号、列标号同为奇数的图像块和行标号、列标号同为偶数的图像块构成,G2由剩余的图像块构成(如图4)。设G1,G2所包含的块数分别为g1,g2(g1,g2最多差1)。将G1,G2中的图像块分别排序,在G1中行标号小的排在前面,行标号相同时列标号小的排在前面,在G2中行标号大的排在前面,行标号相同时列标号大的排在前面。如图1所示。
图1 黑格组成G1,白格组成G2
⑶ 若水印A不是正方形图像,则将A按算法1存入n×n方阵B中。
⑷ 将B作k次Arnold变换得到n×n矩阵C(C各个像素点的灰度值仍称水印系数)。
⑸ 计算G1,G2的各图像块应嵌入的水印系数的个数。
设:
则G1中前m12块嵌入m11个水印系数,其余图像块嵌入m11-1个水印系数,G2中前m22块嵌入m21个水印系数,其余图像块嵌入m21-1个水印系数。每一个图像块所能嵌入的水印系数的个数的最大值为32×32=1024。每一个图像块所嵌入的水印系数在矩阵C中是按从左到右、从上到下的顺序截取的。
⑹ 在G1,G2中分别嵌入水印系数。
首先,在每一个图像块中选择嵌入位置,由于最低分辨率子图像受压缩等变换的影响较小,因此,从保证水印模型鲁棒性的角度考虑,应尽量把水印信息嵌入到最低分辨率子图像中。可是,图像质量对最低分辨率子图像的改变是敏感的,为了兼顾水印嵌入算法的隐蔽性,一方面要求嵌入水印时,应使将图像数据的改变降低到最小,另一方面要求嵌入水印的位置应该远离最低分辨率子图像。为了同时保证水印信息的隐蔽性和鲁棒性,通常选择在子图LH2、HL2、HH2中嵌入水印,实践也证明了在子图LH2、HL2、HH2中嵌入水印效果较好。所以嵌入位置选择的顺序为LH2、HL2、HH2、LH1、HL1、HH1、LL2。
接下来嵌入水印系数,嵌入公式为:
其中c是水印系数,ω是I1中的小波系数,ω*是嵌入水印后的小波系数,λ为常数,本文中λ=0.2。嵌入水印后的图像记为I2。
⑺ 对I2进行相应的小波重构,得水印图像I'。
1.5 数字水印的提取算法
① 对原始图像I和水印图像I'分块,每块大小为32×32,分别对每一块进行两层小波分解,得到图像I1和I1'。
② 将图像I1和I1'的图像块各分成两组G1,G2和G1',G2',并对每一组图像块排序,方法同1.4中⑵。
③ 计算G1,G2的各图像块嵌入的水印系数的个数,方法同1.4中⑸。
④ 提取两组水印系数:按G1,G1'中图像块的顺序,和水印系数在G1'中每个图像块中的嵌入位置,利用下面的公式逐个提取水印系数:
其中ω是G1中某图像块的小波系数,ω*是G1'中相应图像块的小波系数,c是提取的水印系数。将c按从左到右、从上到下的顺序存入到n×n矩阵C1中。用同样方法处理G2,G2'得到n×n矩阵C2。
⑤ 对C1,C2分别作T-k次Arnold变换得到B1,B2。
⑥ 若水印A不是正方形图像,则按A的尺寸分别从B1,B2中逐行提取水印系数得到A1,A2。
⑦ 令,将,将A'作为提取水印的结果。
2 数字水印算法实验结果及分析
实验图像为Lena和Barbara(大小512×512的256级灰度图像),如图2和图3所示。水印图像是山东科技大学校徽(大小为89×89的256级灰度图像)和青岛滨海学院校徽(大小为55×96的256级灰度图像),如图2和图3所示。所用的小波为双正交小波Antonini9-7,水印的嵌入和提取所用的计算平台为MATLAB7.0,模拟攻击平台为PhotoShop9.01。
图2 水印1原图 图3 水印2原图
水印的不可见性可由峰值信噪比(PSNR)来衡量,一般来讲,峰值信噪比越大则不可见性越好。峰值信噪比由下式定义:
其中I,I'分别表示原始图像和嵌入水印后的图像,Iij,Iij'分别表示I,I'在像素点(i,j)的灰度值。
提取出的水印图像的质量我们用相似度(Similarity)来衡量,一般来讲,相似度越大则提取出的水印图像质量越好。相似度由下式定义:
其中W,W'分别表示原始水印图像和提取出的水印图像,Wij,Wij'分别表示W,W'在像素点(i,j)的灰度值。
应用嵌入算法,将两幅水印图像分别嵌入两幅载体图像中,所得结果如图4所示。其中图2是正方形图像n=89,Arnold变换周期T1=22,取k1=7;图3不是正方形图像,化为正方形图像后n=73,Arnold变换周期T2=74,取k2=40。计算而得PSNR值依次为:43.3366,45.1283,42.8411,44.4974。人眼几乎看不出加载水印前后两幅图像的差别,有较好的不可见性。
应用提取算法,分别从图4的四幅图像中提取水印(无攻击情况下),所得结果如图5所示。计算而得相似度依次为:0.9975,0.9981,0.9972,0.9983,此为较好的效果。
对含水印图像(图4(a),图4(b))进行一系列的常见处理或攻击,之后再提取水印图像,其相似度数据见表1。
通过大量的模拟实验可以看出,含水印的图像具有较好的不可见性,针对含水印的图像进行常见的图像处理,结果表明,该方法能够较好的抵抗一些常见的图像处理方法,也具有较强的鲁棒性。
参考文献(References):
[1] Juan R.Hernandez Martin, Martin Kutter. InformationRetrieval in Digital Watermarking IEEECommunications Magazine,2001.8:l10-1l6
[2] 曹福德.基于变换域的数字图像水印算法研究[J].山东大学硕士学位论文,2009.
[3] 雷蕾.基于变换域的数字图像水印算法研究[D].吉林大学硕士学位论文,2013.
[4] 程正兴.小波分析与应用实例[M].清华大学出版社,2006.
[5] 黄继武,Yun.Q.Shi,姚若河.基于块分类的自适应图像水印算法[J].中国图像图形学报,1999.4:8
[6] 崔锦泰.小波分析导论[M].西安交通大学出版社,1995.