基于DCT变换的食品图像多重水印嵌入算法设计

2021-06-28 14:21陈杰张学东
食品工业 2021年6期
关键词:子图频域纹理

陈杰,张学东

塔里木大学信息工程学院(阿拉尔 843300)

目前数字水印技术在食品行业得到广泛应用,通过一定的算法在食品图像中嵌入被称为水印版权标识,证明食品图像版权归属的一种技术[1],但不影响食品原本价值和使用,且不意被人察觉。水印信息中可包含食品出厂序列号、公司标识及其他需注意事项,并携带生产许可信息和认证信息,主要目的是鉴别出劣质和虚假产品,为保障食品安全提供了一个有效的解决方案。一方面,在当下计算机网络技术不断发展的背景下,因数字产品自身易篡改、易复制的特点,导致图像水印遭受不同形式的攻击,与嵌入时大不相同;另一方面,由于嵌入路径不同,嵌入产品中的水印信息可能会遭受破坏,很难防御,导致信息存在一定偏差。因此,研究水印嵌入算法是一项富有挑战性的工作。

袁志华等[2]为了进一步提升基于支持向量机水印算法的鲁棒性,提出基于支持向量机的NSCT域自适应图像水印算法。根据图像自身特征生成自适应水印序列,利用模糊聚类,支持向量机对NSCT低频系数分类,选择适合嵌入水印的低频系数;建立NSCT邻域系数关系模型嵌入水印,方法具有良好的不可感知性和安全性,嵌入自适应水印序列达到全盲水印检测;最后试验结果表明该算法拥有较强的鲁棒性。黄樱等[3]利用图像纹理粗糙区域方便隐藏水印的优势,提出基于图像纹理的自适应水印算法。设计能够真实反映图像纹理丰富程度的纹理度量方法,引入全局纹理值和局部纹理值的概念,对图像纹理分布情况进行综合分析;利用滑动窗口和窗口内区域的局部纹理值,精确获得图像纹理粗糙区域,将水印嵌入在纹理粗糙区域中,通过多元回归分析,得到目标图像内所有纹理信息相关函数,同时自适应调节添加水印函数,完成无痕水印添加。

但上述方法只进行单一水印嵌入,一旦受噪声影响严重,容易导致水印信息丢失或无法识别。为此设计基于DCT变换的食品图像多重水印嵌入算法,将数字图像看作为二维阵列,进行离散余弦变换,同时映射水印信息预处理提升鲁棒性,为了减少分块效应,提升处理后图像通透感,对子图像水平与垂直像素亮度值加减,约束图像降质,并通过频域交流系数确定水印加载的强度,再施加DCT反变换时完成多重嵌入。最后在不同干扰试验下验证算法优越性。

1 DCT变换下食品图像多重水印嵌入算法

水印嵌入算法指将后续需检测、包含一定信息的二值图像嵌入到灰度图像内,而多重水印嵌入就是将相同或不相同水印嵌入至同一图像不同纹理区域中,以加强水印抗干扰能力[4]。

1.1 DCT变换

DCT是数字图像处理以及信号处理常用的变换,它是一种正交变换,去相关的性能接近于K-L变换[5]。给定数字图像f(m,n)后,可以将它看成一个二维阵列,它的大小为M×N,对它进行DCT变换,如下

其中:

DCT反变化,如下

1.2 水印图像预处理

通过预处理未嵌入初始图像的水印信息,提升水印鲁棒性与水印信息安全性,具体的预处理流程描述如下:

1) 假设W(i,j)表示水印图像,K表示密钥,取值为10,由此可构建出伪随机序列V,该序列服从标准正态分布且满足V∈(1,Mw×Nw),降幂排序伪随机序列V,得到V′。

2) 按行排列水印图像W(i,j),得到一维序列WW1,该序列WW1长度等同于伪随机序列V长度,经计算解得0、1在一维水印序列WW1中的存在数量,分别用N1、N2表示。

3) 设定排列后的伪随机序列V分界线为N1,也就是说水印序列WW1的扫描起始处为1。当取得WW1(i)=0的扫描结果时,序列WW1(i)将被赋予分界线左侧数值,采用表达式描述,如下式所示:

若解得WW1(i)=1,则序列WW1将被赋予分界线右侧数值,表达式,如下式所示:

待总体水印序列WW1扫描完全,即可取得经过映射的水印信号WW1′。

4) 按行排序经过映射的,得到Mw×Nw,该矩阵即为预处理后的水印图像W′。

1.3 多重数字盲水印嵌入与检测

根据DCT变换属性特征,发现直流分量生成分块效应的概率极高,削弱高频分量鲁棒性,降低低频分量透明性。基于人体视觉感知,设定科学、适宜的频率系数,可有效提升水印嵌入效果。

