基于BEMD 与DCT 的彩色图像多重水印鲁棒算法
2023-02-09胡坤李聪胡建平王小超杜玲王红飞
胡坤,李聪,胡建平,王小超,杜玲,王红飞
(1. 中国科学院大学,北京 100049; 2. 中国科学院 太空应用重点实验室,北京 100094; 3. 中国科学院 空间应用工程与技术中心,北京 100094; 4. 北京师范大学 系统科学学院,北京 100875; 5. 东北电力大学 理学院,吉林 132012; 6. 天津工业大学数学科学学院,天津 300387; 7. 天津工业大学 计算机科学与技术学院,天津 300387)
近年来,随着计算机网络技术的快速发展,数字媒体产品,如图像、视频、音频和文本等的访问、分享和传播变得越来越迅捷。然而,对数字媒体的非法篡改、复制、盗用和恶意传播的事件也层出不穷。如何保护数字媒体产品的版权成为人们关注的焦点。数字水印作为一种通用技术,在算法上具有良好的不可感知性和鲁棒性,被广泛应用于多媒体版权保护、篡改定位和信息完整性认证等领域[1-3]。
在彩色图像水印方面,现有彩色图像水印算法通常将宿主图像变换到相应的频域空间,将水印信息对应嵌入在图像频域中,然后通过相应的逆变换得到嵌入水印后的彩色图像。文献[4]提出了基于离散小波变换(discrete wavelet transform,DWT)和奇异值分解的动态彩色图像水印算法,通过对随机生成序列块的奇异值进行修改,达到嵌入水印的目的,该算法仅在YCbCr 色彩空间的Y 分量中嵌入了一个水印图像,导致算法对椒盐噪声和高斯噪声的攻击较为敏感。文献[5]对彩色图像进行离散余弦变换(discrete cosine transform,DCT)和DWT,将水印图像降维后均匀分块嵌入宿主图像的DWT 子带中,该算法分块的水印信息被置于人为构造的零矩阵左上角进行嵌入,没有解决宿主图像和水印图像尺寸匹配的问题。文献[6]提出了基于DCT的水印算法,2 个二值水印图像分别嵌入在彩色图像的G 和B 色彩通道,通过水印位像素的大小交换宿主图像DCT 后的中频系数实现水印信息的嵌入,该算法在受到某些图像攻击后,仍可能会显著修改中频系数,破坏其原有大小关系,水印无法被完全提取,导致算法的容错性较低,算法的鲁棒性仍有待提升。
文献[7]提出一种基于三元编码的彩色水印算法,该算法将三元编码应用于彩色图像水印算法中。由于QR 分解对宿主图像有分块尺寸的要求,导致水印图像必须满足规定尺寸才能嵌入,限制了水印算法的应用范围。文献[8]提出一种基于近似Schur 分解的彩色图像水印算法,该算法利用了Schur分解得到的最大特征矩阵构造空间域水印算法。但该算法只使用最大特征矩阵左上角的单个位置记录水印信息,使得算法抵御高强度椒盐噪声攻击和大规模剪切攻击的能力较差。文献[9]提出一种基于Schur 分解和仿射变换的彩色图像盲水印算法,该算法选择Schur 分解之后的低复杂度部分,并在宿主图像的不同色彩通道上的矩阵进行操作,仿射变换用于对水印图像进行加密以进一步提高算法的安全性,该算法具有较好的隐蔽性,与文献[8]类似,该算法的鲁棒性有待提高。文献[10]提出了一种改进Schur 分解的彩色图像盲水印算法,在文献[8-9]的算法基础上,嵌入位置增加了Schur 分解之后的单位矩阵,算法使用结构化相关系数和归一化相关系数的曲线交点确定嵌入系数,该算法具有较好的不可感知性,但其对高斯噪声、缩放等攻击的鲁棒性较低。
针对上述彩色图像水印算法中宿主图像与水印图像尺寸匹配问题和受到攻击后提取水印的容错性较低问题,为提高水印算法在抵御各种攻击的鲁棒性,本文提出了一种结合二维经验模态分解(bidimensional empirical mode decomposition, BEMD)和DCT 的彩色图像多重水印鲁棒算法。所提算法首先对彩色宿主图像的3 个通道分别进行BEMD,选择含有高频信息的第1 个内蕴模态函数(first intrinsic mode functions, IMF1)作为水印信息的嵌入层。根据人类视觉系统的纹理掩蔽特性,将水印嵌入到图像纹理丰富区域不易被察觉,可以增强水印算法的不可见性。其次,通过Arnold 变换置乱3 个水印图像以增强水印图像的安全性。最后,对3 个通道的IMF1分 割成像素为 8×8的不重叠子块并进行DCT,对DCT 后的子块进行Zigzag 扫描,将水印信息分别嵌入在Zigzag 扫描序列的中频系数中。同时,在每个通道中重复嵌入相同的水印。水印的提取为上述嵌入过程的逆过程。在水印提取时,对重复嵌入的水印通过投票确定最终水印,可以有效提升算法的容错性和鲁棒性。
Huang 等[11]于1998 年提出经验模态算法 (empirical mode decomposition,EMD),该算法被广泛应用于非平稳、非线性信号序列的分析。经验模态算法与传统的时频算法原理相比,可以自适应地将信号筛分为频率不同的各个分量,最终得到多个内蕴模态函数(intrinsic mode functions, IMF)和一个余量。给定一维信号f,经过EMD 分解得到[12]:式中:r为经验模态分解的余量;I MFj为分解得到的第j个内蕴模态函数,从第1 个 IMF 到 最后1 个IMF代表了图像高频信息到低频信息的渐变过程。
EMD 能够在本质上摆脱传统时频算法对平稳数据处理的依赖性,因此,EMD 算法从提出以来被广泛应用于不同领域,如图像融合[13]、矿物质识别[14]、数字图像处理[15-16]等。2003 年,Nunes 等[17]将一维EMD 算法推广到二维图像领域,提出了BEMD 算法,该算法通过计算图像的极值点,并分别对极大值点和极小值点进行包络拟合确定包络均值曲面;然后,将输入的图像减去包络均值曲面,根据筛分约束条件判断其是否满足 IMF的条件; 最后,计算余量,更多算法细节见文献[17]。
DCT 将空域信号转到频域,是图像编码的核心技术之一[18-19]。经过DCT 后,图像由一个直流(DC)系数和多个交流(AC)系数组成,DC 系数是图像像素的平均值,AC 系数虽包含图像的重要信息,但少于DC 分量表示的信息。在量化编码后,对其进行逆变换复原图像的原始信息。对于灰度图像f(x,y),0 ≤x,y≤N-1,N为图像的尺寸,DCT 的计算如下[20]:
1 相关工作
1.1 二维经验模态分解
1.2 离散余弦变换
本文选择将图像的RGB 三通道的 IMF1均匀分割为 8×8像 素的不重叠子块,对每一个 8×8像素的子块分别进行DCT,以便进行多重水印的嵌入。
2 本文算法
本文结合BEMD 和DCT 提出一种鲁棒的彩色图像多重水印算法。 在本文所提算法中以像素大小为 512×512×3的Lena 彩色图像作为宿主图像,以像素大小为3 2×32的带有“中国加油”、“CADCG”和“众志成城”字样的3 张二值图像为水印图像,展示提出的彩色图像水印嵌入和提取算法。
2.1 水印嵌入算法
为提高嵌入水印图像的安全性,本文利用Arnold变换[21]将水印图像进行置乱操作并保存其置乱次数E作为秘钥 Key1。经过Arnold 变换后图像的像素位置会重新排列,使得图像杂乱无章,打乱原始图像相邻像素间的关联性,从而实现对图像的加密效果。Arnold 变换算法简单,并具有周期性,当迭代到某一步时又将得到原始图像。设固定周期为T,置乱次数为E,复原水印图像时继续置换T-E次可以得到原始图像[22]。
为了多重水印嵌入的顺利进行,需要提前生成一对M伪随机序列,并保证2 个序列间的相关性很低。M伪随机序列是基于码分技术(扩频技术)和多址技术通信系统中采用的最基本的 PN序列,他是由带线性反馈的移存器产生的周期最长的序列[23],在实际工程中,常用二元 {0,1}序列生成伪噪声码。对于一个k级线性反馈移存器可能产生的最长周期为 2k-1, 周期达到 2k-1的序列称为最长线性移位寄存器序列。通过大量实验,本文选取序列 {2,-1},可以有效提高算法对某些攻击的鲁棒性。生成序列的同时记录序列的生成秘钥为 Key2,本文实验中的秘钥设置为 K ey2= [0 0 1 1]。
对彩色宿主图像,利用BEMD 得到不同尺度信息的 IMF和 余量r,如图1 所示。前几个 IMF包含了原始图像的高频信息,体现图像的纹理和细节特征,而后几个 IMF及余量包含原始图像的低频信息,体现图像的整体几何特征[24-25]。Zigzag 扫描是一种矩阵扫描的方法[26]。Zigzag 扫描从图像矩阵(0,0)位置开始,前进的方向有4 个,分别是右、下、左下、右上。若Zigzag 扫描向右、下2 个方向,只前进一步会改变方向,改变后的方向因情况而异;而左下和右上2 个方向则会一直延伸,直至前方无法继续直行时再变向为向右或向下方向,如图2 所示。
图1 彩色图像BEMDFig. 1 Example of colored image BEMD
图2 Zigzag 扫描Fig. 2 Curve of Zigzag scan
在Zigzag 扫描后的DCT 图像矩阵中,左上角的系数为图像的低频子带,聚集了图像的大部分信号能量,一般用于图像压缩; 中间部分的系数为中频子带,其系数对修改的不可感知度较高; 而右下角为高频子带,修改高频子带系数会影响图像的感知度,降低图像质量。
因此,为了平衡嵌入水印后宿主图像的不可感知性和算法的鲁棒性,本文所提算法考虑将包含图像高频信息的彩色宿主图像RGB 通道的 I MF1作为水印信息的嵌入层,将DCT 后使用Zigzag 扫描得到一维序列的中频子带的15 个系数作为水印的嵌入位置,分别嵌入不同的水印,可以减少水印图像对宿主图像的破坏,同时兼顾了水印信息的不可感知性。
在确定多重水印嵌入的位置后,需要将Arnold置乱后的水印信息进行嵌入。为此,本文分别将3 个通道的 IMF1分 割成不重叠的 8×8像素子块,对每一个子块进行DCT 后,使用Zigzag 扫描提取中频子带,将水印信号依次嵌入在中频子带的系数中,如图2 蓝色矩形所示。在嵌入的过程中,由于宿主图像像素尺寸为 512×512×3,水印图像像素尺寸为 32×32, 使得分割后的 8×8像素子块数量远大于水印信号的尺寸。
因此,彩色图像每一个通道的 I MF1中可以规则的按照几何顺序(从上到下、从左到右)依次嵌入4 次水印图像,使得水印信息均匀分布于整个彩色图像中。因此,重复嵌入在一定程度上可以解决宿主图像与水印图像在嵌入时尺寸匹配上的局限性,增强了提取水印时的容错能力。
至此,将每个通道嵌入水印后的 I MF1连同其他IMFj和余量信息重建后得到嵌入水印的彩色宿主图像,完成整个水印图像的嵌入。图3 展示了本文所提算法的流程,具体步骤如下:
步骤 6 使用序列取值 {a,b}生成一条15 位伪随机序列 PN_Seq_1,并通过取反运算生成另一条M序列 PN_Seq_0,保证产生的一对序列相关性很低。保存序列的生成密钥为 Key2(本文使用的序列{a,b}为 { 2,-1}, 秘钥K ey2为[0 0 1 1])。
步骤 7 分通道依次嵌入水印信息, 每个通道规则地按照从上到下、从左到右的顺序重复嵌入4 次水印,水印嵌入规则如下。如果当前水印数值为1,使用式(1)改变中频子带的15 个系数:
2.2 水印提取算法
水印提取算法为水印嵌入算法的逆过程,无需依靠原始宿主图像的信息。为提升算法的鲁棒性,利用重复嵌入的水印,建立投票机制提取出最终水印, 提取过程中需要用到二值水印置乱过程中的秘钥。 Key1和 伪随机序列生成的秘钥 Key2。水印提取算法过程如下:
步骤 1 读取嵌入水印后的彩色图像I′。
由图4 可以得到,对于每一个通道水印图像的数值进行判断后,若当该位置数值 ≥2,则该位置数值取1;若当该位置数值<2,则该位置数值取0。投票机制有效降低了攻击后所有水印均遭受严重破坏的可能性,提升了算法的容错性。
图4 水印提取投票机制Fig. 4 Mechanism of watermark image extraction voting mechanism
3 实验结果与分析
本节首先定义评价图像质量的指标并介绍算法参数信息;然后,对嵌入水印后的宿主图像进行不同类型、不同参数和不同数据集上的攻击实验,验证本文所提算法抗攻击的鲁棒性;最后,将通过对比实验说明本文所提算法的有效性和优势。
3.1 评价指标
3.2 实验参数
本文算法中主要参数包括Arnold 置乱次数(秘钥 Key1) 伪随机序列的生成秘钥 Key2、水印嵌入强度k、3 个色彩通道分别重复嵌入的水印次数c。在本文实验中Arnold 置乱次数为5;每个通道对应的二值水印按顺序重复嵌入的次数为4,共嵌入12 次水印信息。
对于水印嵌入强度k,随着水印算法嵌入强度的增大,提取出的水印越接近原始水印, NC值越高,可以显著的提升算法对某些攻击的鲁棒性。但高强度的水印嵌入会使宿主图像遭到较大的破坏,降低了水印图像的不可感知性。本文在大量实验的基础上,综合考虑水印的不可感知性和抗各类攻击的鲁棒性,选取k=6的嵌入强度。
3.3 实验结果
本文的宿主图像包含像素大小为512×512×3的Lena、Baboon、Airplane、Car、Peppers 和Sailboat彩色图像,如图5(a)所示。 水印图像(见图5(b))包含像素大小为 32×32带有“中国加油”、“CADCG”和“众志成城” 字样的二值图像,如图5(c)所示。
图5 不可感知性实验结果Fig. 5 Experimental results of invisibility
3.3.1 不可感知性实验之间的差值为PN 序列本身,而且只有中频系数的部分会产生差值,其他系数都是0。同时,提取到的水印图像与原始水印图像的 NC值均为1,可以完整提取水印信息,提取出的水印图像字样清晰可见。
3.3.2 鲁棒性实验
为了验证本文所提算法的鲁棒性,本节将对嵌入水印后的图像在提取水印前进行攻击,包括大比例剪切、椒盐噪声、高斯噪声、滤波器、图像锐化、JPEG 压缩、散斑噪声、图像缩放等攻击。
图6 为宿主图像受到剪切攻击下的水印提取结果。对Lena 图像左上角和4 个边角分别进行了25%的剪切,由结果可以看到3 个水印图像均可以被完整提取, NC值均为1。实验结果表明本文所提算法对大比例、复杂形状的剪切攻击具有较强的抗攻击能力。
图6 大比例剪切攻击实验结果Fig. 6 Experimental results of large scale cropping attack
图7 椒盐噪声攻击实验结果Fig. 7 Experimental results of salt and pepper noise attack
图8 高斯噪声攻击实验结果Fig. 8 Experimental results of Gaussian noise attack
图9 为彩色图像Baboon 经过灰度级数为64 和128 的直方图均衡化处理后的水印提取结果。由实验结果可以看出Baboon 的对比度和图像亮度明显增加,但在直方图均衡化后提取出的水印NC值均高达0.999。本文所提算法未出现随着灰度级数的增加,水印提取的准确度显著下降的情况。因此,本文所提算法对直方图均衡化具有较强的抗攻击能力,提取的水印图像清晰可见,具有较强的鲁棒性。
图9 直方图均衡化攻击实验结果Fig. 9 Experimental results of histogram equalization attack
图10 为图像Baboon 在受到尺寸为[2,2]的高斯低通滤波、中值滤波、维纳滤波、均值滤波攻击后的水印提取结果。在经过尺寸为[2,2]的维纳滤波后,提取水印的 NC值分别高达0.997、0.996和0.995,水印信息清晰可见,提取出的水印没有明显的噪点。经过高斯低通滤波、中值滤波、平滑滤波攻击后,部分水印图像出现噪点,提取水印 NC值均达到0.968 以上,仍有效地提取水印信息,字体轮廓清晰,受噪声影响的程度较小。
图10 滤波器攻击实验结果Fig. 10 Experimental results of filter attack
图11 为彩色图像辣椒在受到图像锐化攻击后的水印信息提取结果。实验结果表明,在2 种半径的锐化攻击后,均能完整的提取出清晰可见的3 个水印图像,没有出现噪点, NC值均为1,说明本文算法对锐化攻击不敏感,鲁棒性较好。
图11 图像锐化攻击实验结果Fig. 11 Experimental results of sharpening attack
图12 为图像辣椒在受到图像质量因子Q=40和Q=60的JPEG 压缩后提取水印的结果。结果表明在Q=40的JPEG 压缩后,提取出水印的NC值分别为0.994、0.996 和0.991,水印轮廓完整清晰可辩,不存在明显噪点。经过Q=60的JPEG压缩后,水印信息能被完全提取, NC值均为1。因此,本文所提算法对JPEG 压缩攻击较为鲁棒。
图12 JPEG 压缩攻击实验结果Fig. 12 Experimental results of JPEG compression attack
图13 为图像Airplane 在受到均值为0,方差分别为0.001 和0.005 的散斑噪声攻击后的水印提取结果。由实验结果得到,在不同方差的散斑噪声攻击下,均可以从宿主图像中提取出完整清晰的水印图像,水印字样没有缺陷,2 种强度下提取出水印的NC值均为1。实验结果说明本文所提算法对散斑噪声的攻击不敏感,算法鲁棒性较好。
图13 散斑噪声攻击实验结果Fig. 13 Experimental results of speckle noise attack
图14 为彩色图像Airplane 在受到缩放倍数为4 和8 的缩放攻击后的提取结果。实验结果表明,在受到2 种倍数的攻击后,本文所提算法均能从宿主图像中提取出完整的3 个水印信息,水印字样清晰可辨,与原始水印图像的 NC值均为1。因此,本文所提算法对图像缩放攻击也具有较强的鲁棒性。
图14 图像缩放攻击实验结果Fig. 14 Experimental results of image scaling attack
图15 为选取USC-SIPI 图像数据库Aerials中的2 幅彩色遥感图像在分别受到剪切比例为25%的剪切攻击和方差为0.005 的高斯噪声攻击后的水印提取结果。实验结果表明,遥感图像在经过2 种类型的攻击后,均能提取出完整的水印信息, NC值均为1。因此,本文所提算法对遥感图像也具有较强的鲁棒性。
图15 Aerials 数据库中遥感图像攻击实验结果Fig. 15 Experimental results of remote sensing image attack in aerials database
3.3.3 与彩色图像水印算法实验对比
本文选择文献[6-10,28]作为彩色图像水印的对比算法,以此来进一步说明本文所提算法的鲁棒性,表1 和表2 中水印1 为“中国加油”,水印2 为“CADCG”,水印3 为“众志成城” 的二值图像。表1 分别给出了文献[6]在彩色Lena 图像的G 和B 通道内分别嵌入水印、文献[28]在RGB 三通道中嵌入水印及本文所提算法将水印图像分别嵌入在Lena、Baboon、Airplane 的RGB 三通道进行DCT后经过Zigzag 扫描的中频序列中,经过各种攻击提取出的水印 NC值。
嵌入水印后的宿主图像分别受到25%比例的剪切攻击,尺寸为[2,2]的高斯低通滤波攻击,尺寸为[3,3]的中值滤波攻击,半径为2 像素的图像锐化攻击,比率为3%的椒盐噪声攻击,均值为0、方差为0.005 的高斯噪声攻击,图像质量因子Q=60的JPEG 压缩攻击,缩放倍数为4 的图像缩放攻击。
由表1 所示,文献[6]在3%的椒盐噪声攻击和均值为0、方差为0.005 的高斯噪声攻击后,提取水印图像 NC 值 分别为0.897、0.951 和0.912、0.926,NC值较低。本文所提算法在宿主图像同为Lena 的情况下均可实现3 个水印图像的完全提取, NC值均为1。在其他几种攻击下,本文所提算法相比于文献[6]也展现出了更好的鲁棒性。文献[28]在尺寸为[3,3]的中值滤波攻击后,无法提取出有效水印信息, NC值仅有0.410;在比例为25%的剪切攻击,尺寸为[2,2]的高斯低通滤波攻击后,提取水印的NC值较低,没有达到0.9。而本文所提算法在上述所有攻击后均表现了更好的鲁棒性。
表1 本文算法与彩色图像水印算法[6 , 28]在不同攻击下的NC 值对比Table 1 Comparison with color image watermarking algorithm[6 , 28] under different attacks NC values
表2 给出了本文所提算法与文献[7-10]在不同宿主图像(Lena 和Airplane)下,进行不同类型攻击下的实验对比结果。由表2 可知,本文所提算法在抵御90%的JPEG 压缩、2%的椒盐噪声、10%的高斯噪声、60%的高斯噪声、缩放0.25~4、剪切比例为25%和50%的攻击上相较于文献[7-10]均具有绝对优势,提取水印图像的 NC数值均为1。在高强度10%的椒盐噪声攻击下,本文所提算法依然能保持很高的 NC数值,最低为0.993 8,比文献[7]取得的0.991 7 的数值还高。
表2 本文算法与彩色图像水印算法[7-10]在不同宿主图像下进行不同攻击的NC 值对比Table 2 Comparison with color image watermarking algorithms[7-10] for different attacks NC values under different host images
本文所提算法使用了重复嵌入的策略,既解决了宿主图像和水印图像尺寸匹配的问题,又提高算法抵抗大规模剪切的能力,即使在剪切50%的情况下,本文所提算法依然能够完整提取水印图像,在对比的4 篇文献中,文献[7]的实验效果较好,但NC值也只有0.833 5。这说明本文所提算法在大规模剪切攻击上较文献[7-10]具有明显优势。
3.3.4 USC-SIPI 数据集鲁棒性实验
为了说明本文所提算法在更复杂图像和更大数据集上的鲁棒性,选取了USC-SIPI 图像数据库Aerials 中的37 张彩色图像进行实验。攻击类型选择具有代表性的3 种:剪切25%、椒盐噪声3%和高斯噪声 σ2=0.005。如图16 所示,37 张彩色图像在受到剪切攻击左上角25%的情况下,依然能够很好地提取出水印图像, NC数值均在0.98 以上。37 张图像中有35 张图像的提取水印 NC数值为1,说明本文所提算法在抵抗剪切攻击上具有非常好的鲁棒性。
图16 左上角25%剪切攻击实验结果Fig. 16 Experimental results of 25% shear attack in the upper left corner
由图17 和图18 可知,对于强度为5%的高斯噪声攻击和强度为3%的椒盐噪声攻击,本文所提算法展现出非常好的鲁棒性。37 张彩色图像在高斯噪声攻击下提取出三重水印的NC 值均在0.98以上,在椒盐攻击下提取水印的NC 数值均在0.994以上,并且大部分NC 值为1。通过在大规模数据集上的实验说明本文提出的基于BEMD 和DCT 盲水印算法能够完整提取水印图像,具有较高的鲁棒性。
图17 高斯噪声攻击实验结果Fig. 17 Experimental results of Gaussian noise attack
图18 3%的椒盐噪声攻击实验结果Fig. 18 Results of 3% salt and pepper noise attack
4 结 论
1) 文所提算法使用重复嵌入策略提高了水印算法的容错性,即使在提取单个水印错误的情况下,采用投票策略依然能够提取与原始图像相近的水印图像,增加了算法抵御各种攻击的鲁棒性。
2) 文所提算法使用的水印图像在不超过最大嵌入容量的前提下可以任意尺寸,与现有水印算法要求宿主图像与水印图像之间必须满足某种匹配的要求相比,大大提升了算法的适用性,较好的解决了宿主图像与水印图像之间尺寸匹配问题。
3) 文所提算法可以有效抵抗大尺度剪切、高斯噪声、椒盐噪声、缩放攻击、图像锐化、JPEG 压缩等攻击。与大量现有彩色图像水印算法相比,本文所提算法具备良好的不可感知性,能够较好地抵御大部分常见攻击,具有较高的算法鲁棒性。