ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

PaddleOCR 3.x 技术指南:将 PDF 与图像文档转化为 LLM 可用结构化数据的 OCR 与文档解析工具链

PaddleOCR 3.x 技术指南:将 PDF 与图像文档转化为 LLM 可用结构化数据的 OCR 与文档解析工具链 PaddleOCR 3.x 技术指南将 PDF 与图像文档转化为 LLM 可用结构化数据的 OCR 与文档解析工具链【免费下载链接】PaddleOCRTurn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLMs. Supports 100 languages.项目地址: https://gitcode.com/GitHub_Trending/pa/PaddleOCRPaddleOCR 是一个将 PDF 文档和图像转换为结构化、LLM 就绪数据JSON/Markdown的 OCR 与文档智能工具集。本文基于仓库根目录的 README.md 展开结合 paddleocr 包源码、安装文档与快速上手文档系统讲解其核心能力PP-OCRv6 通用文字识别、PP-StructureV3 版面解析、PaddleOCR-VL 视觉语言模型、doc2md 办公文档转换、命令行与 Python 双接口的具体用法以及从源码层面确认的模型自动选择逻辑与参数映射机制帮助读者完成从安装到产线调用的完整落地。核心定位与能力版图README 将 PaddleOCR 定位为面向 LLM 时代的文档解析引擎覆盖两大核心场景1. 智能文档解析LLM-Ready Document ParsingPaddleOCR-VL 系列视觉语言模型以 PaddleOCR-VL-1.60.9B 参数为代表README 称其在 OmniDocBench v1.6 上取得 96.3% 的准确率在文本、公式、表格识别上保持领先并在古籍、生僻字、印章、图表理解上显著增强输出支持Markdown与JSON两种结构化格式。PP-StructureV3将复杂 PDF 和图像转换为 Markdown 或 JSON与 PaddleOCR-VL 系列不同它提供更细粒度的坐标信息——包括表格单元格坐标、文本坐标等适合需要精确定位下游信息的场景。轻量高效以小模型 footprint 达到商用级精度适合边缘与云端部署。2. 通用文字识别场景 OCR100 语言支持其中PP-OCRv6 以单一统一模型覆盖 50 种语言中文、英文、日文及 46 种拉丁文字语言多语言混排文档无需切换模型。复杂元素识别支持身份证件、街景、书籍、工业部件等自然场景下的文字检测与定位。性能提升README 声明 PP-OCRv6 相比 PP-OCRv5 检测精度 4.6%、识别精度 5.1%端到端 CPU 推理提速 5.2 倍。3. 开发者生态与 Dify、RAGFlow、Pathway、Cherry Studio 等 AI Agent 生态项目深度集成支持 NVIDIA GPU、Intel CPU、昆仑芯 XPU 等硬件后端的一键部署提供面向 LLM 微调数据生产的完整 pipeline。版本演进从 3.2 到 3.7 的关键节点README 的 Recent updates 段落记录了版本能力演进按时间线梳理如下均为 README 原文陈述| 版本/日期 | 关键特性 | | - | - | |3.7.0 / 2026.07.22|HPD-Parsing高吞吐文档解析 VLM 上线采用分层并行解码hierarchical parallel decoding与渐进式多 token 预测P-MTP公开基准峰值吞吐 4,752 tokens/s支持 OpenAI 兼容 serving 与基于定制 vLLM 运行时的本地推理 | |3.7.0 / 2026.06.11|PP-OCRv6发布medium 档34.5M 参数检测 4.6%、识别 5.1% 超越 PP-OCRv5_server单模型统一 50 种语言tiny(1.5M)/small(7.7M)/medium(34.5M) 三档覆盖边缘、移动与服务端5.2× CPU 提速OpenVINO、Apple M4 tiny 档 6.1× 提速、A100 单样本 0.13s | |3.6.0 / 2026.05.28|PaddleOCR-VL-1.6OmniDocBench v1.6 上 96.3%表格、古籍、生僻字能力升级印章识别与定位、图表理解增强架构与 VL-1.5 完全一致可零成本替换迁移 | |3.5.0 / 2026.04.21| 灵活推理后端Paddle 静态图/动态图/Transformers 三选一20 个主流模型支持 Transformers 后端Office 文档转 MarkdownWord/Excel/PPTPaddleOCR-VL、PP-StructureV3、PP-DocTranslation支持导出 DOCX发布官方浏览器推理 SDKPaddleOCR.js浏览器内直接运行 PP-OCRv5 | |3.4.0 / 2026.01.29| PaddleOCR-VL-1.50.9B SOTA VLMOmniDocBench 94.5%首推 PP-DocLayoutV3 算法应对倾斜、弯折、扫描、光照、屏幕拍照五类难场景新增印章识别、Text Spotting语言扩展至 111 种支持跨页表格自动合并与层级标题识别 | |3.3.0 / 2025.10.16| PaddleOCR-VL 初代发布NaViT 风格动态分辨率视觉编码器 ERNIE-4.5-0.3B支持 109 种语言PP-OCRv5 多语言识别模型覆盖 109 种语言仅 2M 参数 | |3.2.0 / 2025.08.21| PP-OCRv5 英/泰/希腊识别模型英文场景较主模型 11%全量支持飞桨 3.1.xPP-OCRv5 C 本地部署支持 Linux/WindowsCUDA 12 高性能推理Paddle Inference / ONNX Runtime 双后端服务端部署方案全开源全线支持细粒度 benchmark核心依赖与可选依赖拆分 |安装核心依赖与可选能力域安装方式paddleocr 包定义了最小核心依赖paddlex[ocr-core]3.7.0,3.8.0、PyYAML、requests、aiohttp、typing-extensions要求 Python ≥ 3.8并通过[project.scripts]注册paddleocr命令行入口映射到 paddleocr.main:console_entry。# 仅通用 OCR 与文档图像预处理等默认能力 python -m pip install paddleocr # 需要文档解析、文档理解、文档翻译、关键信息抽取等全部可选能力 python -m pip install paddleocr[all]按能力域选择依赖组从 pyproject.toml 的optional-dependencies与安装文档可确认各依赖组与功能域的一一对应关系| 依赖组 | 对应功能 | 典型模型方案 | | - | - | - | |doc-parser| 文档解析提取表格、公式、印章、图片等版面元素 | PP-StructureV3 | |ie| 关键信息抽取姓名、日期、地址、金额等 | PP-ChatOCRv4 | |trans| 文档翻译 | PP-DocTranslation | |doc2md| Word/Excel/PPT 转 Markdown | 基于 python-docx、openpyxl、python-pptx | |all| 完整功能 | 以上全部 |通用 OCR 产线与文档图像预处理产线无需额外依赖组。需注意doc2md依赖组支持 Python 3.8其余依赖组受上游限制需 Python 3.9。推理引擎PaddleOCR 3.5 起采用统一推理引擎配置底层可在PaddlePaddle与Transformers之间切换。使用 PaddlePaddle 推理时PaddleOCR 3.x 依赖 3.0 及以上版本的飞桨框架使用 Transformers 后端时需安装transformers5.8.0。详见安装文档。快速上手命令行与 Python 双接口命令行使用安装完成后paddleocr命令提供ocr、text_detection、text_recognition、pp_structurev3等子命令。以下命令来自快速上手文档# PP-OCRv6 完整 OCR 产线PaddlePaddle 推理 paddleocr ocr -i ./general_ocr_002.png \ --use_doc_orientation_classify False \ --use_doc_unwarping False \ --use_textline_orientation False \ --engine paddle # PP-OCRv6 文本检测单模块 paddleocr text_detection -i ./general_ocr_001.png --engine paddle # PP-OCRv6 文本识别单模块 paddleocr text_recognition -i ./general_ocr_rec_001.png --engine paddle # PP-StructureV3 文档解析产线 paddleocr pp_structurev3 -i ./pp_structure_v3_demo.png \ --use_doc_orientation_classify False \ --use_doc_unwarping False \ --engine paddle使用 Transformers 后端时仅需将--engine paddle替换为--engine transformers注意 PP-StructureV3 在 Transformers 后端下部分模型尚在支持中需关闭公式识别并指定无线表格结构识别模型--use_formula_recognition False --wireless_table_structure_recognition_model_name SLANeXt_wireless。Python 脚本使用paddleocr 包的__init__导出了完整的公开 API 面产线类PaddleOCR、PaddleOCRVL、PPStructureV3、PPDocTranslation、PPChatOCRv4Doc、DocUnderstanding、DocPreprocessor、FormulaRecognitionPipeline、SealRecognition、TableRecognitionPipelineV2等、单模型类TextDetection、TextRecognition、LayoutDetection、TableStructureRecognition、FormulaRecognition、ChartParsing等、API 客户端PaddleOCRClient、AsyncPaddleOCRClient以及文档转换函数doc2md_convert。通用 OCR 产线PP-OCRv6 默认from paddleocr import PaddleOCR ocr PaddleOCR( use_doc_orientation_classifyFalse, # 关闭文档方向分类 use_doc_unwarpingFalse, # 关闭文档弯页矫正 use_textline_orientationFalse, # 关闭文本行方向分类 enginepaddle, # 推理引擎paddle / transformers ) result ocr.predict(./general_ocr_002.png) for res in result: res.print() # 打印结构化结果 res.save_to_img(output) # 保存可视化标注图 res.save_to_json(output) # 保存 JSON 结果结果字典包含rec_texts识别文本、rec_scores置信度、dt_polys/rec_polys多边形坐标、rec_boxes边界框以及text_det_params检测超参数快照等字段。单模块调用from paddleocr import TextDetection, TextRecognition model TextDetection(enginepaddle) output model.predict(general_ocr_001.png) rec_model TextRecognition(enginepaddle) output rec_model.predict(inputgeneral_ocr_rec_001.png)PP-StructureV3 文档解析产线from paddleocr import PPStructureV3 pipeline PPStructureV3( use_doc_orientation_classifyFalse, use_doc_unwarpingFalse, enginepaddle, ) output pipeline.predict(input./pp_structure_v3_demo.png) for res in output: res.print() res.save_to_json(save_pathoutput) # 结构化 JSON含细粒度坐标 res.save_to_markdown(save_pathoutput) # Markdown 文档PP-StructureV3 的构造参数在 pp_structurev3.py 中完整暴露涵盖版面检测layout_detection_model_name、layout_threshold、layout_nms等、表格识别有线/无线双模型wired_table_structure_recognition_model_name、wireless_table_structure_recognition_model_name、印章识别use_seal_recognition、seal_text_detection_model_name等、公式识别use_formula_recognition与图表识别use_chart_recognition等能力开关并支持format_block_content、markdown_ignore_labels等 Markdown 输出控制项——这正是 README 所述更细粒度坐标信息的落点。Office 文档转 Markdown3.5 版本引入的doc2md能力由 paddleocr/_doc2md 实现通过default_registry按文件扩展名路由到对应的转换器入口函数为包级导出的doc2md_convertfrom paddleocr import doc2md_convert result doc2md_convert(report.docx) print(result.markdown)该能力依赖doc2md依赖组python-docx、python-pptx、openpyxl、pylatexenc。源码剖析模型自动选择与产线内部结构语言到模型的自动路由PaddleOCR 产线实现中当用户未显式指定检测/识别模型时_get_ocr_model_names方法会根据lang与ocr_version参数自动解析模型名。从源码可以确认如下路由逻辑ocr.py默认langNone, ocr_versionNone直接使用PP-OCRv6_medium_detPP-OCRv6_medium_rec即默认走 PP-OCRv6 中等档模型ocr_versionNone且指定lang若语言属于_PPOCRV6_LANGS中/繁中/英/日 全部拉丁语系剔除pi自动选 PP-OCRv6韩语、泰语、希腊语、天城文/阿拉伯/西里尔文系语言则回落到 PP-OCRv5 对应语种模型如latin_PP-OCRv5_mobile_rec、eslav_PP-OCRv5_mobile_rec卡纳达语ka回落至 PP-OCRv3显式指定版本PP-OCRv5 中文/繁中/日文使用PP-OCRv5_server_rec英文使用en_PP-OCRv5_mobile_recPP-OCRv4 仅覆盖中英PP-OCRv3 按语种选择{rec_lang}_PP-OCRv3_mobile_rec。ocr_version的合法取值为[PP-OCRv3, PP-OCRv4, PP-OCRv5, PP-OCRv6]见 ocr.py传入其他值会直接抛出ValueError语言组常量定义在 paddleocr/_utils/langs.py 中按拉丁、斯拉夫、阿拉伯、西里尔、天城文等文字体系分组印证了 README 关于多语言覆盖的实现方式。2.x 兼容参数映射PaddleOCR 3.x 的 Python 接口刻意保留了 2.x 的参数名兼容性。源码中的_DEPRECATED_PARAM_NAME_MAPPINGocr.py定义了 2.x 参数到新命名的映射例如det_model_dir → text_detection_model_dir、use_angle_cls → use_textline_orientation、cls_model_dir → textline_orientation_model_dir。传入旧参数名时仅触发弃用警告并被自动翻译而新旧参数同时传入则抛出互斥错误。命令行子命令同样通过DeprecatedOptionAction注册了对应的--det_model_dir等废弃选项。参数如何落到产线配置从源码结构看PaddleOCR继承自PaddleXPipelineWrapper其_paddlex_pipeline_name属性返回OCR即本包是 PaddleX 底层产线的薄封装层。_get_paddlex_config_overrides方法ocr.py将用户传入的参数按产线配置路径逐项覆盖例如text_det_thresh→SubModules.TextDetection.threshtext_det_box_thresh→SubModules.TextDetection.box_threshtext_det_unclip_ratio→SubModules.TextDetection.unclip_ratiouse_doc_orientation_classify或use_doc_unwarping任一为真时自动启用use_doc_preprocessor子产线这意味着用户级参数最终被精确注入到 PaddleX 的产线 YAML 配置结构中predict返回的是包含model_settings生效参数快照、doc_preprocessor_res、dt_polys、rec_texts等字段的完整结果对象与快速上手文档中展示的输出示例一致。服务化与多语言生态官方 API 客户端除本地推理外paddleocr包内置官方 API 客户端 PaddleOCRClient及异步版AsyncPaddleOCRClient内部封装提交任务 → 轮询 → 拉取结果的异步作业流token 支持显式传参或从PADDLEOCR_ACCESS_TOKEN环境变量读取服务地址可通过PADDLEOCR_BASE_URL覆盖并提供细粒度的异常体系AuthError、RateLimitError、PollTimeoutError、JobFailedError等见 paddleocr/_api_client。配套的多语言客户端 SDK 位于 api_sdk/包含 Go 与 TypeScript 两套完整实现。部署与集成生态仓库中与文档能力直接相关的部署与集成资产包括deploy/Android/iOS Demo、C 推理cpp_infer/、HubServing 服务端部署方案hubserving/支持手工构造 HTTP 请求实现任意语言客户端、ONNX 转换paddle2onnx/、压缩/量化/剪枝slim/等mcp_server/基于 PaddleOCR 的 MCP 服务器将 OCR 能力暴露给 LLM Agentskills/面向 AI Agent 的文档解析与文字识别技能定义paddleocr-js/官方浏览器推理 SDKPaddleOCR.js对应 3.5 版本发布说明中浏览器内直接运行 PP-OCRv5的能力langchain-paddleocr/LangChain 集成包提供文档加载器。训练与模型导出模型训练走独立安装路径克隆仓库后执行python -m pip install -r requirements.txt安装训练依赖requirements.txt训练配置集中在 configs/ 目录下按 det/rec/cls/table 等任务组织如 configs/det/PP-OCRv6/、configs/rec/PP-OCRv6/入口工具为 tools/train.py、tools/eval.py 与 tools/export_model.py。训练侧的算法实现数据增强、损失函数、后处理等位于 ppocr/ 目录。适用边界与使用建议综合 README 与仓库证据给出几点实操建议选型追求极简部署与多语言混排场景选 PP-OCRv6 产线PaddleOCR类需要表格/公式/印章细粒度坐标与 Markdown 输出选PPStructureV3追求极限解析精度且可接受 VLM 推理成本选PaddleOCRVL高吞吐批量解析可关注 3.7 引入的 HPD-Parsing依赖裁剪只做通用 OCR 时安装裸paddleocr包即可避免安装all依赖组引入的额外负担后端切换同一份代码通过enginepaddle | transformers切换推理后端PP-StructureV3 在 Transformers 后端下需按上文说明调整模型与能力开关版本约束当前仓库对应 PaddleX3.7.0,3.8.0依赖区间Python 本体支持 3.8可选依赖组需 3.9使用 PaddlePaddle 推理需飞桨 3.02.x 迁移旧代码可继续传det_model_dir、use_angle_cls等旧参数名会收到弃用警告并被自动映射建议逐步迁移到新命名。PaddleOCR 以 Apache 2.0 协议开源见 LICENSE引用时可采用 README 中提供的 PaddleOCR 3.0 技术报告与 PaddleOCR-VL 系列论文的 BibTeX 条目。【免费下载链接】PaddleOCRTurn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLMs. Supports 100 languages.项目地址: https://gitcode.com/GitHub_Trending/pa/PaddleOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表