1.3.1 数字盲水印嵌入流程

数字盲水印嵌入的操作步骤设计,如下:

1) 二维DCT频域独立分块处理初始图像,分块规格为n×n。假设初始图像的n阶频域子图是Wj=fj(x,y),可得到初始图像与频域子图的关系表达式:

经过二维DCT变换DCT频域子图Wj,利用计算公式求取交(直)流系数[6],如下:

式中:j=0, 1, …,n2-1,0≤x≤n,0≤y≤n。

2) 为确保子图Wj平均亮度,约束图像降质得到维持,在DCT频域r个子图Wj=fj(x,y)的行像素亮度值上加1,在列像素亮度值上减1,获取二值映像序列{τj},该序列与Wj=fj(x,y)存在关联性。假设子图Wj的灰度均值为Tj,修正因子为,且试验系数α的取值范围是0.6≤α≤0.7,若j满足j=0, 1, …,n2-1,则子图Wj的JND门限值计算公式如下:

3) 当j=0, 1, …,n2-1时,选取DCT频域中频分量,重新排序子块Wj=fj(x,y)的交流系数Cj(u,v)=DCT{Wj|fj(x,y), 0≤x,y≤n}。如果g组含有所有交流系数Cj(u,v),则各组中的DCT交流系数数量为h个,假定为第k组第i个交流系数,根据式(8)取值该交流系数的门限值,得到v))],其中,0≤k≤g-1,0≤j≤n2-1,0≤i≤h-1基于式(8)与给出的子图Wj,其门限值ri,k为固定值。

4) 采用相同方法处理大小是m×m的水印图像W′(n>m),解得g1组DCT频域交流系数,各组交流系数个数为h1,假设表示第k组第i1个DCT频域交流系数,其中,0≤j1≤m2-1,k1<g1<g,h1<h,已知初始图像W的DCT频域子图Wj中,第k组交流系数的门限值是ri,k(i=0, 1, 2, …,h-1),将门限值取整后作为多数字基底,则最大整数p为该基底表达能力上限。将多数字基整数Ej设定为水印图像W满足不等式时的系数,用表示各位数字,推导出表达式如下:

5) 令比特修改值为水印图像W′多数字基整数Ej的各位系数在DCT频域交流系数中以分散形式进行嵌入,明确水印加载强度。若交流系数的加载强度是则其水印表达式如下:

式中:τj为约束因子[7],可在关联于分组的二值映像序列{τj}中获取。

6) 已知由二值映像序列{τj}得到的伪随机序列,从中选取随机种子Key作为密钥[8],根据生成的密钥随机数,选择DCT频域子图Wi与Wj在扫描阶段时高频分量与低频分量的交流系数。依据τj的极性与给出的JPEG量化因子系数Tag,判定高低频分量交流系数调整与否,若τj=1且则表达式如下所示:

7) 当j<n2-1且k<g-1时,在增加步长之后进行对应的移位操作,迭代操作上述两个步骤,基于初始图像W的DCT频域各分组子图的交流系数完成水印图像W′的比特嵌入操作。

8) 若g1<g且h1<h,则初始图像W未嵌入水印比特的DCT频域分组交流系数有g×h-g1×h1个,通过迭代操作步骤(4)~(7),处理规格为m1×m1的水印图像W′(n>m1),并在余下交流系数里,实现水印图像W比特信息嵌入。

9)Zig_Zag排序调整后的交流系数,经二维DCT反变换处理,根据频域f(u,v)获取完成水印嵌入的图像W′。

1.3.2 容量分析

数字水印容量表示在原始图像中添加水印的最多信息量。若图像中存在高斯噪声,且原始图像属于高斯白噪声信道,此时可通过Shannon表达式预测隐藏信息容量。该文的多重水印嵌入方法在容量方面区别于单一水印[9]。

如果噪声满足均值为零且方差是σn2高斯分布,根据平均功率最大熵原理[10],令Y符合高斯分布,假设其平均值表示为m,在同时嵌入2个水印情况下,信道平均输入功率受到限制:并且和噪声N没有任何联系,则有:

因此,Y的熵计算公式如下:

由上述可得:

则容量表示为:

综上所述,当有两个水印嵌入,此时容量并不是嵌入单一水印容量的叠加。如果水印W′1和W′2之间不存在任何联系,则容量C1、C2与C12具有的关系如下:

由上述公式分析得出,在嵌入两个水印情况下,其容量高于任意一个单一水印容量,然而低于两个单一水印容量的和。

1.3.3 图像水印检测

1) 将待测的n×n灰度图像W′′′分割成W′′′=获取二维DCT转换后不同频域的交(值)流系数Cj(u,v),其中j=0, 1, …,n2-1。

