蓝夏梅 ,李宏昌
(1.武警工程大学 研究生管理大队,陕西 西安 710086;2.武警工程大学 理学院,陕西 西安 710086)
数字水印算法中,基本上是针对灰度图像的,对于彩色图像数字水印算法的研究相对较少。针对彩色图像数字水印的算法,参考文献[1]认为,人类视觉系统对蓝色的变化不太敏感,因此在蓝色分量当中嵌入水印;参考文献[2]同时在红(R)、绿(G)和蓝(B)3 个颜色分量通道嵌入水印,虽然效果较好,但计算量太大,不宜采用;参考文献[3]认为在绿色分量中嵌入水印能有效抵抗JPEG有损压缩。一般的彩色图像数字水印方案在嵌入水印时都是按照固定的颜色分量进行嵌入,并没有考虑选择合适的颜色分量对不同彩色图像的数字水印进行操作。本文提出一种双水印算法,可以在DCT域中加入鲁棒水印和半脆弱水印,利用人类视觉隐蔽特性,在RGB颜色空间中,根据各颜色分量的特性选择适当的颜色分量嵌入和提取水印。实验表明,该算法稳健性较好,可以抵抗常见的图像处理等攻击,达到水印不可见性与鲁棒性的良好折中。
一般情况下,数字水印算法都选择固定的颜色分量进行水印的嵌入,本文根据RGB各颜色分量的特性来选择嵌入的位置。颜色分量选取的具体步骤如下[4]:
(1)对 RGB颜色空间的各个分量 R、G、B进行 DCT变换,得到各分量的 DCT 图像 R1、G1、B1。
(2)计算 R1、G1、B1的掩蔽特征向量, 记为 F={L,W},其中L表示亮度掩蔽特性分量,W表示纹理掩蔽特性分量。
根据人类视觉隐蔽特性,选择掩蔽强度最大的颜色分量嵌入鲁棒水印,选择掩蔽强度次于隐蔽强度最大的颜色分量的颜色分量嵌入半脆弱水印。
若图像大小为 M×N,X(i,j)表示图像上第 i行 j列像素点的像素值,图像亮度隐蔽特性L和纹理隐蔽特性W的计算公式为:
(3)对 R1、G1、B1的掩蔽特征向量进行比较,选择综合掩蔽特性最好的颜色分量嵌入鲁棒水印,对剩余的两个颜色分量进行比较,选择综合隐蔽特性好的颜色分量嵌入半脆弱水印。
2.1.1 鲁棒水印的生成
实验中采用64×64的二值有意义图像作为水印图像,为了保证水印的安全性,首先对水印图像进行N次Arnold变换,破坏其空域相关性,以抵抗诸如剪切、JPEG压缩之类的攻击。其次,通过混沌系统产生的混沌序列对水印图像进行加密,以确保水印的安全性[5]。
2.1.2 半脆弱水印的生成
将图像缩小至64×64大小,通过Canny算子提取图像的图像边缘特征作为水印信息,对提取的水印信息进行 N次Arnold变换,得到水印图像 w2[6-8]。
选择原始载体图像为512×512的彩色图像,鲁棒水印为64×64的二值图像,半脆弱水印为图像特征的二值图像。嵌入过程如下:
(1)对原始载体图像I进行RGB分解。
(2)选取嵌入鲁棒水印和嵌入半脆弱水印的颜色分量。
(3)将水印图像进行15次Arnold变换,得到置乱后的水印图像,对此进行混沌加密,得到加密后的水印图像w1。
(4)在选取的嵌入鲁棒水印分量上进行 8×8分块的DCT变换,按照JPEG质量因子为0.5的量化表对DCT变换系数进行量化,并对量化后的系数进行zig-zag排序。
(5)将水印w1嵌入到每个 8×8 分块中,记为 Ii×j,在每个分块中选择两个中频系数 X11、X16。具体嵌入规则为:如果 w1[i,j]=1,X11
(6)对每个分块进行IDCT变换,得到鲁棒水印分量上的含水印图像。
(7)将图像缩小至64×64大小,通过Canny算子提取图像的边缘特征作为水印信息,对提取的水印信息进行32次 Arnold变换,得到水印图像 w2。
(8)在选取嵌入半脆弱水印的分量上进行 8×8分块的DCT变换,按照JPEG质量因子为0.5的量化表对DCT变换系数进行量化,并对量化后的系数进行zig-zag排序。
(9)将水印图像 w2嵌入到每个 8×8分块的低频系数中,记为 Ii×j,在每个分块中选择两个中频系数 X3、X7。具体嵌入规则为:如果 w2[i,j]=1,X3
(10)对每个分块进行IDCT变换得到半脆弱水印分量上的含水印图像。
(11)将得到的鲁棒水印的颜色分量、半脆弱水印的颜色分量上的含水印图像,与原始载体图像中没有嵌入水印图像的分量合成为含水印的彩色图像。
水印提取不需要原始载体图像和原始水印,提取算法是水印嵌入算法的逆过程,具体提取步骤如下。
(1)对嵌入水印后的载体图像进行RGB分解。
(2)根据颜色分量选取方法确定嵌入鲁棒水印和半脆弱水印的颜色分量。
(3)对嵌入鲁棒水印的颜色分量进行 8×8分块的DCT变换。
(4)提取嵌入的二值水印图像。
(5)对提取出的水印图像进行 15次 Arnold变换,得到鲁棒水印图像。
(6)对嵌入半脆弱水印的颜色分量进行 8×8分块的DCT变换。
(7)提取嵌入的半脆弱水印。
(8)对提取的半脆弱水印进行 32次 Arnold变换,得到半脆弱水印图像。
为了判定含水印图像的部分内容是否遭受恶意篡改,可按如下步骤进行认证。
(1)从含水印图像H中提取出半脆弱水印图像。
(2)将 H缩小至 64×64大小,通过 Canny算子提取图像的图像边缘特征。
(3)由提取出的水印图像和提取的图像边缘特征进行差值图像处理,生成一个差值图像。
(4)依据差值图像判断嵌入水印后的图像是否遭受恶意篡改,并进行篡改定位。
采用24位真彩色lena图像和pepper图像作为实验对象,验证算法的有效性。
将彩色图像在RGB颜色空间进行颜色分量的分解,得到R、G、B 3个颜色分量图像。lena图像及其RGB空间各颜色分量如图1所示;pepper图像及其RGB空间各颜色分量如图2所示。
图1 lena图像RGB空间各颜色分量
图2 pepper图像RGB空间各颜色分量
根据本文提出的颜色分量选取方法,选择嵌入鲁棒水印和半脆弱水印的颜色分量。计算出lena图像的掩蔽特性如表1所示,pepper图像的掩蔽特性如表2所示。
表1 lena图像的掩蔽特性表
表2 pepper图像掩蔽特征表
从表1可以看出,lena彩色图像的B分量亮度掩蔽特性和纹理掩蔽特性最大,则选择综合掩蔽特性最好的B分量易进行鲁棒水印的操作,而G分量的亮度掩蔽特性和纹理掩蔽特性比R分量的好,则选择G分量易进行半脆弱水印的操作;对于pepper彩色图像而言,G分量的亮度掩蔽特性和纹理掩蔽特性最大,则选择综合掩蔽特征最好的G分量易进行鲁棒水印的操作,而R分量的亮度掩蔽特性和纹理掩蔽特性比B分量好,则选择R分量易进行半脆弱水印的操作。
水印嵌入效果如图 3所示。其中,图 3(a)为原始lena图像,图 3(b)为嵌入水印后的 lena图像,峰值信噪比PSNR=39.89 dB。显然,该算法具有良好的不可感知性,嵌入前后看不出有什么区别。同时,在没有攻击的情况下,可正确无误地提取出嵌入的水印图像。图3(c)、图 3(d)为嵌入前的双水印图像,图 3(e)、图 3(f)为嵌入后提取的双水印图像(NC=1)。
对含水印图像做常见的攻击测试,验证本文算法的鲁棒性。采用归一化相关系数(NC)衡量提取出的水印图像与原始水印图像的相似程度。表3为通过本文算法提取出的鲁棒水印和半脆弱水印的NC值。
图3 水印嵌入效果
表3 lena图像双水印实验结果
对含水印图像进行剪切、拼贴攻击等恶意的篡改,验证算法的有效性及篡改定位的准确性。以拼贴攻击为例,半脆弱水印的检测效果如图4所示。
图4 半脆弱水印的检测
本文针对真彩色图像,在图像低频系数上嵌入鲁棒水印标示版权,并在图像中频系数上嵌入检测篡改的半脆弱水印。仿真实验表明,该算法具有良好的不可感知性,嵌入的水印对剪切、JPEG压缩等各种图像处理鲁棒性好,而且对恶意篡改非常敏感并能够准确定位篡改位置,具有实用价值。
[1]于帅珍,沈建国.基于 DCT和 DWT的彩色图像盲数字水印算法[J].计算机应用与软件,2007,24(8):210-212.
[2]杨益,李云峰.基于DCT的彩色图像数字水印算法[J].计算技术与自动化,2008,27(4):136-139.
[3]石红芹,吕方亮,刘遵雄.基于混沌加密的彩色图像盲数字水印算法[J].计算机工程,2011,37(20):105-107.
[4]常竞,王玲.一种颜色分量选取方案在彩色图像数字水印中的应用[J].计算机应用与软件,2009,26(3):255-257.
[5]杨永峰.彩色图像数字水印技术研究[D].兰州:兰州理工大学,2007.
[6]张建军.基于JPEG的半脆弱数字水印技术研究[D].长春:吉林大学,2010.
[7]吕林涛,郝亮.面向图像内容认证的半脆弱数字水印算法[J].计算机应用.2010,30(5):1239-1242
[8]李海华.基于图像特征的认证水印技术研究[D].杭州:杭州电子科技大学,2009.