一种基于CGAN的可见水印去除方案
2022-03-16王家亮刘晓强李柏岩冯珍妮
王家亮,刘晓强,李柏岩,冯珍妮
(东华大学 计算机科学与技术学院,上海 201620)
0 引 言
出于版权或真伪性考虑,自然场景中用于光学字符识别(optical character recognition,OCR)的文档或卡证票据,通常会覆盖固定样式的水印(如印章),这些被放置在非固定区域的水印或许呈现出不同的完整性、缩放程度、旋转角度和反光特性等,这些因素给阅读效率、机器识别造成困难,因此精细化的水印去除非常重要。
去水印首先要进行水印检测,即将包含水印的局部区域从证件中提取出来,形成水印感兴趣区域(region of interest,ROI)。CV中传统的用于特征提取的代表性工具是霍夫变换(Hough transform),但它仅适用于定位目标背景简单、轮廓边缘清晰完整且形变不大的情况,在复杂背景融合、参数设置不合理或透视形变过大等不可控因素的情况下,该方法的鲁棒性迅速降低。实际应用环境中,不仅图像的背景复杂,前景也会受到不同光照条件的影响,在众多干扰直线中提取出定位目标的边缘轮廓非常困难,会使检测结果较依赖预处理及复杂的参数调整。另外,直线或圆的检测也会大量占据处理机的内存空间,影响检测速度。
水印去除问题属于计算机视觉中的图像修复和转换领域。传统的图像修复方法大致有单图像和多图像两类方案,单图像最大的缺点是要求人工介入,要么对水印分离要么填充它。多图像则需要近似大小、强度的水印被放在大量图片的同一相对位置上,不仅在训练阶段对数据集要求十分严格,实际预测时输入的含水印图像在视觉上有旋转、平移、缩放的改变都会降低该方案的普适性。而张茗茗等人提出的基于多重匹配的可见水印去除算法,也仅能处理因阿拉伯数字水印遭到毁损的图像。
基于深度学习的条件生成对抗网络(conditional generative adversarial networks,CGANs)通过对输入图像进行场景条件约束生成相应图像,由于它在图像转换领域的开创性研究,使图像去噪、手写数字生成和识别、语音增强、遥感图像时空融合及云去除得以广泛应用。
该文提出了一种基于特征点匹配的水印检测和基于条件生成对抗网络的水印去除方法。针对在非均匀光照和复杂背景下的自然业务场景,通过特征点匹配检测到证件中的水印ROI,然后利用训练好的条件生成对抗网络CGAN模型,将输出的去水印ROI运用透视变换重新恢复到证件中,可实现水印检测和水印去除功能。
主要贡献如下:
(1)提出了一种基于特征点检测、匹配的可见自然水印检测方法,不仅具备光照、尺度、旋转不变性,而且速度快、定位精准,对呈现出不同残缺、模糊、深浅状态的水印提供了较好的容错能力;
(2)提出了一种基于条件生成对抗网络的可见自然水印去除方法。实验表明能有效地将自然场景中的水印去除,特别对水印覆盖内容的恢复能力较为显著;
(3)给出了CGAN所需的成对训练集生成方法,能够有效增强、扩充大量的成对训练数据。
1 基于CGAN的去水印网络
1.1 去水印总体方案
去水印整体方案包含训练条件生成对抗网络去水印模型和预测去水印模型两部分,如图1所示。在训练阶段,使用水印融合手段生成大量成对的带水印卡证区域和对应的不带水印卡证区域拼接而成的训练样本,采用端到端训练CGAN网络得到水印去除模型。
图1 水印去除方法处理流程
预测阶段,首先通过特征点匹配技术对自然卡证/文档上进行水印检测并提取水印ROI,然后用训练好的CGAN模型完成水印去除,最后通过透视变换将去除了水印的ROI恢复到证件上。
1.2 去水印CGAN网络原理
基于深度学习的生成对抗网络(generative adversarial networks,GANs)在图像生成任务上取得了重大突破,其核心思想是通过学习训练样本集的大量数据分布来生成“以假乱真”图像分布。
原始GAN包含了一个生成器G
和一个判别器D
,两者都是多层感知机。生成器训练随机噪声Z
产生最佳输出以欺骗判别器,判别器通过对真伪图像的学习,严格控制生成器的学习水平。GAN的目标函数基本形式如式1所示:(1)
传统的GAN网络只能根据学习到的图像特征生成相似数据分布的图像,而不能生成具有特定细节的图像。文献[10]中作者使用了pix2pix模型,该模型基于条件生成对抗网络用于实现图像之间的转换,如从黑夜到白昼的转换,可以辅助汽车生成清晰明亮的倒车影像。CGAN也可以实现语义/标签到真实图像、灰度图像到彩色图像、低照度图像到增强图像的转换。
它在生成器和判别器的输入中各加入了相同的附带条件y
,有助于GAN优化的概率期望分布公式成为CGAN优化的条件概率期望分布公式,判别器也会通过联合y
和G
(z
|y
)判别样本的真实性。条件标签的表达形式不限,可以是One Hot编码,甚至图像。将含水印图像当作条件约束,含水印的图像与随机噪声Z
输入到生成器,并由判别器对带条件的“模仿”结果进行全局质量评估。图2显示了GAN与CGAN在形式上的区别。图2 GAN和CGAN的区别
与GAN相比,CGAN是有监督的学习,CGAN的目标函数基本形式如式2所示:
(2)
CGAN对于不同的转换问题采用完全相同的网络结构和目标函数。只要能提供尽可能多的、覆盖目标细节特征的成对训练数据集,模型就可以自动训练和优化,下节将介绍大量的成对训练样本生成方法。
该文使用pix2pix来实现CGAN,并根据实际需求进行修改。pix2pix模型混合了L1距离损失和CGAN损失函数,减少了模糊度,保留了更多的正确特征,该模型的目标函数整理为式3。
(3)
pix2pix模型的具体网络架构中,生成器使用了“U-Net”结构(如图3(a)所示),是一个由下采样和上采样组成的网络结构。U-Net与传统的“编码器-解码器”模型(如图3(b)所示)相比增加了跳线,其中下采样用于展现图像的概貌信息,上采样联合下采样的各层信息和上采样的输入信息来还原图像细节和精度,使网络在输入和输出之间共享大量的低级信息。
图3 “U-Net”与“编码器-解码器”结构示意
传统GAN使用的判别器关注生成图像与真实图像的全局差异,但是整个图像的加权值无法体现图像局部的特征信息,不能控制图像转换问题中的细节精度。pix2pix的判别器使用了“PatchGAN”,它的输出不是一个标量(真或假)而是一个N
*N
的矩阵。PatchGAN的示意如图4所示,右侧网格代表PatchGAN的输出矩阵,其中X
表示Patchij区域的真伪性,代表图像中某个较大的感受野,即一个Patch。图4 “PatchGAN”示意
在图像样式转换中,马尔可夫判别器的PatchSize大小直接关系到生成图像的质量,合适的PatchSize值能使生成图像保持超高分辨率和高细节。通过在图片上以窗口滑动的形式获得判别矩阵,求出平均值作为判别器的最终输出。
1.3 CGAN成对训练集扩充方法
在对CGAN模型进行训练时,训练集要采用成对形式,即需含有像素点完全对应的带水印和不带水印ROI图像作为模型的输入,因此获取大量的成对训练数据样本是CGAN模型训练的基础。
该文针对实际场景需要,以小数据集“学生卡”训练样本为基础,采用以下生成方法来扩充和增强训练集:
(1)针对数据集中包含纯色背景中的水印,通过2.1节介绍的水印检测方法提取水印;
(2)将提取到的水印进行各种变换,得到不同场景下的各种模拟水印效果(如图5(a)所示,呈现深浅变化、不均匀力、轮廓污染、模糊不清和截断残缺);也可以将水印模板制作成实体印章,在真实环境下敲出多种形态的水印,然后执行水印采集和标准化处理;
图5 CGAN成对训练集扩充
(3)以分辨率较高的干净图像制作证件模板,然后模拟一些数据用于字段填充,形成证件样本,通过适当的方法调整不透明度,得到大量模拟卡证样本(如图5(b)所示);
(4)将水印融合到模拟样本的随机区域,并在融合前后调整证件的亮度和模糊度;
(5)将融合前后的ROI水平拼接在一起(如图5(c)所示),形成CGAN成对训练样本。
该方法可从已有的数据样本中提取水印,水印状态自然真实。此外,可以在证件上与原始水印不重叠的任何非空白像素位置融合模拟水印,用于生成大量不同效果的样本。训练集的扩充和增强,解决了训练集短缺的实际问题,为CGAN模型的鲁棒性提供基础支撑。
2 去水印应用
2.1 基于特征点匹配的水印检测
在使用CGAN模型对证件去除水印之前,首先要提取水印ROI。在实际应用中,目标检测的速度需求往往很高。该文基于传统计算机视觉原理提出了一种稳定有效的检测方法。首先需要几幅完整、清晰、无噪声的水印模板图像,然后从模板的特征点入手,通过特征点检测、匹配和错误匹配消除,实现目标水印的定位。
技术方面,通过对SIFT、BRISK、AKAZE三种特征点检测算法在尺度、旋转、透视形变、照度、模糊度和背景复杂度变化时的特征检测能力进行实验,验证了SIFT算子尤其在自然场景中复杂背景和自然光照复合影响时具备相对较强的鲁棒性。采用FLANN最近邻匹配算法加速SIFT特征点匹配过程,采用PROSAC算法排除离群点,从而估计出满足几何变换要求的最佳透视模型。
如图6所示,基于特征点的图像匹配技术并不要求被检测水印的强完整性,如同自然情况下以不同力度在不同材质的纸张上敲下的印章存在一定的不可控性类似,对那些呈现出残缺、深浅状态的水印提供了较大的宽容度。在对大量数据集进行预测时,该文提出的水印检测方法能自动获取水印ROI,具有高效、稳定的特点。
图6 基于特征点匹配的水印检测
文献[15]是SIFT特征点检测的一种改进算法,特别增强了图像的抗仿射性。若与该文的特征点匹配算法搭配使用,可应用于对实时性要求较高的水印检测场景。
2.2 基于CGAN的水印去除
(1)成对训练集。
实验通过收集结构化模拟数据并向模板中填充数据,生成了644张学生卡。使用CGAN成对训练集扩充方法,将163枚“THANK YOU”印章水印融合在学生卡中随机选取的20个(根据有效像素与学生卡尺寸的占比估算)非重叠区域,每张学生卡可生成3 260对训练样本,共产生2 099 440对样本。
(2)多处自然水印去除算法。
针对证件中存在的一处水印,将水印检测所获得的某个ROI区域作为CGAN去水印预训练模型的输入数据,就可以有效消除学生卡中当前ROI区域的水印。多处自然水印去除算法,通过水印检测方法提取出一处水印ROI后,立刻通过CGAN模型去除这个水印,然后执行透视变换合成到原证件相应位置,不断重复上述流程依次检测、去除每个自然水印。
(3)CGAN模型的训练和预测环境。
在含有16核CPU、2块1080Ti显卡并装有Linux环境的机器上完成CGAN模型的训练和预测工作,效果展示中使用的预训练模型经过了10个Epoch训练。
(4)实验预测集和去水印效果。
使用与训练集不同的人像照片和可变长数据填充字段形成仿真学生卡,去水印预测实验在盖有五处不同状态自然水印(如图5(a)所示)的仿真学生卡上进行,水印分别覆盖在学生卡中的静态图像像素、动态图像像素、静态文字像素、动态文字像素和混合像素区域。图7给出了基于特征点匹配的水印检测算法提取到的五个处于不同位置、呈现不同状态的自然水印ROI去水印的效果预测。
图7 水印ROI去水印效果
在仿真学生卡上使用该文提出的水印检测和水印去除方法,依次去除上述多个自然水印的总体流程及效果预测,如图8所示。
图8 学生卡去水印总体效果
预测实验表明,该文提出的可见水印检测方法,能在学生卡上准确检测出具备多种自然状态的“THANK YOU”印章水印。提出的基于条件生成对抗网络的可见水印去除方法训练的CGAN模型,对于学生卡上被水印覆盖的多类像素区域的水印去除效果明显。
(5)客观评价指标(PSNR和SSIM)分析。
峰值信噪比(peak signal to noise ratio,PSNR)计算去水印前后图像的对应位置像素差,差值越大表明生成的去水印图像质量越好;结构相似度(structural similarity index,SSIM)用于从亮度、对比度和结构方面衡量去水印图像和原始无水印图像的相似度,范围是0~1,值越大表明生成的去水印图像的还原度越高。
实验运用以上两个客观指标,①衡量每个水印ROI的去水印效果,得到的PSNR值依次是:32.546、32.047、32.632、32.962和32.440,以及SSIM值:0.997 2、0.996 6、0.994 0、0.983 1和0.997 2。②衡量学生卡整体去水印效果,得到的PSNR值和SSIM值分别为:42.624和0.999 7。
上述PSNR值说明该方法水印去除前后像素变化效果突出,SSIM值从客观上证明了CGAN网络生成的去水印图像与原始无水印覆盖的图像相当接近,代表当前预训练模型达到了一定的拟合优度。
(6)文字恢复力分析。
借助百度文字识别在线检测功能,分别对水印去除前后的图像(对应图8(a)和图8(b))进行文字检测和识别。针对图7(d)所示的两个字段,去水印前的识别结果是:“学号3456789 学院算机学与技术学院”,去水印后的识别结果是:“学号2193456789 学院计算机科学与技术学院”。
去水印前后字段区域图像OCR结果对比,说明了水印覆盖会对学生卡文字识别的完整性和准确性造成影响,也证明了该文的水印去除方法对水印覆盖信息的恢复能力较为显著。
(7)更多去水印效果预测。
图9进一步证明了该方法能将证件中含水印的人像照片、可变长字段等动态像素近乎无失真转换。对于其他办公文档、官方证件等去水印应用场景,该方法也能明显提升阅读效率和文字识别准确性。
图9 更多去水印效果预测
3 结束语
该文就自然场景下证件的可见水印去除问题,针对存在于一张证件上的任意多个、处于任意位置、呈现多种状态的自然水印,提出了一种基于特征点匹配的水印检测技术和一种基于条件生成对抗网络的水印去除技术。可以满足自然业务场景下快速精准的证件水印定位和去除,具备较好的水印检测鲁棒性和去水印效果。还针对CGAN训练依赖于大量成对数据集的问题,提出了有效的数据集扩充和增强方法。