段 荧,龙 华,2,瞿于荃,杜庆治,2,邵玉斌,2
1(昆明理工大学 信息工程与自动化学院,昆明 650000)2(昆明理工大学 云南省计算机重点实验室,昆明 650000)
文字是人类信息最重要的载体和最集中的表象,记载了几千年人类的文明和历史,对中华文明的传承和发展起着极其关键的作用.当前,文档图像中如果仅包含文字,尤其是印刷体文字的OCR(Optical Character Recognition,光学字符识别)已在各种领域中得到应用.然而,随着历史更迭发展,部分碑刻作品以及书画作品在流传过程中,由于各种不稳定的保存因素,导致作品遭受不同程度的污损,比如自然的老化、发霉受潮、污迹遍布、动物撕咬、风雨侵蚀、人为损坏等等,这些种种因素均会使字迹变得模糊不清或者局部残缺.针对文物字画和碑刻作品的破损书法作品,使用传统的手工修复方法不仅流程繁复[1-3]而耗时较长,除了考究修复人员高超的复原技术和耐心之外,还要求对历史事实持有科学而又严谨的态度.文本图片的干扰修复同样也具有现实意义,在识别文本图片时大多数文档都无法达到理想状态,并且经常包含各种干扰信息,例如当人们在原始文档上留下横线等来标记文档中的重要内容,或者文档本身就存在各种横线表示需要填写信息或者其他提醒时,文档图像的OCR的识别率会急剧下降.虽然可以通过二值化[4]等算法进行预处理,但是对于与文字进行粘连的干扰部分却依旧无法进行处理[5],对于不能识别的拒识字也有学者利用上下文信息的相关性进行后处理[6,7],进一步地提高准确率,当初步识别效果较差时该方法并不能显著地提升准确率,并且它依赖一个健全的候选字库以及上下文信息(即语言学知识)的运用.因此如何有效地去除干扰,对于减少文档图片拒识字,提升识别准确率具有不容忽视的作用,同时也向修复污损的文字作品提供了新的思路.
目前,文档图像去除干扰的工作可以分为两类,一是类似于表格或是下划线与文字信息没有粘连的干扰,如Imtiaz等人[8]利用滑动窗口中的熵来判断当前区域中是否包含干扰线,以达到去除规则干扰线条的目的,对于此类干扰可利用线条的结构性特征进行去除.而另一类则是与文字信息产生粘连的干扰,如Banerjee等人[9]使用连通元检测干扰线区域,并对与文字粘连的干扰线进行了进一步的处理,但此方法仍然是针对线条类的干扰.而对于不规则图案的干扰,此类算法却没有很好的泛化性.近年来,基于深度学习网络的图像修复(Image Inpainting)发展迅速,在2016年的CVPR会议上,Pathak D等人[10]结合CNN和GAN网络首次提出图像修复算法.在此算法的基础之上许多作者也提出了改进算法[11,12],但此类方法的修复只是集中于图像中心的矩形区域,如:Pathak D等人[10]和Yang等人[13]假设的干扰图案是一个大小为64×64的矩形框,且位于128×128的图像中心,此类方法不适用于去除文档图片之中的不规则干扰图案.而Iizuka等人[14]和Yu等人[15]则突破了中心矩形框的干扰假设提出对不规则图案进行修复,但此类算法往往需要依赖复杂的后处理,例如:Iizuka等人[14]采用快速行进算法[16](Fast Marching)和泊松融合[17](Poisson Image Blending)的方法对图像进行修复,而Yu等人[15]则通过后处理优化网络对原始预测结果进行进一步的优化.此外,还有利用非缺失部分的图像统计信息来填充缺失部分的修复算法[18,19],但这样的搜索需要耗费大量的计算成本,虽然之后提出了更快的Patch搜索算法—PatchMatch[20],但其处理速度仍无法满足实时应用的需求且不能进行语义感知的Patch选择.NVIDIA公司Liu等人[21]所提出的PConv(Partial Convolution,PConv)层使用传统的卷积网络,不依赖额外的后处理,通过不断学习缺失区域和原始照片,对不规则的干扰部分进行修复,文章通过一系列的实验研究表明Pconv方法优于PatchMatch[20],GL[14],GntIpt[15]等方法,该论文使用堆叠的部分卷积运算和自动掩码更新步骤(Automatic Mask Update Step)来执行图像修复,论证了图片需要修补的部分会随着层数的增加和更新而消失,因而该方法不受限于修复任何形状或纹理的干扰图像修复.2019年,Yu等人[22]提出使用门控卷积(GatedConv)对图像进行修复,该方法采用了和CA模型类似的粗细两级网络,粗网络先对污损图像进行粗略修复,而细网络则对细部特征进行修复.经本文实验研究表明,GatedConv虽然相较于Liu等人[21]的方法修复效果有一定的提升,但却在训练过程中损失了大量计算资源和时长.
针对文字图片、碑刻或书法作品中污损纹理以及颜色是不唯一、不固定的特点,将文献[21]和文献[22]应用于不规则干扰文字图片数据库,分析并对比两者的复原效果后,提出基于U-Net框架和部分卷积的文本图片修复算法.针对常见字体建立文字图片修复模型,用于修复因各种不规则干扰而造成的字符污损,导致识别准确率下降的问题,并在尝试在古代文字图片上应用此模型,为进一步修复书法、碑刻等文字作品的污损文字进行理论及实践的研究.
NVIDIA在2018年ICLR会议上发表了PConv层[21]对图像进行修复的成果,此文章的对于图像修复领域的贡献如下:
1)提出了带有自动掩码更新步骤的部分卷积层;
2)使用跳跃式连接的典型卷积U-Net架构获得了良好的修复效果,并以此得到最新的修复效果;
3)该方法首次证明了修补不规则干扰图案在图像修复领域是行之有效的;
4)公开了大型不规则mask数据集,可用于后续的训练以及评估模型.
将PConv层表示为:
(1)
自动掩码更新步骤如式(2)所示:
(2)
将输入图像包含满足至少一个条件的像素点,标记为有效像素.在部分卷积层有足够的连续应用的情况下,不断修复图像直至所有mask为1,即表示图像修复完成.
Yu等人[22]提出使用门控卷积(GatedConv)对图像进行修复,不同于部分卷积的硬门控掩码更新策略,门控卷积是从数据中自动学习软掩码,如下式所示:
Gatingy,x=∑∑Wg·I
(3)
Gatingy,x=∑∑Wf·I
(4)
Oy,x=φ(Featurey,x)·σ(Gatingy,x)
(5)
其中σ是sigmoid函数,因此输出门值在0和1之间,φ可以是任意激活函数如ReLU、ELU和LeakyReLU.Wg和Wf是两个不同的卷积滤波器.
2006年在Hinton提出的深度信念网络(DBN)[23]中首次提出编码器-解码器思路,而U-Net则是基于此结构建立的.U-Net网络模型大多数情况下是应用于医学图像分割领域,网络形状呈现为U型故命名为U-Net.在U-Net网络结构中编码器作用是对输入图像的特征进行提取,降采样的理论意义是增加对输入图像的一些小扰动的鲁棒性,比如图像平移、旋转等,减少过拟合的风险并降低运算量,同时增加感受野的大小.降采样的特征图与同维度大小的上采样特征图通过跳跃连接(Skip Connection)将高低层次的特征进行融合,即使在样本量较少的情况下也能达到较好的效果,且运算速度快.而解码器则是利用前面编码的抽象特征来恢复到原图尺寸的过程,最终得到去除干扰后的结果.
除语义分割外U-Net网络结构可用于原图像去噪,在训练阶段使原图与噪声进行融合后放入编码解码器中,目标则是对加扰图片进行还原后得到原图.
目前就深度学习来说,并没有完整公开的中文文档识别数据集或者书法作品数据集,因此如何构建训练测试数据成为主要任务.在数据集的准备过程中主要分为文本图片数据集和mask数据集.
3.1.1 文本图片数据集
目前,污损文字修复主要面临问题是:
1.文字的载体和字体众多,只能依靠书画修复保护专家或者技术工人,利用其精湛的人工技术水平来达到理想的效果,修复过程耗时费力;
2.对于流传作品较为稀少的名家,专业人员很难完美临摹其风骨,且对修复人员的要求极高;
3.对于极其珍贵或被奉为孤本的书画作品来说,手工修复难免会造成二次伤害.在文本图片数据集的采集过程之中,应尽可能地贴合实际情况,满足如下需求:
1)字体的多样性.由于历史因素、刊物出版和应用场景等不同应用场景,字体往往是不唯一的.考虑此原因本文选取基本的汉字字体进行数据制作,如:宋体、楷体、黑体等若干常见字体;
2)文字具有关联性.文字的出现是为了满足人类交流的需求,尤其是具有历史价值和意义的碑文拓片以及书画作品,往往不是以单字的形式存在,而是根据当时的语言规则进行组合且携带有一定的信息量,以篇章的形式进行流传.而现代数字化的文本图片,更多的也是起到信息传递的作用,所以在采集文本图片时应选取具有关联性的文字.本文文本图片在文字内容上,选取4种具有关联性的常见体裁:白话文、诗词、散文和译文;
3)字号大小和字体粗细的随机性.由于扫描、排版等影响,文本图片的字体大小以及粗细程度并不是统一的.本文在采集文本图片数据时,对字号以及生成图片的大小不做限定.
3.1.2 mask数据集
本文使用的mask数据集为文献[21]之中公开的mask数据集和随机生成的干扰图案,并在训练过程之中随机对当前mask图片进行拉伸,翻转以及裁剪,以此保证训练修复的mask种类足够充分.
为测试对比不同干扰程度修复效果之间的差异性,本文通过使用式(6)的指标mrb将mask分为10个等级,干扰程度随着等级的增加而增大.
(6)
上式,将函数mrb定义为mask干扰比,G表示的是满足干扰条件的像素点数,而H和W分别代表当前mask的长与宽.3.2 文字图片修复框架
本文通过将干扰图片数据集放入文献[21]和文献[22]中进行实验后分析实验结果,根据文字修复的特点提出文字图片修复算法.本文网络模型建立于U-Net架构之上,分为编码部分和解码部分.输入图像Iin的大小为CIin×H×W,mask图片M的大小与Iin相同,其大小为CM×H×W.将Iin和M转为列向量后的个数设为n×1,如式(7)所示对Iin和M进行融合:
vGin{xi|xi=vIin[i]+vM[i],i=1,…,n}
(7)
其中vIin是由Iin所转化的列向量,vM是由M所转化的列向量,且vIin∈Rn,vM∈Rn.Gin为Iin和M融合后的图像,那么vGin则为Gin所转化的列向量,此时Gin的特征通道数为CIin+CM.
根据设定的网络层数对图像Gin进行部分卷积,为使生成图像Iout与Iin的大小相等,编码层部分负责提取Gin的特征值与信息,而解码部分则是将当前图片Inow与其对应编码层中的特征信息量Tnow在通道维度上进行拼接,如式(8)所示,对文字图片的风格进行融合与逼近.由上文所述Inow和Tnow的大小相等,设Inow和Tnow转为列向量后的大小为m×1,那么根据式(8)将Inow和Tnow进行融合后得到Gnow.
vGnow=[vInow,vTnow]∈R2m
(8)
其中,vGnow,vInow,vTnow为Gnow,Inow,Tnow所转化的列向量,且vInow∈Rm,vTnow∈Rm.
在编码部分和解码部分分别使用ReLU和Leaky ReLU作为激活函数,除首尾两个PConv层之外,每个PConv层和激活层之间使用批量归一化(Batch Normalization,BN)层[24].卷积核内核大小分别为7、5、5、3、3、3、3、3,通道大小分别为64、128、256、512、512、512、512、512,解码器中包含8个上采样层,解码器中PConv层的输出通道分别是512、512、512、512、256、128、64、3.
对于汉字来说长宽比和内部细节是重要特性,若图像尺寸归一化不当,会致使汉字内部结构粘合在一起,这样会加大后续识别难度.将图片宽度统一设为512后,经解码部分的8次减半后最小达到2.对文本图片数据集的图片计算后H:W最小达到1:3.76,依照图像尺寸取整原则,选取H:W为1:1、1:1.5、1:2、1:2.5、1:3和1:3.5这6种情况.经4.2节实验后,依据峰值信噪比(Peak Signal to Noise Ratio,PSNR)[25]数值越大表示失真越小的原则,可知当H:W=1:3时,能够取得最优效果,经计算后确定输入图片尺寸为512×1536.根据上文所述网络结构以及输入图片尺寸得出图1,其中白色方框“I”代表文本图片,“M”代表mask图片.
图1 网络架构图Fig.1 Network architecture diagram
在计算损失值(LOSS)时,定义Iin为带有干扰的文字图像,M为初始的二进制mask,Iout为经过网络预测后的输出图片,Igt为期望得到的原始文字图像.
首先定义逐像素LOSS(Per-pixel Loss)为:
(9)
(10)
其中NIgt表示Igt之中的C×H×W,式(9)和式(10)分别代表L1在干扰和非干扰部分的网络输出损失.
为获取更为清晰的图像,提升生成图像的感知效果,映入
文献[26]中的感知LOSS,将其定义为:
(11)
定义全变分损失(Total Variation,TV)为Ltv,如式(12)所示:
(12)
其中R是干扰区域的0像素的膨胀区域.
在对文本图片进行修复时,处理难点是准确预测残缺汉字的缺失信息,复原干扰点与文字部件粘合的部分.对于场景图片的修复来说,修复时可以依据干扰图案边缘多样的彩色纹理信息,对缺失内容进行预测,而在文本图片中干扰图案边缘的纹理信息却没有那么丰富,因而在预测缺失的文字部件时与场景图片有一定区别.在构建损失函数时,本文相较于文献[21]舍弃了复杂的多超参数,并结合干扰文本数据集的特点,通过对比实验4.3.2将损失函数确定为:
Ltotal=Lvalid+Lhole+0.01Lperceptual+0.1Ltv
(13)
将mask数据集根据式(6)所计算出的mrb值,将mask数据集分为A-J共10类,如表1所示,表中mrbmin为当前等级的mrb值下限,mrbmax为当前等级的mrb值上限,train和test栏分别代表当前训练集和测试集的张数.其中训练集共为55219张,测试集共为12060张.
表1 不同等级张数统计表Table 1 Statistics table of different grades
根据表1进行分类后,A-J各个等级示例图片如图2所示,其中白色像素点为干扰部分.
图2 干扰等级划分示例Fig.2 Example of interference level division
本文对训练文本数据集的长宽比进行计算之后,选取1∶1、1∶1.5、1∶2、1∶2.5、1∶3和1∶3.5这6种情况,使用相同数据集进行测试得出表2,根据测试结果显示当H:W=1:3时取得较优效果,因而确定输入图片大小为512×1536.
表2 不同宽高比的实验结果Table 2 Experimental results of different proportionsof width and height
4.3.1 实验设置
实验采用Ubuntu16.04.6系统,Python3.6.7,GeForce RTX 2080Ti,NVIDIA Tesla V100 GPU和Tensorflow1.14对数据进行训练,采用Adam优化器对数据进行优化.
在mask数据集不考虑旋转、翻转和裁剪前提下,各个等级产生的数据量为:训练集249600张、验证集10160张以及测试集16500张.将10个等级mask使用GeForce RTX 2080Ti各训练30轮,其中经过BN层每轮训练10000次共计20轮,无BN层训练每轮训练5000次共训练10轮,无BN层学习率为0.00005.最后将不同等级干扰mask进行混合,训练集约为126.3万,验证集约为9.9万,测试集约为15.3万.
使用NVIDIA Tesla V100训练55轮,其中经过BN层每轮训练10000次各训练40轮,无BN层每轮训练5000次各训练15轮,无BN层学习率为0.00005.采用PSNR作为图像修复质量优劣的评价指标,衡量重建图像与真实图像在像素上的差异,其值越高说明差异越小[27].
4.3.2 算法性能对比
为验证本文算法的有效性,在训练时采用相同数据集和参数的情况下,与文献[21]和文献[22]进行对比研究,选取每次训练中训练集、验证集和测试集的最优结果,实验结果如表3和表4所示.
表3 不同算法PSNR值对比Table 3 Comparison of different algorithms PSNR
表4 不同算法LOSS值对比Table 4 Comparison of different algorithms LOSS
由实验结果可知,本文模型在A等级时分别取得训练集、验证集和测试集的最佳效果,其中PSNR值最高达到32.58 dB,LOSS值最低达到0.015,PSNR值和LOSS 值随着等级的增高而逐渐变差,但从总体上来看各个等级之间的差值随着等级的升高而逐渐变小,对于E、F、G、H、I、J等级来说,使用混合mask训练效果更佳.虽然在实验之中文献[22]的修复效果优于文献[21],但文献[22]的时长远远高于文献[21]和本文算法.本文算法在干扰图片数据的训练集、验证集和测试集上,PSNR值和LOSS值明显优于文献[21]和文献[22],表明本文算法结合文本图片的特点,通过深层特征提取和图像融合对污损字符取得了更优的复原效果.
4.3.3 损失函数的影响
为验证本文所提出的损失函数的效果,在相同数据集和参数设置的情况下,本文采用不同函数的组合进行实验对比研究.实验结果如表5所示,实验结果表明,文献[21]之中的损失函数复原效果较差,尽管Lvalid+Lhole和Lvalid+Lhole+0.01Lperceptual损失函数组合所复原的文字图像在整体主观视觉上与本文相差不大,但放大之后本文损失函数组合所复原的细部特征更加清晰,边缘部分更加平滑自然.
表5 不同损失函数组合的复原效果对比Table 5 Comparison of inpainting effects of different LOSS function combinations
4.3.4 各个等级复原效果
本文算法在各个等级去干扰效果如图3所示,其中每类从上到下的排列顺序为加扰图片,修复图片和原图.由实验结果可知,本模型能够根据已有笔画细节对缺失部分进行预测,并保持缺失汉字的字体形状和笔画走向,对于完全遮挡的汉字(如:J类),在人眼也无法辩明的情况下,本模型在尽可能去除干扰的前提下同样也进行了预测.
图3 各个等级去干扰效果示例图Fig.3 Examples of the effect of various levels of interference removal
4.3.5 识别率对比
为研究本模型的OCR识别率的变化情况,随机选取测试结果不同干扰等级各1000张,共计10000张图片,将加扰图片和对应的修复图片放入百度OCR接口,进一步计算识别准确率的变化情况,前200次识别结果如图4所示,在此处识别率定义为识别正确字符数与总字符数的比值.由实验结果可知,百度OCR对于干扰的图片的平均识别率约为60.05%,而本模型对图像修复后识别率约为90.54%,相较于未修复图片识别率提升约30.49%.实验结果表明文献[21]、文献[22]和本文算法对文字图片修复后识别率分别提升20.34%,19.29%,30.49%,如图5所示,本文算法对于不同等级的干扰修复展现了较好的鲁棒性能,且对于汉字内部细节的修复能力相较于其他算法具有显著提升.
图4 去干扰前后百度OCR识别率变化图Fig.4 Baidu OCR recognition rate changes before and after interference removal
图5 不同算法修复后识别率对比图Fig.5 Comparison of recognition rate after repair of different algorithms
4.3.6 文字拓片修复
为解决真实场景下的古代字体干扰情况,本文使用云南师范大学文字拓片数据集,旨在研究现实情况中文字拓片进行修复效果.该数据集包含不同种类,不同风格的书法字体,由于年代的不同,不同拓片的磨损情况也不一,这也是考量本文算法鲁棒性的一个关键任务之一.首先将获取到的拓片进行简单的预处理,如:二值化、去干扰化等,然后使用本文算法对文字拓片进行修复后的结果如图6所示,左侧为修复前文字图片,右侧为修复后的图片.现实环境下的石刻石碑,大多以裂缝,缝隙以及风雨磨损下的情况为主,经实验证明本文算法对于缺损的碑文字体以及书画作品,在去除干扰的前提下,对当前字体的笔画风格进行了预测并达到了良好的效果.
图6 真实数据实验结果Fig.6 Experimental results with real data
本文基于U-Net框架和部分卷积运算建立文字图片修复模型,旨在解决由于各种不规则干扰而造成字符破损,导致识别准确率下降的问题.本文根据测试图片的字体,形状以及笔画走向对文字缺失部分进行预测,PSNR最高达到32.58 dB,LOSS最佳达到0.015.本文将mask分为10个不同的等级,在各项损失函数的约束下,进一步地提升网络的特征提取和复原能力,重建出细节丰富、文体统一的文字图像.实验结果表明,与其他复原方法相比,本文方法在文字图像的修复上主观视觉效果和图像质量评价结果均有明显提升,文字识别率修复前后提升30.49%.同时使用本文方法对真实的文字拓片进行修复实验并达到了良好效果,为修复书法、碑刻等文字作品的残缺笔画提供了可行性方案.