APP下载

一种基于熵理论的自适应水印嵌入算法

2020-09-15杨雪霞

计算机与现代化 2020年9期
关键词:分块果蝇鲁棒性

张 帅,杨雪霞

(1.太原广播电视大学教学研究中心,山西 太原 030024; 2.太原科技大学应用科学学院,山西 太原 030024)

0 引 言

随着网络技术的不断发展和多媒体软件的广泛应用,使得对数字资源的复制、编辑变得十分容易,并且数据的整个处理过程不会降低数字产品的质量,因此如何保护数字产品的版权成为人们重点关注的一个问题[1-3]。解决此类问题最为有效的方法就是数字水印技术。不可感知性和鲁棒性是评估水印算法的2个基本特性[4-6]。2个变量之间存在着矛盾性,当提高嵌入水印的不可感知性时,则会降低其鲁棒性能,反之,当提高嵌入水印的鲁棒性时,水印的不可感知性就会下降。因此嵌入水印区域的选择和嵌入水印强度的确定将是平衡二者之间矛盾的重要因素[7-8]。

Sangeetha等人[9]提出了一种基于熵的水印嵌入方法,首先利用小波变换对载体图像进行分解,然后计算子带的熵值,最后将水印信息嵌入到熵值最高的子带中,该算法在一定程度上提高了嵌入水印的透明性。Moeinaddini[10]首先通过计算分块图像的熵值,并利用优化算法确定了嵌入水印的坐标,最后对分块矩阵进行阿达玛变换实现了水印信息的嵌入。Veni等人[11]利用小波变换并对载体图像进行分解,然后对选择的低方差子块应用反向果蝇优化算法寻找嵌入水印的最佳位置,该算法嵌入水印的不可见性表现较好,但在抵抗JPEG压缩、直方图均衡方面表现不足。王世辉等人[12]利用萤火虫算法并结合小波二级分解对嵌入水印强度进行了优化,该算法具有较好的不可感知性和鲁棒性,但未能实现水印信息的盲提取。张韧志等人[13]利用DCT变换并结合粒子群算法对水印强度进行了优化,优化过程中考虑了适应度函数的权重问题,但该算法在高斯、椒盐噪声攻击方面表现不足。吴小文等人[14-15]对多种智能优化算法的寻优性能进行了综述,分别从计算量、复杂度、稳定性和精度方面进行了分析,总结了果蝇优化算法在全局寻优等方面的优势。

综上所述,本文结合图像信息熵与边缘熵的特性以及优化算法在水印嵌入过程中的作用,提出一种基于熵与果蝇优化算法的水印嵌入方案,通过对图像分块的选择以及嵌入强度的优化,进一步平衡了嵌入水印图像的鲁棒性和透明性。

1 基本知识

1.1 图像熵基本理论

图像熵是衡量相邻像素间相关性的一种方法,它反映的是图像中平均信息量的多少。最早香农根据信息的不确定程度给出了信息熵的基本概念[16],即:

(1)

Pal等人[17]将平均边缘信息定义为一种指数形式来计算熵,它比香农的信息熵能更好地捕捉图像的二维空间相关性,边缘熵定义为:

(2)

其中,1-pi表示像素值i的不确定性,这种熵的定义给出了关于像素色散和图像边缘的更多信息。

1.2 果蝇优化算法

果蝇优化算法(FOA)是由Pan[18]提出的一种新的群体智能算法,属于一种演化式进化的计算方法,是基于果蝇觅食行为的全局寻优新方法。果蝇的觅食过程是:1)果蝇个体通过嗅觉器官嗅到食物来源,朝该位置飞行并向周围果蝇发送气味信息;2)果蝇利用视觉器官比较当前收集到的最佳气味信息的果蝇位置,群体中的其他果蝇均飞向该位置,并继续展开搜索。图1给出果蝇群觅食的简要过程。

图1 果蝇种群进化过程

