PP-TableMagic开源,支持全场景高定制化微调

360影视 国产动漫 2025-03-12 18:08 2

摘要:表格识别旨在对图片中的表格进行解析,正确识别表格结构和单元格位置,从而将其还原为结构化的表格格式(例如HTML)。在当今的信息化时代,仍然有大量的重要表格数据处于非结构化状态(例如扫描文档中的信息统计表图片、PDF 金融财报中的数据统计表等),它们无法被直接地

表格识别旨在对图片中的表格进行解析,正确识别表格结构和单元格位置,从而将其还原为结构化的表格格式(例如 HTML)。在当今的信息化时代,仍然有大量的重要表格数据处于非结构化状态(例如扫描文档中的信息统计表图片、PDF 金融财报中的数据统计表等),它们无法被直接地自动化处理,因此表格识别已经成为文档智能理解、数据自动分析等应用场景下的最关键技术之一。高性能表格识别解决方案在多种场景中的应用价值日益凸显,例如在财务报表处理、科研数据分析、保险理赔核算等重要领域,能够极大地提高工作效率并减少人为错误。然而,面对不同应用场景下各种复杂的表格格式,传统的通用表格识别模型往往难以适应。因此,飞桨研发团队重磅推出表格识别新一代解决方案 PP-TableMagic,采用了“表格分类+表格结构识别+单元格检测”的多模型串联组网方案,实现更高精度的端到端表格识别,并且原生支持针对性模型微调,在不同应用场景下均能得到令人满意的性能

01

PP-TableMagic 效果速览

02

PP-TableMagic 全拆解

▎现有技术的短板

在当前的表格识别解决方案中,其基本框架往往如下图所示,用户向表格识别模型输入一张图像,模型同时预测图像中表格的 HTML 结构与单元格位置,随后将其还原为完整的 HTML 表格。这样的技术方案虽然在常见的、较简单的表格场景下能够获得还不错的端到端预测性能,但其天然存在两个问题:第一,表格识别模型往往参数量较小,而表格结构预测、单元格位置预测两个任务目标差异较大,依赖的特征语义层级差异较大,联合优化时会存在性能上限;第二,当用户在自己的使用场景下进行微调时,针对某类表格数据的微调会导致模型性能出现“此消彼长”,即得到微调的表格类别性能得到优化,但其他表格类别的性能受到影响,最终整体性能很有可能不升反降

▎技术方案与原理

为了最大程度发挥轻量级表格识别模型的性能上限,并且原生支持用户对任一类型表格数据进行针对性微调,我们提出了结构如下图所示的 PP-TableMagic 表格识别解决方案。

从整体框架来看,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 具有更强的表格结构解析能力,得到更加准确的表格 HTML 结构。

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

为了评估 SLANeXt 的表格识别能力,我们基于各类型数据集对其进行了大量测试,实验结果如下:

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

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

由实验结果可知,SLANeXt 相比于 SLANet_plus 取得了明显的性能提高。

03

算法应用解读

在实际使用 PP-TableMagic 时,除了能够借助其优秀的 HTML 表格预测能力直接处理表格,更能够充分发挥其结构优势,实现定制化的模型微调

具体来说,当我们针对其他端到端表格识别模型的 bad case 进行微调时,往往只能收集到这一类的数据,而很难做到像预训练一样构建一个大型训练集,这就会导致下图所示的“此消彼长”的现象,模型性能不升反降。

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

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

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

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

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

04

快速开始

▎安装

安装 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,只需几行代码即可体验模型预测效果,可以下载测试图片,方便大家快速体验效果:

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_pipelinepipeline = 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-二次开发

▎服务化部署

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

05

精彩课程预告

为了帮助您迅速且深入地了解表格识别全流程解决方案,百度研发工程师将于3月13日(周四)19:00为您深度解析本次技术升级。此外,我们还将开设针对表格识别产线的产业场景实战营,手把手带您体验从数据准备、数据校验、模型训练、性能优化到模型部署的完整开发流程。机会难得,立即扫描下方二维码预约吧!

来源:科技游乐馆

相关推荐