基于提升小波变换和离散余弦变换的彩色图像水印算法
2020-05-25朱婷鸽
刘 颖, 徐 伟, 朱婷鸽
(西安邮电大学通信与信息工程学院,西安 710121)
近几年,随着数字技术的快速发展,图像水印成为数据版权保护的有效方法。图像水印技术指在原始数据中嵌入数字水印的过程,嵌入的水印能够被提取出来以便识别版权所有者[1]。
图像水印技术的步骤包括水印嵌入和提取[2]。根据水印嵌入的域,将水印技术分为空间域和频域[3-4]。空间域水印的复杂度较低,但对不同的图像处理操作鲁棒性较差。相反,变换域方法具有更强的抗攻击能力。常用的变换有离散小波变换(discrete wavelet transform,DWT)、离散余弦变换(discrete cosine transform,DCT)、奇异值分解(singular value decomposition,SVD)等。基于小波的方法在空间域和频域上的局部化都能获得更好的安全性,所以被广泛用于图像水印算法。此外,SVD将图像矩阵转换为奇异值,使得细节更加容易处理,同时保证了一定的鲁棒性[5]。文献[6]提出基于DWT-DCT的混合水印算法,该方法将二值水印置乱嵌入载体图像中,使得水印图像具有较好的不可见性和抗攻击能力。文献[7]利用直流系数的产生原理和分布特征,在空域直接修改像素值嵌入水印,使得该算法对剪切、噪声和中值滤波等攻击具有较强的鲁棒性,但是抗JPEG压缩攻击性能较差。文献[8]提出一种基于DWT-SVD的盲水印算法,该算法对各种常规攻击都具有较好的鲁棒性。文献[9]采用提升小波变换(lifting wavelet transform,LWT)替换文献[10]中的DWT,提高了水印的不可见性与鲁棒性。文献[11]提出一种通过加法规则嵌入水印的算法,该方法不能较好地平衡水印图像的不可见性与鲁棒性。
综上所述,现有大多数水印算法的鲁棒性与不可见性不易平衡且两种性能效果有待提高。针对这一问题,提出一种基于提升小波变换和离散余弦变换的彩色图像水印算法,通过提取载体图像的边缘特征构造水印信息,再根据算法所提嵌入规则来嵌入水印信息,在确保图像质量情况下提高鲁棒性。
1 建议的算法
为了使得水印图像嵌入载体图像后具有较好的不可见性和鲁棒性,这里选择二值图像作为水印信息嵌入Cv通道中。嵌入过程中,输入的是载体图像和二值水印图像,输出的是嵌入水印的图像。整个算法的实现流程如图1所示。
图1 水印嵌入与提取过程
1.1 水印的生成
通过Canny算子边缘检测提取特征构造二值水印,具体过程如下。
(1)输入载体图像,将其大小调整为64×64,且转换为灰度图像,然后进行一级LWT分解,如图2所示。
(2)通过Canny边缘检测算子分别提取HL和LH子带的边缘信息,令X1和X2分别表示HL和LH子带经过边缘检测得到的灰度值集合,n表示每个集合灰度值的个数,则:
Xi={xi,1,xi,2,…,xi,n},i=1,2
(1)
(3)将Xi中灰度值不等于255的置为0得到:
X′i={x′i,1,x′i,2,…,x′i,n},i=1,2
(2)
可描述为
(3)
式(3)中:i=1,2;j=1,2,…,n。
(4)将X′1和X′2进行逻辑或操作得到二值水印图像wm,即
wm=X′1|X′2
(4)
1.2 水印的嵌入
二值水印图像的嵌入过程如下:
步骤1将输入的彩色载体图像由RGB颜色空间转为YCuCv颜色空间,对该颜色空间模型中的分量Y、Cu、Cv进行分离,选择Cv通道嵌入水印;
步骤2对Cv通道进行一级LWT,即:
[ca,ch,cv,cd]=LWT2(Cv, 'haar')
(5)
式(5)中:ca为低频系数矩阵,ch为水平系数矩阵,cv为垂直系数矩阵,cd为高频系数矩阵。
步骤3将一级LWT后的LL子带进行8×8分块,对每个子块进行DCT。
步骤4提取每个DCT子块的DC系数,构造DC系数矩阵DC_block。
步骤5输入二值水印图像wm,先利用Arnold置乱对其进行第一次加密,再利用Logistic混沌映射对其进行第二次加密,得到加密后的水印图像wm1。
步骤6通过修改DC_block中的系数值来嵌入二值水印信息,得到新的DC系数矩阵new_DC_block,规则如下。
(1)如果wm1(i,j)=0,则令:
new_DC_block(i,j)=DC_block(i,j)+T
(6)
图2 一级LWT分解
(2)如果wm1(i,j)=1,则令:
new_DC_block(i,j)=DC_block(i,j)-T
(7)
这里,考虑水印的鲁棒性与不可见性之间的平衡,取T=90。
步骤7用new_DC_block的系数依次替换每个DCT子块的DC系数得到新的DCT子块。对每个新的DCT子块进行逆DCT变换得到新的低频系数子带new_LL。用new_LL替换原始的LL子带进行逆LWT,得到嵌入水印的图像。
1.3 水印的提取
二值水印图像的提取过程如下。
步骤1输入嵌入水印的图像,对其执行水印嵌入算法中的步骤1~步骤4操作,记得到的DC系数矩阵为watermarked_DC_block。
步骤2根据步骤1中的watermarked_DC_block与水印嵌入算法中的DC_block,构造矩阵Diff,规则如下。
Diff=watermarked_DC_block-img_DC_block
(8)
步骤3通过矩阵Diff提取二值信息,构造二值矩阵extract_wm1,方式如下。
(1)若Diff(i,j)>0,则取:
extract_wm1(i,j)=0
(9)
(2)若Diff(i,j)<0,则取:
extract_wm1(i,j)=1
(10)
步骤4对二值矩阵extract_wm1用Logistic混沌映射进行第一次解密,再用Arnold反变换对其进行第二次解密,得到提取的二值水印图像。
2 仿真结果与分析
为了验证所提算法的效率,采用PC端的MATLAB 2016完成全部实验,并与该领域现有的一些先进技术比较。所使用的载体图像是从南加州大学USC-SIPI图像数据库中选取的5幅24位彩色图像,所有载体图像的大小都是512×512,所有二值水印图像的大小都是32×32,如图3所示。
图3 载体图像与水印图像
2.1 算法的性能评价指标
为了评估该水印算法的性能,需要从不可见性和鲁棒性两个方面进行分析。不可见性是指嵌入水印后图像的失真程度,较低的失真表明水印方案具有较好的不可见性。鲁棒性指水印图像的抗攻击性能。其中不可见性性能的衡量指标有峰值信噪比(peak signal to noise ratio,PSNR)和结构相似性(structural similarity,SSIM),而鲁棒性性能的衡量指标是归一化相关系数(the normalized correlation coefficient,NC)。
PSNR的计算公式为
(11)
式(11)中,fc(i,j)和fwm(i,j)代表二维载体图像和嵌入水印的图像在位置(i,j)处的像素值;M和N表示两个图像的宽度和高度。
SSIM根据式(12)计算。
(12)
式(12)中:μi、μj分别表示载体图像和嵌入水印图像的均值,σi、σj分别表示它们的方差,σij表示两者的协方差,C1、C2是为避免分母为零而设定的两个变量,这里C1=(K1×L)2、C2=(K2×L)2,L是图像像素值的动态范围,K1与K2的值可以分别设置为0.01和0.03。
NC的计算式为
(13)
2.2 测试水印的不可见性与鲁棒性
在未进行任何攻击时,计算载体图像嵌入水印后的PSNR和SSIM以及所提取水印的NC值,实验结果如表1所示。
表1 未攻击时算法的性能指标
从表1的实验结果可以看出,在未对嵌入水印的载体图像添加任何攻击时,PSNR的值全部都大于43 dB,SSIM的值全部都大于0.98,所以通过该算法嵌入的水印能够较好地满足视觉不可见性。NC值全部是1.000 0,表明水印都可以从嵌入水印的图像中完全提取出来。
在实际应用中,嵌入水印的图像在到达检测器之前都会受到各种各样的畸变,所以对嵌入水印的图像添加几种常规攻击,如剪切攻击、高斯噪声攻击、椒盐噪声攻击、JPEG压缩攻击、运动模糊攻击和高斯模糊攻击,计算受攻击后图像的PSNR和SSIM以及提取的水印NC值,所得结果如图4所示。
Ⅰ是剪切大小为64×64的随机剪切攻击;Ⅱ和Ⅲ分别是方差为0.01和0.02的高斯噪声攻击;Ⅳ、Ⅴ和Ⅵ分别是方差为0.01、0.02和0.03的椒盐噪声攻击;Ⅶ、Ⅷ和Ⅸ分别是质量因子为70、50和30的JPEG压缩攻击;Ⅹ是运动像素个数为15的运动模糊攻击;Ⅺ是滤波窗口大小为5×5的高斯模糊攻击
对图4实验结果进行分析,当嵌入水印的图像受到各种不同攻击时,其PSNR值均可大于28 dB,且大部分的SSIM值也相对较高,所以受到攻击后算法的不可见性较好。从结果可看出NC值接近或等于1.000 0,因此从各种攻击下能够提取出较为完整的水印信息,即该算法的抗攻击性能也较好。
2.3 相关算法比较结果
为了进一步评价该方法的性能,将所提出算法的Lena图像与文献[11]和文献[12]中Lena图像的实验结果相比较。选用两个文献的原因是:首先两者都是选取彩色图像作为载体图像,所提算法是在YCuCv颜色空间实现的,而文献[11]和文献[12]的实现是在YCbCr颜色空间进行的,为了提高水印图像的安全性,三个算法都通过Arnold变换进行加密;其次,提出的算法是基于LWT-DCT双变换域实现的,文献[11]和文献[12]也是基于双变换域;最后三者的不可见性性能都可以通过PSNR衡量,鲁棒性性能都是通过NC值衡量的,结果如表2和表3所示。
表2 未受攻击时不可见性性能比较
表3 受不同攻击时鲁棒性性能比较
从表2、表3的结果可以看出,在未对嵌入水印的图像进行攻击时,PSNR值略高于文献[11]和文献[12],表明所提算法具有较好的不可见性。而对嵌入水印的图像添加不同攻击时,提取的水印NC值大部分略高于文献[11]和文献[12],说明算法的鲁棒性较好。综合两个性质可知,该算法的性能略优于文献[11]和文献[12]。
3 结论
由于水印鲁棒性与不可见性难以平衡,提出一种基于提升小波变换和离散余弦变换的水印技术,在二值水印上既使用Arnold变换又使用Logistic映射成功地解决了未经授权的读取问题。该方案的一个优点是提取载体图像边缘特征构造水印,再将该边缘特征水印嵌入图像,提高了鲁棒性。方案的另一个优点是将LWT和DCT相结合,在分块DCT变换的低频系数嵌入水印,有助于提高水印的不可见性。最后通过各种攻击对该方案的鲁棒性进行分析,实验结果表明,本文所提算法在保证嵌入的水印具有不可见性的同时也能具有较高的抗攻击性。