Atman深度智能文档处理IDP关键技术与实践②
作者: Atman语言智能 来源: Atman语言智能
智能文档处理IDP关键技术与实践
01
正文部分
03达观对于OCR技术的实践和优化
针对文档处理的复杂场景,没有一个通用的技术框架和算法能够解决所有问题,需要针对具体问题进行多种模型优化、流程调整等工作。针对文档OCR识别,常见问题包括文字检测遮盖问题、密集小文本目标检测问题等问题都需要针对性解决。
文字遮盖导致的检测问题比较常见,在实际场景中,例如印章、水印等遮挡导致底层文字检测失效。对于印章,红色印章可以通过通道过滤取得不错的效果,但是对于黑章来说难度增加很多。下图是直观表述同时有红黑两种印章时,对于文字检测的影响。可以看到右侧黑色背景中间结果中,红框范围内文字检测存在模糊判断。
针对遮盖问题,主要有三种方式优化:
文档预处理消除印章影响,例如红章通过颜色通道淡化去除
数据层面增强印章遮盖样本
模型层面增加印章分割设计,强化特征分离。
小目标密集文字也是常见的场景,例如银行流水、表单数据、工程图纸等。由于单独的文字区域占整个图像面积较少,加上密度较大,不经优化会出现大面积的漏检、误检现象。针对这种场景,达观除增加数据层面的积累外,在模型层面进行多尺度的特征设计,大大提升小目标的召回率和准确率。下图展示对于流水结果的检测结果,此优化已成功应用于实际产品项目中。
文档解析技术
文档解析技术是智能文档处理中另外一项关键技术。
实际场景中不同类型的文档在处理中常会遇到以下问题:
电子版PDF或扫描件等文件,会丢失段落、表格等结构化信息;
版面与表格等文档结构信息如何供算法使用;
学术算法常常面对结构简单规范的文字形式,与工业真实场景存在鸿沟;
不同文档协议格式表达复杂,如何将不同类型的文档统一表示,才能够满足不同上下游任务的处理。
文档解析主要工作包括以下三个方面:
不同类型文件协议解析,例如PDF、Word、OFD等,需要映射到统一抽象的文档格式;
版面还原,识别每页各种元素,如页眉页脚、标题、段落、表格、插图、目录等;
表格解析,将表格中的信息准确还原为二维矩阵结构。
01文档格式解析技术
常见的文档格式包括Word、PDF(Portable Document Format)、OFD(Open Fixed-layout Document)等,大部分文件协议的设计都以对象树为主要结构。以PDF协议为例,下图展示PDF文件的实际内容以及文档元素对象的组织结构:
PDF格式在渲染展示上有很大优势,能在不同设备和系统环境下稳定保持渲染内容的一致性,对阅读友好,但PDF解析编辑相对困难,因为PDF协议内置对象类型有限,一些类似表格、页眉页脚等要素类型信息缺失,文字、线条、形状等要素也只包括内容、颜色、大小、位置坐标等信息,需要根据渲染的结果判断元素类型并进一步处理。常见的优秀PDF开源库包括PDFBox、MuPDF、PDFMiner等。OFD由工业和信息化部软件司牵头中国电子技术标准化研究院成立的版式编写组制定的版式文档国家标准,类似PDF,属于我国的一种自主格式,例如OFD格式的发票目前已得到广泛使用。而基于OpenXML的Word格式docx解析起来相对容易,能够拿到包括样式在内的丰富信息,除微软官方提供的SDK外,也有很多优秀的开源项目。
02版面还原技术
版面还原技术就是分析文档中每个页面有哪些类型的元素及的各元素大小位置形状等图像信息,通常情况下根据渲染后的页面图像进行分析,因此主要使用到计算机视觉技术。版面还原技术的意义主要还是和图像、PDF等文件格式缺乏高层次文档元素对象的问题相关,例如页眉页脚在很多业务场景中需要被过滤掉,但在PDF文件中,页眉页脚只是一个单纯的文本框,仅凭文字信息不足以判断此文本框是否是页眉页脚。虽然可以利用有些规则的过滤掉页眉页脚,但规则通用性较差。除此之外,还需要划分段落、标题、目录、表格、插图等更多页面区域,文档元素类型还可能根据业务场景发生改变。
基于计算机视觉的方式有较好的通用性,和人类观察文档版面信息过程一致,通常使用基于目标检测方案和图像分割方案,两种方案各有优缺点。对于版面还原这个任务,有明确的业务属性,一个区域要么属于段落,要么属于表格或者其他类型,不会存在既是段落又是表格的情况,使用目标检测的方案,就要额外梳理重框问题。而使用图像分割的方案则不存在这个问题,从输入输出的角度更适合,但图像分割资源要求相对较高,例如基于FasterRCNN的MaskRCNN,在原模型基础上扩展了一个Mask分支,速度相对会慢一些。
03表格解析技术
表格是信息承载的重要方式,作为一种半结构化数据,被大量应用于文档中。对于表格信息,通常有电子格式(excel、csv、html)和图像格式两种形式,电子表格相对于图像表格,不仅能够渲染供阅读,还可以根据相关协议进行指定单元格内容的读取、修改等。此处介绍的表格解析技术主要解决图像形式表格结构内容识别问题,而不是excel这类电子表格识别问题。特别地,电子版PDF文件中的表格由于缺乏相关协议,也需要使用图像方式来解析。
表格的类型一般根据表格线是否完整也可以将表格划分成3种类型:全线表格、少线表格、无线表格三种,针对以上三种表格的解析方法也有差异。
表格解析的目标是找到文档中的所有表格区域并将表格结构还原成二维矩阵。从技术框架上看,表格解析有端到端一阶段的方式和区域检测、结构解析两阶段的方式。在我们的测试中,整体准确性上来说端到端和二阶段方法差别不大,但考虑到业务上的快速修复性,达观选择二阶段方式。
端到端方式代表性的方法有TableNet、CascadeTabNet等。TableNet采用图像分割思路,将图片送入骨干网络,然后通过两个分支分别生成表格区域和列的mask,然后通过规则生成行,最终得到具体单元格的内容。CascadeTabNet基于Cascade R-CNN,先检测出表格区域同时对表格类型划分(有线、无线),然后检测单元格区域,最后根据表格类型做后处理得到最终的表格结构。这些算法在公开数据集效果不错,但因端到端难以解决具体badcase,在实际业务使用上存在一定局限性。
二阶段方式主要是表格区域检测和表格线条检测两大块。表格区域检测问题相对简单,基于目标检测或分割都可以实现,主要问题是实际业务定义差异会影响模型效果,需要在数据层面多下功夫。而表格线检测是技术重点,因为表格解析算法最终可以看作是表格线识别的问题,有了表格中所有表格线,就能还原整个表格结构,解决方法有基于传统CV的算法和深度学习算法。
基于传统CV的算法,以经典的霍夫变换为代表,优点是不需要数据标注且不需GPU资源,算法成熟稳定,对于电子版PDF表格效果很不错,但拍照扫描等场景中扭曲、光照等因素导致泛化能力一般,需要在图像预处理和后处理下很大功夫。基于深度学习的算法,如UNet,优点是对于上述扭曲、变形、光照等泛化能力强,缺点是需要大量的数据标注,计算资源也比较高。
通过使用基于深度学习的算法,能够较好解决传统算法对于图像质量要求高的问题,下面两图展示了利用分割的思想识别表格线的效果,可以看到虽然原图质量不佳,要么线条特别模糊要么整体扭曲透视较为严重,但整体解析效果较好。
信息提取技术
不同于传统纯文本实体识别,实际场景中文档信息提取挑战更大,主要有以下困难:
文字表现形式复杂,文档内有页眉页脚、表格、图片等多种文字信息表达方法,需要分别处理;
领域知识欠缺,实际文档使用词汇和行业场景高度相关,例如产品、型号等专名,需要针对专有领域数据优化模型;
信息点上下文长度跨度大,既有短文本实体信息抽取也有长上下文抽取,例如招股书,需要抽取公司名称、募集金额等短文本信息,也需要公司概况、高管基本情况等长文本信息,技术方案跨度很大;
软硬件资源限制,除单纯模型效果外,还要考虑推理时间、硬件成本这2种度量维度,需要根据实际情况灵活选择平衡。
针对以上问题,不仅需要针对具体问题一一解决,同时需要设计一个优秀的信息提取框架,在实际使用中能够灵活配置实现一种或多种信息提取工作。下文将介绍达观在相关问题解决中的经验。
公众号:Atman语言智能
售前与商务合作:[email protected]
售后与问题咨询:[email protected]
苏州公司:苏州市工业园区金尚路仙峰大厦南楼5层
北京公司:北京市海淀区北四环中路智优沃大厦4层
更多AI工具,参考Github-AiBard123,国内AiBard123