基于多目标优化的明文域信息隐藏算法

2021-12-31 05:02蒋婵钰张紫欣
光学仪器 2021年6期
关键词:直方图复杂度秘密

蒋婵钰,张紫欣,秦 川

(上海理工大学 光电信息与计算机工程学院,上海 200093)

引 言

信息隐藏技术通常是将一个字符串的消息(如数字签名)嵌入到一个数字对象(如图像、音频或视频信号)[1]中,且人们无法感知到数字对象的变化,因而被广泛应用于版权保护、指纹识别、身份验证和秘密通信等领域。近年来,研究人员提出了很多信息隐藏算法。Zhang等[2]提出了一种新的修改方向的(exploiting modification direction, EMD)方法,该方法利用魔术矩阵作为参考,修改载体图像的最低有效位(least significant bit, LSB)。Chang等[3]提出了一种基于(7, 4)汉明码的高嵌入率的信息隐藏方法,通过信息隐藏技术可以无损地提取出嵌入的秘密信息,但无法避免数字对象在恢复过程中遭到的破坏。因此,一种可逆信息隐藏(reversible dataing hiding, RDH)技术受到了人们的关注,该技术不仅可以提取嵌入的信息,而且可以无损地恢复原始的载体图像。到目前为止,RDH算法主要采用3种技术,即无损压缩[4-5]、差分扩展(DE)[6-7]和直方图平移(HS)[8-14]。Celik等[5]提出,通过无损压缩的方式来压缩载体图像,从而创建冗余空间来嵌入秘密信息。Tian[6]提出了差分扩展法,该方法是将相邻像素之间的差异加倍,以生成新的最低有效位平面来嵌入秘密信息。Ni等[9]提出了直方图平移法,该方法用直方图呈现像素点出现的频率,将出现次数最多的像素点作为峰值点,将出现次数为0的像素点作为零值点,并通过修改直方图的峰值点对应的像素值来实现信息的隐藏。但是,以上这些方法也存在一些不足。

一方面,一些提出的可逆方法缺乏灵活性和便利性。例如,文献[12]是利用峰值点来嵌入数据,虽然此方法有效,但有时只需在水印区域嵌入很少的信息,这种以牺牲所有的误差值(在峰值点与其对应的零点之间移动)为代价来容纳这么少的数据是不可取的。这些方法一般都不能根据具体的应用场景找到最优的嵌入率、恢复图像的峰值信噪比(peak signal-to-noise ratio,PSNR)和嵌入图像的PSNR的平衡点。

另一方面,在数据嵌入后,可逆信息隐藏的技术有助于提高图像质量但嵌入率较低,而不可逆信息隐藏方法能取得更高的嵌入率。如果只采用传统的可逆信息隐藏算法,就不能对信息提供一个大范围的嵌入率选择,所以灵活性不够。

基于这些考虑,本文将可逆信息隐藏方法与不可逆信息隐藏方法相结合,以获得失真小、嵌入率高的效果,实现多目标优化。与其他方法相比,数据嵌入之前,我们可以调整嵌入率,嵌入图像的PSNR,恢复图像的PSNR的权值,以获得不同的结果来适应不同的应用需求。

1 信息隐藏算法

1.1 算法框架

本文算法的框架如图1所示,由图像预处理、数据隐藏和数据提取/图像恢复3个阶段组成。在预处理阶段,先对原始图像进行块分类。在数据隐藏阶段,数据隐藏者利用数据隐藏密钥,采用预测误差直方图平移法和魔方矩阵编码法,将秘密数据嵌入到经过预处理后的图像块中。纹理平滑的图像块即为可逆信息隐藏图像块,对其用预测误差直方图平移法;纹理复杂的图像块即为不可逆信息隐藏图像块,对其用魔术矩阵编码法。在最后数据提取/图像恢复阶段,当拥有数据隐藏密钥时,接收者可以提取出嵌入的秘密数据并且恢复图像。

图1 本文算法框架Fig.1 Framework of the proposed algorithm

1.2 预处理

以8位灰度图像为例,假设原始未压缩图像Io的大小为M×N(高×宽)。Io的每个像素记为pi,j,其中i,j表示像素的坐标位置,且 1≤i≤M, 1 ≤j≤N。为了简化 说明,假设M和N都是2的幂。为了评估不同图像块的复杂度,对原始图像进行如下处理。

首先,将原始图像Io分成若干个大小为s×s的不重叠块。

