APP下载

基于超像素分割的数字水印载体图像预处理方法研究与应用

2022-10-13李志健郭凌华

陕西科技大学学报 2022年5期
关键词:数字水印鲁棒性预处理

李志健, 汪 桃, 郭凌华, 穆 萌

(陕西科技大学 轻工科学与工程学院 中国轻工业功能印刷与运输包装重点实验室, 陕西 西安 710021)

0 引言

随着互联网和多媒体技术的快速发展,数字数据的共享和传输越来越容易,这引发了多媒体文件版权和知识产权的问题[1].数字水印技术[2]因其良好的安全性、隐蔽性、不易被篡改和伪造得到了越来越多的关注.将数字水印应用于版权保护、印刷防伪等领域是一种行之有效且成本低廉的方法,该技术可以用特定嵌入算法向宿主图像中嵌入需要隐藏的标识信息,之后通过提取算法提取水印信息来验证原始图像的真实性.对于数字水印来说,任何破坏性攻击对水印算法都有一定影响,通常用水印的不可见性和鲁棒性来评估算法的性能.在保证水印不可见的前提下提高数字水印的鲁棒性能是数字水印研究的关键问题.现有的数字水印技术根据嵌入域的不同,分为空间域水印技术和变换域水印技术[3].空间域水印算法实现简单,计算复杂度低,但容易受到攻击,变换域数字水印算法首先将图像变换到频域,然后嵌入水印,与空间水印算法相比,变换域算法具有更好的不可感知性和对不同攻击的鲁棒性.

目前,主要的变换域有离散余弦变换(DCT)、离散小波变换(DWT)和离散傅立叶变换(DFT)[4].傅楚君等[5]研究了DCT 算法嵌入与提取的效果,首先对载体图像进行了几何分块,后将水印信息嵌入分块后的载体图像,该研究实现了较高的水印透明性,但在受到攻击时水印鲁棒性较差,水印信息容易破坏和丢失.Mukherjee S等[6]提出了一种结合离散余弦变换(DCT)和奇异值分解(SVD)的水印方案,首先将载体图像分为m×n的非重叠子块,从每个子块中选择中间带DCT系数以形成简化变换图像,之后结合SVD将水印嵌入到简化的载体图像中,算法获得了良好的不可见性.Heidari M等[7]提出了一种基于混合DCT-SVD的图像水印算法,将载体图像分为8×8的子块,再将水印图像的奇异值与位于主对角线上的低频 DCT 系数相加,提高了水印的不可感知性.Zhang L等[8]提出了一种鲁棒的彩色图像水印算法,该算法首先将宿主图像颜色空间转换为YUV,并利用SVD对Y分量进行处理,然后将水印嵌入到宿主图像中,该方法对几何攻击具有鲁棒性,但与其他水印相关方案相比,PSNR值较低.黄根岭等[9]提出了最优块的DWT-DCT-SVD水印算法,利用小波系数块信息熵和周围系数块信息熵波动最小两个原则选出最优嵌入水印块进行嵌入.该算法在将水印嵌入到某个特定的小波系数上时,水印鲁棒性和透明性较好,但是对于抵抗旋转和剪切攻击的效果较差.

以上诸多数字水印算法大都直接对整幅图像进行处理,亦或是通过几何分块对图像进行分块后嵌入水印,然而对整幅图像处理未考虑到图像的细节信息,几何分块的方法未考虑到图像本身的颜色以及纹理等特征,分块结果较为粗糙,会导致嵌入水印后图像颜色失真、提取效果不佳等问题.

基于此,本文针对现有的数字水印的缺陷,提出了一种基于载体图像预处理和DCT-SVD变换的数字水印算法.首先根据图像的颜色和纹理特征对图像进行超像素分割,并利用灰度共生矩阵(GLCM)计算每个超像素块的特征信息,然后利用神经网络将超像素块分为三类,之后将水印图像以自适应嵌入强度嵌入到三类不同的载体图像中,在保证水印不可见的前提下,增强算法的鲁棒性能.

