摘要:本文提出了一个利用块分类的dct域自适应扩频图像水印算法。嵌人的水印是一个可视二值图像,用两个不相关的伪随机序列分别代表水印信息中的0和1,从而达到扩频的目的。将扩频后的水印信号,嵌入到分块dct域的中低频段系数中的过程中,充分考虑到了局部图像的复杂度,能够自适应地调整嵌入强度,提取水印信号无需使用原始图像。仿真实验表明:图像经过jpeg有损压缩、低通与中值滤波和剪切等图像处理操作后仍是稳健的。
关键词:分块dct扩频hvs图像水印算法
1引言数字水印技术是指在宿主数字媒体(图像、声音、视频)等中嵌入一定量的数字信息,例如作者的电子签名、日期、公司图标等,用以证明作品的所有权,并可作为起诉非法侵权的证据,从而保护作品原创者的合法利益。数字水印技术不同于传统的数据加密,其目的不是限制对数据的存取,而是保证嵌入的数据不可侵犯和可恢复。其基本要求有:透明性,是指在宿主数字媒体中嵌入一定量的数字水印信息后,不会引起原媒体明显的降质现象,隐藏数据不易察觉,即无法人为地看见或听见;鲁棒性,是指数字水印必须对施加于宿主媒体的各种变换操作(如有损压缩、滤波和剪切等)具有免疫性,即水印信息不能因为施加于宿主媒体的某种变换操作而丢失;安全性,是指数字水印能够抵挡各种蓄意的攻击,很难被他人所复制和伪造,只要其不知道控制该算法的密钥。2已有的基于dct域的图像水印算法分析较早利用分块dct的水印技术是koch.e、zhao.j的文章[1],他们的水印方案是用一个密钥随机的选择图像的一些分块,在频域的中频上稍稍改变一个三元组来隐藏二进制序列信息。这种方法对有损压缩和低通滤波是稳健的。cox等[2]提出了著名的基于图像全局变换的数字水印技术,该方案对整个图像作离散余弦变换(dct),然后将水印嵌入到预先设定的低频分量中,水印信号由高斯分布的实数序列组成,算法不仅在视觉上具有不可察觉性,而且稳健性也非常好,可经受jpeg压缩、滤波、剪切等攻击。barni等[3]提出一种利用hvs掩蔽特性的基于dct的水印算法,在水印嵌入阶段,对的图像进行的dct变换,对dct系数按zig-zag扫描重新排列为一维向量,留下向量中开始的l个系数不作修改,对第l个系数后面的m个系数进行修改以嵌入水印。黄继武等人[4]在对dct系数dc和ac分量的定性和定量分析的基础上,指出dc分量比ac分量更适合嵌入水印,嵌入dc分量的水印具有更好的稳健性,并提出了一个利用dc分量的自适应算法。以上算法至少有以下两个缺点:①在水印提取过程中使用了原始图像,这一点在实时的网络环境中很难做到;②只能给出水印存在有无的回答,在许多应用场合要求水印是有意义的,如一个二维图像(商标、印鉴等)。显然,这种有意义的水印所包含的信息量、可感知性、可辩识性及保密性,是无意义的伪随机噪声所不能比拟的。本文在研究了前人算法的基础上,提出了一个利用块分类的dct域自适应扩频图像水印算法,嵌入的水印是一个可视二值图像。用两个不相关的伪随机序列分别代表水印信息中的0和1,从而达到扩频的目的,将扩频后的水印信号,嵌入到分块dct域的中低频段系数中。在嵌人过程中充分考虑到了局部图像的复杂度,能够自适应地调整嵌人强度,水印检测算法不需要原始图像,实现了盲检测。仿真实验表明:图像经过jpeg有损压缩、低通与中值滤波、剪切等图像处理操作后仍是稳健的。3数字水印嵌入算法具体步骤本文算法基本框图如图1所示,以下对各步骤作详细介绍。图1水印嵌入算法框图
3.1原始图像分块设原始图像为f(x,y),首先将f(x,y)分割为互不覆盖的8×8子块,记为bm={fm(i,j),0≤m=0,1,...,m-1≤7}m=0,1,...,m-1,对bm进行dct变换,得到:==dct{,0≤≤7}m=0,1,...,m-1(1)3.2基于视觉掩蔽特性的块分类本文借鉴黄继武等[5]提出的算法,水印的嵌入过程可以看成在一个强背景(原始图像)上叠加一个弱信号(数字水印),只要信号低于hvs的对比度门限,视觉系统就无法感觉到信号的存在。根据hvs的对比度特性,该门限受背景照度,背景纹理复杂性和信号频率的影响,一般说来,背景越亮,纹理越复杂,门限就越高。即可以嵌入更高强度的水印信号,根据图像的局部纹理复杂性,尽可能提高嵌入水印的强度,这是提高水印稳健性的有效办法。为此,把图像分为三类,以便叠加不同强度的水印分量。第1类(r1)平均灰度较低(暗),且灰度变化比较平滑,hvs对其中像素值的改变较为敏感,叠加的水印分量的强度最弱;第3类(r3)平均灰度较高,且纹理复杂,hvs对其中像素值的改变敏感性最弱,叠加的水印分量的强度最强;余下的为第2类(r2)。设背景照度为i,根据weber定律,在均匀背景下,人眼刚好可以识别的物体照度为,满足:。文中定义了如下衡量块均匀度的参数:(2)其中为的灰度均值。上式的物理意义是:决定物体照度可见度的应该是对比度而非照度绝对差,加权系数作为修正因子,根据下式确定:=(3),当较小时,被认为比较均匀;反之,较大时,被认为包含纹理和边缘。文献中提到利用作为块均匀度的测量标准,其结果优于利用块方差作为标准的情况。块分类器可描述如下:如果且,则。如果且,则。若上述两种情况均不满足,则,其中t1、t4为门限,可由实验确定。3.3水印的预处理设二值水印表示为:,,很明显,如果不打乱水印的空域关系,直接把可视的二值水印加到原始图像的中频段,那么一个简单的图像剪切操作就会把水印破坏掉,因此,在嵌入水印之前,首先对其进行置乱处理,本文采用一个时间复杂度较低的随机算法来打乱水印的空间顺序。}(4)其中,是原始像素点经过随机排序后得到的乱序水印像素点。图2水印随机排序示意图首先,利用密钥k1产生0到的随机数作为原始水印每个像素点的标号,然后利用桶分类排序算法将这些随机标号按由小到大排序,随机标号的顺序排序使得标号所标识的原始水印像素点随机排序,这种方法的时间复杂度为,以32×32二值水印为例,排序过程由图2所示。3.4水印扩频扩频调制具有抗干扰、低功率谱密度、保密性好等许多优点,它是利用伪随机序列对被传输信号进行频谱扩展,使之占据的带宽远远超过所必需的最小带宽,其本质是利用带宽换取信噪比。在水印算法中,它是利用水印信道的容量换取算法稳健性的改善。本文提出采用两个不相关的伪随机序列来代表二值水印信息中的0和1,从而实现频谱扩展的目的,首先利用密钥k2产生一个种子,在此种子下,生成两个不相关的伪随机序列:pn_zero,pn_one。,(5)其中l由8×8dct系数矩阵的中频段长度决定,然后根据二值水印信息的0或1,分别嵌入pn_zero或pn_one。本文采用的扩频方案具有简单易实现和稳健性好的优点。3.5水印嵌入为了在鲁棒性和透明性之间进行折中,本文将二值水印经扩频后的伪随机序列嵌入到各图像块的中低频段系数中。实验中采用的二值图像是16×16的字符图像,原始图像是256×256的lena图像。原始图像经过8×8分块后,有1024个子块,而二值图像的总长度为256,因此把二值图像周期扩展为长度为1024的向量,然后再嵌入到原始图像,使水印具有更好的抵抗剪切攻击能力。首先对b`m(m=0,1,...,m-1)的系数按zig-zag顺序读取(如图3(a)),本文对水印的嵌入位置和伪随机序列的长度进行了大量的实验,发现在图3(b)为1的位置嵌入伪随机序列,水印具有较好的鲁棒性和透明性。将按zig-zag顺序读取的每一分块系数重新排列为一维向量,并取出系数中第l 1到l n的中低频段部分,得:,根据图3知l=14,n=13,伪随机序列由n个实数随机数组成:按下式将伪随机序列嵌入到中:当message(m)=0,(6)当message(m)=1,(7)(a)zig-zag读取顺序(b)水印嵌入位置图3zig-zag读取顺序及水印嵌入位置message为二值水印行扫描重复4次后排成的一维向量。它的长度和原图像块个数均为1024,为拉伸因子,根据块的类别而变,可由实验确定,对应r1、r2,本文根据实验确定分别为6、8、12。将修改系数后的一维向量再逆zig-zag扫描变换为二维矩阵,然后分块做idct变换,即得到嵌有水印的图像。参考文献[1]koche,zhaoj.towardsrobustandhiddenimagecopyrightlabelling,in:procofieeeworkshoponnonlinearsignalprocessing,1995,452~455.[2]coxij,kilianj,leightont.securespreadspectrumwatermarkingformultimedia.ieeetransactiononlmageprocessing,1997,6(12):1673-1687[3]barnimetal.adct-domainsystemforrobustimagewatermarking,signalprocessing,1998,66:352~372[4]黄继武,shiyq.程卫东.dct域图像水印:嵌入对策和算法.电子学报,2000,28(4):386~389[5]黄继武,shiyq.一种自适应图像水印算法.自动化学报,1999,25(4):476~482[6]汪春生,程义民,王以孝.一种基于块分类的自适应数字水印算法[j].计算机工程与应用,2002,38(21):105~109[7]王建折,姜星明.一种基于dct变换的数字水印技术[j].计算机工程与应用,2002,38(6):105~105[8]taob,dickinsonb.adaptivewatermarkinginthedctdomain.internationalconf.onaccoustics,speech,andsignalprocessing(icassp),1997,4:2985~2988关键词:分块dct;扩频;hvs4数字水印提取算法具体步骤水印提取框图如图4所示,水印检测不需要原始图像。图4水印检测算法4.1含水印图像分块设嵌入水印的图像为,首先将分割为互不覆盖的8×8子块,记为,对进行dct变换,得到:==dct{,0≤≤7}(8)4.2解扩对各8×8dct分块系数矩阵按zig-zag读取顺序排列为一维向量,提取每一列向量l 1到l n的系数,设该系数组成的一维向量为:,将和嵌入过程中的两伪随机序列分别作相关运算,从而判决嵌入的原始水印信息是0或1。设:sequence_zero(m)=corr2(pn_zero,),sequence_one(m)=corr2(pn_one,)则:ifsequence_zero(m)>sequence_one(m)message(m)=0;elsemessage(m)=1;对每一子图像块进行相关运算,就可把置乱水印的一维向量message提取出来。4.3水印反置乱原始水印在嵌入前经过了置乱处理,因此须对提取出的水印message进行反置乱。首先根据密钥k1产生0到的随机数,该随机数即为message向量中每个像素点的标号,按照正常顺序重新排列message向量,就可还原出原始水印的一维向量,因为水印嵌入过程中是重复4次嵌入的,因此把该一维向量分为4段,运用多数原则提取原始水印,再将原始水印逆变换为二维矩阵,即恢复出二值水印。4.4水印的检测与评价本文是将视觉上可直观认知的二值水印作为水印,所以人眼的主观评价可以作为水印抽取的一个评价标准,除此之外,也可从理论上定义归一化相关系数作为另一个评价水印抽取算法的客观标准,设初始水印为,抽取水印为,则:(9)相关系数在0、1之间,其值越大,水印鲁棒性越好。如果该相关系数超过某一阈值,就判定图像中存在此二值数字水印图像(阈值由用户根据数字水印的具体应用背景而确定),本文阈值选为0.5。5实验结果本文的实验结果是基于matlab6.5仿真得到的,图5给出的是二值水印嵌入与提取的实例。其中256×256的标准lena图像作为原始图像,16×16的二值字符图像作为水印。(a)原始图像(b)嵌入水印后的图像psnr=35.761(c)初始水印(d)乱序水印(e)抽取水印ρ=1图5算法水印加入与抽取实例嵌入水印的图像质量的客观评价采用峰值信噪比psnr来度量,水印检测结果的客观评价采用相关系数来衡量。从图5中可看出,水印嵌入原始图像后,具有良好的不可见性,抽取水印的相关系数为1。为验证算法的稳健性,我们对含水印图像进行了一系列攻击实验。5.1剪切攻击在图像处理中,一个图像不重要的部分经常被剪切掉,我们从不同角度对图像进行了剪切实验。图6是各种不同角度的剪切图像及提取出来的水印图像,由实验结果可看出,水印抵抗剪切的能力非常强。 (a)psnr=9.2218(c)psnr=9.8892(e)psnr=7.9505(g)psnr=9.9313(b)ρ=0.98198(d)ρ=0.99475(f)ρ=0.99475(h)ρ=0.99736图6剪切图像及提取出的水印5.2jpeg压缩将嵌入水印的图像经过品质因子为70%、60、50%、40%、30%的jpeg压缩,由图7可以看出,本文算法具有较强的抵抗jpeg压缩能力,在品质因子达到30%时,水印图像才变得模糊,但这时原始图像也破坏严重。(a)quality70(b)quality60(c)quality50(d)quality40(e)quality30ρ=1ρ=1ρ=0.9868ρ=0.91149ρ=0.77918图7jpeg压缩后提取的水印5.3加噪加噪对水印的影响最大,图8(a)是对含水印的图像加入均值为0,方差为0.005的高斯噪声,(c)图是对应(a)图提取出的水印;(b)图是加入噪声强度为0.04的椒盐噪声,(d)图是对应(b)图提取出的水印。(a)高斯噪声图像(b)椒盐噪声图像psnr=22.303psnr=18.641(c)ρ=0.9867(d)ρ=0.94501图8加噪图像及提取的水印(a)中值滤波(3×3)(c)均值滤波(3×3)psnr=30,114psnr=27.636(b)ρ=0.95403(d)ρ=0.90567图9滤波图像及提取的水印5.4滤波攻击图9(a)是对嵌入水印的图像进行中值滤波(3×3),(b)图是恢复出的水印;(c)图是对嵌入水印的图像进行均值滤波(3×3),(d)图是恢复出的水印。5.5锐化锐化对水印的影响比较大,当锐化进行到一定程度时会对水印产生破坏,图10是用高通掩模h=〔0–10;-15–1;0–10〕对图像进行卷积得到的的图像,此时水印仍可以完整地提取出来。6结论本文提出的算法具有以下特点:①所讨论的方法是将一幅二值图像作为水印嵌入到原始宿主图像中,这样水印比起传统方法所处理的序列码具有丰富的信息量和特定的标识性;原始水印经伪随机排序置乱,伪随机数由密钥决定,增加了水印的保密性。②扩频方案是用两个不相关的伪随机序列分别代表水印信息中的0和1,然后重复4次嵌入到原始图像中,因此具有较强的抗剪切、jpeg压缩等攻击的能力。③在嵌人过程中充分考虑到了局部图像的复杂度,能够自适应地调整嵌人强度,使嵌入水印后的图像保持了较好的品质。④水印的嵌入位置经过大量实验选择在分块dct域的中低频段,能在鲁棒性和透明性之间得到较好的协调。⑤水印检测不需要原始图像,实现了盲检测,具有实用价值。本文算法没有抵抗旋转攻击的能力,并且嵌入的信息量不大,在今后的研究中,作者将对此作进一步的研究。
来源:找论文网