项目简介
PDF-Extract-Kit通过集成多个模型实现了PDF高质量提取,适用于学术论文、教科书、研究报告和财务报表等多种文档类型,在扫描模糊或有水印的情况下也能保持高鲁棒性
1、布局检测采用LayoutLMv3模型进行区域检测,包括图像、表格、标题、文本等
2、公式检测上采用YOLOv8,包含行内公式和行间公式
3、公式识别上采用UniMERNet识别
4、光学字符识别使用PaddleOCR进行文本识别
对于公式识别,UniMERNet可以媲美商业软件;OCR上使用PaddleOCR,对中英文OCR效果不错,之前分享过
PDF内容提取框架如下图所示
结合多样性PDF文档标注,我们训练了鲁棒的
布局检测
和
公式检测
模型。在论文、教材、研报、财报等多样性的PDF文档上,我们的pipeline都能得到准确的提取结果,对于扫描模糊、水印等情况也有较高鲁棒性。
评测指标
现有开源模型多基于Arxiv论文类型数据进行训练,面对多样性的PDF文档,提前质量远不能达到实用需求。相比之下,我们的模型经过多样化数据训练,可以适应各种类型文档提取。
布局检测
我们与现有的开源Layout检测模型做了对比,包括DocXchain、Surya、360LayoutAnalysis的两个模型。而LayoutLMv3-SFT指的是我们在LayoutLMv3-base-chinese预训练权重的基础上进一步做了SFT训练后的模型。论文验证集由402张论文页面构成,教材验证集由587张不同来源的教材页面构成。
模型
|
论文验证集
|
教材验证集
|
mAP
|
AP50
|
AR50
|
mAP
|
AP50
|
AR50
|
DocXchain
|
52.8
|
69.5
|
77.3
|
34.9
|
50.1
|
63.5
|
Surya
|
24.2
|
39.4
|
66.1
|
13.9
|
23.3
|
49.9
|
360LayoutAnalysis-Paper
|
37.7
|
53.6
|
59.8
|
20.7
|
31.3
|
43.6
|
360LayoutAnalysis-Report
|
35.1
|
46.9
|
55.9
|
25.4
|
33.7
|
45.1
|
LayoutLMv3-SFT
|
77.6
|
93.3
|
95.5
|
67.9
|
82.7
|
87.9
|
公式检测
我们与开源的模型Pix2Text-MFD做了对比。另外,YOLOv8-Trained是我们在YOLOv8l模型的基础上训练后的权重。论文验证集由255张论文页面构成,多源验证集由789张不同来源的页面构成,包括教材、书籍等。
模型
|
论文验证集
|
多源验证集
|
AP50
|
AR50
|
AP50
|
AR50
|
Pix2Text-MFD
|
60.1
|
64.6
|
58.9
|
62.8
|
YOLOv8-Trained
|
87.7
|
89.9
|
82.4
|
87.3
|
公式识别
公式识别我们使用的是Unimernet的权重,没有进一步的SFT训练,其精度验证结果可以在其GitHub页面获取。
使用教程
环境安装
conda create -n pipeline python=3.10
pip install -r requirements.txt
pip install
安装完环境后,可能会遇到一些版本冲突导致版本变更,如果遇到了版本相关的报错,可以尝试下面的命令重新安装指定版本的库。
pip install pillow==8.4.0
除了版本冲突外,可能还会遇到torch无法调用的错误,可以先把下面的库卸载,然后重新安装cuda12和cudnn。
pip uninstall nvidia-cusparse-cu12
https://github.com/opendatalab/PDF-Extract-Kit/blob/main/README-zh_CN.md