1、相关背景
随着知识爆炸,借助纸质媒体、网络媒体等途径每天我们都在接触大量的信息。但是当我们发现某些信息是有启发性、有价值的,又苦于如何将这些信息沉淀下来。由于这些信息载体丰富多样,有的是纸质书有的是网页报道有的是PDF电子书,没有按照统一的方式存储不利于对其整理归档,同时这些内容通常都是不可直接编辑的,无法对里面的内容编辑整理。
比如当我们看书发现一篇文章写得针砭时弊,想记录下来同时写点感想,此时我们通常需要将文章部分内容输入到WORD等编辑器中,然后再写下自己的心得体会;比如我们手握一大堆纸质报表,需要对里面的数据进行核算,此时我们通常需要将报表内容输入到EXCEL中,然后才能进行数据分析。
此等繁琐的工作限制了我们的想象,我们90%的时间基本花费在将这些内容转成WORD、EXCELL等编辑器中,严重影响学习工作效率。如何高效自动地将优质纸质文档转成可直接编辑的电子文档,将极大解放键盘上忙碌的双手,提高学习工作中知识沉淀的效率。
随着图像分析技术不断发展,我们可以将各类非同源文档通过移动终端转成图片,然后通过相关技术重建出可以直接编辑的电子文档,具体流程如下图所示。
将纸质文档转为电子文档的时候,通常使用的方法是将纸质文档拍照后进行OCR识别,将照片中的文字提取出来,然后复制粘贴为电子文档。
由于OCR只能识别图片中的文字,用户在粘贴之后还需要进行重新将电子文档排版、修正,这将会花费用户大量的时间。同时因拍摄的纸质文档中会存在大量的文字外内容,例如表格、图片、段落样式、文字样式、排版,如果使用单一的OCR通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的能力,则无法将图片中的数据准确的识别,并且图片等不需要识别的内容也无法保留下来。
如下图所示因无法判断是否为图片,将地图中的文字也进行了识别,并且表格也无法保留,导致后期需要大量的时间进行文档的修改。
可以发现与传统的OCR识别方案不同,我们需要识别出图片中的表格、图片、公式、段落样式、文字样式、排版等内容,并可以在保证内容不丢失的情况下直接插入到文档中,将纸质文档一键转换成可直接编辑的电子文档,解决了传统方案中识别内容丢失和文档格式不兼容等问题,减少了用户后期重复编辑的时间,大大提升了用户的工作效率。
整个方案主要包括以下三个环节:
(1)重新过程需先对文档进行版面分析,版面分析是对版面内的图像、文本、表格信息和位置关系进行自动分析、识别和理解的过程,决定了恢复出来文档的完整性和质量。
(2)版面分析得到段落、图片、表格等结构化信息后,再进行OCR识别和表格恢复。
(3)生成用户可以直接编辑的格式。
版面分析:目前业界一般对二值化图像提取连通域,设计人为经验规则提取相应特征,然后利用决策树、SVM分类器得到每个区域的类别。整个流程依赖人为设计的特征,对倾斜旋转图像不够鲁棒,泛化性较差。
OCR识别:目前业界主要通过深度学习如Faster-RCNN、EAST算法、LSTM\RNN等技术检测识别文本行。
表格恢复:目前业界一般利用Canny算子提取边缘,计算单元格坐标位置从而恢复出表格,对模糊等低质图像效果不理想,后处理繁杂。
因此我们针对版面分析、表格重建痛点问题,利用端到端深度学习模型对文档图像进行语义分割,进而提取结构化的语义信息,最后对不同类型的区域进行相应的增强恢复。特别针对表格重建,我们同时引入CNN提取表格边线,免去许多复杂后处理流程。
2、技术方案
2.1 技术框架
方案主要由输入模块、版面分析模块、排版模块三个模块组成,如图 3 整体方案所示。
系统首先对包含文档的图像进行检测,对扭曲的文档进行校正。然后通过版面分析模块,得到段落、图表等兴趣区域,针对每个区域进行相应增强恢复处理。最后根据阅读顺序,生成用户可以直接编辑的电子文档,如图 4文档重建关键步骤所示。
输入模块主要是进行预处理操作,分为自动框选和扭曲矫正两个步骤。自动框选利用HED深度学习模型对图片中文档区域进行框选,扭曲矫正算法利用DocNet深度学习模型对文档图片进行扭曲矫正。这两个步骤目的是生成高质量的文档图片,提供版面分析效果。
版面分析模块利用了图像分割模型UNet对文档版面进行学习,分割出图片中的段落、表格、图片、公式等元素,为了处理多栏、环绕等复杂版面,我们特意设计的版本分割线的学习,这样有利用提高版本分析的效果。后处理模块,主要是对图像分割模型产生mask图片进行处理,处理mask图像中的相交、包含等区域,划分出各个类型的子块,根据各个子块的位置以及分割线生成版面信息。
排版模块的工作是根据版面信息生成最终的word文档,对于不同类型的子块进行差异化处理。对于文字类型的子块,组段算法是利用OCR技术对文字块图片的文字信息进行组段,生成有语义信息的段落,并且利用了图像分割技术对文字块进行字体识别,识别出文字块中粗体、斜体、下划线、宋体、隶书等字体信息。对于表格类型的子块,运用图像分割技术对表格框线像素进行识别,再结合OCR文本框坐标关系,推断出单元格的位置,最后对单元格内容进行分析,进一步得到单元格字号和对齐方式。而对于图片、公式类型,直接切图输出图片。最后,为了提高用户的阅读体验,我们设计了阅读顺序算法,根据子块的位置、语义信息,复原文档的阅读排序。
2.2 数据仿真
随着深度学习在图像领域取得的巨大成功,基于CNN的网络结构在图像识别、检测、分割等方向上均达到state-of-art的效果。但是传统的深度学习训练过程中依赖大量的数据样本,针对版面分析、字体识别以及扭曲校正等任务,我们设计了一套文档仿真系统。用户可以自定义字体类型、字号大小、图表数量大小、版面类型等属性,生成复杂多样的文档数据,同时自动对其进行标注,极大减少采集和标注数据的成本。
实际场景中文档可能存在折叠,弯曲等变形,严重影响后续可能的文字检测、内容识别和自动组段。部分传统方法通过添加前处理方式,让用户选择待恢复结构区域,以修复图像的结构信息。但这些系统或需要人工选择待恢复区域,或仅能处理图片“受损”的部分区域,不能够结构化地处理图片的整体扭曲和偏移,导致方法的泛化性能受限。考虑到实际场景的复杂性,我们考虑用深度学习结合大量数据来解决此问题。但遗憾的是,目前没有相关的公开数据集,常用的人工图片标注方法也较为低效:标注人员需要人工制造真实图片的扭曲,并拍照获取数据。该方式需要耗费大量人力,且无法获得正常图片和扭曲图片间的映射关系,无法为模型提供更有价值的学习信息。鉴于此,基于图形学相关知识,我们自行构建了自己的仿真数据集。
2.3 排版识别、字体识别
版面分析网络:版面分析是文档分析中的关键技术,传统的方法是通过设计人为规则判断文档各个区域元素类型。随着深度学习的兴起,越来越多人利用语义分割来解决版面分析问题。传统的分割网络一般基于图像分类网络如ResNet、VGGNet,虽然这些网络在图像分类任务中取得比较好的效果,但是为了让网络得到较大的感受野,会对特征图进行下采样,导致丢失很多边缘细节信息,得到的物体边界轮廓往往不够清晰。我们提出了端到端多尺度融合模型如图,主要由两部分组成:编码器和解码器,相同尺度的编码器特征和解码器特征会相互结合,这样同时保持了语义特征和边缘特征。为了加速网络的学习,让低层的特征学习到框线表示,这里我们引入多尺度模型融合,编码器每个部分都有相应的预测输出,融合解码器的输出作为最终的结果。
为了加快网络各个特征层的学习我们引入多尺度损失函数融合,分别计算原图分辨率下的损失函数, 原图1/4和原图1/16的损失函数,最后将这三个结果融合作为我们的目标函数。特别指出的是,在文档版面中公式、表格的占比远远少于段落文字,存在严重类别不均衡问题。传统语义分割损失函数往往采用交叉熵,针对类别不均衡效果不太理想,对于公式这种数据较少的类别识别效果很差。因此我们这里引入IOU 损失函数,它能很好的解决类别不均衡问题。
目前版面识别支持的类型有公式、图片、表格、段落、题注、分割线、页眉和页脚,我们的网络在1w+张测试集上平均IOU达到91%。
字体识别网络:日常文档图片往往存在各种特色字体,比如粗体、下划线或者楷书等等。为了更好地还原文档的真实内容,这里我们引入字体识别模块支持特殊字体的识别。粗体、下划线、斜体这三类特性是可以叠加的,同时可以和任意一种字体结合的,比如我们实际中常用到加粗的宋体,加粗又带下划线的行楷等等。因此这里我们将粗体、下划线、斜体定义为字体属性,宋体行楷等定义为字体类别,针对性设计Unet 双分支多任务网络,字体属性识别分支和字体类别识别分支共用图像编码层。
目前字体识别支持的类型有粗体,斜体,下划线,宋体,楷体,隶书,我们的网络在1w+张测试集上字体属性mIOU达到93%,字体类别mIOU达到91%。
2.4 表格重建
若文档中有表格,前面的步骤已定位了区域。接下来将切割出来的表格部分图片转换为表格结构信息,转换的具体流程如下图所示。
首先,对表格图片使用神经网络进行像素级的分割,神经网络采用Unet卷积神经网络结构,每个像素有四个对应输出概率,分别表示此像素属于横向框线(可见或隐含)和竖向框线(可见或隐含)的概率。
得到像素级别分割结果后,再进行几何分析。首先,提取横竖向两个分割图的连通区域,每个连通区域是一条曲线,对连通区域的像素拟合一条折线,也即若干线段的方程。接着对折线再进行合并,依据各折线中各线段的倾角相似度和坐标值的远近,将属于同一条框线的折线合并在一起。为把每条框线中的线段校正至水平或竖直,拟合单应矩阵,同时也把图片校正。将校正好的图片进行OCR计算,获取文本框坐标和字符坐标。接着对所有横竖框线计算交点,依据交点提取出每个单元格。最后将各个单元格信息再进行整合,得出每行的高度,每列的宽度,以及单元格的合并关系。单元格的合并关系是这样表示的:(左上角的单元格编号, 右下角的单元格编号)。最后再依据单元格和表格图的大小比例推算每个单元格中的字号大小,根据单元格中文字放置的位置推断对齐方式。将这些信息转成WORD文档中表格编码格式,使其可以在WORD等软件中显示、编辑。
3、总结展望
我们运用深度学习针对拍照图片中文档的格式进行学习识别后,采用实体抽取技术实现了一键提取图片中文档的表格、图片、公式、段落样式、文字样式、排版等格式,并将包含文字、段落、排版的内容自动插入到电子文档中,如图片中识别出表格和表格的内容,会把图片中的表格还原成一个真的电子表格并插入到文档中。相比传统的OCR文档识别,我们可以更加完整地恢复文档中的表格、段落样式、文字样式、和文档版面。
目前相关技术已经运用到腾讯文档中,后续我们将不断丰富使用场景,提升效果和用户体验。
腾讯QQ研发中心——CV应用研究组致力于计算机视觉的产品研究和研发工作,利用深度学习技术和大数据为QQ、腾讯文档等提供AI基础能力。
产品包括:QQAR中的上百种场景和目标识别、手势识别;移动端实时头部语义分割和手势姿态估计;QQ小程序码检测和识别;腾讯文档中的文档排版识别和表格重建等。我们希望利用AI科技来方便人们生活,提升人们生活质量。
4、参考文献
[1]An adaptive over-split and merge algorithm for page segmentation
[2]ICDAR2017 Competition on Recognition of Documents with Complex Layouts – RDCL2017
[3]Text-Line Detection in Camera-Captured Document Images Using the State Estimation of Connected Components
[4]An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition
[5]ASTER:An Attentional Scene Text Recognizer with Flexible Rectification
[6] EAST: An Efficient and Accurate Scene Text Detector
[7]Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
[8]Holistically-Nested Edge Detection
[9]DeepDeSRT:Deep Learning for Detection and Structure Recognition of Tables in Document Images
[10]Pyramid Scene Parsing Network
[11]Rethinking Atrous Convolution for Semantic Image Segmentation
[12]UNet++:A Nested U-Net Architecture for Medical Image Segmentation
[13]ICNet for Real-Time Semantic Segmentation on High-Resolution Images