基于参考矩阵和LSB替换的水印嵌入和图像自恢复方法

文档序号:30103830发布日期:2022-05-18 13:59阅读:159来源:国知局
基于参考矩阵和LSB替换的水印嵌入和图像自恢复方法
基于参考矩阵和lsb替换的水印嵌入和图像自恢复方法
技术领域
1.本发明属于数字水印技术领域,具体涉及一种基于参考矩阵和lsb替换的水印嵌入和图像自恢复方法。


背景技术:

2.如今,越来越多的重要工作是在互联网上完成的。数据传输的完整性和安全性显得尤为重要。图像,作为一种数据,在传输过程中很容易受到恶意或偶然的攻击,如剪切、复制粘贴、压缩等。因此,水印技术被用来进行版权保护。随着研究人员对图像研究的深入,水印的一些其他应用也逐渐出现,如票据防伪、防止非法盗窃、篡改检测和定位、图像的灵活恢复等。
3.在现有的大多数算法中,嵌入的水印信息越多,对篡改区域的检测和定位就越准确,图像恢复的性能就越好。然而,随着嵌入容量的增加,水印的不可感知性就会变差。因此,许多水印方案致力于在嵌入容量和水印的不可感知性之间寻求平衡。基于参考矩阵的嵌入方法能够比其他方法能更好地实现这一目的。
4.但是,在现有的技术方案中,基于参考矩阵的方法大多只能实现可逆的数据隐藏或篡改检测,而不具备图像自恢复的功能。然而,图像自恢复功能对于对抗图像传输过程中的攻击具有相当重要的意义。另一方面,随着水印嵌入容量的增加,水印的不可感知性变差,许多现存的自恢复方案无法实现水印嵌入容量和水印图像质量之间的折中。


技术实现要素:

