APP下载

基于半脆弱水印的图像内容认证技术

2020-06-01杨珊李德

关键词:分块鲁棒性步长

杨珊, 李德

( 延边大学 工学院, 吉林 延吉 133002 )

0 引言

随着信息技术的快速发展,多媒体数据因便于存储、传输和分享,给人们获取和利用信息带来了极大便利.但同时,因多媒体数据存在容易被复制、修改以及难以追踪修改源等问题使得其安全问题受到人们的关注,如军事文件、法庭举证、新闻图像、历史文献、医疗图像等数字内容被非法篡改后就会给社会造成诸多影响;因此,在海量的多媒体数据环境中如何保护好图像内容的真实性、完整性和可靠性具有重要意义.研究表明,水印技术是保护多媒体数据的一种有效手段,水印按特性可以分为完全脆弱水印[1]和半脆弱水印[2].完全脆弱水印因对图像验证的精确度要求较高,因此其应用范围较为有限,如医学图像、法庭举证等方面;半脆弱水印允许图像内容在一定范围内发生变化,因此其在实际应用中更为广泛.近年来,许多学者对半脆弱水印技术进行了研究.例如:胡玉平等[3]提出了一种基于小波系数形态滤波的半脆弱水印算法,该方法可提高算法的安全性并减少运算量,但其抗JPEG压缩效果较差.赵春晖等[4]提出了一种基于分块压缩感知的半脆弱零水印算法,该算法计算简单,保密性强,实现了图像成像与水印生成的同步完成.高铁杠等[5]提出了一种利用图像块与Logistics混沌映射匹配的方法,该算法在图像认证功能和检测恶意篡改方面表现良好,可提高模糊、锐化等信号攻击的鲁棒性.王向阳等[6-7]提出了一种基于分组量化的自适应半脆弱水印嵌入方案,该算法在误检率和漏检率等方面优于现有的半脆弱水印算法.高雪丽等[8]采用二维离散余弦变换提取低频系数的方法提高了图像在抵抗高斯噪声、裁剪攻击、压缩攻击方面的鲁棒性,该方法同时还能够抵抗一定程度的帧丢失攻击.上述研究中,研究者都是将水印信息以固定的量化步长嵌入到图像中,因此会影响图像的视觉效果.为此,本文提出一种基于变换域的半脆弱水印算法,采用自适应量化步长的嵌入方法来提高水印信息的不可见性,并通过实验验证本文方法的有效性.

1 相关理论与技术

1.1 半脆弱水印技术

半脆弱水印技术是利用图像的自身特征提取出具有特定含义的认证信息,然后使用一定的方法和规则将这些特定含义的认证信息嵌入到被保护或需要提供版权认证的媒体数据中,以此实现防伪溯源[9].半脆弱数字水印技术应具有以下功能和特征:

1) 检测篡改及恢复功能.半脆弱数字水印技术要对载体图像能够进行可靠地检测篡改,且在此基础上还要能够检测出图像被篡改的位置和相应的篡改程度,以及恢复被篡改的内容.

2) 水印的盲提取功能.在不提供原始载体的情况下,半脆弱水印技术要能够实现对待检测信息内容的认证,即实现水印的盲提取功能.

3) 鲁棒性与脆弱性共存.半脆弱水印技术应对图像的合理失真具有很强的鲁棒性,同时对不合理的失真(恶意篡改)应具有脆弱性.

4) 透明性.水印信息嵌入到原始载体图像可能会影响多媒体文件的视觉质量,因此半脆弱水印技术在确定秘密水印的嵌入位置和方式时,不仅需要满足算法的抗攻击性和定位准确性,还要保证载体图像在视觉上具有不可感知性.

1.2 线性同余发生器

为了保证载体图像具有较好的视觉效果和水印信息的透明度,即降低由嵌入水印信息而导致的图像失真对图像视觉质量的影响,本文在选择水印嵌入位置时,采用线性同余伪随机数发生器将水印信息随机嵌入到小波系数的高低频分量和低高频分量中,以此达到分散水印信息的目的.线性同余伪随机数发生器产生的是均匀分布的伪随机数,其数学表达式为

