『柏拉图说』是由南京大学计算传播学实验中心的成员们于2022年4月发起的论文精读与推介活动,我们将定期推送新闻传播学TOP期刊最新内容、新闻传播学前沿及相关量化研究方法论文。我们致力于深耕传播学领域,紧跟专业研究热点,延伸学术视角,拓展群体智慧。
柏拉图说 论文推介第 162 篇
Shen, Z., Zhang, R., Dell, M., Lee, B. C. G., Carlson, J., & Li, W. (2021). LayoutParser: A Unified Toolkit for Deep Learning Based Document Image Analysis. Document Analysis and Recognition – ICDAR 2021, 131–146. https://doi.org/10.1007/978-3-030-86549-8_9
摘要
文档图像分析( DIA )的最新进展主要是由神经网络的应用推动的。理想情况下,研究结果可以很容易地部署在生产中并扩展以进行进一步的研究。然而,各种因素,如松散组织的代码库和复杂的模型配置,使重要的创新易于被广泛的受众重用。尽管在自然语言处理和计算机视觉等学科中一直在努力提高可重用性和简化深度学习( deep learning,DL )模型开发,但它们都没有针对DIA领域的挑战进行优化。这代表了现有工具包的一个重大差距,因为DIA在社会科学和人文科学的广泛学科中都是学术研究的中心。本文介绍了一个用于简化DL在DIA研究和应用中的使用的开源库LayoutParser。核心LayoutParser库自带一套简单直观的接口,用于应用和定制DL模型,用于布局检测、字符识别和许多其他文档处理任务。为了提高可扩展性,Layout Parser还集成了一个社区平台,用于共享预训练的模型和完整的文档数字化流水线。我们证明了LayoutParser在实际用例中对轻量级和大规模的数字化流水线都是有帮助的。该库在https://layout-parser.github.io.上公开可用
介绍
LayoutParser提供了一个统一的工具包来支持基于DL的文档图像分析与处理。为了解决上述挑战,LayoutParser由以下组件构建:
1 .一个用于将DL模型应用于布局检测、字符识别和其他DIA任务的现成工具包(第3节)
2 .丰富的预训练神经网络模型库( Model Zoo ),是现成使用的基础
3 .提供高效的文档图像数据标注和模型调优的综合工具,支持不同程度的定制化
4 .一个DL模型集线器和社区平台,用于DIA模型和流水线的共享、分发和讨论,以促进可重用性、可重复性和可扩展性
Layoutparser包的核心
LayoutParser的核心是一个现成的工具包,它简化了基于DL的文档图像分析。五个组件支持简单的界面和全面的功能:
(1)版面检测只需要4行代码即可直接加载预训练模型or自己训练的深度学习模型
(2)检测到的布局信息存储在经过精心设计的数据结构中
(3)用户可以用现成的或是自定义的OCR模型(通过OCR模块中的API接口实现)
(4)LayoutParser自带一套效用函数,用于布局数据的可视化和存储
(5)LayoutParser还具有高度的可定制性,通过与布局数据标注和模型训练功能的集成。我们现在为每个组件提供了详细的描述
布局检测模块
在LayoutParser中,布局模型以文档图像作为输入,为目标内容区域生成矩形框列表。与传统方法不同,它依赖于深度卷积神经网络而不是手动制定规则来识别内容区域。LayoutParser建立在Detectron2的基础上,提供了一个最小的API,可以在Python中仅用四行代码就可以进行布局检测:
LayoutParser使用覆盖不同语言、时间段和文档类型的各种数据集提供了丰富的预训练模型权重。由于领域迁移,当模型应用于与训练数据集显著不同的目标样本时,预测性能会显著下降。如表1所示,LayoutParser目前在5个不同的数据集上训练了9个预训练模型。训练数据集的描述与训练好的模型一起提供,以便用户能够快速地识别出最适合其任务的模型。
布局数据结构
LayoutParser的一个关键特性是实现了一系列的数据结构和操作,可以用来高效地处理和操纵布局元素。在文档图像分析流水线中,通常需要对布局分析模型的输出结果进行各种后处理以获得最终的输出结果。数据结构中有3个关键组件,分别是坐标系、文本框和布局。它们为布局数据提供了不同的抽象层次,并支持对这些类进行变换或操作的一组API。
坐标是存储布局信息的基石。目前,LayoutParser提供了3种坐标数据结构,如下图2所示。区间和矩形是最常见的数据类型,支持指定文档中的1D或2D区域。它们分别用2个和4个参数进行参数化。还实现了一个四边形类,以支持文档倾斜或扭曲时矩形区域的更一般化表示,其中可以指定4个角点,共支持8个自由度。这些类支持大量的变换,如shift、pad和scale,以及相交、并集和is_in等操作。LayoutParser通过图像裁剪操作Crop_image和坐标变换(如relative_to和condition_on )为该场景提供了全面的支持。具体操作见下表2
OCR
LayoutParser为现有的OCR工具提供了一个统一的接口。尽管有许多OCR工具,但它们通常被配置成不同的API或协议来使用它们。为此,LayoutParser在现有的OCR引擎中构建了一系列包装器,并提供了几乎相同的语法来使用它们。它支持即插即用的OCR引擎使用方式,使得切换、评估和比较不同的OCR模块变得轻而易举:
OCR输出也将存储在上述布局数据结构中,并可无缝集成到数字化流水线中。目前LayoutParser支持Tesseract和Google Cloud Vision OCR引擎。除此之外,Layout Parser还附带了基于深度学习的CNN - RNN OCR模型,采用链接时序分类( CTC )损失进行训练。它可以像其他OCR模块一样使用,并且可以很容易地在定制的数据集上进行训练。
存储和可视化
DIA的最终目标是将基于图像的文档数据转化为结构化的数据库。LayoutParser支持将版图数据导出为JSON、csv等不同格式,并增加了对METS / ALTO XML格式的支持。它还可以加载来自布局分析特定格式的数据集,如COCO和Page Format,用于训练布局模型。布局检测结果的可视化对于展示和调试都至关重要。LayoutParser是一个集成的API,用于将布局信息与原始文档图像一起显示。如下图3所示,它能够以不同的模式呈现具有丰富元信息和特征的布局数据。更详细的信息可以在在线的LayoutParser文档页面中找到。
训练自定义模型
除了现成的库外,LayoutParser还具有高度的可定制性,支持高度独特和具有挑战性的文档分析任务。LayoutParser集成了一个使用对象级主动学习对文档布局进行注释的优化工具包。借助随标注一起训练的布局检测模型,只需要每张图像中最重要的布局对象进行标注,而不需要整张图像。其余区域由布局检测模型以高置信度预测自动标注。这使得布局数据集的创建效率更高,只需要大约60 %的标注预算。
训练数据集整理后,LayoutParser支持不同模式的布局模型训练。微调可以通过已有的预训练权重初始化模型,用于在一个小的新标记数据集上训练模型。当源数据集和目标有显著差异且有较大的训练集可用时,从头开始训练是有帮助的。然而,正如Studer等人的工作所建议的那样,在像ImageNet这样的大规模数据集上加载预训练的权重,即使来自完全不同的领域,仍然可以提高模型性能。通过Layout Parser提供的集成API,用户可以方便地在基准数据集上比较模型性能。
Layoutparser社区平台
LayoutParser的另一个重点是提高版图检测模型和全数字化流水线的可重用性。与许多现有的深度学习库类似,LayoutParser附带了一个社区模型集线器,用于分发布局模型。端用户可以将自己训练好的模型上传到模型hub,这些模型可以加载到与当前可用的LayoutParser预训练模型类似的界面中。例如,在News Navigator数据集上训练的模型已被纳入模型集。
在DL模型之外,LayoutParser还促进了整个文档数字化流水线的共享。例如,有时流水线需要多个DL模型的组合才能达到更好的精度。目前,流水线主要在学术论文中描述,实施情况往往不公开。为此,Layout Parser社区平台还实现了布局管线的共享,以促进技术的讨论和重用。对于每一个共享流水线,它都有一个专门的项目页面,有源代码的链接,文档和方法的概述。提供了一个讨论小组,以交换想法。结合核心的Layout Parser库,用户可以轻松地构建基于共享流水线的可重用组件,并将其应用于解决其特有的问题。
用例
(1) 全面的历史文献数字化流水线
历史文献的数字化可以释放出有价值的数据,这些数据可以揭示许多重要的社会、经济和历史问题。然而,由于扫描噪声、页面磨损以及复杂布局结构的普遍存在,获取历史文献扫描的结构化表示往往是极其复杂的。
在本例中,使用Layout Parser开发了如图5所示的综合流程,从布局复杂的日本公司历史财务报表中生成高质量的结构化数据。该流水线应用了两种布局模型来识别不同级别的文档结构和两个定制的OCR引擎来优化字符识别精度。
如图4 ( a )所示,该文档包含垂直书写的15列文本,这是日语中常见的文体。由于扫描噪声和古老的印刷技术,柱子可能是倾斜的或宽度可变的,因此不能很容易地通过基于规则的方法来识别。在每一列中,单词被大小可变的空格分隔,对象的垂直位置可以作为其布局类型的指标。
为了解密复杂的版面结构,训练了两个目标检测模型,分别用于识别单独的列和token。通过Layout Parser中基于主动学习的标注工具生成一个小的训练集( 400幅图像,每幅图像约100个注释)。模型通过其独特的视觉特征来学习识别每个token或列的类别和区域。布局数据结构可以方便地对每一列内的token进行分组,并根据水平位置对列进行重新排列以实现正确的读取顺序。通过检验模型预测的一致性来识别和修正误差。因此,该流水线虽然在小数据集上训练,但获得了较高的布局检测准确率:列检测模型跨5个类别达到96.97 AP,token检测模型跨4个类别达到89.23 AP。
为解决该文档中的独特挑战,开发了一种字符识别方法的组合。在我们的实验中,我们发现标记之间的不规则间隔导致了较低的字符识别召回率,而现有的OCR模型倾向于在密集排列的文本上表现更好。为了克服这个挑战,我们创建了一个文档重组算法,该算法基于布局分析步骤中检测到的令牌包围盒来重新排列文本。图4 ( b )说明了生成的稠密文本图像,作为一个整体发送给OCR API,以减少交易成本。利用Layout Parser中的柔性坐标系将OCR结果相对于其在页面上的原始位置进行变换。此外,历史文献中使用不同字形的独特字体非常普遍,这极大地降低了在现代文本上训练的OCR模型的准确性。在该文档中,一种特殊的扁平字体用于打印数字,无法通过现成的OCR引擎检测到。利用Layout Parser提供的高度灵活的功能,构建了一种流水线方法,以最小的努力达到了较高的识别精度。由于字符具有独特的视觉结构,通常聚集在一起,因此我们训练布局模型来识别具有专用类别的数字区域。随后,在这些区域内使用Layout Parser作物图像,并使用基于CNN - RNN的自训练OCR模型识别其中的字符[ 6 ]。该模型共检测出15个可能的类别,并在测试集上实现了0.98的Jaccard score和0.17的平均Levinstein distances的token预测。
总体而言,利用LayoutParser为大规模数字化创建一个错综复杂且精度较高的数字化流水线是可能的。该流水线避免了指定传统方法中使用的复杂规则,开发简单,并且对异常值具有鲁棒性。DL模型还可以生成细粒度的结果,从而为OCR提供创造性的方法,如页面重组。
(2) 一个轻量级的可视化表提取器
在这一部分中,我们展示了LayoutParser如何使用现有的资源,以最小的努力为法律文件夹表构建一个轻量级的精确可视化表提取器。提取器使用预训练的布局检测模型识别表格区域,并使用一些简单的规则对PDF图像中的行和列进行配对。在Layout Parser Model Zoo的Pub LayNet数据集上训练的Mask R-CNN可用于检测表格区域。通过过滤掉低置信度的模型预测和去除重叠预测,LayoutParser可以识别出每个页面上的表格区域,显著简化了后续步骤。通过使用Layout Parser提供的实用工具模块中的表格段内的直线检测功能,流水线可以识别表中的3个不同列。然后,通过分析从OCR引擎中获得的令牌边界框在最左列的y坐标,采用行聚类方法。使用非极大值抑制算法去除具有极小间隙的重复行。如下图6所示,所构建的流水线能够准确地检测出页面中不同位置的表格。来自不同页面的连续表被连接起来,并且很容易地创建了结构化的表表示。
结论
Layout Parser为基于深度学习的文档图像分析提供了一个全面的工具包。现成的库易于安装,可用于构建灵活、准确的流水线,用于处理结构复杂的文档。它还支持高级定制,并能够在独特的文档图像数据集上轻松地标注和训练DL模型。Layout Parser社区平台便于共享DL模型和DIA管道,邀请讨论,促进代码的可重复性和可重用性。Layout Parser团队致力于保持库的不断更新,将DL - based DIA的最新进展,如多模态文档建模(一个即将到来的优先事项),带给最终用户多样化的体验。
主要作者简介
https://www.szj.io/
I am a third year PhD Student at MIT CSAIL,
working at the intersection between NLP and HCI,
advised by Prof. David Sontag.
分享者介绍
黄靖翔
https://huang-jingxiang.github.io/
raconz1211@gmail.com
研究方向:计算传播、自然语言处理