APP下载

打印扫描不变的多轮廓像素翻转文本图像水印算法

2020-07-22宋春花牛保宁兰方鹏

太原理工大学学报 2020年4期
关键词:鲁棒性轮廓分量

郭 雯,宋春花,关 虎,黄 樱,牛保宁,兰方鹏

(1.太原理工大学 信息与计算机学院,太原 030024;2.中国科学院自动化研究所 数字内容中心,北京 100190)

文本图像水印技术是文本水印技术研究的一个重要方向,是文本侵权举证的重要手段[1]。文本图像在传播过程中,会遇到多种处理攻击,如旋转、加噪、压缩、打印扫描等。其中,打印扫描是文本图像的重要传播途径,同时也是文本信息泄漏和被盗用的常见方式之一。因此,文本图像水印既要能够抵抗常见的图像攻击,又要对打印扫描攻击具有良好的抵抗能力。然而,打印扫描是一个复杂的过程,对水印的攻击受仪器型号、参数影响较大,这给文本图像水印带来了极大的挑战。

当前,文本图像水印方法可以分为变换域方法[2-3]、空间域方法[4-9]和双域结合方法[10-12]。

变换域方法将像素值变换到某种变换域上,如离散余弦变换(discrete cosine transform,DCT)、离散傅里叶变换(discrete fourier transform,DFT)、离散小波变换(discrete wavelet transform,DWT)等,通过修改变换域系数嵌入水印。变换域方法鲁棒性强,但文本图像只有黑白二值,使用变换域方法嵌入水印以后需要将文本二值化,在此过程中水印容易丢失。

空间域方法是直接修改文本像素来嵌入水印的。可以通过修改文本结构嵌入水印,如上下移动行位置[4]、左右移动字符位置[5];可以通过修改字符特征嵌入水印,如拆分多结构字符[6]、调整笔画弯曲程度[7];可以通过翻转像素嵌入水印,如使用像素翻转策略选择人眼关注度低的像素进行翻转[8-9]。空间域方法不需要二值化处理,但对各种攻击的抵抗能力较差。

双域结合方法为结合变换域和空间域方法。HE et al[10]将文本图像进行分块,以每块内黑色像素数量比例作为特征值,结合单个像素的像素翻转策略和DCT嵌入水印;但是该算法的特征值在打印扫描前后差异较大,导致水印抗打印扫描的效果不理想。姚寒冰等[11]使用亓文法[9]提出的打印扫描不变量作为特征值,然后通过像素翻转和DCT嵌入水印;该算法只能嵌入64位水印,水印容量较低。TAN et al[12]提出单轮廓像素翻转策略,对连通分量最外层轮廓信息进行DFT,修改DFT系数得到新轮廓,通过新旧轮廓差异选择可翻转像素,然后结合打印扫描不变量翻转像素嵌入水印;该算法视觉效果好,但是单轮廓像素翻转策略可能会嵌入错误水印,降低水印鲁棒性。双域结合方法结合变换域和空间域方法的优点,可以提高水印的鲁棒性,又可用于二值文本图像,但当前双域结合方法对打印扫描攻击的抵抗能力依然有待提高。

针对当前文本图像水印方法对打印扫描攻击鲁棒性不佳的问题,本文基于打印扫描不变量提出一种多轮廓像素翻转的双域结合文本图像水印算法,在保证水印视觉不可见、能够抵抗常见图像攻击的前提下,提高水印对打印扫描攻击的抵抗能力,其创新点如下。

1) 提出一种水印压缩预处理方法,在嵌入水印前使用跳白块编码压缩水印图像,使得在文本图像总嵌入容量一定的情况下,增加水印嵌入的次数,达到提高水印鲁棒性的目的;

2) 提出多轮廓像素翻转策略,降低单轮廓像素翻转策略嵌入错误水印的可能性,提高水印鲁棒性;

3) 基于打印扫描不变量,结合DCT和多轮廓像素翻转策略,设计一种优化的双域结合的文本图像水印嵌入及提取算法,进一步提高水印鲁棒性。

1 相关工作

1.1 打印扫描不变量