xi +1=(axi+c)(modm),

(1)

其中模m为素数, 乘数a为m的一个原根,增量c∈[0,m),m∈[0,∞).理论上伪随机数的周期T越趋近于无穷,伪随机数的效果越好.当c=0时,可以得到线性同余伪随机数发生器的一般通用式(线性同余发生器):

xi +1=axi(modm).

(2)

2 基于图像内容的小波域自适应量化水印算法

基于图像内容的小波域自适应量化水印算法主要包括水印信息的生成、嵌入和提取3部分,其流程如图1所示.

图1 水印认证的流程图

2.1 水印信息的生成算法

小波变换的主要优点是能够提供丰富的图像特征信息,尤其是在水印信息提取方面[10].研究[11]表明,第3层小波分解的系数分量LL3(i,j)含有图像的大部分能量,能有效表征图像特征,且在JPEG压缩前后具有一定的鲁棒性和很强的抗干扰能力,因此本算法在第3层小波系数中提取图像的特征水印.生成水印信息的步骤如下:

Step 1 对载体图像I(灰度图像)进行3层DWT变换,图像像素大小为M×N, 小波系数Z大小为M/8×N/8.

Step 2 提取小波系数分量LL3(i,j)的二进制的最高位,并将其作为载体的特征信息,以此生成大小为M/8×N/8的待嵌入水印W.

2.2 水印信息的嵌入算法

水印信息嵌入算法的具体步骤如下:

Step 1 分块处理小波嵌入域.首先对载体图像I进行2层DWT变换,得到图像的垂直细节分量HL2和水平细节分量LH2;然后对HL2和LH2进行分块处理,每个分块的大小为2×2. 2个小波系数的分量共分为M/8×N/8块.根据每个分块在小波系数中的位置, 将HL2的每个分块记为B0(i,j),LH2的每个分块记为B1(i,j), 其中1≤i≤8M, 1≤j≤8N.

Step 2 选择小波嵌入域.首先利用伪随机数发生器产生服从均匀分布的数列,然后确定伪随机数发生器的初始值并生成0,1矩阵choice(i,j) (1≤i≤8M, 1≤j≤8N).由该矩阵即可确定嵌入域的位置:当choice(i,j)=0时,相应的水印信息嵌入到分块B0(i,j)中; 当choice(i,j)=1时,相应的水印嵌入到分块B1(i,j)中.该方法不仅可以使水印信息分布得更均匀,而且还可提高水印的不可见性.

Step 3 确定水印信息嵌入的量化程度.将每个分块B0(i,j)或B1(i,j)都嵌入1 bit的水印信息.为了保证水印信息嵌入的不可见性,利用小波系数自适应确定嵌入水印信息的大小.定义参数weight(i,j)为每一分块所能承载的最大量化程度,其表达式为

weight(i,j)=mean(i,j)+3×std(i,j)+10×entropy(i,j).

(3)

其中:mean(i,j)为B(i,j)的均值,std(i,j)为B(i,j)的标准方差,entropy(i,j)为B(i,j)的熵.

Step 4 确定水印信息嵌入的量化步长.按Step 3操作求出HL2和LH2所有分块所能承受的最大量化程度的矩阵weight0(i,j)和weight1(i,j), 以此确定分块B(i,j)的量化步长.水印信息嵌入的量化步长公式为

(4)

其中wmin为weight(i,j)分块的最小值,wmax为weight(i,j)分块的最大值,c和d为选定的量化步长的范围.

Step 5 嵌入水印信息.待嵌入的水印信息为W(i,j), 水印信息嵌入的位置为B(i,j), 自适应嵌入的量化步长为Δ(i,j), 矩阵内的小波系数为xi, 分块B(i,j)绝对均值的计算公式为

(5)

(6)

(7)

式中xi代表嵌入信息后的系数.根据新产生的均值进行更新即可实现水印信息的嵌入,再经过小波逆变换即可生成含水印的图像.

2.3 水印信息的提取算法

(8)

2.4 图像的认证和篡改定位

(9)

如果T=0, 说明载体图像没有发生篡改;如果T≠0, 则T中不为1的点被认为发生了篡改.

