王钢飞,康 琳
(太原科技大学 电子信息工程学院,太原 030024)
通常的数字水印算法分为空间域和变换域两大类。空间域算法通过直接修改载体图像的灰度值来实现。比如LSB算法[1],优点是操作简便,易于实现,缺点是对抗攻击性能较差。变换域算法是在离散余弦变换域或小波变换域通过修改频域系数来实现水,具有很强的鲁棒性[2]。
数字水印非常重要的两个特点是鲁棒性和不可感知性,两者存在很大的矛盾。鲁棒性一定会要求增加水印信息的强度,而水印信息强度的增大必然会影响水印的不可感知性,因此必须综合考虑这两方面,达到鲁棒性和不可感知性的平衡[3-4]。
文献[5]提出了一种在小波变换低频分量嵌入水印的算法。首先,对原始图像进行二维小波分解,分解出一个低频分量和多个高频分量。再对低频分量做二维DCT变换,在DCT系数的中高频段嵌入水印。文献[6]提出了一种利用小波变换低频分量抵抗几何攻击的水印算法。该算法将水印信息连续多次嵌入载体图像小波分解的低频分量。利用嵌入水印图像小波分解的低频分量的特征点坐标集去抵抗几何攻击,算法性能良好。文献[7]提出看一种在小波变换高频分量嵌入水印的算法。首先通过阈值选择出强边缘,然后把水印信息嵌入在强边缘的相位成分。强边缘的相位成分嵌入水印保证了相位水印的鲁棒性,而图像的高频分量中嵌入保证了水印的隐蔽性。
图像低频分量代表图像的轮廓,图像绝大部分的能量在此集中,将水印信息嵌入低频分量能够抵抗常见的攻击例如压缩、噪声等,鲁棒性很强,但是低频分量是人类视觉的敏感点,对人眼的视觉影响比较大,所以不可见性差。
图像高频分量如图1可分为代表水平细节的HL,代表垂直细节的LH和代表对角方向细节的HH。图2 是lena图像四级小波分解。图像高频分量代表图像的边缘和纹理,能隐藏较大的数据量,能量较少,人眼对这部分系数的变化也不敏感[8]。在图像的高频分量嵌入水印信息,可以很好地隐藏水印,但是在遇到低通滤波等攻击时效果一般。
本文提出了一种充分融合低频分量和高频分量的优点水印算法。首先将水印图像进行仿射变换置乱加密后,进行一级小波分解,然后将原始载体图像四级离散小波分解后的系数,并针对低频分量和高频分量,采用不同的嵌入系数,进行相应水印嵌入。然后在加噪、缩放、剪切、滤波、压缩的攻击情况下提取水印。
图1 四级小波分解示意图Fig.1 Four-layer wavelet decomposition
图2 lena 图像四级小波分解Fig.2 Four-layer wavelet decomposition of Lena image
为了增强水印信息的安全性和隐密性,在它嵌入载体图像之前要进行预处理。本文中采用对15次迭代的仿射变换水印信息进行置乱预处理,降低了水印信息的像素相关性,有效提升了水印信息的安全性和对抗剪切攻击的鲁棒性。水印信息选取为“太原科大”字样,大小为64*64 的二值图像,见图3。本文采用仿射变换公式如下:
图3 水印信息及置乱的水印信息Fig.3 Original watermark and scrambled watermark
仿射变换正变换[9],当x x,y∈{0,1,2,…,N} (1) 当x≥y时: x,y∈{0,1,2,…,N} (2) 逆变换为,当x′+y′≤N+1时: x′,y′∈{0,1,2,…,N} (3) 当x′+y′>N+1时: x′,y′∈{0,1,2,…,N} (4) 其中,这里的N代表图像矩阵的长度。 水印嵌入具体过程如下: (1)对水印信息W进行仿射变换的置乱处理。 (2)对置乱后的水印信息W*,进行一级小波变换分解,得到一个低频分量逼近子图ca1和三个高频分量细节子图ch1,cv1,cd1。 (3)将原始载体图像X进行四级小波分解,得到一个低频分量逼近子图和多个高频分量细节子图,具体分解子图为:cA4,cH4,cV4,cD4,cH3,cV3,cD3,cH2,cV2,cD2,cH1,cV1,cD1. (4)将置乱后水印信息W*一级小波分解后的各子图分别嵌入原始图像四级小波分解后的对应子图中,不同的分组选取不同的系数: (5) (5)对嵌入水印后的小波系数进行四级小波逆变换,得到嵌入水印的图像XW。 水印提取具体过程如下: (1)将原始图像X和嵌入水印后的图像XW分别进行四级小波分解,分别得到多个细节子图和一个逼近子图。 (2)用cA4和cA4′,cH4和cH4′,cV4和cV4′,cD4和cD4′进行嵌入算法的逆运算提取水印图像一级分解的子图:ca1,ch1,cv1,cd1. (3)对提取的小波系数进行一级小波逆变换,得到水印置乱变换后的图像W*. (4)对水印置乱变换后的图像W*进行仿射逆变换,得到提取出来的水印信息W. (6) 采用标准测试图像进行攻击实验,用来验证算法的有效性。本文选取lena和pepper,两幅512*512图像作为测试的载体图像,如图5.本文采用峰值信噪比(PSNR)评价水印的不可见性,PSNR值越高,说明图像的失真越小,算法的不可见性越好。本文采用归一化相关系数(NC)评价原始水印和提取水印的相似性,NC值越大,表示两者的相似度越高。具体公式如下: PSNR(dB)= (7) 其中:MAXI为图像的灰度值的最大值,M,N分别表示图像的长和宽。 (8) 其中:M,N分别表示图像的长和宽,w表示原始水印,w*表示提出来的水印。 图5 测试原始图像Fig.5 The original image 嵌入系数过大会让载体图像质量的下降,而过小会让水印的稳健性下降。如何选择恰当的嵌入系数,成为水印算法的关键。在本文算法中,高频分量和低频分量选择不同的嵌入系数。a2、a3、a4是高频分量不同方向的子图,它们的嵌入系数应该是相同,以保证水印均匀的嵌入。如表1说明了不同的嵌入系数和嵌入水印的载体图像(lena)的PSNR值以及受到椒盐噪声(方差=0.01)攻击时提取水印的NC值。在a1=0.1,a2=0.2时水印的鲁棒性最好,载体图像(PSNR也比较高,因此本文后面在水印算法鲁棒性测试中,选这个。 表1 嵌入系数和PSNR以及NC的关系Tab.1 The relationship between embeddingcoefficient and PSNR and NC 从表2可以看出,嵌入水印的载体图像与原始载体图像之间的PSNR值都在32以上,说明嵌入水印的载体图像与原始载体图像的相似度较高;原始水印信息与提取水印信息的NC值都在0.96以上。图6为嵌入水印的载体图像,从视觉来看,提取出的水印信息与原始水印信息基本没有差别。无论是从客观角度还是主观角度看,本算法都有很好的不可感知性。 表2 算法不可感知性测试Tab.2 Experimental results of invisibility 图6 嵌入水印信息的载体图像及提取的水印Fig.6 Watermarked image and extracted watermarks 本文对嵌入水印的载体图像进行不同形式的攻击,计算提取水印和原始水印的PSNR值和NC值,说明该算法抵抗不同攻击的良好能力。 3.3.1 噪声攻击 噪声攻击指的是对嵌入水印的载体图像进行噪声叠加。通过进行噪声叠加后,从直观看到图像中的出现噪声点,而且随着强度的增加,噪声点越来越多。实验中,选取椒盐噪声的强度分别选为0.000 5、0.001、0.005、0.01.噪声攻击强度在一定范围内时,提取出的水印都基本清晰可见。表3显示了不同载体图像抗椒盐噪声的实验结果[10]。从表3可看出,随着椒盐噪声攻击强度从0.000 5増加到0.01,提取出的水印与原始水印之间的NC值和PSNR逐渐下降,PSNR值和NC值都在稳定在一定的范围内上。图7嵌入水印图像在经过方差为0.01的椒盐噪声攻击下,提取出的水印图像,基本清晰。因此,本文提出的算法对椒盐噪声有一定的鲁棒性。 图7 椒盐噪声(方差=0.01)攻击下时提取的水印Fig.7 Extracted watermarks from attacked imagesafter a “salt and pepper” noise attack (Var = 0.01) 3.3.2 缩放攻击 对图像进行缩小或者放大的操作,会造成图像信息的丢失。本文采用放大1.5倍、放大1.25倍、缩放1/2、缩放1/4的攻击形式对图像进行缩放攻击。从表4中可以看出,不同的测试图像在不同参数的缩放攻击下,表明缩放攻击对图像的影响不大[11]。同时,水印图像NC值达到了0.96 以上,PSNR值都在11以上表现出了很好的鲁棒性能。在缩放参数为1/4的攻击时,水印信息效果最差。图8是嵌入水印图像在经过参数为1/4 的缩放攻击下,提取出的水印图像,基本清晰。因此,该算法可以很好的对抗缩放攻击,具有良好的鲁棒性。 表3 不同图像在椒盐噪声攻击下的鲁棒性能Tab.3 Experimental results for Salt and Pepper noise attack 表4 不同图像在缩放攻击下的鲁棒性能Tab.4 Experimental results for the scaling attack 图8 图像在缩放(缩小1/4)攻击下时提取的水印效果图Fig.8 Extracted watermarks from attackedimages after a scaling attack (scale=1/4) 3.3.3 JPEG有损压缩 JPEG有损压缩就是对JPEG压缩后的图像再恢复后,肉眼观察不到图像损失的变换。但是JPEG有损压缩,在压缩过程中造成了图像损失,而且损失的信息无法还原。从表4看出,这里的压缩质量因子选取90%、80%、70%、60%.从表5中可以看出,随着压缩质量因子的逐渐减少,嵌入水印信息的PSNR值在不断逐渐减少,提取出的水印图像的NC值变化或减少或增加,从而说明采用两个客观指标来评价水印算法更全面。图9是嵌入水印图像在经过质量因子等于60的JPEG有损压缩攻击下,提取出的水印图像,基本清晰。在质量因子等于60时,图像破坏最严重,但是水印图像可以很好的提取出来,PSNR值都在19以上,NC值都在0.97以上。在质量因子等于80时,水印图像PSNR值都在20以上。因此,本文提出算法可以抵抗JPEG 压缩攻击。 表5 不同图像在JPEG 压缩攻击下的鲁棒性能Tab.5 Experimental results for the JPEG compression attack 图9 在JPEG有损压缩(质量因子=60)攻击下时提取的水印Fig.9 Extracted watermarks from attacked imagesafter a JPEG attack (JPEG=60) 3.3.4 滤波攻击 这部分对嵌入水印的载体图像进行了各种滤波攻击,比如中值滤波(3*3)、高斯低通滤波(3*3)、均值滤波(3*3)、马赛克滤波(3*3)。从表6中可以看出,该算法对于高斯低通滤波攻击,性能略微好于其他滤波攻击,NC值和PSNR值高于其他算法。图10是嵌入水印图像在经过参数为(3*3)的马赛克滤波攻击下,提取出的水印图像,基本清晰。该算法对于马赛克滤波性能较差,但是提取出来的水印也算清晰的。说明该算法可以抵抗滤波形式的攻击。 表6 不同图像在滤波攻击下的鲁棒性能Tab.6 Experimental results for the filtering attack 图10 马赛克滤波(3*3)攻击下时提取的水印Fig.10 Extracted watermarks from attacked imagesafter a Mosaic filtering attack (3*3) 3.3.5 剪切攻击 这部分对嵌入水印的载体图像进行了各种剪切攻击,剪切的参数分别为1/16、1/8、1/6、1/4。从表7中看出,随着剪切部分从最小的1/16逐步达到最大的1/4,水印信息的PSNR值在不断逐渐减少,提取出的水印图像的NC值不断逐渐减少。图11是嵌入水印图像在经过参数为1/4的剪切攻击下,提取出的水印图像,基本清晰。当剪切的部分达到1/4时,水印恢复的效果最差,但是NC值仍然在0.92之上,PSNR值在12以上。本文提出的算法使用了仿射变换置乱水印信息可以有效的抵抗剪切攻击。因此提出算法对剪切攻击具有非常好的鲁棒性。 图11 剪切(1/4)攻击下时提取的水印Fig.11 Extracted watermarks from attackedimages after a cropping attack (1/4) 表7 不同图像在剪切攻击下的鲁棒性能Tab.7 Experimental results for the cropping attack 在本部分中,本文提出的算法与文献[12]的算法进行了比较。载体图像都采用pepper图。表8中NC值表示不同水印算法对某些攻击的测试结果。本文提出的算法NC值要稍微高于文献[12]的算法NC值。本文提出的算法显示出良好的健壮性和鲁棒性能提高。 表8 本分算法与其它算法的鲁棒性能比较Tab.8 Comparison of NC values on Baboon image 提出了一种基于仿射变换置乱的小波域数字水印算法。这种算法充分结合了小波变换后不同分解系数的优点,首先把原始图像进行四级小波分解,水印图像再仿射变换置乱后进行一级小波分解,针对不同的分解系数采用不同的嵌入强度,最后通过小波逆变换重构嵌入水印的图像。实验结果表明,对嵌入水印的图像进行不同类型的攻击,NC都在0.9以上,具有较强的鲁棒性和不可见性。2.2 水印的嵌入
2.3 水印的提取
3 水印算法性能分析
3.1 嵌入系数的选择
3.2 水印的不可见性
3.3 算法鲁棒性测试
3.4 算法性能比较
4 结束语