在打印扫描过程中,文本会遭遇多种攻击,例如:旋转、压缩、加噪、缩放等,并且不同型号、不同参数的打印机和扫描仪给文本带来的影响也不同。这使得无法使用精确的模型模拟打印扫描过程[12]。为了使得水印能够抵抗打印扫描攻击,可以找到文本中在打印扫描前后保持不变的部分,利用此部分嵌入水印。亓文法[9]提出一种文本图像打印扫描过程中的不变量。

定义打印扫描不变量。在打印扫描过程前后,文本中单个字符包含的黑色像素数量和平均每个字符包含的黑色像素数量比值保持不变。表达式如下:

(1)

式中:F(x)和FPS(x)分别表示打印扫描前后的文本图像;I表示字符区域;x表示黑色像素数量;M和MPS分别表示打印扫描前后平均单个字符的黑色像素数量。

1.2 跳白块编码

跳白块编码是经典有效的二值图像无损压缩方法。为了增加水印嵌入次数,本文使用跳白块编码压缩水印图像。在跳白块编码中,白色像素表示为“0”,黑色像素表示为“1”.将图像分为多块,每块包含N位像素。如果块内都是白色像素,则使用“0”编码该块;如果块内包含黑色像素,则使用标志位“1”和块内N位像素的直接编码共同表示该块。解码时,若识别“0”,则恢复N位白色像素;若识别“1”,则按其后N位编码恢复N位像素[13]。

1.3 像素翻转策略

在像素翻转文本图像水印方法中,像素翻转策略选择文本中翻转后视觉差异小的像素进行翻转,是像素翻转水印方法中平衡水印不可见性和鲁棒性的重要技术。WU et al[8]提出一种经典的单像素的像素翻转策略,根据每个像素在其8邻域内的连通性和平滑性计算该像素的可翻转得分,选择得分高的像素翻转。该策略为量化比较每个像素的翻转级别提供了方案,但是单像素的像素翻转策略容易在字符笔画边界引入凹凸点,降低水印的不可见性[12]。为了解决该问题,TAN et al[12]提出单轮廓像素翻转策略。使用傅里叶描述子表示连通分量最外层的轮廓,修改傅里叶描述子得到新连通分量轮廓,根据新旧轮廓的差异选择可翻转像素。由于人眼对轮廓改变的敏感度比单个像素改变的敏感度更低,该策略更符合人类视觉特性。但是该策略容易嵌入错误水印,并且嵌入水印后可能打乱水印顺序,降低水印的鲁棒性。

2 打印扫描不变的多轮廓像素翻转文本图像水印算法

为了提高水印对于打印扫描攻击的抵抗能力,同时使得水印视觉不可见,对常见图像攻击具有抵抗能力,本文基于打印扫描不变量,结合DCT和像素翻转方法,提出一种文本图像水印算法。算法包括水印压缩预处理、多轮廓像素翻转策略和水印嵌入及提取算法。

2.1 水印压缩预处理

为了提高水印的鲁棒性,本文提出一种水印预处理方法。在水印图像嵌入到文本图像之前对其进行压缩,使得在文本图像总嵌入容量一定的情况下,根据总嵌入容量动态增加水印嵌入的次数,提取时对提取的多个水印按位取众值,达到提高水印鲁棒性的目的。

典型的二值图像无损压缩方法有跳白块编码、游程编码、四叉树编码等[13]。其中,跳白块编码通过缩减白色像素压缩图像,适用于白色像素远多于黑色像素的二值水印图像。跳白块编码将图像分为多块进行编码。经实验发现,水印图像分块大小不同时,压缩率不同,图1为不同分块大小时二值水印图像的压缩率。从图1中可以看出,当分块大小为2×2像素时,水印图像压缩率最高。当分块大小为2×2像素时所有编码情况如图2所示。因此,本文使用跳白块编码设计一种水印压缩预处理方法。将二值水印图像分割为2×2像素大小的子块,然后进行跳白块编码,将水印图像压缩为只有0和1的水印序列w={w1,w2,…,wy},y为水印序列长度。

图1 不同分块大小的二值图像压缩率Fig.1 Compression rate of binary images with different block sizes

图2 分块大小为2×2时不同块的编码Fig.2 Encoding of different blocks with block size 2×2

2.2 多轮廓像素翻转策略

