作者简介:王友卫(1987-),男,博士研究生.研究方向:垃圾邮件过滤,数字图像处理. E-mail:wyw4966198@126.com
为提升算法抵抗数字图像区域攻击能力,提出了一种安全的强鲁棒性数字水印算法。引入随机四元组的概念,使用宿主图像每个随机四元组中的每个8×8小块同时隐藏原始冗余水印及该块的均值信息。水印嵌入前先使用混沌序列对原始水印进行加密,接着结合新的算法性能评价函数寻找最优水印嵌入量化步长上下限;水印嵌入过程中根据图像块内容特性自适应选取最优嵌入量化步长。对比实验表明,随机四元组策略安全性高;算法水印透明性好,在抵抗图像常规区域攻击及其他类型攻击方面显示了较高的鲁棒性。
To enhance the algorithm's ability of anti-regional attacks of digital images, a secure and highly robust digital watermarking algorithm is proposed. The concept of Random Quaternary Group (RQG) is introduced, and the RQGs of the host image are used to hide the original redundant watermark bits and the mean value of the 8×8 blocks of the RQGs. Before the watermark embedding process, the original watermark is encrypted by chaotic sequence; the performance evaluation function of the proposed algorithm is applied to search the high and low limits of the quantization step of watermark embedding. In watermark embedding process, the algorithm is used to select the optimal quantization step adaptively according to the content of each block. Experiment results show that the RQG strategy is secure; the proposed method has good watermark transparency and high robustness resisting conventional regional attack and other attacks of digital images.
随着网络技术及数字图像处理技术的飞速发展,因图像非法攻击而带来的图像版权纷争的问题越来越严重。鲁棒性数字水印技术通过向原始图像中附加人眼不可察觉的水印信息保护图像原始版权信息、维护图像所有者合法权益
冗余水印嵌入策略是抵抗图像区域攻击的有效方法[ 7],此类方法能在一定条件下降低图像区域攻击对提取水印的影响,但仍存在以下问题[ 3, 5, 6]:①冗余水印比特隐藏块位置生成规则固定,不法者通过只攻击含水印图像特定区域即可达到攻击水印的目的;②隐藏冗余比特的像素块间距离较小,针对特定区域篡改的抵抗能力差;③水印提取过程常需要原始水印参与。为解决上述问题,本文引入了随机四元组的概念,提出了一种基于离散余弦变换(DCT)的自适应图像盲水印算法。
假设宿主图像 H大小为 Hw×Hh,先对 H进行分块,每块为8 ×8大小,接着按图1方式将所得分块集合划分为4 ×4个大小相同的区域{ Hij}(1≤ i≤4,1≤ j≤4)。可见,区域 Hij大小为( Hw/4) ×( Hh/4),其每行、每列所含8 ×8大小的像素块数分别为: nr=Hw/
针对∀ i∈{1,2,3,4},称{ Hij}( j=1,2,3,4)构成一个四元域 Gi。
分别从 Gi中的4个区域 Hi1、 Hi2、 Hi3、 Hi4(1≤ i≤4)中选取块行列坐标分别为( sri1, sci1)、( sri2, sci2)、( sri3, sci3)、( sri4, sci4)的4个8 ×8大小像素块 si1、 si2、 si3、 si4作为水印嵌入起始位置,方法如下:
式中:rand( ki)表示以种子密钥 ki生成区间[0,1)内的随机数。
定义 si1, si2, si3, si4共同组成一个起始随机四元组,如图1中 a所示。针对 Hi1中坐标为( ri1, ci1)( ri1≠0或者 ci1≠0)的8 ×8大小像素块 bi1,按照下面的方法从 Hi2, Hi3, Hi4中求得坐标分别为( ri2, ci2)、( ri3, ci3)、( ri4, ci4)的8 ×8大小像素块 bi2、 bi3、 bi4:
称 bi1, bi2, bi3, bi4共同组成一个随机四元组,如图1中 b、 c所示。可见,随机四元组策略结合密钥在 Hi2, Hi3区域内随机产生水印嵌入的起始位置,能有效避免不法者在得知冗余水印隐藏规则的情况下,对水印序列的特定位置进行攻击。由式(5)(7)可知,任意时刻随机四元组内 bi1与 bi2、 bi3与 bi4间水平方向距离均为 Hw/2;由图1可知,在四元域{ Hij}中,只有在 ri1 =nr-1或者 ri2 =nr-1的情况下, bi1与 bi3或者 bi2与 bi4间的垂直距离才有可能小于 Hw/2,对应发生概率为 p=
算法使用随机四元组隐藏冗余水印并通过投票方式提取水印。为避免从随机四元组中提取的0、1比特数目相等给结果带来分歧,本文向组内每个小块隐藏该块的灰度均值信息。当水印提取过程发生投票分歧时,通过验证组内每个小块的篡改程度来判定最终提取的水印比特。
记 l为宿主图像 H中第 k个四元域 Gk内随机四元组数目。如图2中,设 Gki为 Gk中第 i个随机四元组( k=1,2,3,4;0≤ i<l),{ bij}(0≤ j<4)为 Gki中4个8×8大小像素块。为进一步提升算法安全性,水印嵌入前先使用一维Logistic混沌映射并结合密钥 k3、 k4对 W进行加密预处理。Logistic映射初始参数设置为: k3 =x0 =0 .2, k4 =u0 =1 .55,此时函数进入混沌状态[ 8]。假设当前待嵌入水印比特为 wki,则将 wki嵌入 Gki过程如下:
Step1 根据块 bij内容特性自适应确定水印嵌入量化步长 qij,首先定义 bij对应的灰度 -方差值 Sij:
式中: mij和 σij分别为 bij的灰度均值和方差,分别反映 bij的亮度、纹理信息; ε为方差拉伸系数,0 <ε<1。
式中: Smin、 Smax分别表示 Sij值的最小值和最大值; qm、 qM分别表示水印嵌入量化步长的最小值和最大值。
Step2 如图2所示,将 bij划分成4个4 ×4大小的像素块,分别对 bij0、 bij1、 bij2进行DCT变换,得到直流系数 dij0、 dij1、 dij2,按式(10)分别求得 Dij、 Zij:
Step3 使用 Dij隐藏 wki,得到
当 wki=0时,保证
当 wki=1时,保证
Setp4 按照式(11)对 dij0、 dij1、 dij2进行修正,得到隐藏了水印信息的直流系数
Step5 计算 bij灰度均值 avgij,将 avgij表示成8位二值序列并取其高4位记作{ avgij( q)}(0≤ q<4)。
Step6 对 bij3进行2×2大小的分块DCT变换,得直流系数集合{ dij3( q)}(0≤ q<4)。
Step7 取步长 q=qij/2,使用Quantization index modulation(QIM)水印嵌入方法[ 9]将{ avgij( q)}(0≤ q<4)中每个比特依次嵌入{ dij3( q)}(0≤ q<4)中。
Setp8 逆变换 bij中所有子块对应的DCT系数矩阵。
Setp9 遍历{ bij}中所有像素块,至此 Gki中水印隐藏过程结束。
遍历 Gk中所有随机四元组,将 l( l为 Gk内随机四元组数目)个待嵌入水印比特按上述过程隐藏至 Gk中。遍历所有 Gk( k=1,2,3,4)继而完成了图像 H的水印嵌入过程。
假设 h'是含水印图像采用Radon方法[ 10]进行旋转校正后的图像,其中第 k个四元域 G'k内第 i个随机四元组为 G'ki( k=1,2,3,4;0≤ i<l, l为 G'k中随机四元组总数),{ b'ij}( j=0,1,2,3)为 G'ki中像素块集合,则 G'ki中所含水印 w'ki提取过程如下:
Step1 将 b'ij均分成4 ×4大小像素块集合{ b'ijp}( p=0,1,2,3),分别对 b'ij0、 b'ij1、 b'i2进行DCT变换,得到直流系数集合 d'ij0、 d'ij1、 d'i2。
Step2 按2.1节中Step1并结合密钥 k3、 k4计算 b'ij对应的水印嵌入量化步长 q'ij,按式(12)计算 D'ij, Z'ij:
Step3 提取出水印 W'ij:
若 Z'ij<0 .5 q'ij,则 W'ij=0;否则 w'ij=1。
Step4 统计{ w'ij}中0比特的数目 C0,若 C0 >2,则 w'ki=0;若 C0 =2,转Step5;否则, w'ki=1。
Step5 对 b'ij3进行2×2分块DCT变换,得到直流系数集合{ d'ij3( q)}( q=0,1,2,3)。
Step6 取量化步长 q'=q'ij/2,使用QIM水印提取方法从{ d'ij3( q)}中提取水印序列{ wij3( q)},步长为 q'ij/2。
Step7 将 b'ij灰度均值转化为二值序列并保留高4位得{ avgij( q)}( q=0,1,2,3)。
Step8 获取 G'ki所含水印信息:
式中: q=0,1,2,3; CMP( avgij( q), wij3( q))为比较函数,当 avgij( q)与 wij3( q)相等时返回1;否则返回0。
Step9 遍历 h'中全部四元域内全部随机四元组获得提取水印 we。
Step10 将2.1节所得Logistic混沌序列与 we进行按位与或便得到最终水印 W'。
使用归一化相关(Normalized correlation,NC)方法比较 W'与原始水印 W的相似度,公式如下[ 11]:
可见, NC( W, W')∈[0,1],其值越大,表示 W'与 W越相似。
选取512×512大小灰度图像Barbara作为宿主图像,32×32大小的二值图像Girl作为水印图像。
若 nr、 nc分别为四元域 G中每个区域对应的行、列块数,由于 nr、 nc取值相互独立,则在密钥 k1、 k2未知的前提下, G中某随机四元组 Gi被选中的概率 P=1 /( nr×nc),易知,若攻击者欲改变原始水印序列中对应的 lw个比特位,则其需对这些比特位对应的 lw个随机四元组进行篡改,而 lw个随机四元组全被修改的概率 Ps为: Ps=
结构相似度(Structural similarity,SSIM)方法[ 12]综合考虑了图像结构、亮度和对比度信息,相对于归一化相关方法[ 2]能更好地反应水印嵌入带来的变化。若原始图像与含水印图像分别用 H、 H'表示,则 SSIM( H, H')定义如下:
SSIM( H, H') =l( H, H') α×c( H, H') β×s( H, H') γ(14)
式中: s( H, H')、 l( H, H')和 c( H, H')分别表示含水印图像的结构、亮度和对比度属性。由文献[12]知,SSIM( H, H')∈[0,1],值越大,含水印图像质量越高。
图3显示了 qm、 qM取不同值下含水印 Barbara图像及对应的 SSIM值。由图3可见,( a)( b)( c)所示的含水印图像质量良好(对应 SSIM≥0.9987),证明算法满足水印不可见性;图3(d)(e)(对应SSIM≤0.9971)中的图像有较明显的“块状效应”,说明水印嵌入强度过大将影响含水印图像的视觉质量。进一步地,记人眼所能接受的质量差 H'对应SSIM值为 ssima,当 qm取不同值时(为方便计算,令 qM=qm+30),分别向编号为0~50的512×512大小的不同灰度图像中嵌入Girl水印。标注每幅灰度图像对应的 ssima值,结果如图4所示。可见,不同编号灰度图像对应 ssima∈(0 .994,0 .999)。本文将所有图像的 ssima均值0 .9969作为人眼所能接收的质量最差的含水印图像,对应SSIM阈值,记为 ssimth。
为选取最优 qm、 qM,仿真了以下攻击类型: ①1 /4裁剪; ②1 /4替换; ③1 /2裁剪; ④1 /2替换; ⑤3 /4裁剪; ⑥3 /4替换; ⑦质量因子为70的 JPEG压缩操作; ⑧Gauss噪声(均值0,方差5); ⑨3 ×3均值滤波; ⑩锐化(数量100 %,半径1,阈值0)。为了公平,将随机选择裁剪、替换区域所处位置。给定宿主图像 H及含水印图像 H',原始水印 w及提取水印 w',定义算法性能评价函数 F如下:
F=
式中: n为 H'遭受的攻击数目; Fmin为性能极小值,这里取0.5。选取50幅512×512大小的灰度图像作为宿主图像,在 qm、 qM(令 qM=qm+qdel( qdel >0))分别取不同值的情况下,将Girl水印嵌入每幅宿主图像中,并计算所有含水印图像在上述攻击下所得 F值的均值,结果如图5所示。由图5可知,最大 F均值为0 .989,对应 qm、 qdel分别为40、10,故为获得最优算法性能,本文取 qm=40, qdel =10, qM=qm+qdel =50。
在常规区域攻击及其他攻击(如:联合攻击[ 13]、JEPG压缩攻击等)类型下测试算法的鲁棒性。为公平起见,保证所有含水印图像SSIM值约为0.9979。
3.4.1 常规区域攻击
图6显示了当含水印Barbara图像遭受不同程度区域攻击时提取出的水印图像,由此可见,虽然含水印图像遭受攻击面积较大,但从中提取的水印图像内容依然清晰可辨,说明算法的鲁棒性能良好。
为进一步测试算法的鲁棒性,使用50幅大小为512×512的灰度图像隐藏Girl水印,并计算在区域大小为 lmax× lmax/2(0< lmax
3.4.2 其他类型攻击
图8中(a)~(d)、(e)~(h)分别为遭受不同程度的联合攻击后的含水印Barbara图像;(i)~(l)、(m)~(p)分别为8(a)~(d)、8(e)~(h)遭受联合攻击后提取的水印图像,并标注了对应的NC值。由图8可知,虽然提取的水印图像中存在不同程度的噪声点,但其中标记信息依然能被准确辨识,说明算法针对所给联合攻击类型表现良好。
实验取50幅大小为512×512的灰度图像嵌入Girl水印。针对每幅含水印图像实施包含不同程度裁剪、替换操作的8种联合攻击,以及不同质量因子(Quality factor,QF)下的JPEG压缩攻击。图9给出了不同算法下所有实验图像所得NC均值。由图9可知,在单纯JPEG压缩攻击下,当QF=50时,本文仍获得较大NC均值(0.9832)且相对其他算法优势明显,这缘于DC系数对JPEG压缩操作的不敏感性[ 14];文献[3]表现最差,这是因为快速傅里叶变换(Fast Fourier transform,FFT)中频系数间大小关系极易受较大程度JPEG压缩攻击的影响。在应对联合攻击方面,当攻击区域较小(含水印图像的1/4)时,本文抵抗包含JPEG压缩、噪声、均值滤波等操作的联合攻击能力较其他算法强,但当遭受包含锐化、对比度增加等操作的联合攻击时,本文表现稍差,这是因为本文使用图像低频系数隐藏水印,而锐化、对比度增加等操作旨在通过弱化图像低频来凸显图像细节即高频部分,因此影响了本文水印提取的效果。当攻击区域为含水印图像的1/2时,文献[3][4]水印误识率下降明显,水印提取精度均不如本文方法。表1依据不同标准将本文与其他算法进行了比较,进一步验证了本文方法作为一种新颖的冗余水印方法在保证算法安全性、提升含水印图像质量及抵抗区域攻击能力方面的应用价值。
(1)使用随机四元组隐藏冗余水印信息,在增强算法安全性的同时降低了含有冗余水印的不同像素块被同时修改的可能性。
(2)向随机四元组中每个小块隐藏该块均值信息,避免了水印提取过程中的投票纠纷。
(3)依据新算法性能评价函数寻找最优水印嵌入量化步长的上下限,在此基础上自适应确定最优量化步长,有效保证了含水印图像的质量。
(4)实验分析表明,算法水印透明性高,随机四元组策略能有效避免攻击者针对水印特定位置进行篡改。
(5)相对于以往方法,本文方法能有效抵抗含水印图像中较大程度的常规区域修改,在应对单纯JPEG压缩攻击及结合了JPEG压缩、缩放、均值滤波等操作的联合攻击方面效果显著。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|