1 相关理论

1.1 超像素分割

2003年,Ren X等[10]首次提出了“超像素”的概念,与传统的几何分割不同,超像素分割能够将图像分割为位置相邻、纹理、亮度特征相似的小像素块,且不会破坏整幅图像的边界信息.在诸多超像素分割算法中,简单的线性迭代聚类(Simple Linear Iterative Clustering,SLIC)[11]超像素分割算法在分割速率和分割错误率上要优于其它的超像素分割算法,因此选用简单线性迭代聚类 (SLIC) 算法对载体图像进行分割.其分割原理如式(1)~(3)所示:

(1)

(2)

(3)

式(1)~(3)中:l,a,b分别表示每个像素点在CIELab颜色空间中三通道的颜色值,dc为两个像素点之间颜色距离.x,y表示像素点的位置坐标,ds为两个像素点之间的空间距离.Nc表示聚类过程中允许颜色的最大距离,其范围为[1,40],数值越小聚类的越精细,但同时算法的效率会随之降低,一般情况下的取值为10.Ns表示该类超像素块之间位置的最大距离,D′为像素点之间的距离量度.

1.2 灰度共生矩阵

灰度共生矩阵(Gray Level Co-occurrence Matrix,GLCM)[12]是一种基于统计的纹理特征提取方法,在图像特征提取、图像纹理描述等方面有广泛的应用.灰度共生矩阵(GLCM)能够在方向、邻域、变化范围等方面来反应图像的综合信息.但是由于灰度共生矩阵(GLCM)自身的所含数据的信息量过大,一般不直接作为区分纹理特征的依据.Dori D等[13]基于灰度共生矩阵定义了用于特征分析的14个特征参数,本文选用对比度、同质性、相关性、能量、信息熵5个参数对分割后的图像进行统计图像信息.设G表示灰度共生矩阵,则其特征信息分别可以表示为式(4)~(8):

(4)

(5)

(6)

(7)

(8)

1.3 人工神经网络

人工神经网络(Artificial Neural Network,ANN)是一个包含输入和输出的由大量权重参数构成的运算模型.它的具体参数并没有实际意义,它所表达的信息在于对输入样本的输出反馈上,比如分类结果、目标检测结果等[14].利用神经网络对超像素分割得到的载体图像区域进行分类,可以得到不同分类结果的载体图像.

1.4 离散余弦变换

离散余弦变换(Discrete Cosine Transform,DCT)[15]是图像编码技术之一,它用一组不同频率和幅值的余弦函数之和来近似一副图像.具有操作简单快捷、计算量小、速度快、错误率低、信息集中等特点,由于离散余弦变换(DCT)的优势,基于DCT变换的数字水印算法能够更好地满足不可感知性和鲁棒性的权衡关系.离散余弦变换(DCT) 的基础是傅里叶变换,图像信号需要通过二维数组的变换来实现.

二维离散余弦变换的定义为式(9):

(9)

二维离散余弦反变换的定义为式(10):

(10)

对于一幅图像来说,其中大部分可视化信息都集中在离散余弦变换(DCT)少数的变换系数上,因此可以通过离散余弦变换(DCT)将水印信息添加到宿主图像中而不影响载体图像的质量,且加入水印后的图像与原始图像在视觉效果上几乎一致.

1.5 奇异值分解

奇异值分解(Singular Value Decomposition,SVD)[16]是矩阵分析中一种非常重要的分解方法,应用领域广泛.由于数字图像通常被量化为矩阵来存储,因此奇异值分解(SVD)被广泛的应用于图像处理.矩阵经过奇异值分解(SVD) 得到 1个奇异值矩阵2个正交矩阵,图像的奇异值有很强的稳定性,图像受到轻微的扰动时不会有显著改变.它的基本原理如下,假设矩阵A表示一幅(M×N)的数字图像,其中A∈RM×N(R为实数集合),矩阵A的奇异值分解(SVD)如式(11)所示:

(11)