单像素的像素翻转策略容易在字符边界引入凹凸点,单轮廓像素翻转策略[12]修改连通分量最外层轮廓翻转像素,新连通分量黑色像素数量的实际值和目标值可能存在误差,导致错误地嵌入水印,并且翻转像素后连通分量的黑色像素数量可能低于连通分量提取阈值t,提取时无法识别,打乱了水印顺序。为了更好地平衡水印的不可见性和鲁棒性,本文提出多轮廓像素翻转策略,相比单轮廓像素翻转策略具有以下优点。

1) 降低了嵌入错误水印的可能性。连通分量内所有轮廓由大到小排序。修改一个轮廓后,如果当前连通分量黑色像素数量和目标黑色像素数量误差为q,则修改下一个轮廓,下一轮廓待翻转像素数量为-q;直到q为0或者所有轮廓都已修改。

2) 保证嵌入水印的连通分量在水印提取过程中可以被识别。每次修改轮廓后判断当前连通分量黑色像素数量是否低于阈值t.如果低于t,则不修改当前轮廓。

具体翻转步骤如下:

Step1连通分量ai的黑色像素数量是xi,目标黑色像素数量为xi′.提取ai中的所有轮廓,并由大到小排序。

Step2修改第一个轮廓。计算该轮廓的傅里叶描述子F(p),p∈[0,l-1],l为该轮廓像素点个数。

Step3将高频区域p∈[l/2-γ,l/2+γ]的描述子置零,γ初值为0.使用新傅里叶描述子重构得到新的轮廓。

2.3 水印嵌入及提取算法

2.3.1水印嵌入

水印嵌入算法基于打印扫描不变量设计,结合DCT和多轮廓像素翻转策略修改文本图像中连通分量的打印扫描不变量嵌入水印。

水印嵌入算法流程如图3所示。水印嵌入算法的具体步骤如下。

1) 计算各连通分量的打印扫描不变量。提取文本图像中黑色像素数量高于阈值t的连通分量,使用下式计算各连通分量的打印扫描不变量ei:

(2)

式中:xi为每个连通分量的黑色像素数量;A为精度调节参数,如:1 000,10 000等;M为文本图像中连通分量的平均黑色像素数量。为了避免使用亓文法算法调整区域,增加可以嵌入水印的连通分量数量,本文使用文本首行的连通分量的平均黑色像素数量作为M,计算公式如下:

(3)

式中:D为文本图像首行中连通分量个数。

图3 水印嵌入算法流程Fig.3 Watermark embedding algorithm flow

2) 使用打印扫描不变量构造特征矩阵。使用连通分量的打印扫描不变量ei,按照行优先顺序构造多个8×8特征矩阵Ej(j=0,1,…,k-1,k为特征矩阵的个数)。

3) 计算水印可嵌入次数并扩展水印。为了提高水印鲁棒性,本文算法将水印重复多次嵌入,嵌入次数由文本总嵌入容量动态决定。每个特征矩阵Ej即每64个连通分量中嵌入固定位水印,则文本中水印可重复嵌入次数c计算公式如下:

(4)

式中:p为每个特征矩阵内嵌入水印位数;y为编码后水印序列的长度。

将水印序列扩展c次。如:原水印序列为010,c为3,水印序列扩展后为000111000.

相关系数R计算公式为:

(5)

最优差分U计算公式为

(6)

(7)

2.3.2水印提取

水印提取算法与水印嵌入算法相对应,其流程如图4所示。

图4 水印提取算法流程Fig.4 Watermark extraction algorithm flow

水印提取算法的具体步骤为:

1) 将打印扫描后的文本图像二值化,使用霍夫变换纠正打印扫描过程引起的文本倾斜。

2) 提取文本图像中黑色像素数量低于阈值t的连通分量,计算各连通分量的打印扫描不变量。

3) 使用打印扫描不变量以行优先顺序构造8×8特征矩阵Ej.

4) 根据Ej的DCT系数提取水印序列。DCT系数按照逆“Z”字排列后,从第s位系数开始,若系数为正数,则提取“1”;若系数为负数,则提取“0”。提取序列连续c位的众值决定一位水印,得到水印序列。

5) 解压缩水印序列,得到水印图像。

3 实验与分析

3.1 实验设置

