本文档涵盖了 PaddleOCR 中的文档理解模型,这些模型能够对文档结构、实体识别和关系抽取进行智能分析。这些模型超越了基本的文本检测和识别,能够提供文档内容的语义理解。
有关基本的文本检测和识别模型,请参阅 检测模型 和 识别模型。有关完整的文档分析流程,请参阅 PP-StructureV3 文档分析。
PaddleOCR 中的文档理解模型基于 Transformer 架构,特别是 LayoutLM 变体,用于执行
这些模型整合了视觉、文本和空间信息来理解文档语义,构成了智能文档处理工作流的基础。
文档理解系统基于层次化架构构建,使用了 PaddleNLP 中的 LayoutLM 系列模型
模型演进与能力
| 模型 | 视觉主干 | 多语言 | 主要用途 |
|---|---|---|---|
| LayoutLM | 否 | 否 | 纯文本 SER |
| LayoutLMv2 | 可选 | 否 | 多模态 SER/RE |
| LayoutXLM | 可选 | 是 | 多语言 SER/RE |
来源:ppocr/modeling/backbones/vqa_layoutlm.py22-33 ppocr/modeling/backbones/vqa_layoutlm.py37-49
NLPBaseModel 类为所有文档理解模型提供了基础
来源:ppocr/modeling/backbones/vqa_layoutlm.py52-78
基本 LayoutLM 模型,用于语义实体识别,不包含视觉特征
主要特性
use_visual_backbone = False - 仅处理文本和布局input_ids, bbox, attention_mask, token_type_ids来源:ppocr/modeling/backbones/vqa_layoutlm.py80-104
增强的模型,支持可选的视觉主干
use_visual_backbone 标志的条件视觉处理来源:ppocr/modeling/backbones/vqa_layoutlm.py107-147
支持视觉主干的多语言文档理解
layoutxlm-base-uncased, vi-layoutxlm-base-uncased来源:ppocr/modeling/backbones/vqa_layoutlm.py149-188
抽取已识别实体之间的关系
与 SER 模型的主要区别
LayoutLMv2ForRelationExtraction 作为基础模型num_classes 参数(关系类型是预定义的)来源:ppocr/modeling/backbones/vqa_layoutlm.py191-221
支持视觉主干的多语言关系抽取
来源:ppocr/modeling/backbones/vqa_layoutlm.py223-261
优化器系统为文档理解模型提供了全面的训练配置
来源:ppocr/optimizer/__init__.py34-66
LinearWarmupCosine:常用于 Transformer 训练
warmup_steps, start_lr, min_lrOneCycle:用于加速训练
anneal_strategy: "cos" 或 "linear"CyclicalCosine:用于改进收敛
来源:ppocr/optimizer/learning_rate.py116-163 ppocr/optimizer/learning_rate.py298-349 ppocr/optimizer/learning_rate.py252-295
特性
来源:ppocr/optimizer/optimizer.py230-292
VQA 令牌处理系统负责输入分块和准备
来源:ppocr/data/imaug/vqa/token/vqa_token_chunk.py18-49 ppocr/data/imaug/vqa/token/vqa_token_chunk.py52-134
带注意力掩码处理的交叉熵损失
主要功能
key 参数进行多任务场景配置来源:ppocr/losses/vqa_token_layoutlm_loss.py23-61
将模型预测转换为结构化输出
特性
来源:ppocr/postprocess/vqa_token_ser_layoutlm_postprocess.py19-94
文档理解模型与 PaddleOCR 更广泛的文档分析生态系统集成
这种集成实现了端到端的文档理解工作流,将 OCR、布局分析和语义理解结合为全面的文档处理解决方案。
来源:ppocr/modeling/backbones/vqa_layoutlm.py1-261 ppocr/optimizer/__init__.py1-67 ppocr/postprocess/vqa_token_ser_layoutlm_postprocess.py1-117