式(11)中:UA和VA为M×N大小的酉矩阵,S为对应的奇异值矩阵.由于奇异值分解(SVD)具有较强的稳健性,这使数字水印具有抗攻击的性能.因此可以对载体图像与水印图像进行奇异值分解后将水印图像的奇异值矩阵置于载体图像的奇异值矩阵中,从而增强算法的抗攻击性能.

2 水印载体图像预处理

2.1 颜色空间转换

CIELab颜色空间[17]是一种基于人眼生理特征的颜色模型,与设备颜色无关,为了使水印的嵌入不依赖设备的颜色空间,将所有的载体图像预处理均转换至CIELab颜色空间.通过MATLAB软件读取原始载体图像I,若原始图像的颜色空间为CIELab,则保持颜色空间不变,得图像ILab,否则将图像I转换到CIELab颜色空间仍得到图像ILab.图像颜色模式主要涉及到RGB颜色空间与CIELab颜色空间的转换,因RGB颜色空间和CIELab颜色空间没有直接的转换方法,需借助XYZ颜色空间,再转换到CIELab空间,CIELab空间转RGB空间反之,其转换原理如下:

RGB颜色空间与XYZ颜色空间的转换关系如式(12)、(13)所示:

(12)

(13)

XYZ颜色空间和Lab颜色空间的转换关系如式(14)所示:

(14)

式(14)中:

(15)

2.2 图像分割与分类

为了使水印算法具有鲁棒性高、水印容量大的性能,对载体图像进行了分割与分类,通过这种方法来确定不同粗糙度的图像的嵌入强度,以期获得更好的嵌入与提取效果.对读入的载体图像ILab继续进行处理,具体步骤如下:

步骤1将原始载体图像ILab通过SLIC超像素分割的方法分割成超像素块,首先调用超像素分割函数Superpixels(),为使得分割结果符合人眼视觉特性,一般设置分割数目为100-500,本次设置预分割的超像素块数为200.以算法类聚阶段的迭代次数为10,得到标签矩阵L和实际分割的超像素块数N.其原始载体图像和分割后的图像如图1所示.

图1 载体图像

步骤2采用哈希映射[18]对分割后的超像素块进行标记,将提取的像素块对应的像素值保持不变,其余像素块对应的像素值均置为0,实现对每个像素块的提取,再将提取的图像块另保存为一副图片,得到超像素分割出的第1至200幅超像素块图像.以随机的10个超像素块为例,如图2所示.

图2 保存的超像素块

步骤3通过灰度共生矩阵(GLCM)计算每块超像素块的特征信息.先将分割后的200个彩色载体图像转换为灰度图像,调用二维灰度共生矩阵的函数接口,计算灰度共生矩阵派生出来的图像特征,包含对比度、同质性、相关性、能量,再调用计算信息熵函数计算图像信息熵.最后通过文件操作将计算的特征信息保存到指定路径的.xlsx格式的文件夹中.以随机的10个超像素块的特征值展示,如表1所示.

表1 超像素块特征值

步骤4首先构建自组织竞争神经网络,设置分类数目为3.将灰度共生矩阵计算得到的五个特征值作为神经网络的输入,通过神经网络对200个超像素块的图像特征值信息进行分类,再通过映射表将分类的结果映射到超像素块中得到分类后的载体图像.分类的结果如图3所示,第一类图像块纹理比较复杂,第二类为中间类,第三类图像纹理较为平淡且颜色温和.

图3 分类后的载体图像

三类不同纹理的图像对应的自相关函数如图4所示.图像的自相关函数能够反映图像的纹理和粗糙程度,图像纹理越复杂粗糙度越大,函数的曲线下降越快,由图4可见,第一类图像的纹理最粗糙,第二类居于中间,第三类纹理最平稳.通过自相关函数可以验证所构建的自组织神经网络具有良好的分类性能,分类结果也符合人类视觉特性.

图4 三类图像的自相关函数

3 水印嵌入与提取