5.为了检测和恢复被篡改的图像,同时平衡水印嵌入容量和水印图像质量,本发明提出了一种基于参考矩阵和lsb替换的水印嵌入和图像自恢复方法。
6.本发明的技术方案如下:一种基于参考矩阵和lsb替换的水印嵌入和图像自恢复方法,包括如下步骤:a.实时采集原始图像,采用块划分方法将图像划分为4
×
2或2
×
4大小的子块;b.生成水印的恢复位、标志位和认证位;c.基于参考矩阵和lsb替换将水印嵌入原始图像;d.通过提取水印进行图像的篡改检测和自恢复。
7.进一步地,步骤a中,采用块划分方法划分图像的具体过程为:首先将原始图像划分为4
×
2的子块,计算4
×
2子块的平均值用来获得垂直恢复的图像;然后,将原始图像划分为2
×
4大小的子块,计算2
×
4子块的平均值用来获得水平恢复的图像;最后,比较垂直恢复的图像与水平恢复的图像的psnr,若垂直恢复的图像的psnr高于水平恢复的图像,则将原始图像划分为4
×
2的子块,反之,将原始图像划分为2
×
4大小的子块。
8.进一步地,参考矩阵包括第一参考矩阵和第二参考矩阵,矩阵大小均为256
×
256;第一参考矩阵是以任意一点为中心形成的3
×
3大小的矩阵,包含从0到8的9个数字,对应于二进制数值0000到1000;第二参考矩阵是以任意一点为中心形成的3
×
3大小的矩阵,包含
从7到15的9个数字,对应于二进制数值0111到1111;在传输过程中,只需要传输其中一个参考矩阵,接收方根据获得的其中一个参考矩阵自动计算出另一个参考矩阵。
9.进一步地,步骤b的具体过程为:b1.恢复位的生成过程为:如公式(1),对于每个子块,计算出8个像素p
x
的平均值p,将p转换成8位二进制,作为一个子块的恢复位;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,p
x
表示每个子块中第x个像素;b2.标志位的生成过程为:当嵌入恢复位时,8位二进制恢复位首先被分为两组4位;如公式(2),判断每一组恢复位的十进制r是否大于8,如果r大于8,生成一个标志位f=1,此时选择第二参考矩阵嵌入水印;否则,生成一个标志位f=0,此时选择第一参考矩阵嵌入水印;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)b3.认证位的生成过程为:采用sha-256算法生成认证位,生成认证位的过程如下:b31.对于已经嵌入恢复位和标志位的子块,最后两对像素对的2位最低有效位被设置为0;b32.将图像的像素值、子块编号和块索引作为sha-256算法的输入,以获得256位的哈希值k;b33.取哈希值k的前6位作为该子块的认证位。
10.进一步地,步骤c包括基于参考矩阵和lsb的恢复位和标志位的嵌入,以及基于lsb的认证位嵌入;具体过程为:c1.嵌入水印恢复位和标志位的具体过程为:c11.基于步骤a中划分的子块,计算每个子块的平均值p作为恢复位,将8位平均值分为两个4位组,并转换为十进制;c12.使用密钥k对每个主块中的恢复位进行置乱,并将它们嵌入到最远的主块中;c13.根据参考矩阵嵌入恢复位;具体过程为:c131.步骤a划分子块时会先将原始图像分成4个相同大小的主块,从最远的主块中选择一个4
×
2或2
×
4大小的子块,该子块的前两对像素对对应参考矩阵的两组坐标;c132.判断要嵌入的恢复位组是否大于8,以选择不同的参考矩阵进行嵌入;如果恢复位组的十进制r小于或等于8,则像素对(p
x
, p
x+1
)对应到第一参考矩阵中,以(p
x
, p
x+1
)为中心形成一个3
×
3大小的矩阵,如果对应点的值是r,像素对不需要改变,否则,在3
×
3矩阵中找到等于r的值,将(p
x
, p
x+1
)修改为(p
x’, p
x+1’)来嵌入r;同时产生一个标志位0;当r大于8时,(p
x
, p
x+1
)对应到第二参考矩阵中,在以(p
x
, p
x+1
)为中心的3
×
3矩阵中找到值等于r对应的点(p
x’, p
x+1’),同时产生一个标志位1;c133.将生成的两个标志位嵌入到子块的第三个像素对的倒数第二最低有效位中;
c2.嵌入水印认证位的具体过程为:c21.在嵌入恢复位和标志位后,子块中第三和第四个像素对的2位最低有效位被设置为0用来生成认证位;c22.基于步骤b3,利用图像的像素值、子块编号和块索引生成一个6位的哈希值k;c23.用生成的哈希值k替换第三个像素对的最低有效位和第四个像素对的2位最低有效位。
11.进一步地,步骤d的具体过程为:d1.基于参考矩阵和lsb进行水印提取,包括提取恢复位、标志位和认证位;d2.进行篡改检测和定位,篡改检测分为第一阶段、第二阶段;d3.利用提取的恢复位来恢复被篡改的子块,最后得到恢复的图像。
12.进一步地,步骤d1的具体过程为:d11.将接收到的图像按照步骤a划分为大小为4
×
2或2
×
4的子块;d12.根据提出的参考矩阵,从子块的前两个像素对中提取恢复位;具体过程为:d121.从子块中第三个像素对中提取标志位;d122.根据标志位,确定分别嵌入前两个像素对的4位恢复位的十进制值是否大于8;d123.如果提取的标志位为0,说明嵌入的信息小于8,第一参考矩阵中的点(p
x’, p
x+1’)所对应的值就是嵌入的信息;否则,标志位为1,说明嵌入的信息大于8,第二参考矩阵中的点(p
x’, p
x+1’)所对应的值就是嵌入的信息;d13.从子块中第三和第四个像素对的2位最低有效位中提取认证位。
13.进一步地,步骤d2的具体过程为:d21.根据步骤b中恢复位、认证位的生成过程,基于得到的子块重新计算恢复位和认证位;d22.篡改检测第一阶段将提取的认证位与重新计算的认证位进行对比,如果提取的认证位与重新计算的认证位相同,则认为该子块未被篡改;否则,则认为该子块被篡改;d23.篡改检测第二阶段对比重新计算的恢复位和提取的恢复位,当重新计算的恢复位与提取的恢复位之间差值的绝对值大于阈值,并且子块在步骤d22中被标记为未被篡改,则将该块进一步标记为被篡改。
14.进一步地,步骤d3的具体过程为:d31.采用密钥k将步骤d中提取的恢复位进行逆置乱;d32.根据步骤d2中篡改检测和定位的结果进行图像自恢复,具体恢复过程为:如果子块1被篡改,根据其相应的恢复位所在的子块2进行自恢复;当子块1与子块2同时被篡改时,则通过邻域子块取平均值的方法恢复子块1,如公式(3)所示,当邻域子块中有标记为被篡改的子块或邻域部分子块不存在时,则不计算该子块的平均值,p1(i,j)=[p1(i,j-1)+p1(i,j+1)+p1(i-1,j-1)+p1(i-1,j)+p1(i-1,j+1)+p1(i+1,j-1)+p1(i+1,j)+p1(i+1,j+1)]/c
ꢀꢀꢀ
(3)其中,子块1所处位置(i,j)的平均值为p1(i,j),其邻域子块平均值分别为p1(i,j-1),p1(i,j+1),p1(i-1,j-1),p1(i-1,j),p1(i-1,j+1),p1(i+1,j-1),p1(i+1,j),p1(i+1,j+1);(i,j)表示子块1在图像中的位置,c表示子块1邻域子块中未被篡改的子块数。
[0015]
本发明所带来的有益技术效果:本发明采用sha-256算法来生成认证位,以确保水印的安全性,将图像块的像素、子块编号和块索引作为算法的输入,无需额外的存储空间,获得的哈希值与图像的内容相关联,提高对图像内容变换的敏感度;本发明提出一种参考矩阵与lsb替换结合的水印方案,相对于基于常规参考矩阵的方案提供了更高的嵌入容量,同时也提供了更好的水印不可感知性,实现了嵌入容量和水印图像质量之间的权衡;本发明具备篡改检测和定位的能力,可以通过多重篡改检测和定位来提高检测的精度和降低篡改区域的漏检率;自恢复的性能因水印携带更多的信息而得到增强,在50%篡改的情况下,被篡改的图像仍然可以被恢复。
附图说明
[0016]
图1为本发明基于参考矩阵和lsb替换的水印嵌入和图像自恢复方法整体流程图;图2为本发明中水印嵌入的流程图;图3为本发明中水印嵌入过程的实例图;图4为本发明中水印提取及图像恢复的流程图;图5为本发明中水印提取过程的实例图;图6为采用测试图像lena将本发明所提方案与方案2和3的对比结果图;图7为采用测试图像plane将本发明所提方案与方案2和3的对比结果图。
具体实施方式
[0017]
下面结合附图以及具体实施方式对本发明作进一步详细说明:如图1所示,本发明提出了一种基于参考矩阵和lsb替换的水印嵌入和图像自恢复方法,包括在图像中利用参考矩阵和lsb方法灵活嵌入水印,以及通过提取水印对图像进行检测和恢复,具体过程主要分为以下几个步骤:a.实时采集原始图像,采用块划分方法将图像划分为4
×
2或2
×
4大小的子块;b.生成水印的恢复位、标志位和认证位;c.基于参考矩阵和lsb替换将水印嵌入原始图像;d.通过提取水印进行图像的篡改检测和自恢复。
[0018]
下面首先介绍几个引入的重要技术。
[0019]
一、原始图像块划分方法本发明采用一种有效的块划分方法,该方法对图像划分的过程,原始图像首先被分割成4
×
2(4行2列)或2
×
4(2行4列)大小的子块,每个子块的平均值m或n用来恢复图像。垂直恢复的图像和水平恢复的图像分别由4
×
2或2
×
4类型的子块得到。判断这两幅图像与原始图像的相似度,通过相似度较高的一幅图像选择子块划分类型。以原始lena图像为例对块划分方法进行说明,首先将原始lena图像划分为4
×
2大小的子块,计算4
×
2子块的平均值,用来获得垂直恢复的lena图像;然后,以同样的方式,将原始lena图像划分为2
×
4大小的子块,计算2
×
4子块的平均值,用来获得水平恢复的lena图像;最后,比较垂直和水平恢复的lena图像与原始lena图像的psnr,对比得知,垂直恢复的lena图像的psnr为29.89db,水平恢复的lena图像的psnr为28.40 db,垂直恢复的lena图像的psnr高于水平恢
复的lena图像,因此,原始lena图像最终被分成4
×
2大小的子块。
[0020]
二、sha-256算法sha-256算法是一种单向的,只有编码没有解码的算法,它的输出与输入是一一对应的。它是用于数据唯一性和完整性验证的最安全的哈希函数之一。sha-256算法可以将任意长度的输入转换成256比特的固定长度的输出。本发明利用sha-256算法来生成认证位,以确保水印的安全性。图像块的像素、子块编号和块索引为算法的输入,无需额外的存储空间。获得的哈希值与图像的内容相关联,提高方案对图像的敏感度。
[0021]
三、基于参考矩阵的数据隐藏参考矩阵是位于空间域的一种新颖的映射方法。参考矩阵的大小通常为256
×
256,对应于0到255的像素值。
[0022]
为了减少水印图像的失真,更好地提高水印图像的视觉质量,本发明提出了两个256
×
256的参考矩阵:包括第一参考矩阵和第二参考矩阵。所提出的两个256
×
256的参考矩阵的特征如下:第一参考矩阵的特点是以任意一点为中心的3
×
3大小的矩阵,只包含从0到8的9个数字,对应于二进制(0000)到(1000);第二参考矩阵的特点是以任意一点为中心的3
×
3大小的矩阵,只包含从7到15的9个数字,对应于二进制(0111)到(1111)。在传输过程中,只需要传输其中一个矩阵,接收方可以根据获得的矩阵计算出另一个矩阵。
[0023]
表1和表2分别给出了基于第一参考矩阵和第二参考矩阵的数据隐藏实例,表1和表2中只展示了256
×
256矩阵的前9行9列。
[0024]
举例1:假设原始像素对是(5,3),要隐藏的秘密信息s1是4,因为s1小于8,选择第一参考矩阵进行数据隐藏;在第一参考矩阵形成一个以(5,3)为中心的3
×
3的矩阵,发现s1位于(4,2),因此,将像素对(5,3)修改为(4,2)来隐藏信息4,具体见表1。
[0025]
表1 第一参考矩阵数据隐藏举例举例2:假设原始像素对是(1,5),要隐藏的秘密信息s2为9,因为s2大于8,在第二参考矩阵上形成一个以(1,5)为中心的3
×
3的矩阵,找到s2所在的位置(2,4),将像素对(1,5)
修改为(2, 4)来隐藏信息 9,具体见表2。
[0026]
表2 第二参考矩阵数据隐藏举例基于以上技术,本发明水印嵌入和图像自恢复方法的过程主要为:首先生成水印的恢复位、标志位和认证位,然后再将水印嵌入原始图像,最后通过提取水印进行图像的篡改检测和自恢复。其中,水印的恢复位用于恢复被篡改的图像块;标志位用于区分嵌入恢复位时采用的是第一参考矩阵还是第二参考矩阵;认证位用于图像块的篡改检测和定位。
[0027]
b、水印恢复位、标志位和认证位的生成b1.恢复位的生成过程如下:为了获得恢复位,首先采用上述块划分方法,将图像划分为4
×
2或2
×
4大小的子块。每个子块的平均值被用来恢复图像。如公式(1),对于每个子块,计算出8个像素p
x
的平均值p,将p转换成8位二进制,作为一个子块的恢复位。
[0028]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,p
x
表示每个子块中第x个像素;b2.标志位的生成过程如下:标志位的产生是为了区分在嵌入恢复位的过程中选择哪个参考矩阵。当嵌入恢复位时,8位二进制恢复位首先被分为两组4位。如公式(2),每一组恢复位的十进制r被判断是否大于8。如果r大于8,就会产生一个标志位f=1,这意味着所选的矩阵是第二参考矩阵。否则,生成一个标志位f=0 ,意味着所选矩阵是第一参考矩阵。
[0029]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)b3.认证位的生成过程如下:
认证位应保证即使是微小的变化也能被识别。sha-256算法可以在输入不同时产生完全不同的输出。因此,本发明选择了上述sha-256算法来生成认证位,不管有什么细微的变化,都可以检测到变化的图像块。生成认证位的过程如下:b31.对于已经嵌入恢复位和标志位的子块,最后两对像素对的2位最低有效位设置为0。
[0030]
b32.将图像的像素值、子块编号和块索引作为sha-256算法的输入,以获得256位的哈希值k。
[0031]
b33.取哈希值k的前6位作为该子块的认证位。
[0032]
c、基于参考矩阵和lsb替换的水印嵌入该过程包括基于参考矩阵和lsb的恢复位和标志位的嵌入,以及基于lsb的认证位嵌入;如图2所示,给出了生成和嵌入水印的整体过程(只展示了4
×
2大小子块的生成和嵌入水印的过程)。比如当原始图像为lena图时,首先将原始图像划分为4个主块。然后,由于垂直恢复的lena图像有较高的psnr,将这些主块划分为4
×
2大小的子块。最后,依次生成恢复位、标志位和认证位,分别基于参考矩阵的方法和lsb替换方法将它们嵌入。
[0033]
c1.嵌入水印恢复位和标志位的具体过程如下:c11.基于步骤a中划分的子块,计算每个子块的平均值p作为恢复位,将8位平均值分为两个4位组,并转换为十进制。
[0034]
c12.使用密钥k对每个主块中的恢复位进行置乱,并将它们嵌入到最远的主块中。
[0035]
c13.根据上述提出的参考矩阵嵌入恢复位。具体过程为:c131.步骤a划分子块时会先将图像分成4个相同大小的主块,从最远的主块中选择一个4
×
2或2
×
4大小的子块,该子块的前两对像素对对应参考矩阵的两组坐标。
[0036]
c132.判断要嵌入的恢复位组是否大于8,以选择不同的参考矩阵进行嵌入。
[0037]
如果恢复位组的十进制r小于或等于8,则像素对(p
x
, p
x+1
)被对应到第一参考矩阵中,以(p
x
, p
x+1
)为中心形成一个3
×
3大小的矩阵。如果对应点的值是r,像素对就不需要改变。否则,在这个3
×
3的矩阵中找到等于r的值,将(p
x
, p
x+1
)修改为(p
x’, p
x+1’)来嵌入r。此时产生一个标志位0。当r大于8时,(p
x
, p
x+1
)被对应到第二参考矩阵,在一个以(p
x
, p
x+1
)为中心的3
×
3矩阵中找到值r对应的点(p
x’, p
x+1’),同时产生一个标志位1。
[0038]
c133.将生成的两个标志位嵌入到子块的第三个像素对的倒数第二最低有效位中。
[0039]
c2.嵌入水印认证位的过程详细说明如下。
[0040]
c21.在嵌入恢复位和标志位后,子块中第三和第四个像素对的2位最低有效位被设置为0用来生成认证位。
[0041]
c22.基于步骤b3,利用图像的像素值、子块编号和块索引生成一个6位的哈希值k。
[0042]
c23.用生成的哈希值k替换第三个像素对的最低有效位和第四个像素对的2位最低有效位。
[0043]
图3给出了水印嵌入的一个实例。假设要嵌入的恢复位为(10001100),要嵌入的子块如图3所示。首先,将恢复位分为两个4位组,即(1000)和(1100)。选择子块中的第一个像素对(70,68)来嵌入第一组恢复位(1000),转换成十进制为r1=8。以(70,68)为中心在第一参考矩阵形成一个3
×
3大小的矩阵,其中包含从0到8的9个数字。找到要嵌入的信息8在3
×
3矩阵中的位置,将(70,68)修改成(69,69)来嵌入8;同时生成一个标志位f1=0,表示选择了第一参考矩阵。利用同样的过程将第二组恢复位嵌入第二个像素对(49,48),第二组恢复位(1100)被转换为十进制r2=12。以(49,48)为中心在第二参考矩阵形成一个3
×
3大小的矩阵。它包含了从7到15的9个数字。将(49,48)修改成(50,48)来嵌入信息12;同时生成一个标志位f2=1,说明选择了第二参考矩阵。接下来,子块的第三个像素对(35,31)来嵌入两个生成的标志位f1和f2。第三个像素对(35,31)的倒数第二位最低有效位分别被替换成标志位0和1。最后,通过sha-256算法计算出哈希值(011000)。然后,子块中第三个像素对(33,31)的最低有效位和第四个像素对(37,29)的2位最低有效位被替换成6位哈希值。最终,得到嵌入了恢复位、标志位和认证位的水印图像。
[0044]
d、图像篡改检测和自恢复如图4所示,给出了提取水印并用于图像篡改检测和自恢复的过程。分别基于参考矩阵和lsb的水印提取,包括恢复位、标志位和认证位;进行篡改检测和定位,包括重新计算恢复位和认证位,通过分别对比重新计算的认证位和恢复位与提取的认证位和恢复位,来判断子块是否被篡改;图像自恢复,利用嵌入的恢复位来恢复被篡改的子块,最后得到恢复的图像。
[0045]
d1.基于参考矩阵和lsb进行水印提取,提取过程如下。
[0046]
d11.将接收到的图像按照步骤a划分为大小为4
×
2或2
×
4的子块。
[0047]
d12.根据提出的参考矩阵,从子块的前两个像素对中提取恢复位。
[0048]
d121.首先从子块中第三个像素对的最低有效位中提取标志位。
[0049]
d122.根据标志位,确定分别嵌入前两个像素对的4位恢复位的十进制值是否大于8。
[0050]
d123.如果提取的标志位为0,说明嵌入的信息小于8,第一参考矩阵中的点(p
x’, p
x+1’)所对应的值就是嵌入的信息;否则,标志位为1,说明嵌入的信息大于8,第二参考矩阵中的点(p
x’, p
x+1’)所对应的值就是嵌入的信息。
[0051]
d13.从子块中第三和第四个像素对的2位最低有效位中提取认证位。
[0052]
图5给出一个实例来说明提取水印的具体过程。假设得到一个4
×
2大小的子块。将第四个像素对(38,28)转换成二进制提取认证位。然后将第三个像素对(32,31)转换为二进制,并从最低有效位中提取标志位和认证位。根据第一个提取的标志位0,意味着第一个像素对(69,69)中嵌入的信息是在0到8的范围内。因此,在第一个参考矩阵中找到(69,69)对应的值,得到r1=8,说明嵌入的二进制信息是(1000)。同样,根据第二个提取的标志位1,说明嵌入的信息属于7到15的范围。因此,在第二参考矩阵中找到(50,48)对应的值,得到r2=12。意味着嵌入的二进制信息是(1100)。最后,结合前两个像素对中提取的二进制信息以获得完整提取的恢复位(10001100)。
[0053]
d2.篡改检测和定位的过程详述如下,其中,篡改检测分为两个阶段,第一阶段基于对比提取的认证位和重新计算的认证位,第二阶段基于对比提取的恢复位和重新计算的恢复位。
[0054]
d21.根据步骤b中恢复位、认证位的生成过程,基于得到的子块重新计算恢复位和认证位。
[0055]
d22.篡改检测第一阶段将提取的认证位与重新计算的认证位进行比较,如果提取
的认证位与重新计算的认证位相同,则认为该子块未被篡改;否则,则认为该子块被篡改。
[0056]
d23.篡改检测第二阶段对比重新计算的恢复位和提取的恢复位,当重新计算的恢复位与提取的子块恢复位之间差值的绝对值大于阈值,并且子块在步骤d22中被标记为未被篡改,则将该块进一步标记为被篡改。
[0057]
d3.图像自恢复过程描述如下。
[0058]
d32.采用密钥k将步骤d中提取的恢复位进行逆置乱。
[0059]
d32.根据步骤d2中篡改检测和定位结果进行图像自恢复,具体恢复过程为:如果子块1被篡改,根据其相应的恢复位所在的子块2进行自恢复。当子块1与子块2同时被篡改时,则通过邻域子块取平均值的方法恢复1,当邻域子块中有标记为被篡改的子块或邻域部分子块不存在时,则不计算该子块的平均值。例如,假设子块1所处位置(i,j)的平均值为p1(i,j),其邻域子块平均值分别为p1(i,j-1),p1(i,j+1),p1(i-1,j-1),p1(i-1,j),p1(i-1,j+1),p1(i+1,j-1),p1(i+1,j),p1(i+1,j+1),如公式(3)恢复子块1。
[0060]
p1(i,j)=[p1(i,j-1)+p1(i,j+1)+p1(i-1,j-1)+p1(i-1,j)+p1(i-1,j+1)+p1(i+1,j-1)+p1(i+1,j)+p1(i+1,j+1)]/c
ꢀꢀꢀ
(3)其中,c表示子块1邻域子块中未被篡改的子块数。
[0061]
为了说明所提出方案的嵌入容量、水印图像的视觉质量、篡改检测性能和恢复图像的视觉质量,本发明进行了一系列实验。实验是在具有intel(r) core(tm) i5-7200u cpu @ 2.50ghz 2.70ghz,8gb内存的个人计算机的matlab r2020a上进行的。仿真实验结果证明了本文提出的方案的可行性。
[0062]
本发明采用了常见的评价指标来评估所提方案的有效性,包括嵌入容量(ec)、psnr、ssim。其计算方法分别描述如下。
[0063]
嵌入容量是指嵌入到原始图像像素中的水印位的数量,其计算公式如下。cw表示包括恢复位、认证位在内的水印位总数。c
p
代表图像像素的总数。
[0064]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)psnr是一个评价图像质量的客观标准。如公式(5)所示,psnr的计算取决于两幅图像的像素之间的均方误差。得到的图像和原始图像之间的均方误差越小,psnr越高,图像的失真就越小,因此得到图像的视觉质量就越高。其中io表示原始图像,ir表示得到的图像,h和w是图像的高度和宽度。
[0065]
ꢀꢀꢀꢀꢀꢀ
(5)如公式(6)所示,ssim是一个用于衡量两幅图像之间相似程度的指数,包括亮度、对比度和结构相似性等。ssim的范围是[0,1]。当两幅图像的ssim越接近1,表明这两幅图像越相似。公式(6)给出了ssim的计算方法。和分别代表原始图像和得到图像的像素的平均值。和分别是原始图像和得到图像的标准偏差。代表原始图像和得到图
像的像素的协方差,c1和c2是常数。
[0066]
ꢀꢀꢀꢀ
(6)本发明实验采用了一系列尺寸为512
×
512的测试图像。分别从嵌入容量、不可感知性、篡改检测和自恢复性能三个方面分别阐述本发明方案的性能。
[0067]
嵌入容量越高,水印所包含的信息越丰富,篡改检测和恢复图像的质量就越准确。大小为512
×
512的图像可以得到512
×
512/(4
×
2)=32768个子块。如公式(4)所述,一个子块可以嵌入8位恢复位和6位认证位。水印位的总数c
w =(8+6)
×
32768=458752位。因此,嵌入容量ec=cw/c
p =458752/(512
×
512)=1.75 bpp(比特每像素)。
[0068]
水印的不可感知性由psnr和ssim表示。psnr和ssim越高,说明水印图像与原始图像越相似。也说明水印的不可感知性越好。表3给出了水印图像的详细数据,包括psnr,ssim,以及子块划分的大小。如表3所示,无论在4
×
2或2
×
4的子块划分方法下,水印图像的psnr和ssim都能达到46.12 db和0.9861。
[0069]
表3 水印图像性能图像在传输过程中容易受到各种类型的攻击。能够准确检测和定位篡改攻击区域是图像自恢复的基础。对水印图像的不同区域进行了不同类型的攻击(包括剪切攻击、复制-粘贴攻击、拼贴攻击、文本添加攻击),以衡量所提方案的抗干扰性。
[0070]
剪切攻击实验:选用lena、plane、peppers、goldhill四幅图像进行剪切攻击,水印图像psnr都高于46.13db。对不同区域进行剪切攻击后的篡改图像,其篡改程度分别为0.5%、2%、25%和50%,通过使用本发明方法进行恢复后,无论轻微还是较大的篡改都可以被检测和定位。表4中给出了在不同程度的剪切攻击下恢复图像的psnr和ssim。当篡改率为10%时,不同恢复图像的psnr在40.92-44.90 db之间,而ssim在0.9673-0.9827之间。随着篡改率增加,psnr和ssim不断下降。当篡改率达到50%,psnr的值在31.33 db和33.50 db之间变化,ssim的值在0.8660到0.9443之间。在篡改率为50%的情况下,恢复的peppers图像的psnr为31.33 db,可以看出能够在没有明显失真的情况下显示图像的内容,其他恢复图像也是这样。
[0071]
表4 抵抗剪切攻击性能
复制-粘贴攻击实验:复制-粘贴攻击是指复制其他原始图像的一部分并直接粘贴到水印图像上。选用lena和goldhill的水印图像,psnr为46.14 db和46.13 db;恢复的图像psnr分别为42.34 db和40.97 db。综合来看,提出的方案具有准确的检测能力和对复制-粘贴攻击的自恢复能力。
[0072]
拼贴攻击实验:拼贴攻击是根据提出的水印生成和嵌入方案生成一个水印图像w1,然后将w1的一部分拼贴到另一个水印图像w2上。选用plane和baboon的水印图像,他们的psnr为46.14 db和46.15 db。lake水印图像的右上角被拼贴在plane水印图像同一位置。peppers水印图像的一部分被拼贴到baboon水印图像上。恢复的图像,psnr分别为41.01 db和31.26 db。因为baboon图像的纹理很复杂,拼贴攻击后恢复的baboon图像的psnr并不高。主要原因是4
×
2或2
×
4大小的子块的平均值不足以完全恢复图像的细节。然而,恢复后的baboon图像的视觉效果是能识别的。因此,所提出的方案具有抵御拼贴攻击的能力。
[0073]
文本添加攻击实验:选用livingroom和pepper的水印图像,psnr为46.12 db和46.13 db。两幅水印图像被不同的文本篡改攻击。恢复图像psnr分别为43.28 db和45.35 db。综上所述,所提出的方案是能够抵抗文本添加攻击的。
[0074]
为了更清晰描述本发明方案的性能,在以下两个方面与其他方案进行了对比实验。
[0075]
1、水印的嵌入容量与不可感知性对比实验在其他现有的类似方案中,将具有良好的视觉质量和嵌入能力的方案与本发明方案进行了比较。在表5中给出对比结果,其中包括嵌入方法、有效载荷、psnr、ssim和计算复杂度。如表5所示,方案1是一种用于医学图像篡改检测和定位的高效水印技术,其psnr为51.26 db,高于本发明所提出的方案,而它的嵌入容量有所不足。方案2是一种新的基于像素级认证的自嵌入脆弱水印方法,其有效载荷为3 bpp,相对较高,但水印图像的视觉质量稍有下降。方案3是基于双域方法的内容认证和自恢复彩色图像水印,是在空间域和dct域实现的,因此可以抵抗jpeg压缩。然而,本发明提出的方案psnr和载荷更高,为46.12 db和1.75 bpp,比方案3高出2.92 db和0.19 bpp。当涉及到计算复杂度时,本发明所提出的方案并没有比其他方案差。对于大小为h
×
w的图像,基于提出的参考矩阵嵌入恢复位的计算复杂度为:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)基于最低有效位替换的标志位和认证位嵌入的计算复杂度是o((h
×
w)/2)≈o(h
×
w)。
[0076]
篡改检测过程中的计算复杂度在公式(8)中给出。
[0077]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)图像恢复的计算复杂度为o(h
×
w)。因此,提出方案的总计算复杂度为o(h
×
w)。
[0078]
表5 具有良好的视觉质量和嵌入能力的方案与本发明方案对比分析结果表6给出lsb替换方法与本发明方法的对比。在lsb替换方法中,载荷的提高导致psnr的下降。令平均载荷为1.75 bpp时,lsb替换方法的psnr为43.73 db,低于本发明方案。参考矩阵的运用使得像素值的修改更小,图像的失真更少。如表6中最后一列所示,在嵌入相同容量时,本发明方法的嵌入时间为0.067 s,与lsb替换方法相当。
[0079]
表6 lsb方案与本发明方案对比分析结果2、篡改检测和自恢复性能对比实验为了展示本发明方案的篡改检测性能,在篡改检测率、误报率及漏报率等方面与方案4进行了对比实验。方案4是一种用于图像篡改检测的混合数独脆弱水印方案,其psnr为47.80 db,有效载荷为1.58 bpp,与本发明的实验结果相当。然而,它没有提供图像自恢复的功能。篡改检测率越高、误报率和漏报率越低,说明方案的篡改检测性能越好。
[0080]
如表7所示,在篡改形状和区域类似时,本发明方案的篡改检测率比方案4 更高,漏报率比方案4更低,说明在大多数情况下,本发明方案能比方案4检测出更多的篡改像素。而在一些不规则形状的篡改攻击下,本发明方案的误报率比方案4略高一些,因为本发明方案采用了4
×
2或2
×
4的块划分方法,而方案2采用了1
×
2的块划分方法。
[0081]
表7 篡改检测性能对比分析图像的自恢复功能对比如图6和图7所示,以共同的测试图像lena和plane为例,随着篡改率的增加,恢复图像的psnr在下降。在图6中,方案3恢复图像的psnr总是低于本发明提出的方案。当篡改率为12%-45%时,本发明提出方案中恢复的lena图像的psnr高于方案2。
在图7中,提出方案中恢复的plane图像的psnr总是高于其他两个方案。
[0082]
综上实验结果表明,使用本发明所提出的参考矩阵,嵌入容量可以达到1.75 bpp,比方案1、3、4高出0.19-0.75 bpp。水印图像的平均psnr可以达到46.12 db以上,比方案2和方案3超出2.92-7.76 db。这表明所提出的方案不仅具有较高的嵌入能力,而且水印图像的视觉质量很好。sha-256算法和加扰的恢复位保证了水印的安全性。用不同的类型的篡改攻击水印图像来验证该方案的安全性,如剪切、复制粘贴、拼贴和文本添加攻击等。本文提出方案的抵抗篡改能力达到了50%。能够通过提取认证位来定位被篡改的区域,通过提取恢复位来恢复被篡改的区域。实验结果表明,篡改率达到50%时,恢复后的图像仍能保持良好的视觉质量。
[0083]
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1