信 息 隐 藏 技 术 与 应 用 任延珍 副教授 2012.9
第四章 基于混沌特性的小波数字水印算法C-SVD
本章学习目标 了解小波相关知识及应用; 掌握基于混沌特性的小波数字水印算法C-SVD; 了解声音的数字水印嵌入方法; 掌握数字水印检测方法。
本章内容 基础知识 小波分解 SVD W-SVD水印方法 C-SVD水印方法
4.1.1小波分析 小波分析, wavelet analysis 定义:运用傅里叶(Fourier)变换的局部化思想,进行时空序列分析的一种数学方法。 离散小波变换:DWT(Digital Wavelet Transaction)
4.1.1小波分析 小波分析, wavelet analysis 小波(Wavelet),顾名思义,“小波”就是小的波形。 所谓“小”是指它具有衰减性; 而称之为“波”则是指它的波动性,其振幅正负相间的震荡形式。
4.1.1小波分析 小波分析, wavelet analysis 与Fourier变换相比,小波变换是时间(空间)频率的局部化分析。 它通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分。能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节。 成为继Fourier变换以来在科学方法上的重大突破。有人把小波变换称为“数学显微镜”
4.1.1小波分析 应用领域 数学领域的许多学科 信号分析、图像处理; 量子力学、理论物理; 军事电子对抗与武器的智能化; 计算机分类与识别; 音乐与语言的人工合成; 医学成像与诊断; 地震勘探数据处理; 大型机械的故障诊断等方面
4.1.2小波分析对信号的处理 (1) 一维小波变换 (2) 二维小波变换
一维小波变换
一维小波变换
一维小波变换 低频分量 高频分量 信号重构 多次小波分解——》一个低频分量(主要信息),多个高频分量(噪声) 拥有原始信号的绝大部分能量,是信号的主体部分 近似分量 高频分量 具有较小的能量,是原信号的细节信息 细节分量 信号重构 多次小波分解——》一个低频分量(主要信息),多个高频分量(噪声)
4.1.2小波分析对信号的处理 (1) 一维小波变换 (2) 二维小波变换
二维小波变换 此时的输入信号变成x[m,n],首先对n方向作高通、 低通以及降频的处理,接着对v1,L[m,n]与v1,H[m,n]延著m方向作高低通及降频动作
二维小波变换
二维小波变换 一级分解:近似部分(LL),水平方向细节部分(HL),垂直方向细节部分(LH),对角线方向细节部分(HH) HL1 LH1 自从1986年以来,小波分析的理论、方法与应用的研究一直方兴未艾。 20世纪工人的最辉煌的科学成就之一。 离散小波变换是一种局部的变换。 具有多尺度分析的能力。 JPEG2000和MPEG7都采用了小波变换。 利用小波变换吧原始图像分解为多频段的图像,能适应人眼的视觉特性且是的水印的嵌入和检测可分多个层次进行。 小波变换域睡姿水印方法兼具时空域方法和DCT变换域方法的优点。
图像一级分解及综合 h g 2 2 h g
二维小波变换
演示 Lena图像的一级小波分解
演示 二级小波分解
原始图像 2DWT 结果 3重小波分解
本章内容 基础知识 小波分解 SVD W-SVD水印方法 C-SVD水印方法
SVD (Singular Value Decomposition) 奇异值分解 是线性代数中一种重要的矩阵分解, 是矩阵分析中正规矩阵酉对角化的推广 在信号处理、统计学等领域有重要应用
SVD (Singular Value Decomposition) 奇异值分解 对于任意M×N矩阵A,都可以写成A=UΣVT 其中U和V分别是M×M和N×N的正交矩阵 Σ是M×N的对角矩阵, Σ =diag(σ1,σ2,……,σr),σi>0 (i=1,…,r),r=rank(A) 这种变换就称矩阵SVD变换。 U和V中分别称作A的奇异向量 Σ是A的奇异值
SVD 的matlab实现 在MATLAB中,SVD变换通过函数svd完成 U矩阵(正交矩阵)
SVD 的matlab实现 在MATLAB中,SVD变换通过函数svd完成 V矩阵(正交矩阵)
SVD 的matlab实现 在MATLAB中,SVD变换通过函数svd完成 Σ 矩阵(对角矩阵)
本章内容 基础知识 小波分解 SVD W-SVD水印方法 C-SVD水印方法
4.2.1 小波SVD(W-SVD)数字水印算法 该算法属于小波变换域数字水印算法, 具有良好的水印不可见性和鲁棒性等特点。 W-SVD数字水印算法是美国Syracuse大学数学系和美国空军实验室通信遥感部联合于1998年发布的。 该算法属于小波变换域数字水印算法, 具有良好的水印不可见性和鲁棒性等特点。 尽管这一算法也并不是十分完美的,而且也不具备现代数字水印自适应和盲检测的要求,但无论如何,W-SVD的经典性是无庸置疑的
W-SVD 算法——原理 针对图像的小波变换低频系数,对其进行SVD变换,将其分解为UΣV 小波重构后获得水印图像
W-SVD 算法——原理 Iw = I + w(I) 特点: 水印与载体相关 鲁棒性良好、不可见性良好 低频系数的UΣV的随机替换
W-SVD 算法——原理 水印转换E函数 CAw =E(CA)=CA+W(CA) , 对CAw进行小波逆变换(重构)得到嵌入水印的图像 W(CA)通过SVD变换生成的水印图像小波系数 CAw 嵌入水印图像的小波系数 对CAw进行小波逆变换(重构)得到嵌入水印的图像
W-SVD 算法——流程 1 2 5 6 3 3 4
W-SVD 算法——流程 1
1.1图像小波分解 利用MATLAB的wavedec2函数对图像进行小波分解,提取低频小波系数。
1.2 低频系数归一化 为了后续数据处理的方便,对低频系数矩阵进行归一化处理:CAsimilar=(1/(CAmax-CAmin))×(CA-CAmin)
W-SVD 算法——流程 2
2.对低频相似矩阵做SVD变换 对于任意M×N矩阵B,都可以写成B=UΣVT,其中U和V分别是M×M和N×N的正交矩阵。Σ是M×N的对角矩阵。这种变换就称矩阵SVD变换。 在MATLAB中,SVD变换通过函数svd完成。(右图从上到下依次为U、V、Σ )
W-SVD 算法——流程 3 3
3. 正交随机矩阵的生成 在W-SVD算法中,我们需要生成 和 两个随机的正交矩阵。 对于一个M×N矩阵C,其QR分解是将一个M×M的正交矩阵Q和一个M×N的矩阵R。 在MATLAB中,QR变换是通过内置函数qr完成的。 (右图从上到下依次为一般随机矩阵、Q和R )
W-SVD 算法——流程 4
4. 随机对角矩阵的生成 随机对角矩阵是通过以下一组命令完成的: sigma_tilda=alpha*diag(flipud(sort(rand(d,1)))) sigma_tilda就是算法中的 。 alpha就是强度因子α ,d是根据d/n计算出的要替换的行数。 α和d/n是两个重要参数。
W-SVD 算法——流程 5
5. 替换 用种子控制的随机正交矩阵 和 的后d列(行)来替换原始低频系数分解矩阵U和V的后d列(行)。 得到矩阵 和 。 得到矩阵 和 。 d是由比例因子d/n决定的整数。
W-SVD 算法——流程 6
6.用替换后的低频系数矩阵重构图像 将图像的LL,LH,HL,HH一起,反DWT变换重构原图。 利用MATLAB的waverec2函数对图像进行重构
W-SVD水印效果
本章内容 基础知识 小波分解 SVD W-SVD水印方法 C-SVD水印方法
基于混沌特性的小波数字水印算法C-SVD 混沌—chaos 发生在一个确定系统中的伪随机运动。 系统在某个参数和给定的初始条件下,其运动是确定的。 但是该运动的长期状态对初始条件极为敏感。(种子) 混沌函数具有伸大拉长和折回重叠的性质,具有不可预测性。
C-SVD 由于 W-SVD算法中的水印信息是以个人信息作种子采用一般的随机数生成方法来生成随机数。这不具备随机序列对初值敏感这一特性,因此有可能产生伪造图像原创作者个人信息来伪造水印现象。 优化算法 C-SVD:基于混沌随机序列对初值敏感的特性,使用混沌模型生成混沌随机序列,来代替一般的随机数生成。
基于混沌特性的小波数字水印算法C-SVD 替换为混沌序列
4.2.2 基于混沌特性的小波数字水印算法C-SVD 该模型可用一个一维非线性迭代方程来描述:
4.2.2 基于混沌特性的小波数字水印算法C-SVD 生成{Sn}算法: 对于混沌序列{Xn} If Xi>=2/3* A then Xi =1 else Xi =0 (i=1,2…,n) 因而从混沌随机序列{Xn}可以生成0,1 比特随机序列{Sn}。
4.2.2 基于混沌特性的小波数字水印算法C-SVD 替换为混沌序列
4.2.3小波函数的选择 小波变换与傅氏变换的一个区别是小波变换的变换基不唯一。 选择小波函数时通常需要考虑小波的正交性、紧支集和消失矩。 C-SVD算法采用具有高阶消失矩的紧支正交小波---daubechies(db)小波,其中滤波器长度为8,N=4。
4.2.3小波函数的选择 利用db6进行小波分解的一层、两层分解的结果如图4.6所示。
声音的C-SVD数字水印嵌入 WAVE 声音:列向量 WAVE声音文件转换为二维矩阵 列向量转换为n阶方阵,不足的元素由0来填充 采用C-SVR方法进行水印生成和嵌入
声音的C-SVD数字水印嵌入 MP3文件的处理:转化成WAVE。。。
数字水印的检测
水印检测的具体步骤 非盲检测 基本原理: 给原始图像加水印并提取其加有水印图像的小波低频系数A 。 提取待测图像的小波低频系数B。 提取原始图像的小波低频系数C。 生成原始水印(A-C)和待测水印(B-C) 计算相关性值。
W-SVD水印的检测策略
计算检测相关性值的方法 相关性值d : W和W’分别表示原始水印和待测水印。 M和N为水印模板的大小。
4.6 数字水印检测结果的评测 算法参数对数字水印的影响 ①α ②d/n ③使用的小波 ④小波分解的尺度 ⑤随机数种子 数字水印的抗压缩检测能力(鲁棒性)
一个问题的提出: 计算出了相关性值如何判定是否有水印? 根据一个检测阈值(Test_threshold)来决定水印的有无 。 在数字水印检测中,会出现两类错误: 虚警错误:将没有水印的图像判定为有水印 漏警错误:将有水印的图像判定为无水印。 当检测阈值选取过大时,就会造成漏警概率过大;而当检测阈值选取过小时,就会造成虚警概率过大。
一个问题的提出: 计算出了相关性值如何判定是否有水印? 绘制“种子—相关性值图”(SC图)是分析水印系统的一个重要手段 。
计算检测相关性值的方法 常规检测直接相关性值d : W和W’分别表示原始水印和待测水印。 M和N为水印模板的大小。 DCT检测相关性值 :
两种检测方法所绘制的SC图
算法各参数与水印生成的关系 ——α α越大水印的能量越大。 参数α越大,水印的抗攻击性能越好。
算法各参数与水印生成的关系 ——α α越大水印的能量越大。 参数α越大,水印的抗攻击性能越好。
算法各参数与水印生成的关系 ——d/n
算法各参数与水印生成的关系 ——d/n d/n取值越小,表示原图像特征系数被替换得越少,水印形态与原始图像越相象。 d/n越大则水印检测的效果越好,对检测更有利。当d/n过小时,其检测SC图上已无法找到明显的峰值数据,所以也就谈不上检测阈值了
算法各参数与水印生成的关系 ——d/n
算法各参数与水印生成的关系 ——d/n
算法各参数与水印生成的关系 ——小波分解尺度 算法各参数与水印生成的关系 ——小波分解尺度 不同的小波基分解和同一小波不同尺度下的分解生成的水印在形态、与原始图像的相关性、信息容量和随机性等各方面也不同。 常见的小波基有: Haar小波基、db系列小波基、Biorthogonal(biorNr.Nd)小波系、Coiflet(coifN)小波系、SymletsA(symN)小波系、Molet(morl)小波、Mexican Hat (mexh)小波、Meyer小波 水印形态图
算法各参数与水印生成的关系 ——小波分解尺度 算法各参数与水印生成的关系 ——小波分解尺度 小波分解的尺度越大,与原始图像越相似,即实际上的水印模板的信息越少,检测越困难 小波分解的尺度越大,水印越能嵌入到图像的高能量部分(低频部分),水印鲁棒性越强。 (这是一对矛盾,在具体实验时要注意) 试验表明在W—SVD中取小波分解尺度为2或3是合适的。
算法各参数与水印安全性的关系 Kerckhoffs准则:密钥的安全性。 一部分学者认为对所要加入的信息进行加密,直接引入密码学中的密钥为密钥;另一部分学者则认为水印嵌入的位置和相关参数也应该是密钥而不是算法的部分。 通过绘制SC图我们发现,在W-SVD中,将算法各参数均认为是密钥的一部分是合适的。
算法各参数与水印安全性的关系 以下是在不知道小波基、分解尺度、α和d/n的情况下随意定义这些参数对水印进行穷举检测绘制的SC图。显然,除了在不知道参数α外均无法认定图像是否嵌有水印。(下图从左到右依次为不知道小波基、分解尺度和d/n )
课后思考 什么是SVD? W-SVD水印算法的嵌入和检测过程是怎样的? C-SVD算法的嵌入和检测过程是怎样的? 分析基于混沌特性的小波数字水印算法中参数d/n 和 a 对水印的影响。
谢 谢! 2017/9/10