AI个人学习
和实操指南
阿里绘蛙

飞桨 PP-TableMagic:复杂表格结构化信息提取神器

表格识别的目标是解析图片中的表格,准确识别表格结构和单元格位置,并将其还原为结构化的表格格式(例如 HTML)。在当今信息化时代,大量重要的表格数据仍以非结构化状态存在(如扫描文档中的信息统计表图片、PDF 财务报表中的数据统计表等),无法直接进行自动化处理。因此,表格识别已成为文档智能理解、数据自动分析等应用场景下的关键技术。高性能表格识别解决方案在财务报表处理、科研数据分析、保险理赔核算等领域具有重要应用价值,能够显著提高工作效率并减少人为错误。然而,面对不同应用场景下复杂的表格格式,传统的通用表格识别模型往往难以适应。为此,飞桨推出了全新表格识别方案 PP-TableMagic。

blank

PP-TableMagic 效果展示

blank   blank   blank   blank

PP-TableMagic 技术解析

现有技术的不足

目前,常见的表格识别解决方案通常采用以下框架:用户输入一张表格图像,模型同时预测图像中表格的 HTML 结构和单元格位置,然后将其还原为完整的 HTML 表格。这种方案在常见、简单的表格场景下能获得不错的预测性能,但存在两个问题:

  1. 表格识别模型参数量通常较小,而表格结构预测、单元格位置预测这两个任务目标和依赖的特征语义层级差异较大,联合优化存在性能上限。
  2. 用户在特定场景下微调模型时,针对某类表格数据的微调可能导致模型性能“此消彼长”,即微调的表格类别性能提升,但其他类别性能下降,整体性能可能不升反降。

blank

PP-TableMagic 技术方案与原理

为了充分发挥轻量级表格识别模型的性能,并支持用户对任意类型表格数据进行针对性微调,PP-TableMagic 采用了下图所示的结构:


blank

PP-TableMagic 采用双流架构,将表格分为有线表、无线表。然后,将端到端表格识别任务拆解为单元格检测、表格结构识别两个子任务,最后通过自优化结果融合算法得到完整的 HTML 表格预测结果。具体来说:

  • 飞桨团队自研轻量级表格分类模型 PP-LCNet_x1_0_table_cls,实现有线表、无线表的高精度分类。
  • 研发团队推出了业界首个开源表格单元格检测模型 RT-DETR-L_table_cell_det,包括有线表单元格检测预训练权重 RT-DETR-L_wired_table_cell_det 和无线表单元格检测预训练权重 RT-DETR-L_wireless_table_cell_det,实现对各种类型表格单元格的精确定位。
  • 飞桨推出新表格结构识别模型 SLANeXt。相比 SLANet 和 SLANet_plus,SLANeXt 具有更强的表格结构解析能力,能得到更准确的表格 HTML 结构。

在 PP-TableMagic 框架中,飞桨自研的新表格结构识别模型 SLANeXt 尤为重要。表格结构识别是表格识别中最关键的环节,从表格图像到 HTML 表达式的预测依赖于图像中的高级特征。因此,SLANeXt 使用特征表征能力更强的 Vary-ViT-B 作为视觉编码器,将提取到的特征送入 SLAHead 中,以实现更准确的结构识别。除了模型结构改进,训练策略也进行了改进。基于飞桨自建全量数据集+高质量微调数据集,通过全新的三阶段预训练策略分别得到有线表、无线表的结构识别权重。

为了评估 SLANeXt 的表格识别能力,研发团队基于各类型数据集进行了大量测试。实验结果如下:

基于内部高难度表格识别评测集:

blank

基于合作伙伴真实业务数据:

blank

实验结果表明,SLANeXt 相比 SLANet_plus 性能有明显提升。

算法应用

在使用 PP-TableMagic 时,不仅可以利用其优秀的 HTML 表格预测能力直接处理表格,还能充分发挥其结构优势,实现定制化的模型微调。

当针对其他端到端表格识别模型的 bad case 进行微调时,通常只能收集到这类数据,难以构建大型训练集,这会导致“此消彼长”现象,模型性能不升反降。

blank

此外,微调端到端表格识别模型时,需要对训练数据的表格结构、单元格位置同时进行标注,这在大多数应用场景下非常费时费力。

而 PP-TableMagic 的多模型组网架构,当需要提升其对某一类表格的处理性能时,只需要微调其中最关键的某个或某几个模型即可,这样就把对其他类型表格识别性能的影响降到了最低。