3 实验结果及分析

为了验证本文提出的半脆弱水印算法的有效性,以像素为256×256的Lena图像为例,选用正交小波函数harr作为离散余弦变换的小波基进行实验.计算机的操作系统为Windows 7 Professional×64,软件为Matlab R 2017a×64.

1)透明性检测.首先对Lena图像进行嵌入水印的操作,结果如图2所示.由图2可以看出,用肉眼难以发现两幅图像有无不同之处,这表明本文算法具有良好的透明性.为进一步验证本文算法对透明性的有效性,分别计算本文算法、文献[12]算法和文献[13]算法的峰值信噪比(peak signal noise ratio,PSNR).峰值信噪比的计算公式为

(10)

式中f(m,n)是原图的像素值,g(m,n)是修改后图的像素值.PSNR的数值越大,表明嵌入水印信息的图像与载体图像之间的区别越小,即表明算法的透明性越好.计算结果显示,本文算法、文献[12]算法和文献[13]算法的PSNR分别为50.55 dB、 40.28 dB和41.04 dB,该结果说明本文算法的透明性优于文献[12]和文献[13]算法.

图2 原始载体图像和含水印图像的对比

2)压缩攻击实验.为了检验本文算法的抗压缩攻击性能,分别对采用本文算法和文献[14]算法得到的水印图像进行不同程度的JPEG压缩攻击实验,结果见表1.从表1中的数据可以看出,本文算法在压缩比小于50%时,能够较好地提取出嵌入的水印信息;虽然压缩率增大时篡改率随之增大,但总体效果较好,且优于文献[14]的效果.该结果表明,本文算法对JPEG压缩攻击具有较好的鲁棒性.

表1 不同JPEG压缩率下的图像篡改率 %

3)噪声攻击实验.对图像分别进行高斯噪声攻击和椒盐噪声攻击,攻击类型的参数及其误码率BER如表3所示.由表3可以看出,图像经过不同的高斯噪声和椒盐噪声攻击后,提取水印信息的误码率始终保持在25%以下,即具有较好的鲁棒性.由此表明,本文算法允许对图像进行噪声攻击等常规的图像处理.

表3 不同噪声攻击下图像的误码率BER

4)剪切攻击实验.对图像进行不同剪切率(8.66%、11.36%、19.33%、38.54%)的攻击后其结果如图3所示.由图3可以看出,本文算法能够较好地对图像篡改的位置进行定位,但只能定位出篡改位置的大致轮廓.在4张定位图像中,未发生篡改的位置有白色噪声点出现,但这些噪点相对分散,并不会对算法的准确性造成较大影响.

图3 不同剪切率下针对Lena图像的篡改检测效果

4 结论

研究表明,本文提出的基于小波域半脆弱水印的图像内容认证算法提高了水印信息的不可见性,并实现了水印信息的盲提取.因本文方法对水印信息的提取和验证只需提供待认证的图像,因此该方法具有安全性和实用性,可应用于鉴别图像在复制、传输和存储等过程中出现的修改.图像受到剪切攻击时,本文算法能够准确定位被篡改的位置,但定位位置的边缘精度还有待进一步提高;同时在未发生篡改的位置出现了少量相对分散的白色噪声点,这些噪声点一定程度地影响了算法的准确性:因此,在今后的研究中我们将进一步改进算法提取图像内容特征的方式,使提取的水印信息包含更多的图像边缘轮廓的有效特征,以此提高本文算法对篡改位置的定位精度以及减少噪声点对未被篡改区域的影响.

猜你喜欢

分块鲁棒性步长
中心差商公式变步长算法的计算终止条件
面向量化分块压缩感知的区域层次化预测编码
钢结构工程分块滑移安装施工方法探讨
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
关于4×4分块矩阵的逆矩阵*
武汉轨道交通重点车站识别及网络鲁棒性研究
基于随机森林回归的智能手机用步长估计模型
荒漠绿洲区潜在生态网络增边优化鲁棒性分析
基于确定性指标的弦支结构鲁棒性评价
懒交互模式下散乱不规则分块引导的目标跟踪*