章节2对数字水印载体图像进行了预处理,在此基础上,结合数字水印算法来验证所提出的载体图像预处理方法是否能够改善水印的透明性和鲁棒性之间的关系.对预处理后的载体图像进行离散余弦变换(DCT)和奇异值分解(SVD),并将待隐藏的二值水印图像分别嵌入到分类后的载体图像的奇异值矩阵中,具体嵌入和提取流程如图5和图6所示.

3.1 水印嵌入

在水印嵌入之前已完成了载体图像预处理,水印嵌入的总流程见图5所示.载体图像预处理完成后,将每类超像素块所对应的图像转换至RGB颜色空间,转换过程与RGB转CIELab相反.分别计算三类图像在RGB颜色空间的颜色矩,包括每类图像R、G、B各个颜色通道的颜色矩,然后选择R、G、B中颜色矩最大的一个颜色通道作为该类图像的水印的嵌入通道.具体的嵌入过程如下:

步骤1对3类图像对应的颜色通道进行离散余弦变换(DCT)和奇异值分解(SVD),得到水印的载体矩阵S1_x,其中,x=1,2,3;

步骤2选取与载体图像大小相同的二值图像作为水印图像,同样对水印图像进行DCT变换和SVD分解得到水印奇异值矩阵Sm;

步骤3为每类不同矩阵S1_x分别以预设嵌入强度kx=0.06,0.04,0.02采用式(16)的方法将Sm嵌入到矩阵S1_x中,得到嵌入后的特征值矩阵S2_x;

S2_x=S1_x+kxSm,x=1,2,3

(16)

步骤4对S2_x进行逆奇异值分解(ISVD),逆离散余弦变换(IDCT),得到每类图像嵌入水印的图像Iw_x,x=1,2,3;将嵌入水印后的三幅子图合并,得到嵌入水印后的图像Iw=Iw_1+Iw_2+Iw_3.

图5 水印嵌入流程图

3.2 水印提取

以水印嵌入过程的逆过程实现对嵌入水印图像提取,其流程如图6所示.具体提取过程为:

步骤1首先将受到攻击后的嵌入水印的图像使用图像预处理阶段的超像素分割所得的标签矩阵L对经过攻击后的嵌入水印图像Iw进行分割,再通过图像预处理时得到的分类矩阵N对嵌入水印后的图像Iw分类,得I1_w、I2_w、I3_w,由于三类图像处理过程相同,将其记为Ix_w,(x=1,2,3)

(17)

步骤4对水印图像奇异值矩阵Sw_x进行逆奇异值分解(ISVD)和逆离散余弦变换(IDCT)得到每类提取的水印图像Wx,x=1,2,3,通过累加Wx得到最终提取的水印图像W:

W=W1+W2+W3

(18)

图6 水印提取流程图

4 实验结果与分析

4.1 实验参数设置

本次模拟实验运行在处理器为Intel(R)Core(TM) i5-7200、2.70 GHz CPU设备上,内存为8 GB,操作系统为Windows10,仿真实验平台为MATLAB 2019b.对载体图像的超像素分割、灰度共生矩阵计算分割后图像的特征值、神经网络对图像分类、水印的嵌入与提取算法的实现均在MATLAB平台上进行.实验测试中所用到的彩色载体图像House.bmp、Fruits.bmp、Tree.bmp均取自图像处理标准数据库,尺寸为256×256像素,水印图像选用带有“MARK”字样的二值图像,尺寸也为256×256像素,具体如图7所示.另外,检测抗打印扫描效果的打印和扫描设备均使用EPSON WF-C20590.

图7 测试图像

4.2 算法性能测试及分析

4.2.1 评价指标

为了验证所提出的算法是否能够达到预期的不可见性和较好的鲁棒性,采用图像客观评价方法中的图像峰值信噪比[19](peak signal-to-noise ratio,PSNR)和归一化系数[20](normalized correlation coefficient,NC)来验证.