为了说明本文算法的可行性和有效性,本节通过实验验证水印的不可见性和鲁棒性。实验数据集为96张不同字体不同字号的中英文文本图像,其中宋体四号、隶书小四、楷体小四、Times New Roman 12pt、Century 11pt、Arial 11pt各16张。嵌入和提取过程在Visual Studio 2013中进行。

3.1.1实验参数设置

为了动态地调节提取连通分量的阈值,t值取文本首行平均每个连通分量黑色像素数量的1/5.为平衡水印的不可见性和鲁棒性,本文将水印嵌入到特征矩阵的中频区域。每个特征矩阵内嵌入的水印位数p为24,水印开始嵌入位数s为16,A取值10 000.

3.1.2评价标准

本文使用峰值信噪比(peak signal to noise ratio,PSNR)作为水印不可见性的客观评价标准,使用误码率(bit error ratio,BER)作为水印鲁棒性的评价标准。

PSNR(用RPSN表示)通过计算文本嵌入水印前后的差异衡量水印给文本带来的视觉差异。RPSN值越大,说明水印的不可见性越好;反之亦然。RPSN计算公式如下:

(8)

式中:RPSN表示文本图像的峰值信噪比;gmax表示文本图像颜色的最大数值;Ems为均方差,计算公式如下:

(9)

式中:K和I分别是原始文本和嵌入水印后文本;m×n为文本大小。

BER通过计算提取的水印中错误位数的比例来衡量水印鲁棒性(用bER表示)。bER值越低,代表水印鲁棒性越高;反之亦然。其计算公式如下:

(10)

式中:bER为提取水印的误码率;yerr为水印错误提取位数;ylen为水印总位数。

3.2 水印不可见性

通过举例展示使用本文算法嵌入水印的视觉效果。图5为一张二值水印图像,图6为一张宋体四号中文文本图像,图7为使用本文算法将图5嵌入到图6的文本图像。为了更直观地展示嵌入水印的效果,将图6和图7进行放大。图8和图9分别为原始文本图像和嵌入水印后的文本图像的局部放大图。

图5 原始水印图像Fig.5 Original watermark image

图6 原始文本图像Fig.6 Original text image

图7 嵌入水印文本图像Fig.7 Text image with watermark embedded

图8 原始文本图像的局部放大图Fig.8 Enlarged image of the original text image

图9 嵌入水印文本图像的局部放大图Fig.9 Enlarged image of embedded watermark text image

利用本文所提算法,图8中连通分量“卩”需要减少黑色像素,在图9中部分凸起像素被去掉;图8中连通分量“冂”需要增加黑色像素数量,在图9中部分凹陷像素被填充。通过对比嵌入水印前后的文本图像,可以发现使用本文算法在文本图像中嵌入水印后,字符失真度非常小,视觉效果良好。

使用PSNR值RPSN客观评价本文算法的不可见性。使用本文算法、文献[9]、文献[11]和文献[12]算法分别在相同数据集的所有文本图像中嵌入相同的水印图像,通过嵌入前后的文本图像的RPSN值对比四种算法的不可见性。不同字体字号的文本图像实验结果如表1所示。

表1 不可见性比较Table 1 Comparison of invisibility

从表1中可以看出,本文算法平均RPSN值分别在文献[9]、文献[11]和文献[12]的基础上提高了8.81%、5.16%和0.03%,说明本文算法的不可见性更好。本文算法和文献[12]算法相比,RPSN值几乎相等,因为本文算法和文献[12]算法都通过修改轮廓嵌入水印。除在Arial 11pt字体字号的文本图像中,本文算法和文献[12]算法的RPSN值都高于文献[9]和文献[11]算法。说明除Arial 11pt字体,通过修改轮廓嵌入水印给文本带来的视觉损失更小,水印不可见性更高。Arial字体相对其他字体来说字符边界更加平滑,轮廓可修改地方更少。实验结果证明,本文算法可以保证水印视觉不可见。

3.3 水印鲁棒性

使用误码率bER值客观评价本文算法的鲁棒性。使用本文算法、文献[9]、文献[11]和文献[12]算法分别在相同数据集的所有文本图像中嵌入相同的水印图像,计算经过攻击之后提取水印的bER值,进而验证本文算法的鲁棒性。

3.3.1打印扫描攻击