根据果蝇群觅食特性,FOA可分为以下5个步骤:

1)参数初始化。FOA算法的主要参数是种群规模和迭代次数。首先初始化种群位置(X_axis,Y_axis)。

2)种群初始化。利用嗅觉给出果蝇个体的随机飞行方向和觅食距离。本文利用rand()函数生成觅食的随机距离,即:

(3)

3)种群评估。首先需要计算果蝇位置到原点的距离Dist。其次计算气味的浓度判断值Si。计算公式如下:

(4)

(5)

然后,将气味的浓度判断值Si代入气味浓度判断函数(也称为适应度函数)中,计算出果蝇个体位置的气味浓度。最后,在果蝇群中找出具有最大气味浓度Smelli的个体果蝇。计算公式如下:

Smelli=Fuction(Si)

(6)

[bestSmell, bestIndex]=max(Smelli)

(7)

4)选择策略。保持最大的气味浓度值和(X_axis,Y_axis)坐标。然后果蝇群利用视觉飞往最大嗅觉浓度值的位置,即:

(8)

5)重复步骤2与步骤3,当Smellbesti>Smellbesti-1时,表明果蝇群体未找到最大气味浓度值,则继续进行迭代循环。当气味浓度值不再优于先前的气味浓度或迭代循环达到最大迭代次数时,则结束优化过程。

2 算法设计

2.1 基于熵理论的分块选择

在一幅图像中熵值越大,该图像的纹理紊乱度和复杂度就越高。因此综合考虑图像熵与边缘熵的特性,对载体图像进行分块处理并选择熵值较高的区域嵌入水印可有效提高含水印图像的不可感知性[19]。

本文选择尺寸大小为512×512的Lena、baboon、cameraman和pepper作为测试图像。首先对载体图像按照8×8进行分块处理,对于图像的每一个分块,通过式(1)与式(2)计算信息熵与边缘熵,然后将其值相加并排序,并选择1024个熵值较大的分块作为水印的待嵌入区域。实验结果如图2和图3所示。

(a) Lena (b) baboon

(c) cameraman (d) pepper图2 原始载体图像

(a) Lena (b) baboon

(c) cameraman (d) pepper图3 基于熵的子块选择

图2为待测试的原始载体图像,图3中黑色区域为根据图像信息熵与边缘熵理论选择的1024个子块。

2.2 水印的嵌入

首先对选择的1024个子块进行一级小波变换,为了提高嵌入水印的稳定性,对经小波分解的LL子带进行奇异值分解,最后将水印信息嵌入到分解的最大奇异值中。每一个子块经过DWT-SVD变换以后可以嵌入一位水印信息,根据选择的子块数,嵌入水印的容量为1024位。本文选择大小为32×32的“学”字作为待测试水印图像,待嵌入的水印信息首先经过Arnold变换以进一步提高嵌入水印的安全性,具体嵌入过程如图4所示。

图4 水印嵌入过程

水印嵌入时,根据如下规则完成水印信息的嵌入:

Z=σ1modq

(9)

当W′(i,j)=0时,则有:

(10)

当W′(i,j)=1时,则有:

(11)

其中,σ1表示选择的首个子块经过SVD分解后的最大奇异值,W′(i,j)表示经过Arnold置乱后的水印值,其中(i,j)表示水印的坐标,且(1i,j32,i,j∈Z)。q表示嵌入水印强度,重复上述过程,直到将水印信息全部嵌入载体图像。

水印提取时,此时令Z=σ′1modq,根据如下规则实现水印信息的盲提取:

(12)

为了进一步平衡嵌入水印图像的不可感知性与鲁棒性之间的矛盾,本文对嵌入水印强度通过智能优化算法进行优化处理。

2.3 水印强度的果蝇优化

本文利用果蝇优化算法对嵌入水印的强度进行寻优,为了获得最佳的嵌入强度,首先要在果蝇算法中设置恰当的适应度函数,本文综合考虑嵌入水印图像的鲁棒性和不可感知性之间的关系,设定适应度函数,具体公式如下:

