基于Pix2Pix网络的印章去除

2021-09-10 01:15卿来云乔元华
关键词:印章发票椭圆

王 俊,苗 军,卿来云,乔元华

(1.北京信息科技大学 网络文化与数字传播北京市重点实验室,北京 100101;2.中国科学院大学 计算机科学与技术学院,北京 100049;3.北京工业大学 数理学院,北京 100124)

0 引言

目前部分发票实现了二维码标识,通过扫描二维码可以获取发票的部分信息,但是仍有很多行业的发票没有二维码标识或者二维码标识的内容不够全面。针对这一问题可以通过光学字符识别(optical character recognition,OCR)技术[1]提取发票上面的内容,获取所需的信息。印章是发票中常见的一部分,通常印章会覆盖部分文字,而OCR技术在识别这部分文字时效果不佳。通过技术去除发票上的印章不仅可以提高文字的检测效果,而且可以提高文字的识别准确率。因此,如何消除发票上的印章信息是一个重要的研究课题。

学者们提出了很多方法去除印章。赵永涛等[2]利用HSV颜色空间提取印章,通过图像灰度、二值化处理,最终去除印章。季婧婧等[3]采用二次分割技术去除彩色印章,先分割印章、再分割文字信息,将文字信息保留,实现印章去除。蒋冲宇等[4]使用 MobileNet-SSD 检测出印章的位置,以矩形形式标记出来,根据标记区域的颜色信息提取印章、被印章覆盖的文字信息和原图文本信息,最后将印章覆盖信息与原图文本信息叠加,得到去除印章后的发票。朱军民等[5]通过图像预处理提取水印图片区域,利用生成对抗网络GAN原理,设计两个生成器和两个判别器组成的网络模型来去除水印。本文采用Pix2Pix网络[6]进行印章去除。

1 印章定位及去除

1.1 Pix2Pix网络结构

生成对抗网络在修复、未来状态预测、用户约束引导的图像处理、风格迁移和超分辨率方面取得了令人瞩目的成果。Pix2Pix网络是生成对抗网络的一种,主要用于图像翻译,即将输入的图像“翻译”成相应的图像。该网络的输入图像和输出的图像具有相似特征,两者之间共享一些相同信息。而印章图像和对应的无印章图像两者差距只在于印章部分,其他方面都是相同的,即二者之间存在大部分共同信息,如图1所示。

图1 印章图像到无印章图像

考虑到印章图像和无印章图像之间的关联性以及Pix2Pix网络的输入数据和输出数据的关联性,本文采用Pix2Pix网络实现印章的去除。Pix2Pix网络的结构如图2所示。

图2 Pix2Pix网络结构[6]

图中:G是生成器;D是判别器;x是输入图片;G(x)是生成图片;y是真实图片。生成器G的目标是尽量生成真实的图片去欺骗判别器D。而判别器D的目标是尽量把G生成的图片和真实的图片分别开来。整个流程是输入一张原图,原图经过生成器生成一张新图,将新图和原图拼接作为假数据送入判别器训练,再将标签和原图作为真数据送入判别器训练,通过交替训练生成器和判别器,直到二者训练平衡。Pix2Pix网络的损失函数为

LcGAN(G,D)=Ex,y[logD(x,y)]+

