郭 娜,黄 樱,牛保宁,兰方鹏,牛之贤,郜卓杰
(1.太原理工大学 信息与计算机学院,山西 太原 030026;2.北京邮电大学 人工智能学院,北京 100089;3.中国科学院自动化研究所,北京 100190)
网络媒体的发展给在人们带来便利的同时,也出现了数字作品被抄袭、非法传播等现象,从而引发版权纠纷。图像水印技术将代表图像作品版权的水印信息不可感知地隐藏在图像作品中,在发生版权纠纷时,可将其提取出来,用于认证作品版权。水印技术能够有效地用于版权保护的关键在于嵌入的水印不影响图像作品质量(不可见性),同时有抵抗各种攻击的能力(鲁棒性)。
局部水印技术将水印嵌入在图像的局部区域中,通常利用特征点定位水印的嵌入区域。目的是利用特征点的不变性,使这些特征点定位的区域在攻击前后尽量保持不变。但特征点的不变性并不是绝对的,当攻击强度较大时,特征点的个数、位置、尺度和强度等信息均可能发生变化。因此,攻击前后定位区域的位置和尺寸存在偏差在所难免。由于定位偏差会导致区域中包含的内容发生变化,破坏水印与区域之间的对应关系,使得难以完全正确地提取其中的水印信息。图像边缘是指图像灰度值不连续或灰度值变化剧烈的像素集合,其附近像素灰度值差异明显。若定位的水印嵌入区域中包含较多的图像边缘,当发生定位偏差时,区域中内容变化更为显著,从而进一步增加了水印提取的难度。
为解决上述问题,笔者提出了一种融合区域边缘特征的双重自适应图像水印算法。首先考虑在定位嵌入区域时尽量避开图像边缘,减少对水印提取鲁棒性的影响;当嵌入区域仍包含少量图像边缘时,尽可能增加边缘位置的嵌入强度,提高抵抗定位偏差的能力;同时在水印嵌入时根据像素类型设置对应的修改量,保证水印不可见性。该算法的主要创新点如下:
(1) 提出基于多特征评分的嵌入区域判定方法。利用滑动窗口遍历图像,以窗口区域的边缘特征为主,纹理、灰度、位置等因素为辅进行评分,选取得分较高的多个局部区域作为水印嵌入区域。该方法能够尽可能地避开边缘,同时兼顾图像内容,提高水印提取的鲁棒性和不可见性。
(2) 提出一种双重自适应嵌入方案。第一重粗粒度自适应方案通过线性回归分析,建立用于控制水印嵌入强度的参数和图像块边缘像素数量间的函数关系,根据这一关系自适应地调节每个图像块的水印嵌入强度,增强包含边缘图像块嵌入水印的鲁棒性;第二重细粒度自适应方案是指在图像块中嵌入水印时,针对边缘处像素和非边缘处像素设置不同的修改量,进一步利用高斯窗自适应地调整边缘附近像素的修改量以达到平滑过渡的效果,利用边缘的掩蔽效应提升水印的不可见性。
根据水印在图像中嵌入的位置不同,水印技术可分为全局水印技术[1-3]和局部水印技术[4-7]。全局水印技术将水印直接嵌入在一幅完整的图像中,裁剪会使图像的部分像素被删除,这必然导致嵌入在其中的水印无法提取。局部水印技术是在图像的多个局部区域中嵌入水印,即便部分区域被裁剪,仍然可能存在不受影响的嵌入区域,能够很好地抵抗裁剪攻击;通过在多个区域中嵌入相同的水印还可以进一步提高鲁棒性;除嵌入区域以外的像素不会因水印嵌入而发生变化,也能够使嵌入水印的图像拥有更好的视觉效果。
局部水印技术首先需要定位水印的嵌入区域。现有方法通常从图像中提取具有平移、旋转和尺度不变性的特征点作为参考点,在其定位的非重叠的区域中嵌入水印。NASIR等[6]采用基于终止(end-stopped)小波的特征提取方法来提取重要的几何不变特征点,将这些特征点用作水印嵌入和检测之间的同步标记,水印被嵌入到以特征点为中心的非重叠归一化圆形图像中。HOU等[4]利用尺度不变特征变换 (Scale-Invariant Feature Transform,SIFT)从宿主图像中提取稳定特征点,根据其特征尺度和方向自适应地确定局部特征区域用于嵌入水印。AGARWAL等[5]基于圆的对称特性,将水印嵌入到SURF(Speeded Up Robust Features)特征点定位的圆形区域中。此类基于特征点的水印算法的问题在于,嵌入区域的定位及同步与特征点的稳定性紧密相关,图像被攻击前后定位的嵌入区域可能不一致。若定位位置稍有偏差,将会对水印提取的准确率造成严重影响。FANG等[7]虽然通过修改SIFT特征点的强度信息来提升其定位的鲁棒性,但同时又破坏了图像的视觉质量。此外,特征点通常是图像中比较显著的点,更容易出现在边缘的位置上,意味着特征点定位的区域中通常会包含图像边缘,当发生定位偏差时,进一步影响水印提取的鲁棒性。
局部水印技术在确定好水印嵌入区域后,在区域中执行与全局水印技术相同的水印嵌入和提取操作。根据水印嵌入时处理的域不同,还可分为空间域水印和变换域水印。空间域水印技术[8-9]通过直接修改图像像素来嵌入水印,实现简单,执行快速,具有较低的时间复杂度,但由于水印嵌入过程是在图像像素上直接进行,导致其对图像像素值的变化比较敏感,抵抗攻击的能力有限。变换域水印技术[10-11]首先执行域变换,再通过修改变换域的系数来嵌入水印,常见的域变换方法有离散余弦变换(Discrete Cosine Transform,DCT)、离散小波变换(Discrete Wavelet Transform,DWT)等。虽然域变换会带来额外的时间开销,并且实现起来更加复杂,但其利用了图像的频域特性,相比空间域水印技术会具有更好的不可见性和鲁棒性。
为了有效结合空间域和变换域各自的优势,在保证水印的鲁棒性的同时提高执行效率,LV等[12]提出了一种基于DC系数的自适应量化索引调制方法(AVAS),通过量化图像块DCT域中的 DC 系数来嵌入和提取水印。由于DC系数与图像均值相关,通过在空间域直接计算每个图像像素的修改量,实现在图像块 DC 系数中嵌入和提取水印的效果。该算法不仅执行高效,能够有效抵抗缩放攻击,并且对各种常见的攻击也能够表现出很好的鲁棒性。然而,若在定位的区域中采用AVAS进行水印的嵌入与提取,当发生定位偏差时,若图像块中的纹理相对一致,定位偏差对其均值影响不大,若图像块中包含边缘,由于边缘两侧像素灰度值相差较大,定位偏差将导致其均值发生较大的变化。如图1所示,使用AVAS在图1(a)所示的区域中嵌入水印,之后在图像中将区域尺寸增大1个像素同时向左平移1个像素,图1(b)为从中提取水印的情况,白色表示水印提取正确的图像块,黑色表示水印提取错误的图像块。由此看出,微小的定位偏差也会对水印提取的正确性造成严重的影响,并且提取错误明显发生在包含边缘的图像块。
(a) 原始图像
(b) 水印出错位置
在嵌入水印时,水印的嵌入强度由算法中设置的一个嵌入参数决定,该参数值影响着水印的鲁棒性和不可见性。现有大多数水印算法[13-15]根据经验将嵌入参数设定为一个固定值,由于不可见性还与图像本身相关,比如,纹理越丰富的图像,越容易隐藏水印[16],设置固定的嵌入参数,对于不同图像,水印的不可见性会存在差异。还有一些水印算法[16-19]根据图像特点或者人类视觉特性,建立一个调参模型,自适应地设置嵌入参数。它们通常利用图像的均值、方差、熵等作为参考,使嵌入参数能够随图像变化。SHEN等[17]根据嵌入区域中图像块的对比度值和不同标记的特征值的加权比来确定多个嵌入参数。陈梦莹等[18]基于人眼视敏度特性分析,提出根据谱度量构造纹理掩蔽因子,并结合图像亮度及边缘掩蔽因子,构造彩色图像自适应掩蔽因子。YADAV等[19]利用信息熵度量纹理丰富程度,提出根据纹理较丰富的图像块的标准差来调节强度因子的模型。黄樱等[16]根据纹理掩蔽特性,提出一种纹理值的度量方法,并利用嵌入区域的局部纹理值及全局纹理值自适应地为不同区域设置不同的嵌入参数。现有的这类方法都是基于图像或图像块自适应调整对应的嵌入参数,但图像块中每个像素的修改量仍然相同,因此,没有充分利用图像内容的特点。
为解决现有算法中存在的问题,文中利用滑动窗口来定位水印的嵌入区域,虽然相较特征点定位耗时,但可以减少定位偏差,同时避开边缘位置,算法的整体效率通过设计高效的水印嵌入和提取方法来补足。首先,在定位嵌入区域时考虑边缘特性,尽可能避开图像边缘,使得即使出现微小的定位偏差,也不影响水印提取的正确性;其次,在定位的嵌入区域中采用AVAS算法进行水印嵌入和提取,根据边缘信息建立调参模型,自适应调整AVAS中的嵌入参数,在保证水印不可见性的前提下,增加包含边缘图像块的水印嵌入强度,即便嵌入区域包含少量图像边缘,也能够正确提取水印;最后,根据像素类型自适应地设置不同的像素修改量,提升水印的不可见性。
局部水印技术选择多个区域嵌入水印,相比于全局水印技术具有更高的鲁棒性。根据第1节的分析,含边缘较多的区域抵抗定位偏差的能力较弱,为减少定位偏差的影响,在定位嵌入区域时应尽量避开边缘位置。基于此,本节利用滑动窗口遍历图像,以区域的边缘特性为主要参考指标,以纹理、灰度及位置特性为辅助参考指标,对不同区域进行评分,选取出含边缘较少且隐藏性较好的多个非重叠区域作为水印的嵌入区域。
定位偏差会导致区域中的内容发生变化。图像边缘附近像素灰度值差异明显,若定位的区域中包含较多的图像边缘,当发生定位偏差时,区域中内容变化更为显著,增加水印提取的难度。为尽可能选择包含较少边缘的嵌入区域,精准地检测图像边缘至关重要,而直接利用Canny算子的传统边缘检测方法对噪声干扰十分敏感。为高效、精准地检测边缘,笔者首先对图像进行预处理,再利用Canny算子进行边缘检测,最后对所得边缘图像进行后处理,以获取精准的边缘信息。
图像中的噪声通常为高频信息,在DCT域中用交流系数(AC系数)来描述,降低非零AC系数的幅度可以减少噪声信息的干扰。因此,笔者提出一种边缘检测预处理方法,在边缘检测之前对原始图像进行DCT变换,在DCT域中从右下角开始按“Z”字形遍历AC系数,得到系数序列,将排在序列前90%的AC系数中非零系数的值置为零,达到消除噪声干扰的目的。再利用Canny算子检测预处理后图像中的边缘,获得精确度较高的二值边缘图像。
为进一步提高检测精准度,考虑对边缘图像进行后处理,排除一些误检边缘。在原图像中计算边缘像素与八邻域内其它各像素的灰度差的均值,计算方式如下,
(1)
其中,D为像素c的八邻域,p为像素的灰度值。根据预设的阈值τ删除不满足条件的误检边缘,如果Adiff小于阈值,则判断为误检边缘,在对应边缘图像中将该像素的灰度值置为0;大于或等于阈值,则保留,最终得到精确边缘图像。经多次实验后确定τ的取值为20。
(a) 原始图像
(b) 边缘图像
从图2可以看出,经过原始图像预处理及边缘图像后处理,基本消除噪声干扰,实现边缘精准检测。
根据第1节的分析,为提高水印的鲁棒性,应当将水印嵌入到含边缘较少的区域中。由此可知,如果对区域进行评分,包含边缘像素越少的区域应给予越高的分数。
定义1区域边缘得分。度量区域中边缘像素的数量,用于评估区域中边缘的丰富程度。计算式如下:
(2)
其中,(u,v)是区域中心点的坐标,m、n分别为区域的宽度、高度,pi,j=255是边缘图像中灰度值为255的像素,即区域中的边缘像素,num为边缘像素的数量。
良好的不可见性和鲁棒性是水印技术的重要属性,考虑抵抗定位偏差以增强鲁棒性的同时必须保证良好的不可见性。因此,选择嵌入区域时不仅要考虑边缘特性,还需要考虑纹理等其他特性。
3.2.1 区域纹理特征评分
根据人眼视觉掩蔽特性,嵌入在图像纹理丰富区域的水印相比于纹理平滑区域的水印更不容易被人眼察觉[16]。为保证水印的不可见性,确定嵌入区域时应该选取纹理丰富的区域。信息熵表征图像包含的信息量,常常被用来度量图像的纹理丰富程度,纹理越丰富的区域,其信息熵值越大。因此,在区域评分特性中,信息熵值越大的区域相应评分应该越高。
定义2区域纹理得分。反映区域的纹理丰富程度,利用区域的信息熵值来衡量。计算式如下:
(3)
其中,kp是区域中灰度值为p的像素所占比例。
3.2.2 区域灰度特征评分
笔者通过修改像素灰度值嵌入水印,如果将水印嵌入在灰度值接近于0或者255的区域,容易造成灰度值越界,导致水印无法嵌入。因此,灰度等级越适中的区域越适合作为水印嵌入区域,应获得较高的评分。
定义3区域灰度得分。通过度量区域中像素的灰度值,综合评估区域的灰度等级。计算式如下:
(4)
其中,pi,j表示区域中第i行、第j列像素的灰度值。
3.2.3 区域位置特征评分
图像传播过程中,靠近边沿的部分容易被修改或删除。因此越靠近中心的区域越适合嵌入水印,应当得到越高的分数。
定义4区域位置得分。根据区域与图像中心的距离,描述区域的位置特征。计算式如下:
(5)
其中,(U,V)是图像中心点的坐标。
为确保图像在受到缩放等攻击后,获取的水印嵌入区域仍与之前保持一致,文中利用与原始图像尺寸成比例的滑动窗口以一定的移动步长遍历原始图像及相应的边缘图像,分析每个窗口中的边缘得分、纹理得分、灰度值得分和位置得分,根据式(6)计算区域的特征综合得分Scoreu,v,保存窗口所在的位置信息,作为侯选位置。计算式如下:
Scoreu,v=αEu,v+βHu,v+γGu,v+δPu,v,
(6)
其中,α、β、γ、δ分别为区域边缘得分、纹理得分、灰度得分、位置得分的权重。相同不可见性前提下,边缘处的水印鲁棒性差。为尽可能避开边缘位置,边缘得分所占权重应当大一些。纹理、灰度都是图像本身的特性,能够更真实地描述区域的图像信息,而位置虽然与图像特性无关,但是其经受攻击后的稳定性更强,因此在区域综合评分中,为平衡不可见性与定位准确性,设置位置得分的相对权重与纹理和灰度的权重相同。由于每幅图像不同得分所占比重保持一致才具有可比性,综合以上分析,设置α= 0.4,β= 0.2,γ= 0.2,δ= 0.2。
运算结束后,将窗口向右或者向下滑动一个步长,直到处理完整个图像。 其中,滑动窗口与原始图像尺寸的比例记为a,滑动窗口的移动步长与窗口的大小成比例,该比例记为b。
将所有候选位置的特征综合得分按从大到小的顺序进行重新排列,并判断区域是否重叠。 如果两个区域发生重叠,嵌入的水印则会相互干扰,影响水印提取的准确性。所以,需要排除重叠区域中特征综合得分较低的区域,选择得分最高的d个非重叠区域作为水印嵌入区域。如果最终得到的区域数量小于d,则将所有保存的非重叠区域都作为水印嵌入区域。
文中在定位的嵌入区域中采用AVAS算法进行水印嵌入。 首先将图像分块,然后根据式(7)修改每个图像块的像素值,嵌入1位水印信息。
(7)
AVAS算法中图像块的像素总修改量由嵌入参数σx,y决定,而嵌入参数为固定值,意味着不同图像块中水印的嵌入强度相同。 由于人眼对不同图像内容的敏感程度有差异,相同的嵌入强度难以保证所有嵌入的水印都具有良好的不可见性。 为不影响图像质量,只能选取较小的嵌入参数来减小水印嵌入强度,但水印抵抗攻击的能力也随之降低。 为解决这一缺陷,笔者提出一种双重自适应水印嵌入方案,第一重粗粒度自适应方案根据图像块边缘像素数量自适应地调节嵌入强度σx,y,增大边缘块的嵌入强度以增强其鲁棒性;第二重细粒度自适应方案利用高斯窗自适应地调整边缘附近像素的修改量以达到平滑过渡的效果,获得更好的不可见性。
设置嵌入参数时,应充分考虑图像自身的特征和人眼的视觉特性。 由于边缘位置灰度值差异明显,根据视觉掩蔽效应,人眼对边缘灰度变化的敏感度较低,对于包含边缘的图像块,适当增大水印嵌入强度不会影响图像质量。 因此,文中利用这一特性设计一种自适应调参模型,根据图像块中的边缘像素数量自适应地调整嵌入参数,在保证水印不可见性的前提下尽可能提高水印的鲁棒性。
为建立嵌入参数和边缘像素数量间的函数关系,文中随机从数据集中选取20幅图像用于嵌入水印。 在每幅图像中定位两个嵌入区域后,将区域分成等大的10×10个图像块,并通过AVAS算法在每个图像块中嵌入一位水印,不同区域及不同图像中嵌入相同的水印,通过调整嵌入参数,使得所有图像块在嵌入水印前后的结构相似度(Structural SIMilarity,SSIM)保持一致。记录每个图像块的嵌入参数(σ),并按照式(8)在原始图像对应的边缘图像中统计各图像块的边缘像素数量(N),得到4 000组数据用于建模分析。
(8)
其中,numpi,j=255是在图像块的边缘图像中统计的边缘像素数量。
为验证两者之间的相互关系,将边缘像素数量作为自变量,嵌入参数作为因变量,通过式(9)计算两变量的相关系数r(N,σ)=0.994 2,根据运算结果可以断定嵌入参数和边缘像素数量间的线性相关程度很高。
(9)
为进一步确定两变量间的定量关系,文中利用线性回归的方法,通过最小二乘法逼近拟合数据,建立其函数关系,具体计算方式为
(10)
其中,s、t为常数。经过以上运算,嵌入参数与边缘像素数量间的函数关系描述为
σ=0.224 3N+1.522 8 。
(11)
由此,得到一个根据图像块中边缘像素数量自适应地调整水印嵌入参数的模型。这个调参模型是在嵌入水印前后图像具有相同SSIM值的前提下推导的,可以保证不同区域中的水印具有一致且良好的不可见性。
利用上述模型调节嵌入参数时,仍需考虑一个问题,图像遭受攻击后难以保证边缘像素数量保持不变。如果根据图像块中实际的边缘像素数量设置嵌入参数,无法确保图像被攻击前后的嵌入参数保持一致,容易造成水印提取错误。
(12)
综上,设置嵌入参数时,利用式(11)所示调参模型,根据图像块的固定边缘像素数量确定嵌入参数。保证非边缘块的嵌入强度较小,水印不易被察觉,同时边缘块的嵌入强度较大,其鲁棒性得以提升。
图像中不同像素与相邻像素间的相关性程度存在差异,导致不同像素对水印的承受能力有所不同。边缘像素附近的像素与相邻像素相似度较低,对它们进行修改不易引起人眼注意,因此,离边缘像素越近的像素可以承受越多的修改。相比之下,其他非边缘像素处相邻像素间相似度较高,导致在相同的视觉感知要求下,非边缘像素可以做出的修改远小于边缘像素附近的像素。基于此,为保证嵌入水印后图像的视觉质量,文中在得到图像块总修改量后,根据不同像素类型分配像素修改量,同时利用高斯窗自适应地调整边缘附近像素的修改量,从而利用边缘的掩蔽效应提升水印的不可见性。
4.2.1 计算图像块总修改量
在AVAS中,利用量化索引调制方法量化每个图像块的DC系数进行水印嵌入,量化嵌入的DC系数计算方式如下:
(13)
(14)
计算图像块中所有像素的像素总修改量g(σx,y,wx,y):
(15)
4.2.2 分配像素修改量
在空域中根据图像块划分及像素类型自适应地设置图像块中各像素的修改量ωx,y(i,j)。如果图像块为非边缘块,则将像素总修改量平均分摊到每个像素上;如果图像块为边缘块,则根据不同像素的修改量权重参数θx,y(i,j)将像素总修改量自适应地分配给不同像素。计算式如下:
(16)
其中,θx,y(i,j)为图像块对应的边缘图像经过高斯窗后得到的坐标为(i,j)的像素的自适应修改量权重参数。高斯滤波公式如下:
(17)
其中,σ为标准差。最后根据式(18)修改像素灰度值,获得嵌入水印后的图像。
(18)
综合以上讨论,在嵌入水印时,可利用双重自适应调参模型。首先,根据边缘像素数量和嵌入参数间的函数关系,自适应地调节水印的嵌入参数,适当增大边缘块的嵌入强度;其次,根据边缘块中不同像素的修改量权重在空域中自适应地调整像素修改量,让边缘像素附近像素承担较多的修改,既能提高边缘块中水印的鲁棒性,又能保证边缘块每个位置的水印都具有良好的不可见性。
结合嵌入区域的判定方法和双重自适应水印嵌入方案,提出了一套融合区域边缘特征的双重自适应水印算法,本节将对其嵌入和提取过程进行详细介绍。
图3展示了文中算法的嵌入流程。其详细步骤如下:
图3 水印嵌入算法
Step 1:边缘检测。按照2.1节所述边缘特征提取方法获得原始图像的边缘图像。
Step 2:进行综合评分,确定嵌入区域。首先利用滑窗遍历原始图像和边缘图像,根据式(2)计算区域边缘得分,根据式(3)、式(4)、式(5)计算区域纹理、灰度和位置得分;然后根据式(6)计算区域综合得分;最后将所有区域按照综合得分从高到低排序,选出前d个非重叠区域作为水印的嵌入区域。
Step 3:水印编码。将原始水印信息进行RS(Reed-Solomon)编码,并加入41位标记信息,得到最终的长度为m的二进制水印序列。
Step 4:将嵌入区域分成m块,在每个图像块中嵌入1位水印。根据每个图像块的边缘像素数量,利用式(12)将图像块划分为边缘块和非边缘块,并利用式(11)所示调参模型计算不同图像块的嵌入强度参数σx,y。
Step 5:根据图像块的嵌入强度参数σx,y和图像块中待嵌入的水印信息位wx,y,利用式(15)计算图像块的总修改量g(σx,y,wx,y),再根据等式(16)得到同一图像块中不同像素的修改量ωx,y(i,j)。
Step 6:利用式(18)在每个图像块中嵌入1位水印,得到含水印图像。
图4展示了文中算法的提取流程。其详细步骤如下:
图4 水印提取算法
Step 1:检测图像边缘,定位嵌入区域。方法与嵌入算法中的Step 1和Step 2一致,得到d个嵌入区域。
Step 2:将嵌入区域分成m块,计算不同图像块的嵌入强度参数σx,y。方法与嵌入算法中的Step 4一致。
Step 3:首先根据Step 2得到的嵌入强度参数σx,y计算量化步长,根据式(13)提取图像块的DC系数RDC′x,y,然后利用式(19)提取该图像块的水印信息位w′x,y。其中,floor()为向下取整函数。
(19)
Step 4:根据提取到的水印计算标记位的正确率,当标记位正确率超过80%时,用RS解码器解码其余水印信息位,得到原始水印信息。
为验证算法的实用性,本节将从不可见性、鲁棒性和定位准确性三个方面对文中算法进行评估,并与其它同类算法进行比较,证明文中算法的优越性能。
文中采用的实验数据集包含100幅不同尺寸的图像,其中包含多种图像类型且每种类型的图像包含多种自然场景,能够真实地体现文中算法的有效性。
文中将AVAS[12]算法、DQAQT算法[10]和SSR算法[7]作为对比算法。AVAS和DQAQT是全局自适应水印算法,用于对比不可见性和鲁棒性。SSR是一个使用SIFT确定嵌入区域的局部自适应水印算法,主要对比水印提取的准确率和嵌入区域召回率。实验中代表图像作品版权的字符串为“abcd1234”,AVAS中把该字符串编码为25×25的QR(Quick Response)码,将其中的361位作为水印,在提取端利用Zbar解码器对QR码进行扫描识别;DQAQT中直接将字符串转换成二进制序列作为水印,重复5遍,在提取端通过逐位统计的方式得到最终的字符串;文中算法将该字符串编码作为纠错容量为16的RS码,并转换为二进制。DQAQT算法和文中算法均加入了长度为41的标记信息(全为0/1),得到最终长度为361的二进制序列并将其作为水印。
确定嵌入区域的阶段,滑动窗口与原始图像尺寸的比例a设为1/4,移动步长与滑动窗口大小的比例b设为1/4,最终嵌入区域的数量d设为4,通过水印的重复嵌入增强抵抗攻击的能力,且保证具有较大的水印嵌入容量。实现自适应嵌入参数时,取阈值Th的值为25。
6.2.1 不可见性评估
为得到符合人类主观感知的客观评价结果,文中采用评价指标SSIM评估算法的不可见性。SSIM通过计算两幅图像的相似度来衡量图像质量。其定义如下:
(20)
利用文中算法和AVAS、DQAQT两种对比算法分别在数据集中的100幅图像中嵌入水印,AVAS中嵌入参数设置为3.5,DQAQT中设置PSNR(Peak Signal to Noise Ratio)值为42 dB,保证对比实验基本一致的水印嵌入强度,计算得到每幅含水印图像的SSIM值如图5所示。
图5 文中图像的SSIM值
从实验结果可以看出,文中算法的SSIM值高于对比算法,说明文中算法的不可见性优于其它两种算法。这是因为AVAS中所有位置的水印嵌入强度相同,而非边缘块隐藏水印的能力远不如边缘块,导致嵌入在非边缘块中的水印出现明显的块效应,拉低了整个图像的SSIM值;DQAQT中将水印的嵌入强度均摊到每个像素上,由于边缘像素和非边缘像素对水印的承受能力不同,难以保证水印无法被感知。而文中选取嵌入区域时融合纹理特征,并在嵌入水印时对非边缘块中的水印设置较小的嵌入强度,对非边缘像素做尽可能小的修改,最大限度地提高水印的不可见性,获得更高的SSIM值。图6(a)、图6(b)分别为原始图像和含水印图像,由图可知,两者的视觉效果基本一致,表明文中算法具有较好的不可见性。
(a) 原始图像
(b) 含水印图像
6.2.2 鲁棒性评估
水印的鲁棒性一般用错误比特率(Bit Error Ratio,BER)来衡量。BER通过计算提取的水印中错误比特数的比例来客观地表现水印的鲁棒性。其范围是0~1,值越小,意味着水印提取的准确率越高,代表鲁棒性越高;反之亦然。其计算式如下:
(21)
其中,Nerr为提取的水印中错误的比特数,Nlen为水印的总比特数。
文中分别对SSR、AVAS、DQAQT以及文中算法嵌入水印后的图像进行不同类型不同强度的攻击,再提取水印计算BER值来评估水印的鲁棒性。
(1) 信号处理攻击
信号处理攻击实验结果如表1所示。文中算法对常见的信号处理攻击均表现出良好的抵抗能力。其中,文中算法和AVAS抵抗叠加噪声和JPEG压缩的能力均明显优于DQAQT和SSR。因为叠加噪声和压缩攻击都是修改高频系数,而文中算法和AVAS将水印嵌入在DC系数中,DC系数是低频系数,因此水印基本不会受影响;对于均值滤波攻击,文中算法与DQAQT的抵抗能力相当,由于滤波处理会改变像素灰度值,尤其对边缘像素的改变更显著,会对文中水印的鲁棒性造成一定的影响。相比于AVAS和SSR,文中算法提取水印的BER均较低,这归功于文中算法考虑了区域特征对水印鲁棒性的影响,并将水印重复嵌入到多个稳定的局部区域中,嵌入过程中又根据边缘像素数量自适应地调节水印嵌入参数,增大水印嵌入强度,增强其抵抗攻击的能力。此外,文中在生成水印时借助RS码编码策略,利用RS码的容错性在一定程度上进一步提高了水印的鲁棒性。
表1 信号处理攻击后不同算法提取水印的BER值
(2) 几何攻击
几何攻击实验结果如表2所示。DQAQT算法和AVAS算法难以抵抗剪切、遮挡类攻击,原因在于它们将水印嵌入在完整的图像中,部分图像被修改或删除都将造成水印的丢失,而文中算法将水印重复嵌入到多个局部区域中,即使某些区域被剪切或遮挡,仍存在某些不受影响的区域,从而可以从这些区域中提取出正确的水印。SSR算法难以抵抗图像尺寸变化的攻击,原因在于SSR的嵌入区域使用固定尺寸,当图像尺寸发生变化时,原先的嵌入区域的尺寸发生变化,这必然导致水印提取失败,而文中利用与图像尺寸成比例的滑动窗口定位嵌入区域,可以保证图像尺寸发生变化之后,定位的区域与之前保持一致,同时文中算法的量化步长与图像尺寸成一定比例,进一步增强了抵抗图像尺寸变化类攻击的能力。综上分析,文中算法抵抗各种几何攻击的能力均优于其他3种算法。
表2 几何攻击后不同算法提取水印的BER值
6.2.3 定位准确性评估
SSR算法利用SIFT确定多个固定尺寸的非重叠区域作为嵌入区域。文中利用与原始图像尺寸成比例的滑窗,综合区域特征定位多个非重叠嵌入区域。因为每个嵌入区域都嵌入相同的水印信息,所以需要保证至少能够正确定位一个嵌入区域。因此,将召回率定义为可成功召回一个以上嵌入区域的图像占所有图像的比例,并使用召回率作为定位准确性的衡量指标,不同攻击后定位准确性结果如表3所示。
表3 攻击后不同算法的召回率
实验结果表明,SSR的嵌入区域定位方法难以抵抗图像尺寸变化的几何攻击,而文中算法能够很好地抵抗此类攻击,在上节已说明原因。SSR算法抵抗信号处理攻击的能力略逊于文中算法,这是因为SSR算法嵌入区域的定位与特征点的稳定性紧密相关,图像被攻击前后特征点可能发生变化,导致定位的嵌入区域不一致,降低定位准确性。文中采用的定位方法在抵抗椒盐噪声上稍有逊色,因为椒盐噪声会使总评分稍有波动,影响排序结果,导致嵌入时定位的区域,在提取时评分排在了选择范围之外。
笔者提出一种融合区域边缘特征的双重自适应图像水印算法。算法利用滑窗对嵌入区域进行判定,综合考虑边缘、纹理、灰度、位置等特性,选择出含边缘较少且隐藏性好的多个非重叠局部区域作为水印的嵌入区域。嵌入时,采用双重自适应嵌入方案:第一重粗粒度自适应方案,根据图像块边缘像素数量自适应地调整水印嵌入强度,增强边缘块的鲁棒性;第二重细粒度自适应方案,利用高斯窗自适应地调整边缘块中不同像素的修改量,在增强水印鲁棒性的同时提高嵌入水印的不可见性。实验证明,笔者提出的算法能够抵抗多种类型的信号处理攻击和几何攻击,相比于已有自适应图像水印算法有更好的不可见性及更强的鲁棒性。算法的不足之处是难以抵抗改变图像亮度的攻击,原因在于该算法基于量化DC系数嵌入水印,相当于在空域中直接修改像素灰度值来嵌入水印,改变图像的亮度会导致灰度值的大幅改动,引起DC系数大幅改变,从而造成嵌入在图像中的水印被破坏而无法提取。在未来的研究工作中将针对这一问题对水印算法作进一步的优化。