(13)

适应度函数分为3个部分,其中含水印图像的不可感知性由式中的PSNR和SSIM来表示,并且通过引入可变参数λ来平衡水印算法鲁棒性与不可感知性之间的关系,且2个评价指标均表示含水印图像未受攻击时与原始图像的关系。式(13)中第3个部分通过引入NC表达式来表示经过多种模拟攻击后提取水印的鲁棒性,N表示模拟攻击的种类。

PSNR为峰值信噪比,表示含水印图像与原始图像之间相似性的一种统计度量,其单位用dB表示。具体公式如下[20]:

(14)

其中,m和n分别表示载体图像的尺寸,Ii,j和I′i,j分别表示原始图像和含水印图像的像素值,(i,j)表示图像的坐标,取值范围与载体图像的大小保持一致,峰值信噪比越高说明含水印图像的不可感知性越好。

SSIM是用于评价图像质量的另一个指标,用来测试2幅图像的结构相似性,在本文算法中引入该指标,当测量值接近1时,说明图像的透明性表现越好。具体公式如下[21]:

SSIM(x,y)=l(x,y)·c(x,y)·s(x,y)

(15)

(16)

(17)

(18)

其中,l(x,y)、c(x,y)和s(x,y)分别表示含水印图像与原始图像的亮度、对比度与结构相似性。

NC为归一化值,用来评价模拟攻击后提取水印与原始水印的相似性,具体公式如下[22]:

(19)

其中,n表示水印的尺寸大小,Wi,j和W′i,j分别表示原始水印和经过攻击后提取的水印。

3 实验与仿真

3.1 水印强度的优化过程

本文利用果蝇算法对嵌入水印强度进行优化,选择8种模拟攻击方法,分别为JPEG压缩、中值滤波、均值滤波、乘性噪声、椒盐噪声、高斯噪声、剪切攻击和旋转攻击。果蝇种群规模为20,迭代次数为50。首先确定适应度函数可变参数λ的最佳取值,λ取值范围从1~10进行循环实验,步长为1,实验结果如图5所示。

图5 参数λ不同值的果蝇优化迭代结果

由图5可以得出,当可变参数λ取值在1~6时,果蝇优化结果变化幅度较小,当参数λ大于7时,优化的嵌入水印强度开始下降。本文实验给出了参数λ从1~10变化过程中,水印嵌入强度与PSNR、SSIM和NC值之间的关系,具体结果如表1所示。

由表1可知,当适应度函数的可变参数λ小于6时,果蝇优化结果均比较稳定,当参数λ大于7时,优化的强度开始减小,含水印图像的透明性提高,但提取水印鲁棒性下降明显,此时不满足水印算法对鲁棒性的要求。为了满足水印算法对鲁棒性与不可见性的要求,根据实验结果,本文将适应度函数的可变参数λ选择等于6,果蝇优化循环50次的迭代过程如图6所示。

图6 可变参数λ为6时果蝇优化过程

由图6可以看出,当循环迭代到第6次时,果蝇优化的结果已经接近最优解,收敛速度较快,当循环次数大于6时,优化结果变化幅度较小,趋于稳定。体现了果蝇算法的寻优效率和稳定性。

3.2 模拟仿真实验

根据确定的适应度函数,本文选择大小为512×512的Lena、cameraman、baboon和pepper作为测试图片,并对4种测试图像进行模拟攻击实验,攻击强度JPEG压缩品质因素为80,椒盐噪声强度为0.002,高斯噪声强度为0.001,乘性噪声强度为0.01,剪切攻击为左上角100像素,旋转攻击角度为5°,中值滤波和均值滤波均为默认窗口大小。实验结果如表2所示。

表2 不同测试图像的果蝇优化结果

8种模拟攻击试验在给定的强度下,提取水印的鲁棒性能如图7所示。