Ex[log(1-D(x,G(x))]

(1)

式中:Ex,y表示x,y服从概率分布的期望;Ex表示x服从概率分布的期望;D(x,y)、D(x,G(x))为D网络判断图片是否真实的概率。训练判别器时,损失函数目标是使判别器区分真实样本和生成的样本,即最大化D(x,y),同时使D(x,G(x))最小化。而训练生成器时,损失函数目标是使生成的数据接近真实数据,即最大化D(x,G(x))。

生成器G的输入和输出之间共享了很多信息,比如图像上色任务,输入和输出之间就共享了边信息。为了保证输入图像和输出图像之间的相似度,Pix2Pix网络引入了L1的损失函数。L1的损失函数为

LL1(G)=Ex,y[‖y-G(x)‖]

(2)

最终的损失函数为

(3)

1.2 印章定位

本文以医保发票作为示例进行印章去除,医保发票如图3所示。

图3 医保发票

通过自采数据集获得634张具有印章的医保发票。Pix2Pix网络模型训练不仅需要原数据集,同时还需要标签数据集。标签数据集必须是没有印章的对应发票。如何通过原有的数据集进行标签制作是第一步需要解决的问题。本文的思路是:提取数据集中完整的印章种类,通过各种形变模拟真实发票中印章的痕迹,将模拟生成的单个印章“盖”到不与原图中印章交集的地方,生成新印章图。新图中“盖”完印章的位置的外接矩形作为数据集,将原图中的同样位置但没有印章的地方作为标签数据集。

印章定位主要有两方面作用:第一,提取印章种类时需要定位到每个印章位置;第二,送入Pix2Pix网络中的是发票的印章外接矩形位置图,需要定位到原发票中的印章位置。

印章定位的流程如图4所示。

图4 印章定位流程

[7]

1.2.1 HSV颜色空间提取红色区域

印章定位需要在发票上找到印章的位置信息。医保发票数据集中的印章是红色椭圆的形状,因此通过颜色筛选出包括印章在内的信息,再通过其他方法确定印章位置。利用HSV颜色空间提取颜色区域是常用的一种方法,HSV的颜色空间取值以及红色空间阈值的上下限如表1所示。

表1 HSV范围空间

通过设定图片中像素的HSV数值去除其他颜色信息,只保留图片上红颜色的像素,提取结果如图5所示。

图5 红色区域提取

1.2.2 中值滤波和腐蚀操作

图像经过HSV颜色空间提取红色像素后,图片上会存在部分小红点和图像原有的噪声。去除噪声和部分小红点,有利于后续检测印章的操作。本文采用中值滤波进行噪声去除,中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术。其基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点[8]。本文采取卷积核为7的中值滤波过滤图像噪声,中值滤波效果如图6所示。

图6 中值滤波过滤噪声

处理完噪声,需要对图片中的印章进行检测,如果直接采用椭圆拟合算法去寻找椭圆,算法会将图像中的字符串检测成椭圆,则在本图片中会检测到多个椭圆。而实际上检测只需印章最外围的椭圆边缘即可。采用腐蚀算法,图像中的对象会忽略小区域连通大区域,实现去除小区域。先对图像进行二值化,再对图像进行腐蚀操作,图像腐蚀效果如图7所示。

图7 图像腐蚀

图片原本存在多个连通区域,通过腐蚀算法,原本二值化的图像中的大区域相互连通,最终得到3个大的连通区域。

1.2.3 椭圆拟合和面积比值

图像进行过腐蚀操作后,图中剩下多个大连通区域。但部分图片经过腐蚀操作会存在部分小连通区域,通过计算这些连通区域的像素点的个数,设定合理阈值去掉小连通区域。对大的连通区域采用椭圆拟合算法,椭圆拟合算法主要利用最小二乘法算法[9]去拟合椭圆,可以获取到椭圆的长轴、短轴、角度。通过计算每个轮廓集面积与对应的椭圆面积比例,并采用阈值进一步筛选出椭圆,获取印章的位置信息,最终利用椭圆外接矩形算法计算印章的外接矩形,椭圆印章定位如图8所示。

图8 椭圆印章定位

1.3 印章去除

1.3.1 数据集增广

Pix2Pix网络训练需要大量图片作为数据集,本文有634张医保发票数据,通过数据集增广,最终获取到3 600张图片作为数据集。

本文通过PS技术获取到数据集所有的印章,而真实数据集中,印章可能存在模糊、倾斜、缺失部分、拍摄分辨率不高等问题。将提取出来的印章进行多种随机变换,随机选取一张数据集图片,对其中印章的位置进行判断,对即将盖印的地方不能存在交集判断。通过比较变换后的印章的位置与即将盖印的图片对应的位置处的RGB三通道的值,取三通道最小值为位置处的像素,实现发票盖章。印章数据集如图9所示。

图9 印章数据集增广

1.3.2 Pix2Pix网络去除印章

如图10所示,本文利用Pix2Pix网络进行印章去除。带印章的图片作为输入图片送入生成器,将生成的图片和带印章的图片拼接起来作为假样本送入判别器训练,将无印章图片和有印章的图片拼接起来作为真样本送入判别器训练,交替训练生成器和判别器,直到二者达到平衡。最终利用训练好的生成器实现印章去除。

图10 印章去除

2 实验结果

本实验以医保发票作为印章去除的对象。实验在tensorflow深度学习框架上进行。采用GTX2080Ti的显卡进行训练神经网络的实验。通过调整和训练参数,最终选取其中图像表现最好的一组参数:epoch为100次,生成器和判别器采用adam优化器,其中生成器学习率为2×10-5,学习衰减率为0.2,判别器学习率为10-4,学习衰减率为0.2,L1系数为100。实验表明当生成器的学习率低于判别器的学习率时,图像生成具有较好的效果。其中生成器的损失率维持在10%左右,判别器的损失维持在0.4%左右。从图可以看出,当训练次数达到200 000次后,模型基本收敛。判别器和生成器的损失率如图11、12所示。

图11 判别器损失率

图12 生成器损失率

与另一种生成网络的变种CGAN模型算法[10]进行效果对比。实验效果如图13所示。

图13 实验对比结果

从图13可以看出,CGAN处理后的图片,背景颜色和标签图像的背景颜色相差很多,而Pix2Pix网络在背景颜色处理方面相对出色。对于被印章覆盖住的文字,CGAN网络和Pix2Pix网络都能复原文字字样,但CGAN网络复原的文字相对模糊,Pix2Pix网络复原的文字接近原图。对于印章处理的干净程度,CGAN网络处理后的图片依旧存在着较浅印章的痕迹,Pix2Pix网络处理后的图片不存在印章痕迹。

通过Pix2Pix网络对图像去除印章的完整效果如图14所示。实验证明Pix2Pix网络能够去除印章,并且在去除印章方面效果良好。

图14 Pix2Pix去除印章效果

3 结束语

本文提出了一种基于Pix2Pix网络去除印章的方法,分别对印章的定位问题和印章的去除问题进行了研究。以医保发票为例,对于印章的定位问题,根据医保发票中印章的特点,通过颜色筛选出包括印章在内的信息,再经过中值滤波、图像腐蚀、椭圆拟合算法确定发票中多个印章的位置信息。对印章的去除问题,通过前期制作的数据集,将数据集送入Pix2Pix网络的生成器和判别器中交替训练,最终两者达到平衡,训练出可以去除印章的生成器。通过与CGAN网络进行对比,验证了Pix2Pix网络在去除印章方面效果更好。实验结果证明,本文提出的方法可以有效实现印章的去除。

猜你喜欢
印章发票椭圆
Heisenberg群上由加权次椭圆p-Laplace不等方程导出的Hardy型不等式及应用
我们有印章咯
例谈椭圆的定义及其应用
关于发票显示额外费用的分歧
一道椭圆试题的别样求法
采购发票系统:全流程电子化实现
自制橡皮印章
全国增值税发票查验平台启用
印章
椭圆的三类切点弦的包络