王伟,等:基于空域和混沌映射的数字水印嵌入算法4期
基于空域和混沌映射的数字水印嵌入算法王伟朱理毛旺农1
(湖南大学软件学院,长沙410082;E-mail:xxyywwywz@163.com;湖南大学北校区网络中心,长沙410079)
摘要提出一种LSB改进算法,利用混沌序列对水印预处理,而后利用固定归一化相关嵌入图像数据低位,从而改进了传统LSB算法稳健性差的缺点。实验结果表明,采用该算法的水印在无原始图像的情况下,通过密钥能够清晰地检测到水印的存在,对常见的图像处理有较好的鲁棒性。关键词空域混沌鲁棒性数字水印图像处理中图法分类号TP309;文献标识码A
2005年10月25日收到
第6卷第4期2006年2月1671-1815(2006)04-0383-04科学技术与工程ScienceTechnologyandEngineeringVol.6No.4Feb.2006
2006Sci.Tech.Engng.c
近年来,图像数字水印技术的研究取得了很大进展,陆续提出了诸如空域、变换域、压缩域、基于统计学、基于生理模型等多种数字水印算法[1—3],有一些水印算法[4]已经具备了较好的鲁棒性,但是这
些算法有的只能给出“有”“无”水印的回答,而无法对嵌入的所有水印比特进行准确提取。典型数字水印的空域算法是将信息嵌入到图像点中最不重要的像素位上,再通过记录提取这些信息来检测水印,该种方法具有算法简单、速度快、容易实现等特性,已受到人们高度重视[5,6]。本文利用混沌随机性好的特性,借鉴了文献[5]中的一些思想,针对LSB算法对于压缩、滤波及旋转等图像处理稳健性差的缺点,改进了传统的LSB算法,如图1所示。实验结果表明,该水印方案安全可靠、不可见性好、对常见的图像处理有较好的鲁棒性、易于实现。1水印信息预处理混沌区的数据有两个特性:迭代不重复性和初值敏感性。当选定适当系数使方程进入混沌状态时,方程将进行无限不循环迭代,因此不会出现重复的迭代值。任何人如果不知道其初值都无法预测下一个迭代值,这种迭代的结果可以用来产生随机序列。考虑一维离散混沌映射f:U→U,U"R,xn+1=f(xn,λ),xn∈U,λ∈R(1)其中n=1,2,…表示迭代次数,λ是控制系统混沌行为的参数。先由二值水印图像获得水印信号W,然后利用行扫描将其映射为一维向量W1,W1={W1(i)|W1(i)∈
{0,1},0≤i<m×n},m×n为水印图像大小。由式(1)生成的实数混沌序列二值化后可得{0,1}二值混沌序列,然后利用密钥K1可得十进制混沌伪随机序列P,
P={P(i)|P(i)∈{0,1},0≤i<m×n}。最后用生成的序列P对W1进行混沌调制,得到待嵌入水印信号Wt,W
t
(i)=W1(i)’b(i)(0≤i<m×n),’在这里表示异或运
算。
2水印嵌入度量鲁棒性最简单的方法就是假设具有高检
图1水印嵌入和提取框图科学技术与工程6卷
测值的水印比低检测值的水印鲁棒性更好,这样,检测统计量本身就成了鲁棒性的度量尺度。这里的解决方案是用一个固定归一化相关算法来进行调整,而不是调整线性相关。对每一幅作品,通过直方图处理,将每个像素值由8比特压缩为7比特,将所有像素值的第8个比特作为嵌入区域,在嵌入区域内找到与水印归一化相关期望值最接近的点。嵌入区域是一个以参考向量Wr为中心的锥体表面部分,因此,只需要找出锥体上与给定点v0距离最近的点就可以了。嵌入的操作说明如图2。很明显这些点位于同时包含wr和v0的平面内,通过Gram-Schmidt规格化正交,为这个平面寻找两个相互垂直的坐标轴,从而把这个问题转换成二维问题。X=WrWr(2)Y=v0-X(v0X)v0-X(v0X)(3)平面上每个点都能用坐标值x和y表示为xX+yY,X轴与参考时间向量重合。v0的坐标是(yv0必须是正值):xv0=v0X(4)yv0=v0Y(5)因为yv0为正值,所以最近的点应该在上半平面的线上,这条线用向量(xt,yt)表示,其中x
t=cosθ,yt=
sinθ,而角θ是嵌入区域的锥形内角的半角,由于θ=arccos(tnc),tnc是期望的归一化相关性,于是有:
xt=tnc(6)
yt=1-t2
nc!
(7)
算法步骤如下:Step1:用经过散列处理的混沌序列(其混沌初值作为密钥K1)置乱水印W;Step2:给定一个混沌初值(密钥K2)生成混沌序列{P
r|r=1,2
,…}其个数为水印大小;
Step3:在通过xt,yt的直线上,找到离v0最近的点
vw(在Wr的检测区域内):
xvw=xt(xtxvw+ytyv0
)(8)
yvw=yt(xtxvw+ytyv0
)(9)
Step4:取Pr对计算出的新向量vw嵌入水印,得到
水印图像Iw。
3水印提取水印提取过程中所用密钥K1和K2与嵌入过程相同,具体步骤如下:Step1:给定密钥K2在图像Iw中找到对应的向量
vw,得到水印信息Wt;
Step2:再由密钥K1生成二值混沌序列P对W1解
调,即:W1′(t)=Wt(t)"P(t),t=0,1,2,…,m×n-1;
Step3:最后按行扫描顺序将W1′
映射成二维矩阵
W′,W′={W′(i,j),0≤i<m,0≤j<n},W′(i,j)∈{0,1},W′即是恢复出的水印信号;Step4:采用如下的标准衡量二值水印的失真率(其中W表示W的逻辑非运算):
ws=∑i=1i=m∑j=1
j=nW'(i,j)"W(i,j)
m×n4实验结果本文用大小为256×256的256灰度Lena图像用MATLAB进行水印嵌入和提取的仿真实验,采用大小为64×64视觉可辨认的二值图像作为数字水印,嵌入水印后的图像如图3所示,结果表明该方法有很好的不可见性。
图2固定归一化的嵌入方法
384王伟,等:基于空域和混沌映射的数字水印嵌入算法4期
在各种常见的图像处理后仍能较好地提取水印,图4(a-f)分别是原始水印、经过图像剪切、压缩到原图像50%、放大2倍、高斯滤波以及旋转45°后的
水印图像:
图5分别是原始水印和传统的LSB算法通过图像剪切、压缩、放大2倍、高斯滤波及旋转等一般的图像处理后提取的水印,图5(a—f)。
5结论一个安全的水印系统应满足使非法用户不易
破坏。与信息加密技术一样,数字水印系统也往往使用密钥来加强水印的安全性。传统的LSB算法由于是用水印信息代替最低有效位,因此对信号处理的抵抗力差,对含水印图像进行简单的滤波处理就无法正确地提取水印。在本文的水印方案中提取水印信息时,不需要原始载体图像,能很好地实现盲提取;从图4与图5的对比来看,该算法利用混沌调制水印信号保证嵌入水印的隐蔽性,由于改变的是图像的最低有效位,从而使得水印的不可见性较好;而通过归一化相关期望值找出嵌入点,使得在保持图像的感知失真位于指定范围内,具有较好的鲁棒性;同时具备了操作简便易行,嵌入信息量大的优点。
参考文献1CoxIJ,MillerMI.Thefirst50yearsofelectronicwatermarking,JournalofAppliedSignalProcessing,2002;(2):126—1322DarmstaedterV,DelaigleJF,QuisquaterJJ,MacqB.Lowcostspatialwatermarking.Computers&Graphics,1998;22(4):417—4243HsuCT,WuJL.Hiddendigitalwatermarksinimages.IEEE
TransonImageProcessing,1999;8(1):58—684LinPhenlan.Robusttransparentimagewatermarkingsystemwithspatialmechanisms.TheJournalofSystemandSoftware,2000;(50):107—116
5YenHuicheng.Watermarkembeddedinpermuteddomain,ElectronicsLetter,2001;37(2):80—816周利军,周源华,支峥.基于m序列的多重图像水印.上海交通大学学报,2001;35(9):809—813
图3经过图像处理后的水印图像图4经过图像处理后的水印
图5传统LSB算法经图像处理后的水印
(下转第393页)
385