基于SVD和HVS的数字水印算法
2010-05-11王彩霞
王彩霞
(运城学院 公共计算机教学部,山西 运城 044000)
近年来,数字水印作为保护数字媒体信息安全的有效方法引起了人们的高度重视。结合人眼视觉感知特性进行处理可以显著增强水印的透明性。根据参考文献[1],基于 DWT域人眼视觉模型(HVS)主要考虑以下四个方面:(1)人眼对图像中水平和垂直的线和边缘最敏感,而对于成45°角的线和边缘最不敏感;(2)一般来说,人眼对于亮度越高的信号越不敏感;(3)边缘信息是图像中的重要信息,边缘的位置变化很容易被人眼感知到,而对于边缘的灰度误差人眼并不敏感;(4)人眼对图像平滑区噪声较敏感,而对纹理区噪声较不敏感。
在矩阵理论当中,奇异值分解(SVD)是一种将矩阵对角化的方法,而图像则可以看作是由灰度值组成的一个矩阵。由参考文献[2]可以得知:(1)图像的奇异值有很好的稳定性,不会因为小的扰动而发生改变,尤其是最大奇异值携带了图像大部分能量,在图像遭受较小攻击时不易改变,这使得使用奇异值分解的数字水印算法能够拥有较高的鲁棒性。(2)奇异值所表现的是图像的内蕴特性而非视觉特性。水印算法通过改变奇异值而实现水印信息的嵌入,不会影响到原始图像的视觉效果,即保证水印具有良好的透明性。
本文在分析一个SVD经典算法的基础上,提出了一种基于SVD和HVS的数字水印算法。该算法采用基于块系数关系的嵌入方法,同时算法为了解决不可见性和鲁棒性的矛盾,结合人类视觉系统的掩蔽特性嵌入水印。
1 经典SVD算法
2002年,Sunt[3]在IEEE中发表文章,提出了基于SVD的量化水印算法,成为目前比较成熟的盲水印算法之一。该算法的嵌入思想是:将原始图像进行分块,对每一块分别进行奇异值分解。同时为了提高水印的安全性,在密钥控制下生成与图像矩阵同大小的伪随机二值序列。算法在预先设定的嵌入强度阈值Q的控制下,通过修改每图像块经奇异值分解后对角矩阵的最大值来嵌入水印,这样得到修改的各块对角矩阵,再对各块作SVD逆运算,合并后得到最终的水印图像。
算法在抗JPEG压缩方面具有较好的效果,但是嵌入强度阈值Q是固定的,对每一图像子块都是相同值,没有与图像的局部特征相结合,同时对于不同图像嵌入强度阈值是不同的,不能实现自适应图像嵌入方式,如果Q取值过小,可以提高鲁棒性但可能会导致透明性受影响;如果Q取值过小,则鲁棒性不够,不能抵抗常用的图像处理,即存在鲁棒性与透明性的矛盾。
2 改进算法
嵌入强度阈值问题是上述算法的不足之处,解决这个问题的一个有效途径就是结合图像自身特征确定嵌入强度。基于人类视觉系统的掩蔽特性的可见临界门限JND(JustNoticeable Difference)[4]是其中常用的方法。人眼视觉特性可以得出图像子块前块为Bμ,v(它在原图像中对应位置为(μ,v))的 JND值如式(1)所示。
为了提高水印不可见性和提高对水印嵌入强度的可控性[5],对JND值进行归一化处理,如式(2)所示。
其中[a,b]为归一化区间。
2.1 Arnold置乱
在水印生成阶段,为了提高水印的安全性,一般要对生成的水印进行置乱处理。算法中采用的是Arnold置乱。Arnold变换的定义如下:设有单位正方形上的点(x,y),将点(x,y)变换到另一点(x′,y′)的变换如式(3)所示。
其中N是图像阶数,即图像大小。
将Arnold变换应用到数字图像上,可以通过改变像素坐标束改变图像像素点的布局。
2.2 水印嵌入
由于算法对图像的8×8子块作小波变换,适合采用haar小波基,因此水印嵌入中采用了 haar变换,并利用了SVD的稳定特性。记原始图像I,大小为m×m,水印矩阵为T。水印嵌入步骤如下:
(1)把图像分块,每块大小为8×8;
(2)按照公式(2),计算各块的 JND值J(u,v);
(3)对水印T进行Arnold置乱,得到置乱后水印W;
(4)对图像各块进行一级DWT变换,得到4个子带,分别为 LL、LH、HL、HH。其中 LL 为低频分量,LH、HL为垂直分量和水平分量,HH为高频分量;
(5)对 LH、HL分别进行SVD分解,得到奇异值矩阵S1、S2;
(6)由于第一个奇异值最具有稳定性,因此把水印嵌入到这个位置。同时根据 J(u,v)调整 S1(1,1)和 S2(1,1)的大小关系,实现自适应嵌入水印。嵌入规则如下:
嵌入规则 1:如果 dif 嵌入规则 2:如果 dif (7)对各子块进行一级DWT反变换。 (8)得到最终水印图像 I′。 由于水印嵌入时改变了各子块做小波变换后垂直分量与水平分量进行SVD分解后第一个奇异值的大小关系,因此只需要根据这个大小关系即可得到水印。 最后再对W′作Arnold反变换,得到最终的水印信息。 数字水印算法的评估涉及很多方面,如水印的不可见性和鲁棒性、水印的安全性及算法的可用性等,这些都需要一套定量指标来衡量。学术界一般从以下两方面来进行定量评估。 3.1.1 峰值信噪比(PSNR) PSNR可以作为衡量重建图像的质量尺度,但计算比较复杂,一般采用PSNR作为衡量尺度。PSNR计算如式(4)所示。 其中MSE的计算公式如式(5)所示。 其中f(x,y)是原始图像的像素值,f′(x,y)是添加水印后图像像素值,M、N分别是图像的高与宽。 3.1.2 归一化相关系统(NC) 即相似性测量,衡量提取水印与原水印的相似性程度。其计算如公式(6)所示。 其中W(i,j)表示原始水印图像的像素值,W′(i,j)表示提取水印图像的像素值,M、N分别是原始水印图像和提取水印图像的长与宽。 表1是图1中测试图像的PSNR值。 以图lena为例,图1是其水印透明性结果。 从以上结果可以发现水印图像具有较高的PSNR值,并且嵌入的水印不能被人眼检测出来。 ? 从以下几方面对水印进行鲁棒性测试。 (1)JPEG压缩:质量因子从40到100,步长为10;(2)加高斯白噪声:方差从0.001到0.02,步长为0.001; (3)加椒盐噪声:噪声密度为1%到5%,步长为1%。 图2、图 3、图 4 是实验结果,其中图中的 a、b、c、d对应图1的测试图像,x轴是图像处理参数,y轴显示的是相似度(用 NC表示)。 从以上结果图中可以知道,该算法水印在抵抗常见图像操作具有较高的鲁棒性。 本实验采取了裁剪、直方图均衡、篡改图像内容、旋转等攻击,并计算出从攻击图像中提取水印与原水印的相关系数值NC。下面选取图像lena为例进行实验。 (1)裁剪中心l/4,效果如图 5所示。 (2)篡改图像内容,效果如图6所示。 (3)直方图均衡化,效果如图7所示。 (4)旋转攻击,效果如图8所示。 从以上的实验结果中可见,对一些常见的攻击,除旋转外都能表现出较强的鲁棒性,提取的水印与原水印有较大的相似性。对于旋转攻击,由于旋转后图像中所有像素点与原图像相比位置发生了变化,而相应的水印算法没有实现同步,因而不能抵抗旋转。 本文提出了一种联合SVD和DWT的自适应性数字水印算法。算法中,水印采用一幅有意义的二值图像。为了提高水印的安全性,对水印进行了Arnold置乱处理。算法还考虑了人类视觉系统HVS的掩蔽特性,较好地解决了水印的透明性与鲁棒性矛盾。通过计算每个图像子块的JND值,实现了水印的不同强度的自适应嵌入。水印提取不需要原图像。实验结果表明,该算法在抗JPEG压缩及加性噪声方面有较强的鲁棒性,同时也能抵抗一些常见的攻击。 [1]王志明,章毓晋,吴建华.一种改进的利用人眼视觉特性的小波域数字水印技术[J].南昌大学学报,2005,29(4):400-403. [2]刘瑞祯,谭铁牛.基于奇异值分解的数字图像水印方法[J].电子学报,2001,29(2):168-171. [3]SUN Rui,SUN Hong,YAO Tian Ren.A SVD-and quan tization based semi-fragiel watermarking technique for image authentication[J].Proc.IEEE Int.Cone on Signal Processing,Aug,2002(2):1592-1595. [4]CHENG I, SHEN Rui,YANG Xing Dong,et al.Perceptual analysis of level-of-detail:the JND approach[C].Proceedings of the Eighth IEEE International Symposiumon Multimedia(ISM’06),2006:533-540. [5]YANG Heng Fu,SUN Xing Ming.Semi-fragile watermarking for image authentication and tamper detection using HVS model[C].International Conference on Multimedia and Ubiquitous.Seoul,south korea,2007:1112-1117.2.3 水印提取
3 实验结果
3.1 数字水印定量评估指标
3.2 水印透明性
3.3 水印鲁棒性
3.4 一些攻击