基于非负矩阵分解的频域鲁棒图像可逆水印方法
【专利摘要】一种基于非负矩阵分解的频域鲁棒图像可逆水印方法,具体步骤包括:(1)生成二值水印;(2)载体图像分块;(3)Slantlet变换;(4)非负矩阵分解;(5)计算质心横坐标;(6)生成极性横坐标序列;(7)保存秘钥;(8)待检测图像分块;(9)Slantlet变换;(10)非负矩阵分解;(11)计算质心横坐标;(12)生成待检测极性横坐标序列;(13)提取水印。本发明解决了现有的鲁棒可逆水印方法水印容量低,视觉质量不高,含水印图像鲁棒性不强的问题。本发明利用了Slantlet变换进行鲁棒可逆水印的提取与检测,不仅提高含水印图像的鲁棒性,而且提高了水印容量和视觉质量。
【专利说明】
基于非负矩阵分解的频域鲁棒图像可逆水印方法
技术领域
[0001] 本发明属于数字信息安全技术领域,更进一步涉及数字图像水印嵌入与提取技术 领域中的一种基于非负矩阵分解的频域鲁棒无损信息隐藏方法。本发明可用于数字图像在 网络环境中抵抗各种攻击的能力,实现数字图像的内容认证,为版权保护、侵权追溯提供重 要的依据。
【背景技术】
[0002] 在科学技术快速发展的今天,计算机、手机终端等电子设备以及互联网等网络通 信已经得到普遍的应用。数字图像的大数据时代已经来临,数字图像已经走进人们的日常 生活中,但是数字技术在给我们带来便利的时候,也存在着许多的安全隐患,一些不法分子 开始通过各种渠道对数字信息进行盗用和修改,使得一些权益信息不能得到很好的保障, 许多信息接收者不能够准确的获取传播者所要表达的信息。
[0003] 针对上面的问题,人们根据数字技术的特征提出了数字水印技术,数字水印是将 具有标识的信息通过特定的算法嵌入到图像、声音或者视频等数字信息载体中,而不影响 原本数字信息载体的表达和使用。这些标识信息可以是数字、版权、序列号或者图像等。嵌 入的水印一般不容易被发现,只有通过特定的算法才能进行检测和分析。但是,在平常情况 下,水印在嵌入的过程中会对原始信息载体造成破坏,而这些破坏一般都是不可逆的,另 外,含有水印的信息载体在传输的过程中也会受到信道噪声的干扰以及一些物理性的攻 击。虽然上述的这些损害和攻击对原始信息载体造成的损害微乎其微,但是在面对一些像 法庭证据照片、医学影像以及交易票据等敏感性数据时,是不允许这些信息载体存在任何 失真的,必须保持原本信息载体的完整性。所以我们必须要得到一种既能保持原本信息载 体完整性,又能抵抗外界各种攻击的鲁棒性水印,我们将这种水印方案称为鲁棒可逆水印。 由于其保持信息载体的完整性和鲁棒性,目前正引起学术领域的广泛研究和关注。目前,关 于可逆水印的研究已经有了一定的突破和进展,但是其抵抗攻击的鲁棒性仍局限在有损压 缩与高斯噪声等方面,抵抗复杂攻击的能力较弱,并且许多关于可逆水印的发明研究也已 经申请了专利。
[0004]西安电子科技大学申请的专利"基于小波域增强型图像掩膜的水印嵌入方法及装 置"(申请号:201110088398.5,申请公开号:CN 102142130 A)论文中公开了一种基于小波 域增强型图像掩膜的水印嵌入方法。该方法首先将输入图像进行小波分解;然后通过低频 子带的背景亮度和亮度变化的最大加权平均计算小波系数的亮度掩膜,通过压缩的输入图 像局部标准差和高频子带的边缘掩膜来计算小波系数的纹理掩膜,并根据子带方向确定小 波系数的方向掩膜;最后将亮度掩膜、纹理掩膜和方向掩膜进行加权综合,得到小波系数的 恰可失真门限。该方法存在的不足之处是:由于该方法只是在小波的低通子带进行水印嵌 入,使得水印的容量有限;由于该方法对原始图像进行水印嵌入,使得含有水印的图像视觉 质量不高;通过该方法不能够抵挡几何变换等复杂攻击,最终得到的水印图像比较脆弱。
[0005]刘竞杰、陶亮在其发表的论文"一种基于非负矩阵分解的鲁棒零水印算法"(《计算 机工程与应用》2012,106:90-93)中提出一种基于非负矩阵分解和离散小波变换的图像零 水印算法。该方法对原始图像进行不重叠分块,分别对每子块图像进行3级小波分解得到低 频近似分量;对细节分量作非负矩阵分解得到可近似表示子块图像的基矩阵和系数矩阵; 将系数矩阵量化得到特征向量,通过特征向量和水印的运算得到原始图像的版权信息。该 方法存在的不足之处是:由于该方法采用的水印算法抵抗攻击的能力较弱,不具有较强的 鲁棒性。
【发明内容】
[0006] 本发明的目的是提供一种基于非负矩阵分解的频域鲁棒图像可逆水印方法,主要 在数字图像中嵌入和提取水印,为版权保护提供依据。本发明要解决的主要问题是现有的 鲁棒可逆水印方法水印容量低,视觉质量不高,尤其是含水印图像在抵抗外界攻击鲁棒性 的问题。
[0007] 实现本发明目的的具体思路是,在水印的嵌入过程中:首先生成二值水印和对载 体图像进行分块,然后对载体图像的每个分块进行Slantlet变换、非负矩阵分解、计算质心 横坐标,接着生成极性横坐标序列,最后将极性横坐标序列与二值水印进行异或运算,得到 水印检测密钥;在水印的提取过程中:首先对待检测图像进行分块,然后对待检测图像的每 个分块进行Slantlet变换、非负矩阵分解、计算质心横坐标,接着生成待检测极性横坐标序 列,最后将待检测极性横坐标序列与水印检测密钥做异或运算,得到待检测水印信息。
[0008] 本发明包括水印嵌入和水印提取两个过程;
[0009] 本发明水印嵌入过程的具体步骤为:
[0010] (1)二值水印生成:
[0011] (la)将灰度图像进行二值化处理,得到二值图像;
[0012] (lb)将二值图像从左上方提取rXr像素的一块正方形基块,将此正方形基块作为 二值水印,其中,r<min(m,n),min(m,n)表示取灰度图像中行数m与列数η的最小值;
[0013] (2)载体图像分块:
[0014] (2a)将载体图像分成大小相同且互不重叠的子块,得到一组载体图像块序列;
[0015] (2b)丢弃分块后不能被划分的剩余部分;
[0016] (3)Slantlet 变换:
[0017] 依次选取载体图像块序列中各个子块,按照下式,对所选取的载体图像块序列中 的子块进行Slantlet变换,得到低频子带序列:
[0018] Si = Slantlet(Bi)
[0019] 其中,Si表示经过Slantlet变换之后的第i个低频子带,Slantlet表示Slantlet变 换操作,Bi表示载体图像块序列中第i个子块,表示载体图像块序列的所有块数; [0020] (4)非负矩阵分解:
[0021 ]对低频子带序列中的各低频子带进行非负矩阵分解,得到系数矩阵序列;
[0022] (5)计算质心横坐标:
[0023] 依次选取系数矩阵序列中各个子块,按照下式,对所选取的系数矩阵序列中的子 块进行质心横坐标计算,得到质心横坐标序列:
[0024] Xk = getAbsci (Hk)
[0025]其中,Xk表示经过质心横坐标计算之后得到的质心横坐标序列中的第k个值, getAbsci表示质心横坐标计算操作,Hk表示系数矩阵序列中第k个子块,表示载 体图像块序列的所有块数;
[0026] (6)生成极性横坐标序列:
[0027] (6a)按照下式,计算质心横坐标序列的平均值:
[0029] 其中,I表示质心横坐标序列的平均值,m表示载体图像块序列的所有块数,Σ表示 求和操作,X」表示质心横坐标序列中的第j个值,1彡
[0030] (6b)依次选取质心横坐标序列中各个值,按照下式,对所选取的质心横坐标序列 中的值计算极性横坐标,得到极性横坐标序列:
[0032]其中,Vi表示经过极性横坐标计算之后得到的极性横坐标序列中的第1个值,乂:表 示质心横坐标序列中的第1个值,?表示质心横坐标序列的平均值,表示载体图 像块序列的所有块数;
[0033] (7)保存秘钥:
[0034]将极性横坐标序列与二值水印进行异或运算,得到水印检测密钥;
[0035]本发明水印提取过程的具体步骤为:
[0036] (8)待检测图像分块:
[0037] (8a)将待检测图像分成大小相同且互不重叠的子块,得到一组待检测图像块序 列;
[0038] (8b)丢弃分块后不能被划分的剩余部分;
[0039] (9)Slantlet 变换:
[0040] 依次选取待检测图像块序列中各个子块,按照下式,对所选取的待检测图像块序 列中的子块进行Slantlet变换,得到待检测低频子带序列:
[0041] S7 p = Slantlet(B7P)
[0042] 其中,S' p表示经过Slantlet变换之后的第p个低频子带,Slantlet表示Slantlet 变换操作,表示待检测图像块序列中第p个子块,1<ρ<η,η表示水印检测密钥的大小; [0043] (10)非负矩阵分解:
[0044] 对待检测低频子带序列中的各个低频子带进行非负矩阵分解,得到待检测系数矩 阵序列;
[0045] (11)计算质心横坐标:
[0046] 依次选取待检测系数矩阵序列中各个子块,按照下式,对所选取的待检测系数矩 阵序列中的子块进行质心横坐标计算,得到待检测质心横坐标序列:
[0047] Xq7 =getAbsci (Hq7 )
[0048] 其中,X/表示经过质心横坐标计算之后得到的待检测质心横坐标序列中的第q个 值,getAbsci表示质心横坐标计算操作,H/表示待检测系数矩阵序列中第q个子块, η,η表示水印检测密钥的大小;
[0049] (12)生成待检测极性横坐标序列:
[0050] (12a)按照下式,计算待检测质心横坐标序列的平均值:
[0052] 其中,7表示待检测质心横坐标序列的平均值,η表示水印检测密钥的大小,Σ表 示求和操作,X/表示待检测质心横坐标序列中的第t个值,1 < t<n;
[0053] (12b)依次选取待检测质心横坐标序列中各个值,按照下式,对所选取的待检测质 心横坐标序列中的值计算极性横坐标,得到待检测极性横坐标序列:
[0055]其中,V/表示经过极性横坐标计算之后得到的待检测极性横坐标序列中的第y个 值,X/表示待检测质心横坐标序列中的第y个值,Γ表示待检测质心横坐标序列的平均值, K y < η,η表示水印检测密钥的大小;
[0056] (13)提取水印:
[0057]将待检测极性横坐标序列与水印检测密钥做异或运算,得到待检测水印信息。 [0058]与现有技术相比,本发明具有以下优点:
[0059]第一,本发明在水印嵌入和提取的过程中,采用Slantlet变换进行鲁棒可逆水印 的提取与检测,克服了现有技术中水印不能够抵挡几何变换等复杂攻击的问题,使得本发 明具有能够抵抗各种几何变换等复杂攻击的鲁棒性优点。
[0060] 第二,本发明在水印嵌入的过程中,将载体图像分成大小相同且互不重叠的子块, 并实现在每个子块中都嵌入水印,克服了现有技术中水印容量有限的问题,使得本发明具 有水印容量大、且易于控制的优点。
[0061] 第三,本发明在水印嵌入的过程中,通过保存水印嵌入过程中得到的水印检测密 钥,就可实现在载体图像中嵌入水印,保证含水印图像的零篡改,克服了现有技术中含水印 图像视觉质量不高的问题,使得本发明具有能够改善水印图像视觉质量的优点。
【附图说明】
[0062]图1是本发明的水印嵌入流程框图;
[0063]图2是本发明的水印提取流程框图;
[0064]图3是本发明的仿真实验图。
【具体实施方式】
[0065] 下面结合附图对本发明做详细的描述。
[0066] 参照附图1,本发明的水印嵌入步骤如下。
[0067] 步骤1,二值水印生成。
[0068]给定一幅大小为m X η像素的灰度图像P和阈值T,0<255,比较灰度图像P中各 个像素值与阈值Τ的大小确定二值图像V的取值,比较规则如下:
[0070] 其中,V(u,v)表示二值图像V中第u行、第v列的取值,P(u,v)表示灰度图像P中第u 行、第v列的像素值,1彡u彡m,1彡v彡η。
[0071] 将二值图像V从左上方开始提取大小为rXr像素的正方形基块Ε,并将此正方形基 块E作为二值水印W,其中,1 = 21% t为正整数且r<min(m,n),min(m,n)表示取灰度图像P中 行数m与列数η的最小值。
[0072]步骤2,载体图像分块。
[0073]将大小为MX Ν像素的载体图像I,根据步骤1可以求得二值水印W的大小为rXr像 素,选取载体图像I左上方大小为(rXc)X(rXc)像素的待划分的正方形基块Q。如果(rXc)〈 Μ或者(rXc)〈N,则丢弃正方形基块Q之外的部分,其中c = 2s,s为满足c S η?η(;?/,Vj/V 条件下的最大正整数,min (Μ,N)表示取载体图像I中行数Μ与列数N的最小值, min^/,/Vyi」表示取不大于min(M,N)/r的最大整数,s的取值范围为[2,4]。
[0074]将正方形基块Q分成大小为cXc像素、个数为rXr且互不重叠的子块,按行排序得 到载体图像块序列方={气,...,',...I卜其中Bg表示载体图像块序列B中第g个子块,1 <g$r2,r2表示载体图像块序列的所有块数。
[0075]步骤 3,Slantlet 变换。
[0076] 依次选取载体图像块序列B中各个子块,利用文献"I.Selesnick.The Slantlet Transform.IEEE Trans.Signal Processing,vol.47,pp.l304-1313,May 1999"中提出的 Slant let变换,按照下式,对所选取的载体图像块序列中的子块,进行Slantlet变换,得到 低频子带序列沒=丨5, …:
[0077] Si = Slantlet(Bi)
[0078] 其中,Si表示经过Slantlet变换之后的第i个低频子带,其大小为大小为(c/2)X (c/2)像素,Slantlet表示Slantlet变换操作,表示载体图像块序列中第i个子块,1纪彡 r 2,r2表示载体图像块序列的所有块数。
[0079] 步骤4,非负矩阵分解。
[0080] 选取低频子带序列S的第α个低频子带Sci,利用文献"D. Donoho,V. Stodden. When does non-negative matrix factorization give a correct decomposition into parts?Proceedings of the 2003conference on Advances in neural information processing systems 16,pp. 1141-1148,2004"中提出的非负矩阵分解法,对低频子带Sa进 行非负矩阵分解,得到第a个分解基矩阵Ua和系数矩阵Ha,其中设定分解基矩阵Ua的大小为 (c/2) X 1,系数矩阵Ha的大小为1 X (c/2);随后依次对各个低频子带进行非负矩阵分解得 到系数矩阵序列〃 ={為,...,,其中,1彡a彡r2,r2表示载体图像块序列的所 有块数。
[0081] 步骤5,计算质心横坐标。
[0082]依次选取系数矩阵序列Η中各个子块,按照下式,对所选取的系数矩阵序列中的子 块进行质心横坐标计算,得到质心横坐标序列X:
[0083] Xk = getAbsci (Hk)
[0084] 其中,Xk表示经过质心横坐标计算之后得到的质心横坐标序列中的第k个值, ge tAbsci 表不文南犬 "L. An, X. Gao, Y.Yuan,D.Tao,C.Deng,F.Ji. Content-adaptive reliable robust lossless data embedding.Neurcomputing,vol.79,pp.1-11,2012"中 提出的质心坐标计算操作,H k表示系数矩阵序列中第k个子块,表示载体图像块 序列的所有块数;
[0085] 步骤6,生成极性横坐标序列。
[0086]按照下式,计算质心横坐标序列X的平均值1:
[0088] 其中,i表示质心横坐标序列X的平均值,r2表示载体图像块序列的所有块数,Σ表 示求和操作,X』表示质心横坐标序列X中的第j个值,l<j<r 2。
[0089] 依次选取质心横坐标序列X中各个值,按照下式,对所选取的质心横坐标序列中的 值计算极性横坐标,得到极性横坐标序列V=(Vi, . . .,Vi,. . .,Vi):
[0091 ]其中,h表示经过极性横坐标计算之后得到的极性横坐标序列X中的第1个值,心表 示质心横坐标序列X中的第1个值,:F表示质心横坐标序列X的平均值,l<l<r2,r2表示载体 图像块序列的所有块数;
[0092]步骤7,保存秘钥。
[0093]将步骤1中得到的二值水印W进行一维化处理,得到一维化后的二值水印横坐标序 列r。按照下式,确定一维二值水印横坐标序列,'=(G…·,,...,:
[0094] ffx7 Xr+y-r = ff(x,y)
[0095] 式中,W(x,y)表示二值水印W中第x行,第y列的取值,W/ Xr+y-r表示一维二值水印横 坐标序列矿在第xXr+y-r位置处的取值,Kx<r,Ky<r,r表示载体图像块序列的所有 块数的正数平方根。
[0096] 将一维二值水印横坐标序列,与极性横坐标序列V做异或运算,利用如下公式得 到水印检测密钥尤=(Kt,· · · , K£,. , , , Kr2):
[0098] 其中,Κε表示水印检测密钥K中第ε个元素值,W/表示一维二值水印横坐标序列r 第ε个元素的取值,νε表示极性横坐标序列V第ε个元素的取值,l$e<r 2,r2表示二值水印W 的大小。
[0099] 通过上述步骤1到步骤7可以实现水印嵌入,得到原始图像对应的水印检测密钥K。
[0100] 参照附图2,本发明的水印提取步骤如下。
[0101] 步骤8,载体图像分块。
[0102] 将大小为MXN像素的待检测图像疒,根据水印嵌入过程中得到的秘钥K,获取秘钥 K的大小为r2,选取待检测图像V左上方大小为(rXd) X (rXd)像素的待划分的正方形基 块吖。如果(rXd)〈M或者(rXd)〈N,则丢弃正方形基块吖之外的部分,其中 示开根号操作,r2表示水印检测密钥的大小。
[0103] 将正方形基块V分成大小为d X d像素、个数为r X r且互不重叠的子块,按行排序 得到待检测图像块序列夂' = [¥*. ..,...$=},其中Vk表示待检测图像块序列V中第k 个子块,1 彡r2,r2表示秘钥K的大小。
[0104] 步骤 9,Slantlet 变换。
[0105] 依次选取待检测图像块序列V中各个子块,利用文献"I .Selesnick.The Slantlet Transform.IEEE Trans.Signal Processing,vol.47,pp.1304-1313,May 1999" 中提出的Slantlet变换,按照下式,对所选取的待检测图像块序列中的子块,进行Slantlet 变换,得到待检测低频子带序列f = p/,. . .,5:,. . .,:
[0106] S7 p = Slantlet (B7P)
[0107] 其中,S'p表示经过Slantlet变换之后的第P个低频子带,其大小为大小为(d/2)X (d/2)像素,Slantlet表示Slantlet变换操作,p表示待检测图像块序列中第P个子块,1 < P彡r2,r2表示秘钥K的大小。
[0108] 步骤10,非负矩阵分解。
[0109] 选取待检测低频子带序列S'的第Θ个低频子带Se',利用文献"D . Donoho, V.Stodden.When does non-negative matrix factorization give a correct decomposition into parts?Proceedings of the 2003conference on Advances in neural information processing systems 16,pp. 1141-1148,2004" 中提出的非负矩阵分 解法,对低频子带s/进行非负矩阵分解,得到第θ个待检测分解基矩阵iV和待检测系数矩 阵H/,其中设定待检测分解基矩阵IV的大小为(d/2) X 1,待检测系数矩阵H/的大小为1 X (d/2);随后依次对各个低频子带进行非负矩阵分解得到待检测系数矩阵序列 F ,其中,l<0<r2,r2表示表示秘钥 K 的大小。
[0110] 步骤11,计算质心横坐标。
[0111] 依次选取待检测系数矩阵序列把中各个子块,按照下式,对所选取的待检测系数 矩阵序列中的子块进行质心横坐标计算,得到待检测质心横坐标序列X':
[0112] Xq7 =getAbsci (Hq7 )
[0113] 其中,X/表示经过质心横坐标计算之后得到的待检测质心横坐标序列中的第q个 值,getAbsci表不文南犬 "L· An,X ·Gao,Y· Yuan,D · Tao,C· Deng,F · Ji · Content-adaptive reliable robust lossless data embedding.Neurcomputing,vol.79,pp.1-11,2012"中 提出的环形直方图质心坐标的计算操作,H/表示待检测系数矩阵序列中第q个子块,l$q < η,η表示水印检测密钥的大小;
[0114]步骤12,生成待检测极性横坐标序列。
[0115]按照下式,计算待检测质心横坐标序列f的平均值歹::
[0117] 其中,F表示待检测质心横坐标序列f的平均值,r2表示秘钥K的大小,Σ表示求 和操作J表示待检测质心横坐标序列X'的下标索引,f S表示待检测质心横坐标序列X'中 的第δ个值,1<δ彡r2。
[0118] 依次选取待检测质心横坐标序列X'中各个值,按照下式,对所选取的质心横坐标 序列中的值计算极性横坐标,得到待检测极性横坐标序列F =(义· ..,% · · .,V;,):
[0120] 其中,$表示经过极性横坐标计算之后得到的待检测极性横坐标序列f中的第 个值,巧表示待检测质心横坐标序列f中的第供个值,r表示待检测质心横坐标序列的平 均值,r :,r2表示秘钥K的大小。
[0121] 步骤13,提取水印。
[0122] 将待检测极性横坐标序列V'与嵌入过程中得到的水印检测密钥K按位做异或运 算,按如下规则得到待检测一维二值水印横坐标序列r =(氺...,亡,...,
[0124] 其中,^表示待检测一维二值水印横坐标序列,第λ个元素的取值,Ka表示嵌入过 程中得到的水印检测密钥κ中第λ个元素值,v/表示待检测的极性横坐标序列y第λ个元素 的取值,1彡人彡r2,r2表示秘钥Κ的大小。
[0125] 将待检测一维二值水印横坐标序列r各个取值,按如下规则确定待检测二维二值 水印#:
[0126] r(P)q) = ipxr+q_r
[0127] 其中,# (A 4表示待检测二值水印#中第p行,第q列的取值,表示待检测 一维二值水印横坐标序列Γ第P X r+q-r位置处的取值,1 ,1 ,r表示秘钥K大小 的正平方根。
[0128] 通过上述步骤8到步骤13可以实现水印提取,得到从待检测图像Γ中提取的水印承。
[0129] 下面结合仿真图对本发明效果做进一步的描述。
[0130] 1.仿真实验条件:
[0131] 实现本发明仿真实验的软件环境为美国Mathworks公司开发的MATLAB 2015a。本 发明仿真实验的一些记号为:将现有技术基于三级小波分解的方法记为WD,本发明方法记 为SN。本发明的仿真实验中将原始图像和攻击后的图像分成大小为32X32的子块,二值水 印大小为16X16。
[0132]参照附图3,将本发明方法与现有技术的基于三级小波分解方法进行仿真实验得 到的结果,图3(a)、图3(b)、图3(c)、图3(d)为进行仿真实验的四张大小为512X512X8的载 体图像,仿真实验中首先将这两种方法分别应用到这四张载体图像中,得到水印检测密钥, 然后对原始灰度图像进行JPEG和JPEG2000的有损压缩,添加高斯噪声和椒盐噪声,进行中 值滤波、高斯低通滤波,以及旋转和剪切攻击,得到各自相应的攻击后的图像,最后再运用 这些方法从攻击后的图像中获得水印检测密钥,进行鲁棒性的仿真实验。
[0133] 2.仿真实验内容:
[0134] 实验丨:鲁棒性仿真实验。
[0135] 本发明进行鲁棒性仿真实验的具体过程是:将初始给定的二值水印W-维化,得到 对应一维水印横坐标序列矿。原始图像I经过攻击得到攻击后的图像Ια,
[0136] 使用本发明得到原始图像对应的水印检测密钥Κ和攻击后的图像Ια对应的极性横 坐标序列Va,然后把原始图像对应的水印检测密钥Κ和极性横坐标序列Va做异或运算,得到 攻击后的一维二值水印横坐标序列炭。
[0137] 本发明以错误率ER作为评判依据,测试两种方法的鲁棒性,其中ER表示为
[0138] ER = smWr ? F) / \K\
[0139] 即?表示将原始的一维二值水印横坐标序列f和攻击后提取的一维二值水印横 坐标序列.获做异或运算,sum表示对异或运算得到的一维横坐标序列进行求和运算,将sum 求得的和除以水印检测密钥K的位数| K |,得到错误率ER。显然,错误率越低表明鲁棒性越 好;反之错误率越高表明鲁棒性越差。
[0140]下面在JPEG攻击下对本发明和现有技术基于三级小波分解方法的错误率进行比 较,得到的结果如表1所示:本发明仿真实验中JPEG压缩的质量因子取10个值:10,20,30, 40,50,60,70,80,90,100,分别在每个压缩因子下测试两种方法的鲁棒性,其中JPEG压缩的 质量因子越小,压缩强度越大。
[0141]表1.在JPEG攻击下的错误率比较
[0143] 由表1可见,本发明SN的错误率在不同的JPEG压缩质量因子下均小于现有技术基 于三级小波分解方法,说明本发明在JPEG攻击下比现有技术基于三级小波分解方法具有较 好的鲁棒性。
[0144] 下面在JPEG2000攻击下对本发明和现有技术基于三级小波分解方法的错误率进 行比较,得到的结果如表2所示:本发明仿真实验中JPEG2000压缩的压缩率取10个值:0.2, 0.4,0.6,0.8,1.0,1.2,1.4,1.6,1.8,2.0,分别在每个压缩率下测试两种方法的鲁棒性,其 中JPEG2000压缩的压缩率越小,压缩强度越大。
[0145] 表2.在JPEG2000下不同压缩率下的错误率
[0147] 由表2可见,本发明SN的错误率在不同的JPEG2000压缩率下均小于现有技术基于 三级小波分解方法,说明本发明在JPEG2000攻击下比现有技术基于三级小波分解方法具有 较好的鲁棒性。
[0148] 下面在旋转攻击下对本发明和现有技术基于三级小波分解方法的错误率进行比 较,得到的结果如表3所示:本发明仿真实验中添加旋转度数分别为1°,2°,3°,5°,8°,15°, 30°,45°,60°,90°的旋转攻击,分别在每个旋转度数下测试两种方法的鲁棒性,其中旋转度 数越大,旋转攻击强度越大。
[0149] 表3.在旋转攻击不同旋转度数下的错误率
[0151] 由表3可见,本发明SN的错误率在不同的旋转攻击下均小于现有技术基于三级小 波分解方法,说明本发明在旋转攻击下比现有技术基于三级小波分解方法具有较好的鲁棒 性。
[0152] 下面在剪切攻击下对本发明和现有技术基于三级小波分解方法的错误率进行比 较,得到的结果如表4所示:本发明仿真实验中添加剪切因子分别为1/16和1/8剪切攻击,分 别在每个剪切因子下测试两种方法的鲁棒性,其中剪切攻击将待剪切区域的像素的灰度值 全部置为〇,剪切因子越大,剪切攻击强度越大。
[0153] 表4.在剪切攻击下的错误率
[0155] 由表4可见,本发明SN的错误率在不同的剪切攻击下均小于现有技术基于三级小 波分解方法,说明本发明在剪切攻击下比现有技术基于三级小波分解方法具有较好的鲁棒 性。
[0156] 下面在高斯噪声攻击下对本发明和现有技术基于三级小波分解方法的错误率进 行比较,得到的结果如表5所示。
[0157] 表5.在高斯噪声方法下的错误率
[0159]本发明仿真实验中添加均值为0、方差分别为0.005和0.01高斯噪声,分别在每个 方差下测试两种方法的鲁棒性,其中在均值一定的情况下,方差越大,噪声攻击强度越大。 [0160]由表5可见,本发明SN的错误率在不同的高斯噪声攻击下均小于现有技术基于三 级小波分解方法,说明本发明在高斯噪声攻击下比现有技术基于三级小波分解方法具有较 好的鲁棒性。
[0161] 下面在椒盐噪声攻击下对本发明和现有技术基于三级小波分解方法的错误率进 行比较,得到的结果如表6所示:本发明仿真实验中添加噪声密度分别为0.02和0.03椒盐噪 声,分别在每个噪声密度下测试两种方法的鲁棒性,其中椒盐噪声密度越大,噪声攻击强度 越大。
[0162] 表6.在添加椒盐噪声方法下的错误率
[0164] 由表6可见,本发明SN的错误率在不同的椒盐噪声攻击下均小于现有技术基于三 级小波分解方法,说明本发明在椒盐噪声攻击下比现有技术基于三级小波分解方法具有较 好的鲁棒性。
[0165] 下面在中值滤波攻击下对本发明和现有技术基于三级小波分解方法的错误率进 行比较,得到的结果如表7所示:本发明仿真实验中使用窗口尺寸大小分别为3X3和5X5进 行中值滤波,分别在每个窗口尺寸下测试两种方法的鲁棒性,其中窗口尺寸越大,中值滤波 攻击强度越大。
[0166]表7.在中值滤波下的错误率
[0168] 由表7可见,本发明SN的错误率在不同的中值滤波攻击下均小于现有技术基于三 级小波分解方法,说明本发明在中值滤波攻击下比现有技术基于三级小波分解方法具有较 好的鲁棒性。
[0169] 下面在高斯低通滤波攻击下对本发明和现有技术基于三级小波分解方法的错误 率进行比较,得到的结果如表8所示:本发明仿真实验中使用模板尺寸分别为2 X 2和3 X 3进 行高斯低通滤波,分别在每个模板尺寸下测试两种方法的鲁棒性,其中模板尺寸越大,高斯 低通滤波攻击强度越大。
[0170]表8.在中值滤波下的错误率
[0172] 由表8可见,本发明SN的错误率在不同的高斯低通滤波攻击下均小于现有技术基 于三级小波分解方法,说明本发明在高斯低通滤波攻击下比现有技术基于三级小波分解方 法具有较好的鲁棒性。
[0173] 从上述仿真实验结果来看,在各种攻击下,本发明错误率都低于现有技术基于三 级小波分解方法,说明本发明比现有技术基于三级小波分解方法具有较好的鲁棒性。
[0174] 实验2:仿真实验容量:
[0175] 本发明仿真实验中以客观指标位/像素bpp作为评判依据,测试现有技术WD和本发 明SN三种方法的容量,得到的结果如表9所示,其中,bpp = Q/PX,Q是指在原始图像中最多能 嵌入的水印位数,PX是指在原始图像中像素的个数,在本仿真实验中PX = 512X 512 = 262144。在原始图像大小确定的情况下,bpp越大,表示嵌入水印的位数越多,即容量越大。
[0176] 表9.不同方法的容量值
[0178]由表9结果可见,本发明方法SN的容量与WD的容量值一样,表明二者的容量值不存 在差异。
[0179]实验3:视觉质量仿真实验:
[0180]本发明仿真实验中以客观指标峰值信噪比PSNR作为评判依据,测试两种方法在原 始图像以最大容量嵌入情况下含水印图像的视觉质量,其中PSNR表示为
[0182] 式中,MXN是原始图像大小,I(i,j)是原始图像在第i行第j列的像素值,
[0183] Iw(i,j)是含水印图像在第i行第j列的像素值。本仿真实验在自然图像和医学图 像数据库上进行测试,仿真实验结果如表10所示,
[0184] 表10.不同方法的PSNR(dB)值
[0186]从表10的仿真实验结果可以看出,本发明SN和WD的PSNR值均为+0,不存在任何失 真,这主要是由于这两种方法都是采用可逆水印技术,无需在原始图像中嵌入水印,而只需 要保存水印嵌入过程中的秘钥,对原始图像不会造成伤害,所以这两种方法的PSNR值为+ 00 〇
[0187]综上所述,与基于三级小波分解方法相比,本发明获得了更好的鲁棒性。
【主权项】
1. 一种基于非负矩阵分解的频域鲁棒图像可逆水印方法,包括水印嵌入和水印提取两 个过程; 所述水印嵌入过程的具体步骤为: (1) 生成二值水印: (la)将灰度图像进行二值化处理,得到二值图像; (化)将二值图像从左上方提取rXr像素的一块正方形基块,将此正方形基块作为二值 水印,其中,r《min(m,n),min(m,n)表示取灰度图像中行数m与列数η的最小值; (2) 载体图像分块: (2a)将载体图像分成大小相同且互不重叠的子块,得到一组载体图像块序列; (2b)丢弃分块后不能被划分的剩余部分; (3) Slantlet 变换: 依次选取载体图像块序列中各个子块,按照下式,对所选取的载体图像块序列中的子 块进行Slantlet变换,得到低频子带序列: Si = Slantlet(Bi) 其中,Si表示经过Slantlet变换之后的第i个低频子带,Slantlet表示Slantlet变换操 作,B康示载体图像块序列中第i个子块,表示载体图像块序列的所有块数; (4) 非负矩阵分解: 对低频子带序列中的各低频子带进行非负矩阵分解,得到系数矩阵序列; (5) 计算质屯、横坐标: 依次选取系数矩阵序列中各个子块,按照下式,对所选取的系数矩阵序列中的子块进 行质屯、横坐标计算,得到质屯、横坐标序列: Xk = getAbsci (化) 其中,)(k表示经过质屯、横坐标计算之后得到的质屯、横坐标序列中的第k个值,getAbsci 表示质屯、横坐标计算操作,化表示系数矩阵序列中第k个子块,表示载体图像块 序列的所有块数; (6) 生成极性横坐标序列: (6a)按照下式,计算质屯、横坐标序列的平均值:其中,I表示质屯、横坐标序列的平均值,m表示载体图像块序列的所有块数,Σ表示求和 操作,的表示质屯、横坐标序列中的第j个值, (6b)依次选取质屯、横坐标序列中各个值,按照下式,对所选取的质屯、横坐标序列中的 值计算极性横坐标,得到极性横坐标序列:其中,Vi表示经过极性横坐标计算之后得到的极性横坐标序列中的第1个值,&表示质 屯、横坐标序列中的第1个值,J表示质屯、横坐标序列的平均值,1《1《m,m表示载体图像块 序列的所有块数; (7) 保存秘钥: 将极性横坐标序列与二值水印进行异或运算,得到水印检测密钥; 所述水印提取过程的具体步骤如下: (8) 待检测图像分块: (8a)将待检测图像分成大小相同且互不重叠的子块,得到一组待检测图像块序列; (8b)丢弃分块后不能被划分的剩余部分; (9) Slantlet 变换: 依次选取待检测图像块序列中各个子块,按照下式,对所选取的待检测图像块序列中 的子块进行Slantlet变换,得到待检测低频子带序列: S' p = Slantlet(B' P) 其中,p表示经过Slantlet变换之后的第p个低频子带,Slantlet表示Slantlet变换操 作,B%表示待检测图像块序列中第P个子块,l《p《n,n表示水印检测密钥的大小; (10) 非负矩阵分解: 对待检测低频子带序列中的各个低频子带进行非负矩阵分解,得到待检测系数矩阵序 列; (11) 计算质屯、横坐标: 依次选取待检测系数矩阵序列中各个子块,按照下式,对所选取的待检测系数矩阵序 列中的子块进行质屯、横坐标计算,得到待检测质屯、横坐标序列: X' q = getAbsci(H' q) 其中,X%表示经过质屯、横坐标计算之后得到的待检测质屯、横坐标序列中的第q个值, getAbsci表示质屯、横坐标计算操作,H%表示待检测系数矩阵序列中第q个子块,l《q《n,n 表示水印检测密钥的大小; (12) 生成待检测极性横坐标序列: (12a)按照下式,计算待检测质屯、横坐标序列的平均值:其中,F表示待检测质屯、横坐标序列的平均值,η表示水印检测密钥的大小,Σ表示求和 操作,X/表示待检测质屯、横坐标序列中的第t个值,1《t《n; (12b)依次选取待检测质屯、横坐标序列中各个值,按照下式,对所选取的待检测质屯、横 坐标序列中的值计算极性横坐标,得到待检测极性横坐标序列:其中,V%表示经过极性横坐标计算之后得到的待检测极性横坐标序列中的第y个值, χ/ y表示待检测质屯、横坐标序列中的第y个值,r表示待检测质屯、横坐标序列的平均值,1《 y《η,η表示水印检测密钥的大小; (13) 提取水印: 将待检测极性横坐标序列与水印检测密钥做异或运算,得到还原后的水印。2.根据权利要求1所述的基于非负矩阵分解的频域鲁棒图像可逆水印方法,其特征在 于:步骤(2a)中所述分块的大小为cXc像素的正方形,其中,c = 2s,s的取值范围为[2,4]。3.根据权利要求1所述的基于非负矩阵分解的频域鲁棒图像可逆水印方法,其特征在 于:步骤(8a)中所述分块的大小为dXd像素的正方形,其中,d 表示开根号操作, U表示水印检测密钥的大小。
【文档编号】G06T1/00GK106097236SQ201610284882
【公开日】2016年11月9日
【申请日】2016年4月29日
【发明人】安玲玲, 林建忠, 尹广学, 蔡固顺, 王泉
【申请人】西安电子科技大学