峰值信噪比(PSNR)通常用于测试两幅图像之间的失真,可以使用其比率来衡量原始载体图像与嵌入水印之后图像的视觉质量,是否有良好的不可见性,单位为dB,PSNR值越高,嵌入水印后图像的视觉质量就越好,它的定义如式(19)所示:

(19)

式(19)中:m,n为图像大小,(x,y)为彩色载体图像的像素点位置,I(x,y)为原始载体图像在(x,y)位置上的数值,I′(x,y)为嵌入水印后图像在(x,y)位置上的数值,当嵌入水印后的图像与宿主图像的PSNR大于20,则具有较好的不可见性.

归一化相关系数(NC)来衡量原始水印图像与提取出水印图像的相似程度,NC值的计算公式为式(20):

NC=

(20)

NC值越大,图像的相似性越高,提取出的水印图像越清晰.

4.2.2 不可见性分析

根据章节2中所述预处理方法对载体图像进行预处理,并按照预处理后所得三类图像特征,分别设水印的嵌入强度的权重比为3∶2∶1,自适应嵌入及算法运行所得图像的视觉效果如图8所示.

通过峰值信噪比(PSNR)来对比嵌入水印图像与原始载体图像之间的差异说明水印的不可见性.嵌入水印图像和其对应的峰值信噪比(PSNR)如图8.可以看出嵌入水印后的图像在视觉效果上与原始载体图像几乎一致,且在没有任何攻击时嵌入水印后的图像和原始图像之间的峰值信噪比(PSNR)均大于42 dB,可见通过对载体图像进行预处理再进行水印的嵌入,较好地提高了水印的不可见性.

图8 嵌入水印图像

4.2.3 鲁棒性分析

为了验证本文算法的鲁棒性,通过对嵌入水印后的图像进行图像攻击,然后利用章节3.2中的提取算法从中提取水印图像,计算原始水印图像与提取出的水印图像之间的归一化系数(NC)值来测试该算法的鲁棒性.从图9(a)可以看出,三幅嵌入了水印后的图像在未受到攻击时的NC值均大于0.999 9,接近于1,说明在没有攻击的情况下,水印算法的鲁棒性良好.

此外,通过对图8(a2)、(b2)、(c2)进行随机噪声、打印扫描、椒盐噪声、高斯噪声、均值滤波、图像剪切、图像旋转等图像攻击,来测试水印算法的抵抗攻击能力,实验结果如图9所示,攻击后所提取出水印的视觉效果如表2~4所示.

图9(a)中还显示了随机噪声和打印扫描攻击对水印算法鲁棒性的影响,可以看出,在随机噪声攻击下,提取出水印图像的NC值大于0.96,打印扫描后提取出水印图像的NC值大于0.86,符合水印模型的鲁棒性要求.在受到这两种攻击时,能够从中提取出清晰、完整的水印,如表2~4中B、C两列所示.

图9(b)、(c)显示了椒盐噪声、高斯噪声对算法鲁棒性能的影响.图中结果表明,随着噪声强度的增加,提取出图像的NC值会有所下降,但在0.15高密度噪声的攻击下,提取出水印图像的NC值依然在0.90以上.表2~4中D、E两列可以观察到在0.15密度噪声攻击下,提取出的水印图像清晰可辨,符合人眼视觉特性,证明所提算法对椒盐噪声、高斯噪声都有一定的抵抗能力.

图9(d)展示了在窗口大小为3×3、5×5、7×7均值滤波攻击下算法的鲁棒性.从实验结果可以看出,均值滤波对算法鲁棒性的影响较小,提取出水印图像的NC值均大于0.93,表2~4中F列展示了5×5窗口大小滤波攻击下的水印提取效果,可以看出提取出的水印图像字样清晰可见,说明滤波攻击对算法鲁棒性的影响较小.

图9(e)展示了图像剪切攻击对算法鲁棒性能的影响,在不同剪切比例(1/16、1/8、1/4)攻击下,提取出图像的NC值达到了0.88以上.由表2~4中G列可以看出,在经过1/8的剪切后提取出的水印图像依旧清晰可见,说明该算法对剪切攻击有良好的抵抗能力.

