王琳娟 李君霞
摘 要: 通过仿真实验和K-S假设检验验证了离散余弦变换(DCT)具有“能量集中”的特点和奇异值分解(SVD)具有抗旋转,抗镜像,抗转置,抗剪切的特点。为了充分利用这些特点,针对大多算法在嵌入水印时需要调制嵌入的问题,提出一种基于分块的多级DCT和SVD的鲁棒性水印算法,该算法在嵌入水印时进行多级DCT变换和SVD分解、采用直接替换方式嵌入,设置多重密钥以提高算法的鲁棒性。仿真实验及分析表明,该算法抗噪、抗压缩和抗几何攻击的能力都较强,是一种强鲁棒性算法。
关键词: 数字水印; SVD; 多级DCT; 分块
中图分类号:TP309.7 文献标志码:A 文章编号:1006-8228(2017)09-51-05
Abstract: By simulation and Kolmogorov-Smirnov (K-S) hypothesis test, it is confirmed that the discrete cosine transform (DCT) has the characteristics of energy concentration and the singular value decomposition (SVD) has the characteristics of anti-rotation, anti-mirror, anti-transposition, anti-cut etc. To take full advantage of all characteristics of DCT and SVD and to overcome the fault that most algorithms need embedding watermarks by modulation technique, a robust watermarking algorithm based on block-divided multi-level DCT and SVD is proposed. In order to improve the robustness of the algorithm, multi-level DCT and SVD, and the direct replacement method are used to embed the watermarks. In addition, multiple keys are set for extracting the watermarks. The simulation results show that the algorithm has a stronger robustness against noises, compress and geometric attacks, and it's a strong robust algorithm.
Key words: digital watermarking; SVD; multiple-level DCT; block-divided
0 引言
隨着信息的数字化、网络化,数字产品的发布和传播越来越便捷,它给人们生活带来方便的同时,也带来了信息的非法复制、非法篡改、版权保护等安全问题。数字水印技术是实现数字产品安全保护的重要手段之一[1-4]。该技术是从信息隐藏技术发展而来的,是数字信号处理,图像处理,密码学应用,算法设计等学科的交叉领域。目前,数字水印算法主要有空域算法和变换域算法[5-6],本文提出一种变换域算法。
首先分析了离散余弦变换的特点,指出并验证了离散余弦变换所具有能量集中的特点;其次用K-S假设检验分析验证了奇异值分解具有抗几何攻击的特点;然后针对多数算法需要调制嵌入水印的问题[7-8],提出一种基于分块的多级离散余弦变换和奇异值分解的水印简单算法,该算法在嵌入水印时采用直接替换的策略,算法实现简单且设置了多重密钥,安全性高;最后给出了仿真结果和性能分析,结果表明,本文算法抗各种攻击能力强,具有很强的鲁棒性。
1 离散余弦变换(DCT)
称B(p,q)为A的DCT系数。图1给出了matalbR2012自带图像autumn.tif和office_3.jpg这两副图像的DCT系数矩阵的图像显示,图1(a)为原始图像,图1(b)为DCT系数的灰度显示,图1(c)为DCT系数的色图显示。
从图1中可以看出,DCT系数是具有能量集中的特点(集中在左上角低频部分),可用于图像压缩,且压缩比高,误码率低,与国际数据压缩标准(JPEG、MPEG)兼容[9-10]。
对图1(a)中两副图像进行DCT编码压缩和解码,分别用DCT变换后左上角的10/64、1/64的系数恢复得到的压缩后的图像(如图2所示),即图2第一行用10/64的DCT系数复原图像,图2第二行用1/64的DCT系数复原图像。可以看出,图2第一行复原效果图与原图效果相当,图2第二行复原效果图与原图相比有些模糊,但复原效果还可以,基本上图像细节都可以保留。这就说明了DCT变换可用于图像压缩,且压缩比较高,将其应用于图像的数字水印技术,可使含水印图像具有一定的抗压缩能力。
2 奇异值分解及几何攻击分析
2.1 奇异值分解定义
图像的奇异值分解是将图像看成一个矩阵进行的一种正交矩阵分解。设图像A是大小为M*N的实矩阵,则必然存在一个M*M阶的正交矩阵Q和一个N*N的正交矩阵R,使:
其中,矩阵H是一个M*N的矩阵,∑是一个对角阵,称式⑵为A的奇异值(SVD)分解式,∑的主对角元素为A的奇异值。若r为A的秩,则,且,即r为A的非零奇异值的个数。另外,奇异值不要求矩阵是方阵。endprint
文献[11,12]指出图像的奇异值具转置、旋转、位移、放大等不变性,因此将其应用于图像的水印处理时可使水印信息具有良好抗几何失真性。
2.2 奇异值几何攻击分析
几何攻击是一种常见的图像攻击方式,若能从攻击后的图像中有效的提取出水印信息,则说明该数字水印算法具有一定的鲁棒性。文中从常见的几何攻击来分析奇异值特性。实验选取matlabR2012自带图像cameraman.tif、autumn.tif、office_3.jpg、forest.tif四幅图像转换成灰度图像作为实验图像,对这四幅图像进行转置、垂直镜像、旋转1度、旋转3度、旋转10度、横向放大2倍、剪切等攻击,鉴于篇幅所限,本文只给出cameraman.tif的几何攻击示意图(如图3)。求出原始图像及攻击后图像的非零奇异值进行分析比较,发现转置、镜像攻击后的奇异值相同,横向扩展后的奇异值放大倍,剪切攻击后奇异值近似。为了进一步比较奇异值的差异,对攻击后图像的奇异值与原图像的奇异值进行Kolmogor-ov Smirnov假设检验,检验其是否来自同一分布,假设各种攻击后的奇异值与原图像的奇异值来自同一分布,检验结果如表1(说明:文中的检验都是在显著性水平为0.5下检验,且对横向扩展后的奇异值除以与原图像进行检验)。表2给出了接受假设的概率,表中h=0表示接受假设,表示服从同一分布,h=1表示拒绝假设。
从表1和表2可以看出,转置、镱像后的奇异值与原图像奇值服从同一分布,概率为100%,也就是说,奇异值具有抗转置、抗镜像性;横向或纵向扩大L倍的奇异值除以后与原图像也服从同一分布,概率也为100%,即说明奇异值具有抗伸缩性;旋转后的图像随着旋转角度的增加其奇异值与原图像奇异值服从同一分布的概率在减少,当旋转到10?时,前三幅图像已经拒绝假设,即旋转后图像的奇异值与原图像奇异值不是来自同一分布,也就说明奇异值具有一定的抗旋转性;剪切后的图像也随着剪切部分的增加其奇异值与原图像的奇异值服从同一分部的概率在减小,说明奇异值具有一定的抗剪切性,当剪切部分占所有比例较小时,奇异值基本不变。
3 水印嵌入及提取
上文中指出DCT具有能量集中的特点,为了更好地利用这一特点,文献[7]提出了一种基于分块的多级离散余弦变换的数字水印算法,该算法对原始载体图像进行多级DCT变换,然后选择合适的系数嵌入水印,并通过实验分析指出算法在抗JPEG压缩、抗高斯噪声攻击等方面具有更好的鲁棒性。为了充分利用多级DCT的优点和SVD的抗转置、抗镜像、抗旋转、抗剪切的优点,本文设计了一种基于分块的多级DCT和SVD的水印嵌入和提取算法。同时,为了提高水印的安全性[13],本文将水印信息随机地嵌入到每个DCT分块中,并且嵌入到每个分块的什么位置也是随机的,嵌入算法和提取算法具体描述如下。
3.1 嵌入算法
设载体图像为I,大小为M×M;水印图像为J,大小为N×N。
⑴ 对载体图像I进行分块,设每块大小为K1×K1(K1?M/N),对每个分块进行L级DCT变换。文中以L=2为例,首先对每个分块进行第一级DCT变换,然后再选择每块左上角K2×K2系数对每块进行第二级DCT变换,得到变换后的系数图像A1。
⑵ 将变换后的系數图像A1进行SVD分解得到正交矩阵U1、V1和奇异值矩阵S1。
⑶ 设置随机种子seed1,产生个随机整数,将水印信息随机的分配到A1的每个分块中。
⑷ 设置随机种子seed2,产生嵌入时块中随机位置,将水印信息嵌入其中。
⑸ 设置嵌入强度α,将水印图像J嵌入到由seed1和seed2产生的随机位置中,得到含有水印信息的系数图像A2。(说明:这里嵌入时采用直接赋值替换的方式嵌入,例如J(i,j)的嵌入位置为A2(x,y)时,嵌入方式为:A2(x,y)=α*J(i,j)
⑹ 将新的矩阵A2进行SVD分解得到正交矩阵U2、V2和奇异值矩阵S2。
⑺ 令,A3即为嵌入水印信息后的系数图像。
⑻ 将A3进行分块,每块进行二级反DCT变换得到含水印图像B。
3.2 提取算法
⑴ 将B进行分块,每块大小为K1×K1,首先对每块进行第一级DCT变换,然后再取每块左上角K2×K2的系数进行第二级DCT变换,得到B1。
⑵ 对B1进行SVD分解得到正交矩阵U3、V3和奇异值矩阵S3。
⑶ 令,其中B2即为含有水印信息的系数矩阵。(其中,U2,V2在嵌入过程中产生。)
⑷ 设置随机种子seed1和seed2,得出水印信息W(i,j)所在的块和块中的位置。
⑸ 设置嵌入强度α,从B2中提取水印信息W。(说明:提取方式和嵌入类似,假如W(i,j)对应的水印信息在B2(x,y)处,则W(i,j)=B2(x,y)/α。
4 仿真结果及分析
为了说明实验的有效性,本文以图4(a)为载体图像I,图像大小为512*512,以图4(b)为水印图像J(二值图像),图像大小为64*64,取K1=8,K2=7,α=35,seed1=25,seed2=10.5,由seed2产生随机位置位于A2的每个分块的最左下角三个位置之一。
这里用峰值信噪比(PSNR)、相关系数(NC)和人眼感知水印是否存在来评价水印嵌入和提取的效果,其中峰值信噪比和相关系数是定量的,而人眼感知则是定性的。
为了说明第3节所述算法(简称本文算法),本文还设计了仅基于分块的多级DCT算法(简称算法1)和仅基于分块的SVD算法(算法2),算法1的基本思想是首先对载体图像进行分块并对每一块进行多级DCT变换,然后将水印信息嵌入其中,最后对每一分块进行多级反DCT变换得到含水印的图像。算法2的基本思想是首先对载体图像进行异值分解得到两个正交矩阵Q、R和奇异值矩阵H,并将水印信息随机地嵌入到载体图像的每一个块中并对嵌入信息后的载体进行奇异值分解得到两个正交矩阵Q1、R1和奇异值矩阵H1,最后用Q、R1和H根据文中式⑷得到含水印的图像。说明:为了使算法具有可比较性,所提到的算法在嵌入时都采用相同的嵌入方法和嵌入强度,随机块位置和块中位置都采用相同的随机种子,并且分块的大小及离散余弦变换的级数也都相同。endprint
表3给出了不同α采用三种算法的PNSR值和NC值,从表中可以看出峰值信噪比对于相同的α本文算法都高于算法1和算法2,且在嵌入强度较低时,算法2提取出来的水印图像比算法1和本文算法好,其NC值基本等于1。随着嵌入强度的增大,本文算法和算法2的NC值也都基本等于1,都比算法1高,但算法1的NC值也接近于1。整体来说,本文算法嵌入水印后的图像透明性好,在未受任何攻击下提取出来的水印信息也接近于原水印图像。图6分别为本文算法、算法1、算法2在嵌入强度α=35时得到的含水印图像及提取出来的水印信息。从视觉上看,三种算法得到的含水印图像人眼都感知不到水印的存在,且基本上在未受任何攻击下都能较好地提取出水印信息,NC值都接近于1。
为了验证算法的有效性,对图5中三种算法得到的含水印图像进行各种攻击见表4。从表4中可以看出,算法1和算法2都有一定的抗高斯低通滤波、抗JPEG压缩、抗噪能力,算法1不具备抗剪切和抗旋转的能力,算法2具备一定的抗剪切和抗旋转能力,而本文算法对各种攻击其性能都高于算法1和算法2,而且对于其中的一些攻击提取出来的水印和原水印图像几乎完全一样。实验中还加大了各种攻击力度来验证本文算法的有效性,鉴于篇幅限制,未在表2中全部给出。实验表明,文中算法具有较强的抗噪、抗压缩和抗几何攻击能力,是一种强鲁棒性算法。
5 总结
本文提出了一种基于分块的多级DCT和SVD的水印嵌入和提取算法,嵌入时设置两个随机种子,一个用于产生嵌入时的随机分块,另一个用于产生嵌入时分块中的随机位置,且采用最简单的直接替换嵌入方式。实验表明,本文算法是一种有效的水印算法,在进行各种攻击后都能较好的提取出水印,具有较强的抗噪、抗压缩和抗几何攻击能力。但是,不足之处在于提取时需要载体图像的部分奇异值信息,这也是今后算法需要改进的地方。
参考文献(References):
[1] 项世军,罗欣荣,石书协.一种同态加密域图像可逆水印算法[J].
计算机学报,2016.39(3):571-581
[2] 任小康,范丽,白勇峰.一种基于DWT-SVD的彩色图像水印
嵌入方法[J].微电子学与计算机,2011.28(1):113-115
[3] 马婷,高大鹏,陈农田.复合彩色数字水印图像抗攻击优化仿
真[J].计算机仿真,2016.33(6):419-422
[4] 陈宁,马会杰.基于Contourlet和SVD的鲁棒双水印算法[J].
计算机应用研究,2012.29(7):2700-2702
[5] 韩绍程,王蕊,张兆宁.基于BCS和SVD的混合变换域双彩色
图像水印算法[J].计算机工程与设计,2016.37(7):1841-1846
[6] Rania A.Ghazy, Alaa M.Abbas, Nayel Al-Zubi.
Block-based SVD image watermarking in spatial and transform domain[J].International Journal of Electronics,2015.102(7):1091-1113
[7] 肖俊,王颖.基于多级离散余弦变换的鲁棒数字水印算法[J].
计算机学报,2009.5(32):1055-1061
[8] Mohammad Reza Akbarzadeh Lari,Sedigheh Ghofrani,Des
Mclernon. Using Curvelet transform for watermarking based on amplitude modulation. Signal[J].Image and Video Processing,2014.8(4):687-697
[9] 刘丽,周亚建,张斌.基于DCT和SVD的QR码数字水印算法[J].
红外与激光工程,2012.42(S2):304-311
[10] 谢斌,刘珊,任克强.基于DCT的自适应多重彩色图像盲水
印算法[J].电视技术,2014.38(9):21-24
[11] 李國明,李象霖.采用Torus映射与SVD变换的图像数字水
印方法[J].计算机仿真,2011.28(6):125-129
[12] 艾丽华,陈青.一种新的基于奇异值分解的小波域盲水印[J].
计算机应用研究,2011.28(3):1155-1157
[13] 朱香卫,肖亮,吴惠中.数字图像水印性能评估指标的研究[J].
通信技术,2009.1(42):256-258endprint