PaddleOCR 本地部署快速上手:5分钟跑通多语言 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/PaddleOCR
PaddleOCR 是飞桨生态的开源 OCR 工具包,负责把图像和 PDF 文档转换成程序与 LLM 可直接使用的结构化数据:文本框坐标、识别文本、版面元素,以及 Markdown 和 JSON 文件。无论你是想先验证图片识别效果的新手,还是要搭 RAG 文档数据链路的开发者,它都能以一条命令的代价完成从安装到出结果的完整闭环。
📍 定位速览
PaddleOCR 不是一个单模型,而是一套产线化工具集:在飞桨之上集成了文档预处理、文本检测、文本识别和版面解析。PP-OCRv6 系列用单个模型覆盖中、英、日等 50 种语言;PP-StructureV3 能把 PDF 解析成 Markdown 或 JSON;PaddleOCR-VL 则用 0.9B 参数的视觉语言模型处理更复杂的文档解析。和只做识别的轻量库相比,它的差异在于“预处理—检测—识别—版面”都是可开关的产线模块,可按需组合,3.5 起还能在 PaddlePaddle 与 Transformers 两个推理引擎之间切换。
🛠️ 环境与首次运行
PaddleOCR 3.x 默认以飞桨 3.0 及以上版本作为推理引擎,先装底层框架(CPU 版):
python -m pip install paddlepaddle==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/这条命令安装的是承担实际推理的飞桨框架;有 NVIDIA GPU 时换装对应 CUDA 版本的包,具体对应关系按飞桨官网安装文档选择即可,步骤相同。
再安装 PaddleOCR 包本体。all依赖组包含文档解析、信息抽取等可选能力:
python -m pip install "paddleocr[all]"只跑文字识别和文档图像预处理时,不带依赖组直接装paddleocr就够。装完即可跑第一次识别,下面这条命令对一张图完成检测加识别(把图片路径换成你自己的本地图片):
paddleocr ocr -i ./general_ocr_002.png \ --use_doc_orientation_classify False \ --use_doc_unwarping False \ --use_textline_orientation False三个开关关闭了文档方向分类、页面去扭曲、文本行方向分类这三步预处理,适合拍摄正常的图片;首次运行会自动下载模型文件,运行结束输出每个文本框和识别文本,并在当前目录保存可视化图片和 JSON 结果。
📖 由浅入深的用法
用 CLI 子命令跑不同能力
paddleocr把每种能力做成独立子命令,按需选用。完整产线、单独检测、单独识别分别对应三个命令:
# 完整产线:文本检测 + 文本识别 paddleocr ocr -i ./general_ocr_002.png # 单独文本检测,输出文本框坐标 paddleocr text_detection -i ./general_ocr_001.png # 单独文本识别,输入应为裁剪好的文本行 paddleocr text_recognition -i ./general_ocr_rec_001.png要把含表格、版面的完整文档解析成 Markdown,改用pp_structurev3子命令,依赖组的取舍见安装说明。
用关键开关控制产线行为
常用开关都是布尔开关。上文三个开关分别针对 180 度倒置的文档、卷曲或反光页面、竖排文字,图片正常时关掉可以省掉这部分耗时。处理特定硬件或多语言场景时,还会用到--lang、--device这类参数,其中--engine指定推理引擎,可传paddle或transformers:
paddleocr ocr -i ./general_ocr_002.png --engine transformers把 OCR 集成进 Python 脚本
写业务代码时直接实例化PaddleOCR类并调用predict,结果对象既能打印,也能存成可视化图片或 JSON:
from paddleocr import PaddleOCR ocr = PaddleOCR( use_doc_orientation_classify=False, use_doc_unwarping=False, use_textline_orientation=False) for res in ocr.predict("./general_ocr_002.png"): res.print() res.save_to_json("output")构造参数与命令行开关一一对应,你在 CLI 里调好的参数可以直接搬进脚本,不用重新摸索。
⚖️ 效果与适用边界
PP-OCR 系列擅长复杂场景文字。低对比度、低亮度的点阵数码屏,比如电表和时钟,它仍能稳定检出时间、日期这类文本,工业巡检里这类场景就是它的强项:
也要知道它的边界:手写中文文档、强模糊或强反光图片的识别稳定性会明显下降,纯手写档案不建议直接用它。另外,文档里若含公式和复杂表格,ocr产线只能输出文字、不解析版面,需要改用 PP-StructureV3 或 PaddleOCR-VL,后两者依赖更重、推理也更慢,按实际需要选择。
各产线的依赖与适用场景在产线总览里有一份对照表,仓库根目录的 awesome_projects.md 则列出了 Dify、RAGFlow 等项目如何使用 PaddleOCR 搭建文档数据链路,接入时值得参考。
【免费下载链接】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),仅供参考