图9(f)展示了在不同的旋转角度(1°、5°、10°、15°)的攻击下,所提取出图像的NC值均在0.90以上,从表2~4中H列可以看出,在嵌入水印后的图像顺时针旋转10°时提取出的水印仍然有较清晰的轮廓,说明所提出的算法具有一定的抵抗攻击性能.这是由于对载体图像进行了分割和分类之后再将水印自适应的嵌入了3类图像中,而不是单一均匀的嵌入载体图像中,故算法具有较强的抗旋转攻击的能力.

图9 提取水印图像的归一化相关系数(NC)值

表2 House图像水印提取效果图与NC值

表3 Fruits图像水印提取效果图与NC值

表4 Tree图像水印提取效果图与NC值

4.2.4 对比实验

为了验证本文所提的载体图像预处理和DCT-SVD变换的数字水印算法鲁棒性是否有明显的提升,将本文所提出的算法和单一的对载体图像进行几何分块后利用DCT-SVD变换嵌入水印的算法性能进行了对比.载体图像选用House.bmp,水印选用二值图像选用Mark.bmp,大小均为256×256,对载体图像进行几何分割后,在同一变换域下对水印进行嵌入,并对嵌入水印后的图像同样进行不同类型的图像攻击,再从中提取水印图像、计算归一化相关系数值(NC).两种不同的算法所提取出水印图像的NC值对比如图10所示.

图10显示了本文所提出超像素分割的预处理算法与简单几何分割对水印算法鲁棒性能的影响,由图可以看出所提算法能够明显的提升水印图像的归一化系数NC值,重点表现在1/8剪切攻击和旋转10°攻击时,在受到1/8剪切攻击时,本文所提算法的NC值为0.927 9,几何分割预处理算法的NC值为0.877 6,同比提高了0.050 3.

图10 两种不同算法在受到攻击后提取出水印图像的归一化相关系数(NC)值

在受到10°的图像旋转攻击时,所提算法的NC值达到了0.926 0,而几何分割预处理算法的NC值为0.853 3,相比提高了0.072 7,此外算法的抗打印扫描性能也提升了0.056 0.可见本文所提出算法在鲁棒性能方面优于单一几何分块算法,由于单一几何分块并未考虑到图像的颜色和纹理特征,嵌入的水印在受到图像攻击时会遭到破坏,而超像素分割后再分类嵌入的水印算法能够在一定程度上减少图像攻击所带来的的水印图像损失,使算法具有了更强的鲁棒性能.

5 结论

为解决数字水印鲁棒性与不可见性之间的矛盾问题,本文提出了一种基于载体图像预处理和DCT-SVD变换的数字水印算法.首先对载体图像进行(SLIC)超像素分割,然后利用灰度共生矩阵得到的特征值对分割后的图像进行神经网络分类,完成了水印载体图像的预处理.并通过离散余弦变换-奇异值分解(DCT-SVD)将水印图像嵌入到分类后的载体图像中,之后利用水印嵌入的逆过程完成水印的提取.经过对水印算法测试,所提出的算法具有较好的不可见和较强的鲁棒性,能够抵抗嵌入水印后的图像在传输过程中受到的各种攻击.同时通过该算法嵌入的水印具有抗打印扫描的性能,为数字水印在印刷品中的应用提供了一种有效的方法.

猜你喜欢

数字水印鲁棒性预处理
KR预处理工艺参数对脱硫剂分散行为的影响
求解奇异线性系统的右预处理MINRES 方法
粉末预处理对钨坩埚应用性能的影响
武汉轨道交通重点车站识别及网络鲁棒性研究
污泥预处理及其在硅酸盐制品中的运用
基于DCT算法的视频数字水印的研究与实现
数字水印技术及其在电力系统中的应用
一种基于三维小波变换的鲁棒视频水印方案
电子节气门非线性控制策略
基于分块DWT和SVD的鲁棒性数字水印算法