一种新的直方图数字水印算法研究与设计

2018-11-15 09:08肖文静宋培非李子臣
信息安全研究 2018年11期
关键词:数字水印鲁棒性直方图

肖文静 岳 桢 宋培非 李子臣

1(北京印刷学院信息工程学院 北京 102600)2 (北京邮电大学信息安全中心 北京 100876)

图像直方图与像素在图像中位置无关,所以能被很好地应用到抗几何攻击的数字水印算法中.当图像被几何攻击时,图像的大小和空间位置会发生相应的改变,但是直方图中各个灰度级的像素个数,确切地说是各个灰度级像素个数占总像素个数的比例基本保持不变,即直方图的形状特征保持稳定,所以基于直方图的水印具有较强的鲁棒性.

1998—2008年,文献[1-4]提出了基于直方图修改的水印算法,但嵌入容量较低,同时在传统信号处理下其鲁棒性不强.2010年,Deng等人[5]在Xiang的工作基础上从统计区间选取、直方图修改方式和提取方式几个方面对算法进行了改进,将原先的2个bin 1组修改为3个bin(灰度级) 1组,增强了水印的鲁棒性,但算法并没有提高水印嵌入容量.2008—2015年,文献[6-9]给出了一种基于直方图修改的图像水印算法,能抵抗一般的传统信号处理攻击以及几何攻击,增强了算法的鲁棒性,同时应用到视频水印中,但该算法并未对嵌入容量进行改进.

2017年在数字水印国际研讨会(Digital Forensics and Watermarking)上,Feng等人[10]提出了2种新的方法来改进嵌入算法:第1种算法执行多轮嵌入,以携带更多的水印比特;第2种算法使用1组直方图嵌入多个水印位,在此基础上优化系数转移,以减少嵌入失真.这些算法一定程度上提高了水印信息嵌入量,但花费更多bin的资源,单位图像资源嵌入水印信息量并未增加.

提高水印嵌入容量、增强鲁棒性目前依然是直方图数字水印算法研究热点.本文提出一种新的基于2bin直方图的数字水印算法,分3种情况修改直方图中相邻的2bin,嵌入信息由原来的“0,1”组成的字符串变成“-1,0,1”组成的字符串,即从二进制转为三进制,新的算法提高了嵌入水印的容量,同时增强其鲁棒性.实验结果表明,新的算法嵌入水印信息容量增加60%,并且有较高的鲁棒性.

1 基于直方图数字水印算法

1.1 生成直方图

首先,对于1张大小为m×n的灰度图,我们可以通过式(1)提取出直方图,记为H.直方图有#(H)个bin.

(1)

1.2 水印嵌入

每2个相邻的bin组成1组,嵌入1个水印位.假设H(2i-1)和H(2i)这2个bin用于嵌入水印信息M(i),1≤i≤#(H)2.根据式(2)调整bin的高度.具体如下:

(2)

阈值T控制bin之间的间隙数量,n表示从H(2i)转移到H(2i-1)的系数的数量.当系数需要从H(2i-1)转移到H(2i)时,n为负数.它的值可以通过式(3)计算,使转移系数最小化.

(3)

1.3 水印提取

(4)

上述方案已经在很多方法中扩展.然而,嵌入算法仍然相似.它们同样面临水印嵌入容量的问题.下面简单介绍一种著名的基于直方图修改水印算法.

2 Xiang的基于直方图水印算法

2008年,Xiang等人[1]提出的是一种利用直方图形状和图像均值进行水印嵌入的方法.

该算法的思路如图1所示.

假设2个bin的像素个数分别为a和b,则嵌入规则如下:

(5)

其中T是在图像质量和鲁棒性之间取折中的1个阈值.修改直方图,本质上是修改图像中的像素信息.下面举例说明.

假设有2组bin,像素值分别为110,111和120,121,相应像素值的个数分别为4,5和8,7,我们对其进行水印嵌入,如图2所示.假如嵌入信息分别为“1”和“0”,对2组bin进行如下调整以满足嵌入规则.

图1 Xiang的直方图水印嵌入方法

图2 直方图调整

3 新的基于直方图水印算法

针对嵌入容量较小的问题,本文提出了一种新的改进直方图水印算法,增加嵌入水印比特信息.在传统的算法中,嵌入信息以“0,1”字符串的形式表示,分2种情况完成水印的嵌入和提取.本文提出的算法中嵌入信息是由“-1,0,1”这3个数字组成的字符串,相当于三进制,提取信息时,按照3种情况提取.

3.1 嵌入算法

首先对图像进行高斯低通滤波,得到其图像低频部分,然后对图像低频部分,计算其均值并提取图像直方图,根据均值选定统计灰度区间,将统计区间每2个灰度级为1组,按照嵌入规则每组嵌入1 b水印信息,像素调整在同一组下的相邻灰度级之间进行,随机选取像素.