其次,使用Sobel算子计算图像块Bm(m=中每个像素的复杂度大小,将每个像素的复杂度累加得到图像块Bm的复杂度并且记为Gm,并设置阈值GT。如果Gm≤GT,则将图像块Bm视为纹理光滑的图像块,归类为可逆信息隐藏图像块;如果Gm>GT,则将图像块Bm视为纹理复杂的图像块,归类为不可逆信息隐藏图像块。

最后,生成一个大小为(M/s2)×(N/s2)的矩阵U,用于区分当前块是可逆信息隐藏图像块还是不可逆信息隐藏图像块,以便于后续提取数据和恢复图像。

1.3 理论推导

假设有Q块的复杂度满足Gm≤GT,即可逆信息隐藏图像块的数量为Q。对于每个可逆图像块Bm,第一行和第一列的像素都不做修改,剩下的像素按照光栅扫描顺序进行预测。Bm中所有预测误差可以收集起来生成一个块预测误差直方图(block prediction error histogram,BPEH)。为了能便于正确提取数据和恢复图像,第一行和第一列的像素都不用于嵌入数据。假设块Bm由Nm个不同的预测误差值组成,即BPEH中有Nm个非空柱。然后,找出两个最高的峰值柱,并将它们分别记为左峰值Vpl和右峰值Vpr,同时将所有预测误差值大于Vpr的直方柱向右移动一个单位,将所有预测误差值小于Vpl的直方柱向左移动一个单位。整个嵌入规则可以表示为

式中Q为可逆信息隐藏图像块的数量。同时,将块Bm中满足的总数表示为x,并假设秘密数据具有相等的概率,即为0和1。那么,所有可逆信息隐藏图像块的含密图像块总失真D1可以表示为

由于有Q个可逆信息隐藏图像块,其中MN/s4块用于记录原始LSB值,所以剩余的块用于不可逆信息隐藏。所有不可逆信息隐藏图像块的数据嵌入容量C2记为

嵌入效率Eδ=[(2n+1)×log2(2n+1)]/2n表示嵌入比特数与由于数据嵌入而产生的畸变的比特数之比。由于Eδ表示了每改变一个像素能嵌入多少数据,所以所有不可逆信息隐藏图像块的块失真D2可以表示为

本文综合考虑含密图像和恢复图像,研究基于拉格朗日乘数法的图像性能最优问题。假设,除了可逆信息隐藏块数目Q和可逆信息隐藏块的嵌入率之外所有的参数都是已知的。在这种情况下,可以得到相应的可逆块的数量,该数量可表示为

( ω1、 ω2、 ω3分别为嵌入率R、含密图像的峰值信噪比PSNR、恢复图像的峰值信噪比PSNR的 权重)。

1.4 数据嵌入

假设图像的每个分块都嵌入了数据,则嵌入过程由以下5个步骤组成。

(1)将原始图像划分成若干互不重叠的大小为s×s的块,并且按照1.2节中提到的方法对每个块进行处理,得到复杂度。

(2)使用一个矩阵U来记录平滑图像块与复杂图像块的位置。

(3)除了最前面的HW/s4块之外,将剩下的图像块按照复杂度值从小到大进行排序,复杂度值较低的Q块作为可逆信息隐藏图像块。

(4)在可逆信息隐藏图像块中进行数据嵌入。可逆信息隐藏图像块的嵌入率为m1,每个块都应该嵌入m1s2比特的秘密数据。因此,应该选择误差值点对应的数目有m1s2个的预测误差值,这说明如果继续使用峰值点的话,可能需要消耗更多的成本,因为峰值点和零点之间的所有误差值都将被移动,以此来容纳秘密数据。为了解决这个问题,本文使用一个足够的空间来嵌入秘密数据的误差序列峰值点,或者找两个总和是接近我们需要嵌入秘密数据数目的直方柱。设eu,v表示预测误差,b表示要被嵌入的秘密数据,并且b∈{0,1} ,具体的数据嵌入方法实现如下:

(5)在不可逆信息隐藏图像块中进行数据嵌入。使用n个像素来携带一个(2n+ 1)进制比特的秘密数据。要嵌入秘密数据,首先将每个秘密数据转换为(2n+ 1)进制。图2是n= 2时的一个魔术矩阵,坐标(a,b)代表像素对{a,b}在魔术矩阵中的位置,该位置对应的数据记为D(a,b)。

图2 魔术矩阵Fig.2 Magic matrix

如果嵌入的信息与数据D(a,b) 相同,则原始像素值保持不变。

如果嵌入的信息为数据D(a,b+1) ,则像素值修改为数据D(a,b+1) 。

如果嵌入的信息为数据D(a,b−1) ,则像素值修改为数据D(a,b−1) 。

如果嵌入的信息为数据D(a+1,b) ,则像素值修改为数据D(a+1,b) 。

如果嵌入的信息为数据D(a−1,b) ,则像素值 修改为数据D(a−1,b) 。

1.5 数据提取与图像恢复

数据提取和图像恢复过程由以下4个步骤组成。

(1)如果接收方拥有数据隐藏密钥,则接收方可以获得关于图像被划分为HW/s2块的非重叠块的信息。然后,在前HW/s4块中可以得到矩阵U的信息,于是可以知道纹理平滑的图像块和纹理复杂的图像块的位置。

(2)可逆信息隐藏块数据提取。首先,可以通过计算得到预测误差;然后,在预测误差直方图中,可以找到用于在原始图像中嵌入信息的两个点

(3)不可逆信息隐藏图像块中数据提取。假设n=2 ,从第一列和第一行开始提取数据。通过查找像素对坐标(a,b)对应的秘密数据D(a,b)来提取秘密信息,但不可逆信息隐藏图像块中的原始像素无法恢复。

(4)图像恢复。将前HW/s4块中像素的LSB替换为步骤2和步骤3中提取的前MN/s2位秘密 数据,同时恢复可逆信息隐藏图像块。

2 实验结果和比较

本文选取USC-SIPI图像库中的5个常用的标准图像Lena、Baboon、Lake、House、Man作为测试图像,每幅图像的大小均为512 像素×512 像素,如图3所示。

图3 标准测试图像Fig.3 Standard test images

研究嵌入率R、含密图像的峰值信噪比PSNR、恢复图像的峰值信噪比PSNR 的权重ω1、 ω2、 ω3对于实验结果的影响,即 ω1、 ω2、ω3的大小对可逆信息隐藏图像块Q值的影响。图3是可逆信息隐藏图像块的嵌入率m1=0.2 时的实验结果,每个可逆信息隐藏图像块预期能容纳51位秘密数据。分别给 ω1、 ω2、 ω3设置不同的权重,测试 ω1的权重显著上升是否会直接影响嵌入容量,同理, ω2的权重变化是否会直接影响含密图像的PSNR, ω3的权重变化是否会直接影响恢复图像的PSNR,实验结果如表1所示。从表1可以很明显地看出,当 ω1很大,ω2、 ω3则会相对较小,此时的嵌入率会高于 ω1较小的时候。同理也可以应用到 ω2、 ω3中。

表1 不同ω1,ω2,ω3情况下Lena的性能Tab.1 Performance for Lena with different emphasis on weights of ω1, ω2, ω3

我们在嵌入率Rr 、含密图像的PSNR以及恢复图像的PSNR方面与文献[8]、文献[9]、文献[10]和文献[11]中提出的方法进行了比较,结果如表2所示。从表2中可以清晰地看出,对于含密图像,本文的方法具有更高的平均PSNR值以及更高的嵌入率。

表2 本文提出方法与[8]、[9]、[10]、[11]的总体比较Tab.2 Overall comparison between [8], [9], [10], [11] and our proposed method

3 结 论

本文将可逆信息隐藏算法和不可逆信息隐藏算法相结合,提出了一种嵌入容量大、图像视觉质量高的明文域信息隐藏算法。在数据嵌入之前,预先设置不同的嵌入率、含密图像的PSNR和恢复图像的PSNR的权重,得到相应的采用可逆信息隐藏算法的可逆块和采用不可逆信息隐藏方法的不可逆块的比例。在嵌入阶段,采用2种算法进行信息隐藏。最后,提取出秘密数据,恢复图像。与其他传统算法相比,本文算法在嵌入率和含密图像的视觉质量方面都有较好的性能。未来我们希望能采用不同的信息隐藏算法来优化多目标优化的信息隐藏算法。此外,我们还将对该算法从明文域拓展到密文域,从而进一步增强信息隐藏算法的安全性。

猜你喜欢
直方图复杂度秘密
符合差分隐私的流数据统计直方图发布
一种低复杂度的惯性/GNSS矢量深组合方法
用直方图控制画面影调
求图上广探树的时间复杂度
愿望树的秘密(二)
基于空间变换和直方图均衡的彩色图像增强方法
某雷达导51 头中心控制软件圈复杂度分析与改进
我心中的秘密
第十三章 进化的秘密!
基于直方图平移和互补嵌入的可逆水印方案