PP-DocLayout 开源方案
版面识别的主要挑战
当前版面识别面临的主要挑战来自以下三个方面:
-
文档类型的多样性
- 主流模型主要针对论文类文档、杂志、报纸、研报等,其他类型的文档泛化性较差。
-
文档结构的复杂性
- 现有的结构定义较为简单,通常围绕标题、文本、图片、表格等基本结构,特殊结构的识别较少。
-
实时性能不佳
- 如果一页PDF文档的版式识别需要几秒钟,实用性就会受到较大影响。
PP-DocLayout 提供了工业级的版面识别体验,能够高效应对上述挑战。
PP-DocLayout 的特点
-
支持多种文档类型
包括中英文论文、研报、试卷、书籍、报纸、杂志等。 -
高精度识别与定位
支持23类版面区域的精确识别与定位,包括:- 文档标题、段落标题、文本、页码、摘要、目录、参考文献、脚注、页眉、页脚
- 算法、公式、公式编号、图像、图像标题、表格、表格标题、图表、图表标题、印章
- 页眉图像、页脚图像、侧栏文本等
-
语义层次解析
通过识别文档标题、摘要、段落标题和正文等元素,可以更好地解析文档的语义层次和逻辑关系。 -
高价值信息结构化
对公式、印章、表格、图表等高价值信息的结构化,使得进一步的数据处理和分析更加精准。 -
细粒度的元素类别
细粒度的页眉图像、页脚图像、侧栏文本等类别,有助于提高文档版面布局顺序预测的质量。 -
实时性能
- CPU 上每秒可处理约 69 个文档图像页面。
- GPU 上每秒可处理高达 123 个文档图像页面。
PP-DocLayout 系列模型
PP-DocLayout 提供了三个不同规模的模型:
-
高精度模型:PP-DocLayout-L
- GPU 上每个页面端到端推理耗时 13.4 ms。
-
精度和效率均衡模型:PP-DocLayout-M
- GPU 上每个页面端到端推理耗时 12.7 ms。
-
高效率模型:PP-DocLayout-S
- GPU 上每个页面处理耗时约 8.1 ms。
PP-DocLayout 的优化
-
PP-DocLayout-L
- 基于 GOT-OCR2.0 模型的视觉编码器作为“教师”模型,PP-HGNetV2-B4 作为“学生”模型。在50万文档图像数据上,利用 L2 损失函数,通过大模型的输出指导小模型学习。
-
PP-DocLayout-M/S
- 采用半监督学习技术,基于 PP-DocLayout-L 生成伪标签,通过每个类别得分分布制定最佳阈值优化伪标签质量。然后基于真实标注和伪标签数据训练 PP-DocLayout-M 和 PP-DocLayout-S 模型。
-
灵活的后处理
- 支持每个类别的动态阈值调整,以优化漏检和误检情况。
- 支持重叠框过滤,自动筛选最优的检测结果,消除多余干扰框。
- 可自由扩展框边长,便于输出正确的版面区域内容。
- 可选框的合并模式,支持输出外边框、内框和所有框,适应不同下游任务需求。
PP-DocLayout 用法
安装
python -m pip install paddlepaddle-gpu==3.0.0rc0 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/
pip install https://paddle-model-ecology.bj.bcebos.com/paddlex/whl/paddlex-3.0.0rc0-py3-none-any.whl
调用 PP-DocLayout-L
from paddlex import create_model
model = create_model(model_name="PP-DocLayout-L")
output = model.predict("layout.jpg", batch_size=1, layout_nms=True)
for res in output:
res.print()
res.save_to_img(save_path="./output/")
res.save_to_json(save_path="./output/res.json")
model.predict() 参数说明*
• threshold*
动态阈值调整,支持传入浮点数或自定义各个类别的阈值字典,为每个类别设定专属的检测得分阈值,从而根据数据优化漏检或误检情况。
• layout_nms*
重叠框过滤,布尔类型,指定是否使用NMS(非极大值抑制)过滤重叠框,自动筛选最优的检测结果。
• layout_unclip_ratio*
可调框边长,调整检测框的缩放倍数,自由扩展或收缩框边长,保持中心点不变。
• layout_merge_bboxes_mode*
框合并模式,支持“large”(保留外框)和“small”(保留内框)两种合并模式。
• use_hpip*
是否启用高性能推理来优化推理过程,进一步提升效率。