嵌入规则如下:

(6)

其中T≥1是在图像质量和鲁棒性之间取折中的一个阈值.

1) 嵌入水印比特为0.如果|a-b|≤1,不需要调整任何像素;否则,如果a>b,从bin1的像素中随机选择I1个进行调整,使得它们落入bin2内.即调整后a1=a-I1,b1=b+I1,且满足|a1-b1|≤1;如果b>a,同理.

(7)

(8)

3.2 提取算法

提取算法依照嵌入规则逐个提取.首先对图像进行滤波,计算均值和直方图,确定统计区间并进行两两分组,依照规则对每组进行水印比特信息提取.

提取算法如下:

2)提取第i组的2个bin嵌入的水印比特;

假设第i组的前后2个bin的像素个数为a′和b′,则第i位水印比特为

(9)

3) 重复步骤2),提取出所有水印信息.

4 实验结果

前面已经对本文提出的三进制直方图数字水印算法进行了介绍,本节将对算法进行相应的鲁棒性测试,给出实验结果并进行分析和讨论.

图3 原始图像

测试所选测试集为50幅512×512大小的灰度图像(本文以Lena图为例),原始图像、嵌入水印图像以及对应直方图如图3~5所示:

图4 嵌入水印图像

图5 原始直方图和嵌入水印直方图对比

4.1 容 量

水印信息嵌入容量测试.将该算法与文献[1,10]所提出的算法进行比较.设定2种算法中直方图bin的数量#(H)增加,以扩大嵌入容量.比较#(M)=32和#(M)=48情况下的所有算法,如表1所示:

表1 算法实验数据对比

A为直方图灰度均值;α为嵌入阈值;π为每段中bin的个数.

通过分析表1中的数据可以发现,在嵌入容量一定的情况下,本文算法进行水印嵌入需要更少的bin.由此得出结论,本文提出的算法嵌入容量明显提高.

4.2 图像质量测试

图像质量测试的实验结果用峰值信噪比(PSNR)来反映,MAX表示最大灰度级,img表示原始图像,imgn表示嵌入水印图像,MES表示均方差.计算公式如下,其中B表示编码一个像素所用二进制位.

MAX=2B-1,

假设B=8,经计算可知PSNR= 51.717 5,该结果满足对图像质量的要求.

4.3 鲁棒性测试

鲁棒性测试主要采用图像压缩、旋转、划线和剪切4种攻击方法进行.并与Xiang,Deng,Hu这3人的算法结果进行对比分析.

对水印算法在几种攻击下的鲁棒性,实验结果用误码率(BER)来反映.

假设水印长度为L,则

其中numerror为提取错误的水印的比特位数.

测试内容包括:

图6 JPEG压缩攻击后BER测试

1)图像压缩.JPEG压缩,压缩系数从10~100,压缩系数越大,图像质量越好.测试结果如图6所示:

2) 旋转.图像旋转角度从3°~30°,间隔为3°.测试结果如图7所示:

图7 旋转攻击后BER测试

3) 划线.划线数量从1~8条.测试结果如图8所示:

图8 划线攻击后BER测试

4) 剪切.剪切部分所占比例逐渐增大至0.5.测试结果如图9所示:

图9 剪切攻击后BER测试

从实验结果我们可以看出,本文算法在JPEG压缩攻击下提取正确率整体高于Xiang的方法,同时在旋转攻击和划线攻击下,相比于其他算法,该算法提取正确率较高.同时,本文的算法对传统信号处理攻击和几何攻击都具有较好的鲁棒性.

5 结 论

本文针对图像直方图水印嵌入容量较小的问题,对水印嵌入信息进行修改,将水印信息由原本的“0,1”字符串改成“-1,0,1”组成的字符串,即水印信息从二进制变为三进制,并提出了一种新的基于直方图图像水印的算法.

实验结果表明,本文算法在保证嵌入后图像高质量的同时,在抵抗传统信号处理攻击和几何攻击方面也有比较好的表现.同时,增加了水印嵌入容量,在进行JPEG压缩攻击和旋转攻击时,算法提取正确率明显提高.

猜你喜欢
数字水印鲁棒性直方图
符合差分隐私的流数据统计直方图发布
基于遗传优化的自然语言文本数字水印方法
武汉轨道交通重点车站识别及网络鲁棒性研究
基于FPGA的直方图均衡图像增强算法设计及实现
荒漠绿洲区潜在生态网络增边优化鲁棒性分析
基于网屏编码的数字水印技术
基于确定性指标的弦支结构鲁棒性评价
用直方图控制画面影调
中考频数分布直方图题型展示
一种基于三维小波变换的鲁棒视频水印方案