2) 设置系数α=0.65,对j=0, 1, …,n2-1,分别获取W′′′频域子图Wj的灰度均值Tj以及修正值计算二值序列{τj}与所有分组中频分量约束值

3) 对j=0, 1, …,n2-1,将图像W′′′的第k组约束值当作中频分量的多数字基底,则根据多数字基整数概念计算Ej的每一位数字且转换成十进制整数Dj。

4) 假设JPEG的量化值表示为Null,则根据Dj、τj结合公式(10)获得图像W′′的DCT转换中频系数;反之,挑选品质因子Tag,确定阈值λ=0.5,评估τj=±1的极性,利用公式(11)得出与其相对的高低频系数。

5) 将阈值λ作为约束条件,对图像W′的交流系数做Zig_Zag排序处理,根据二维IDCT反变换,对水印图像W′进行重构。

6) 对分组情形(即g1<g),重复步骤三至步骤五,可实现水印图像W′′的重构。

2 仿真试验结果及分析

为验证算法的抗噪能力以及嵌入性能,设定仿真试验环境为MATLAB R2012a,计算机配置为:32位Windows7系统,Pentium双核2.8 GHz,运行内存2 GB。将包含“安全食品”文本信息当作需多重嵌入的水印图像,同时用食物披萨图作为初始灰度图像。

1) 图1为初始、多重水印、嵌入水印后、检测出的水印图像,能够看出,在嵌入水印后相比初始图像,处理后图像清晰度并未受到太多影响,且提取的水印图像也完整可识别。

图1 初始、多重水印、嵌入水印后、检测出的水印图像

2) 对包含多重水印信息图像进行常见噪声干扰试验,试验结果如图2所示,攻击行为分别是压缩40%、添加椒盐噪声、中值滤波处理、去除40%面积、旋转45°。

图2 不同干扰攻击下水印检测结果

通过图2以及表1能够看出,添加椒盐噪声以及去除40%面积后的含水印图像,包含过多干扰噪声,图像也在一定程度上出现模糊现象,并且提取水印效果没有达到理想预期,相似度分别为78.52%和84.39%,信噪比分别为32.56和30.25 dB,但是所得出结果依旧处于良好范围,通过图像还是能够直观看出所嵌入的水印信息为“安全食品”字样。相比上述两种,算法在面对压缩40%、中值滤波、旋转45度试验上,所得结果能够充分满足现阶段社会需求,所的相似度计算结果都高于85%,甚至旋转45°的结果高达90.21%,并且三者信噪比都能保持在25 dB下,这是因为采用多重水印嵌入手段,加强了抗噪能力,使处理后图像中包含多个水印,在一个信息受到干扰无法得到全面数据时,另外的水印还能够填补,获得的信息完整。

表1 攻击下方法相似度和信噪比数值

3 结论与展望

由于网络高速发展,数字图像传播能力远远超出社会想象力,引发的版权问题日益严重,但是现阶段社会常使用的嵌入水印技术多为单一操作,面对噪声影响情况下,很难保持原本图像,使提取出的水印数据不完整,难以识别,降低食品安全权益保护效果。为此设计的基于DCT变换的食品图像多重水印嵌入算法,通过在初始图像不同纹理区域嵌入相同水印信息,能够最大限度保持水印完整性,即使受到噪声干扰丢失一部分信息也能通过替他水印找回,依旧合成完整的水印图像。并且嵌入过程的门限值和数字基底设置,帮助DCT选块分组,通过转换和迭代加载,使嵌入其中的水印信息十分隐蔽,且图像处理后基本看不出和初始图像间差别,透明度高。

在面临椒盐噪声以及部分丢失时,提取效果虽在良好范围,但是从结果图像中能明显看出水印图像并不完整,通过容量分析得出,在嵌入过程中,若水印数量是固定的,那么算法将自适应选择最优长度进行嵌入,已完成透明度和鲁棒性之间最优均衡。但这就导致图像受损较大时,所有嵌入水印也受到相同程度损伤,使得所有水印信息都不够完成。在后续研究中,将会利用半监督学习通过训练样本,明确最优水印长度,以获得抗噪声强、高透明度高、抗损伤范围大等多重能力,用高经济性价比满足社会需求。

猜你喜欢
子图频域纹理
大型起重船在规则波中的频域响应分析
基于BM3D的复杂纹理区域图像去噪
临界完全图Ramsey数
使用纹理叠加添加艺术画特效
频域稀疏毫米波人体安检成像处理和快速成像稀疏阵列设计
TEXTURE ON TEXTURE质地上的纹理
基于频繁子图挖掘的数据服务Mashup推荐
消除凹凸纹理有妙招!
基于改进Radon-Wigner变换的目标和拖曳式诱饵频域分离
基于频域伸缩的改进DFT算法