晁 妍, 王诗兵,2, 王慧玲
(1. 阜阳师范学院 计算机与信息工程学院, 安徽 阜阳 236037; 2. 大连理工大学 计算机科学与技术学院, 辽宁 大连 116024)
图像作为一种信息载体, 可携带大量的信息, 是最常用的一种多媒体载体[1]. 通常情况下, 图像包含大量的重要信息, 如机密信息、 隐私等, 由于互联网络的开放性, 一些不法分子利用一些专用工具和技术对互联网上的图像进行非法复制、 内容篡改, 而普通用户对这些非法行为难以觉察和认证, 因此如何对互联网上的多媒体作品进行保护已成为该领域关注的焦点[2-3].
图像水印算法[4]是利用相关技术将一些特定信息(水印)嵌入到图像载体中, 最后再将水印检测出来, 目前图像水印算法主要分为两类: 基于空域的图像水印算法和基于变换域的图像水印算法. 其中基于空域的图像水印算法对图像像素进行直接修改, 使非法用户无法识别图像的原始信息, 该类算法简单、 可操作性强, 水印信息容易嵌入, 但无法抵抗各种攻击, 抗攻击能力的鲁棒性差[5]. 基于变换域的图像水印算法对原始载体进行变换, 然后将水印信息嵌入到变换后的区域中, 相对于基于空域的图像水印算法, 其工作过程复杂, 但其水印的不可见性好, 且抵抗各种攻击能力相对较强, 已成为当前图像水印算法的主要研究方向[6-8]. 基于变换域的图像水印算法主要采用Fourier变换、 小波变换、 奇异值分解等, 如小波变换和神经网络相结合的图像水印算法[9], 采用小波变换先将原始载体分解为多个子块, 再通过神经网络拟合各子块图像之间的关系, 并通过行Arnold算法对水印图像进行置乱处理, 该方法的水印不可见性好, 对一些常见的攻击方式鲁棒性强, 但对几何攻击、 剪切攻击的抵抗能力较差; 文献[10]提出了奇异值分解和小波变换的图像水印算法, 首先采用小波变换对原始载体进行分块, 然后采用奇异值分解对变换后的载体分块进行处理, 再嵌入水印, 同时可实现水印的盲提取, 可抵抗各种几何攻击, 但旋转攻击抵抗能力较差, 且该方法只是简单把水印嵌入到变换域中, 没有嵌入到最适合的区域, 嵌入水印后易导致原始载体图像视觉失真[11].
为了解决目前图像水印算法存在的水印可见性与抗攻击鲁棒性的矛盾, 以获得理想的图像水印效果, 本文设计一种基于奇异值分解和粒子群优化算法相结合的图像水印算法. 首先选择水印嵌入的区域, 将水印嵌入区域划分为多个子块, 然后采用奇异值分解算法对子块进行处理, 建立奇异值矩阵, 并对水印和子块进行融合生成水印矩阵, 最后采用粒子群优化算法确定水印嵌入的强度, 并用图像水印仿真实验测试其性能.
图1 小波变换的工作原理Fig.1 Working principle of wavelet transforms
小波变换可对图像进行多尺度处理, 对一幅图像进行一级分解后, 可得到1个低频子图LL和3个高频子图HL,LH,HH. 通常情况下, 图像能量集中在低频子图, 可对低频子图像进行继续分解, 而高频子图能量少, 主要包含边缘信息和方向特征, 不必进行继续分解. 小波变换的工作原理如图1所示.
奇异值分解是基于代数理论的数据分析方法[12], 可将一个矩阵B分为正交矩阵U、 对角矩阵S和转置矩阵V, 用公式表示为
粒子群算法包括许多没有质量的粒子, 在第t时刻, 粒子的位置和速度分别为xt和vt, 其位置和速度不断发生变化, 对问题的解进行搜索, 更新公式为
式中: ω为惯性权重; c1,c2为学习因子; pbest和gbest分别表示粒子和种群的历史最好位置.
设载体图像I和水印图像W的大小分别为N×N和M×M, 水印信息嵌入的步骤如下:
1) 对原始载体图像进行尺度不变特征变换, 提取重要特征点, 将这些特征点转换成一维序列数据;
2) 将一维序列数据进行变换得到水印嵌入的区域, 水印嵌入的区域(W′)大小和W相等;
4) 采用奇异值分解算法对水印嵌入区域的子块进行处理, 得到3个矩阵U,V,S, 它们与Wi(i=1,2,3,4)的关系为
(4)
式中:U和V表示正交矩阵;S表示对角矩阵;
5) 采用小波变换对水印图像W进行一级分解, 得到4个一级子带wi(i=1,2,3,4), 将水印嵌入到水印嵌入区域子块的对角矩阵S中, 产生一个新的矩阵:
(5)
式中, α表示水印信息的嵌入程度, 其值由粒子群优化算法确定;
(6)
7) 采用小波变换对水印子块进行逆变换重构, 并将水印信息替换原始载体的特征点, 实现水印信息的嵌入操作, 得到嵌入水印的载体图像I′.
奇异值分解和粒子群优化算法的图像水印嵌入流程如图2所示.
1) 采用尺度不变特征变换算法对嵌入水印的图像进行特征点提取, 这些特征点组成一维序列;
2) 根据特征点构成一个水印大小相等的水印提取位置, 并构建相应的矩阵;
3) 将水印提取位置划分为4个子块, 得到4个矩阵;
4) 采用奇异值分解算法对水印提取位置子块进行处理, 产生对角奇异矩阵Si;
5) 将Si和图像水印嵌入中的Ui和Vi进行奇异值分解算法的逆处理, 得到水印子块wi;
6) 根据
(7)
得到水印的各个子带;
7) 采用小波变换对水印的各子带进行逆变换重构, 并提取水印图像.
奇异值分解和粒子群优化算法的图像水印提取流程如图3所示.
图2 奇异值分解和粒子群优化算法的图像水印嵌入流程Fig.2 Image watermarking embedding process of singular value decomposition and particle swarm optimization algorithm
图3 奇异值分解和粒子群优化算法的图像水印提取流程Fig.3 Image watermarking extraction process of singular value decomposition and particle swarm optimization algorithm
在图像水印的嵌入和提取过程中, 水印的嵌入强度直接影响水印信息的不可见性, 如果水印的嵌入强度过大, 虽然可得到较好的水印不可见性, 但抵抗各种攻击能力的鲁棒性差; 如果水印的嵌入强度小, 虽然可得到较理想的抵抗各种攻击能力, 但水印的不可见性差; 而当前水印嵌入强度采用手工设置方式, 且强度的值固定, 易出现水印不可见性与鲁棒性之间的矛盾, 因此本文选择粒子群优化算法自适应确定水印的嵌入强度值.
采用粒子群优化算法自适应确定水印的嵌入强度值最关键的问题是确定描述粒子优劣的适应度函数, 由于要考虑水印的不可见性与鲁棒性, 因此选择两个指标构建适应度函数, 一个是嵌入水印信息后的图像峰值信噪比(peakvaluesignaltonoiseratio,PSNR), 其可描述水印信息的不可见性; 另一个为原始水印信息和提取水印信息的归一化相关性(normalizationcross-correlation,NC),NC值越大, 表示原始水印和提取水印的相似度越高, 抗攻击能力越强, 因此粒子群的适应度函数定义为
(8)
其中: N表示非法攻击数量;NCi表示第i次攻击后的NC;PSNRtarget为最理想的PSNR值.PSNR和NC的计算公式分别为
(9)
(10)
式中: Imax表示载体图像可能的最大嵌入强度; i和 j表示像素的位置; ⊕表示异或操作. 将水印的嵌入强度作为粒子群的位置向量, 式(8)作为粒子群的适应度函数, 通过粒子群的不断迭代进行位置和速度更新, 找到粒子群的全局最优位置, 根据最优粒子位置得到水印的最佳嵌入强度.
为了测试基于奇异值分解和粒子群优化算法的图像水印算法的性能, 采用MATLAB2011b编程实现图像水印算法的各个程序, 粒子群的粒子数量为20, 最大迭代次数为100, 选择经典水印测试载体图像Baboon,Lena,Man和Pepper作为研究对象, 其与水印图像如图4所示. 为了使本文的图像水印算法测试结果具有可比性, 选择文献[12-14]的图像水印算法进行对比测试.
图4 原始载体图像和水印图像Fig.4 Original carrier image and watermark image
3.2.1 水印的不可见性测试 水印的不可见性是评价图像水印算法的一个重要指标, 主要通过人的视觉系统进行评价, 而人的视觉系统评价结果具有一定的主观性和盲目性, 因此本文选择PSNR对水印的不可见性进行评价, 原始载体图像的PSNR和嵌入水印后图像的PSNR统计结果列于表1. 由表1可见, 本文算法嵌入水印后图像的PSNR与原始载体图像的PSNR差别较小, 而对比算法嵌入水印后图像的PSNR与原始载体图像的PSNR之间差别较大, 且均有一定程度的下降, 即嵌入水印后载体图像质量下降, 水印的不可见性较差.
表1 原始载体图像和嵌入水印后图像的PSNR值(dB)对比
3.2.2 水印的鲁棒性测试 由于NC值描述提取水印图像和原始水印图像之间的相似性, 因此采用NC值评价水印的鲁棒性. 在不同攻击类型下, 不同算法的NC值列于表2.
表2 不同攻击下的NC值统计结果
由表2可见, 本文算法的NC值均大于0.9, 接近于1, 表示本文算法提取的水印图像与原始水印图像之间的差异性较小, 而对比算法提取的水印图像与原始水印图像之间的差异性较大, 受到不同攻击类型的影响很大, 而本文算法对不同类型攻击抵抗能力鲁棒性强, 具有明显的优越性.
3.2.3 不同攻击下的嵌入水印图像质量 以“Man”图像为例, 经过不同攻击后, 本文算法的嵌入水印后图像如图5所示. 由图5可见, 各种攻击对嵌入水印图像的视觉效果影响较小, 获得了较好的视觉质量.
图5 不同攻击下嵌入水印图像的视觉结果Fig.5 Visual results of embedded watermark images under different attacks
综上可见, 在图像水印算法设计过程中要尽可能地使非法用户看不到水印信息, 同时使水印能抵抗非法攻击, 但二者之间存在一定的矛盾, 如何使图像水印算法兼顾这两种功能, 以解决当前图像水印算法存在的难题, 本文提出了一种基于奇异值分解和粒子群优化算法的图像水印算法. 首先通过尺度不变特征变换算法确定原始载体中的水印嵌入区域, 并采用奇异值分解算法生成水印矩阵, 然后采用粒子群优化算法确定水印嵌入的强度, 使水印能更好地嵌入, 最后进行了图像水印仿真实验. 结果表明, 本文算法可得到高质量的水印, 嵌入的水印不可见性较好, 水印可抵抗各种非法攻击, 且水印算法的整体性能明显优于其他图像水印算法, 水印嵌入的效率较高, 应用前景广阔.