blank

因此,基于 PP-TableMagic 在实际场景下进行微调时,不仅各类型表格识别性能互相影响极小,而且数据标注时也仅需标注对应的类别即可,节省了大量人力。

对于代码能力较强的开发者, PP-TableMagic 的架构能直接进行分支级的调整。如下图所示,当发现某一类表格数据非常重要,可以单独设置一个分支进行处理,能够让整体的表格识别能力获得极大的提高。

blank

PP-TableMagic 性能优秀,且支持高定制化、高自由度的针对性模型微调,在各种应用场景下均能达到最佳的表格识别性能,是首个能实现全场景高定制化的表格识别开源方案。

快速上手

安装

安装 PaddlePaddle:

# CPU 版本
python -m pip install paddlepaddle==3.0.0rc0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
# GPU 版本,需显卡驱动程序版本 ≥450.80.02(Linux)或 ≥452.39(Windows)
python -m pip install paddlepaddle-gpu==3.0.0rc0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
# GPU 版本,需显卡驱动程序版本 ≥545.23.06(Linux)或 ≥545.84(Windows)
python -m pip install paddlepaddle-gpu==3.0.0rc0 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/

安装 PaddleX Wheel 包:

pip install https://paddle-model-ecology.bj.bcebos.com/paddlex/whl/paddlex-3.0.0rc0-py3-none-any.whl

快速体验

可以直接调用 PP-TableMagic。

PaddleX 提供了简单易用的 Python API,只需几行代码即可体验模型预测效果。
下载测试图片:

https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/table_recognition_v2.jpg

PaddleX 支持通过命令行方式或 Python 脚本方式调用 PP-TableMagic(在 PaddleX 中以 table_recognition_v2 产线体现)。

命令行方式:

paddlex --pipeline table_recognition_v2 
--use_doc_orientation_classify=False 
--use_doc_unwarping=False 
--input table_recognition.jpg 
--save_path ./output 
--device gpu:0

Python 脚本方式:

from paddlex import create_pipeline
pipeline = create_pipeline(pipeline="table_recognition_v2")
output = pipeline.predict(
input="table_recognition.jpg",
use_doc_orientation_classify=False,
use_doc_unwarping=False,
)
for res in output:
res.print()
res.save_to_img("./output/")
res.save_to_xlsx("./output/")
res.save_to_html("./output/")
res.save_to_json("./output/")

使用后,识别结果将会被保存在指定路径下。

二次开发

如果对 PP-TableMagic 效果满意,可以直接对产线进行高性能推理、服务化部署或端侧部署。如果表格场景特别垂直,效果还有优化空间,也可以基于自己场景的数据,使用 PaddleX 对 PP-TableMagic 中的某个或某几个模型进行针对性二次开发,充分发挥 PP-TableMagic 的定制化微调优势。基于 PaddleX 便捷的二次开发能力,使用统一命令即可完成数据校验、模型训练与评估推理,无需了解深度学习的底层原理,按要求准备好场景数据,简单运行命令即可完成模型迭代。此处展示无线表单元格检测模型 RT-DETR-L_wireless_table_cell_det 二次开发流程:

python main.py -c paddlex/configs/modules/table_cells_detection/RT-DETR-L_wireless_table_cell_det.yaml 
-o Global.mode=train 
-o Global.dataset_dir=./path_to_your_datasets

其他模型均支持二次开发,详情请参考:

https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-rc/docs/pipeline_usage/tutorials/ocr_pipelines/table_recognition_v2.md#4-%E4%BA%8C%E6%AC%A1%E5%BC%80%E5%8F%91

服务化部署

PaddleX 同样对 PP-TableMagic 提供了服务化部署的能力,通过将表格识别的推理功能封装为服务,允许客户端通过网络请求来访问这些服务,以获取表格的推理结果。

PaddleX 提供了两种服务化部署的方式:基础服务化部署和高稳定性服务化部署。基础服务化部署是简单易用的服务化部署方案,开发成本低,方便用户快速部署和调试效果。高稳定性服务化部署是基于 NVIDIA Triton Inference Server 打造的更高稳定性且允许更高性能的服务化部署方式。

关于 PP-TableMagic 的其他介绍,详见 PaddleX 官方产线文档:

https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-rc/docs/pipeline_usage/tutorials/ocr_pipelines/table_recognition_v2.md

CDN1
未经允许不得转载:首席AI分享圈 » 飞桨 PP-TableMagic:复杂表格结构化信息提取神器

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文