使用HP LaserJet 3055打印扫描一体机打印文本图像,并以600 dpi分辨率扫描成文本图像,然后使用对应的提取算法提取水印,计算bER值。实验结果如表2所示。

表2 打印扫描攻击的鲁棒性比较Table 2 Comparison of robustness against print-scan attack

从表2中可以看出,本文算法平均bER值分别在文献[9]、文献[11]和文献[12]的基础上降低了49.86%、17.3%和23.34%,说明本文算法对于打印扫描攻击的抵抗能力更强。这是因为本文算法使用了多轮廓像素翻转策略,还重复嵌入水印,提高了水印鲁棒性。在6种字体字号的文本图像中,本文算法在楷体文本图像中表现最佳,说明本文算法更适用于楷体文本中。实验结果证明,本文算法提高了水印对于打印扫描攻击的鲁棒性。

需要说明是,不同的打印扫描分辨率对水印提取的准确率会有一定的影响,但从算法效果的对比来看,本文算法与对比算法在不同分辨率下进行bER的比较,呈现的优劣程度基本一致,因此,不失一般性,本文仅就600 dpi分辨率下的实验结果进行展示与分析。

3.3.2其他攻击

本文除了重点针对打印扫描攻击的鲁棒性进行系统实验和深入分析外,也对其它算法对于常见图像处理的抵抗能力进行验证。对使用不同算法嵌入相同水印的文本图像分别进行旋转、噪声、压缩、缩放处理,然后使用对应的提取算法提取水印,计算bER值。实验结果如图10所示。

从图10中可以看出,对于旋转攻击和噪声攻击,本文算法的平均误码率低于文献[9]、文献[11]和文献[12],说明本文算法的水印对旋转和噪声攻击的鲁棒性更好。这是因为本文算法设置了文本倾斜矫正和过滤过小连通分量,并且使用水印压缩预处理增加水印嵌入的次数,结合DCT和多轮廓像素翻转策略嵌入水印,提高了水印的鲁棒性。对于压缩攻击,本文算法的表现虽然比文献[11]差,但是优于文献[9]和文献[12]。对于缩放攻击,本文算法的平均误码率高于文献[11]和文献[12],但低于文献[9]。这是因为缩放攻击使得轮廓的细节信息丢失,从而使得特征矩阵的DCT系数改变,水印被改变。实验结果证明,本文算法可以抵抗合理范围内的旋转、加噪、压缩等攻击,在抵抗缩放攻击方面,本文算法的性能还有待进一步提高。

图10 其他攻击的鲁棒性比较Fig.10 Comparison of robustness against other attacks

4 结束语

本文提出打印扫描不变的多轮廓像素翻转文本图像水印算法。为了提高水印鲁棒性,首先在嵌入水印之前使用水印压缩预处理方法压缩水印图像,在总嵌入容量一定的情况下,增加水印嵌入的次数;然后提出多轮廓像素翻转策略,进一步提高水印鲁棒性;最后基于打印扫描不变量,结合离散余弦变换和多轮廓像素翻转策略,设计水印嵌入及提取算法,尽可能地提高水印鲁棒性。在文献[9]、文献[11]和文献[12]的基础上,嵌入水印前后的平均RPSN值分别提高了8.81%、5.16%和0.03%,打印扫描攻击后的平均bER值分别降低了49.86%、17.3%和23.34%.经实验验证,本文算法在保证水印不可见的前提下,提高了水印对打印扫描攻击的鲁棒性,并且水印可以抵抗合理范围的旋转、噪声、压缩等攻击。本文算法在嵌入水印的过程中,多次使用迭代方法,导致算法运行时间长,并且对于缩放攻击的鲁棒性有待提高,下一步将就提高算法运行效率和对缩放攻击的抵抗能力进行深入研究。

猜你喜欢

鲁棒性轮廓分量
武汉轨道交通重点车站识别及网络鲁棒性研究
画里有话
一斤生漆的“分量”——“漆农”刘照元的平常生活
一物千斤
跟踪导练(三)
论《哈姆雷特》中良心的分量
一种基于三维小波变换的鲁棒视频水印方案
电子节气门非线性控制策略
基于鲁棒性改进理论的大面积航班延误治理分析
儿童筒笔画