图7 多种模拟攻击后提取水印性能

本文以pepper为例,根据给定的攻击强度,给出了经过8种模拟攻击后,提取水印的效果,具体结果如图8所示。

(a) JPEG压缩 (b) 中值滤波 (c) 均值滤波 (d) 乘性噪声

(e) 椒盐噪声 (f) 高斯噪声 (g) 剪切攻击 (h) 旋转攻击

为了进一步对算法的性能进行测试,本文对4种测试图像,采用了不同强度的攻击试验,模拟攻击后提取水印的鲁棒性能如表3所示。

如表3所示,本文根据果蝇优化的水印嵌入强度,采用8种模拟攻击方法,采用不同攻击强度对4种测试图像进行了68次模拟攻击实验,并根据提取水印的NC值对水印算法的鲁棒性进行评价。实验结果表明,随着攻击强度的增大,提取水印的质量会出现一定程度的下降,在JPEG压缩、椒盐噪声、剪切攻击方面提取水印的NC均达到了0.98以上,鲁棒性能表现最好,在其他类型的模拟攻击中,即使提高攻击强度,提取水印的NC值均能达到了0.92以上,即水印信息依然可以清晰辨认,表明该算法在多种类型攻击中均具有较强的鲁棒性。

表3 多种类型不同强度攻击后提取水印的性能比较

在单一攻击的基础上,本文以Lena、cameraman图像为例,采用混合攻击的方法对提取水印性能进行进一步测试,并根据提取水印的NC值对混合攻击模式下算法的鲁棒性能进行评价,实验结果如表4所示。

表4 混合攻击模式下提取水印的性能比较

实验结果表明,在混合攻击模式下,与相同强度的单一攻击比较,提取水印的性能均有所下降,但下降幅度均很小,最大幅度为乘性噪声与高斯噪声攻击下,下降幅度为0.0082。因此在混合攻击模式下,本文所提出的算法同样具有较强的鲁棒性。

3.3 对比实验

为了对本文提出的算法性能进行评估,将本文实验与同样采用图像分块并结合DWT-SVD算法的文献[10]和利用萤火虫优化算法的文献[23]进行对比分析。对比实验结果如表5所示。

表5 本算法与同类水印算法的对比试验

如表5所示,在多种类型不同强度的模拟攻击后,本文算法所提取的NC值均高于同类算法的实验结果,特别是在JPEG压缩、旋转、剪切和滤波攻击方面算法的性能均有较大幅度的提高。对比试验表明基于图像信息熵与边缘熵的分块选择与果蝇优化算法的结合在嵌入水印过程中表现出更好的性能。

4 结束语

本文提出了一种将图像熵理论与果蝇优化算法相结合的水印嵌入算法。为了提高嵌入水印的不可感知性,利用图像信息熵与边缘熵的理论,确定了适合水印嵌入的分块。为了提高嵌入水印的鲁棒性并且平衡水印算法鲁棒性与不可感知性之间的矛盾,引入果蝇优化算法对嵌入水印强度进行了自适应优化,并在适应度函数中引入可变参数,通过实验的方法确定了最佳的适应度方程。最后通过多种类型的攻击方法对该算法的鲁棒性进行仿真实验,结果表明,在保证水印不可感知性的前提下,该方案在多种攻击后能够显著提高算法的鲁棒性。

猜你喜欢

分块果蝇鲁棒性
果蝇也会“触景伤身”
小果蝇大贡献
果蝇遇到危险时会心跳加速
分块矩阵在线性代数中的应用
荒漠绿洲区潜在生态网络增边优化鲁棒性分析
基于确定性指标的弦支结构鲁棒性评价
小果蝇助力治疗孤独症
反三角分块矩阵Drazin逆新的表示
基于非支配解集的多模式装备项目群调度鲁棒性优化
非接触移动供电系统不同补偿拓扑下的鲁棒性分析