
PaddleOCR 作为百度开源的OCR(光学字符识别)工具包,自2020年发布以来,凭借其强大的多语言识别能力、高精度的文本解析能力以及良好的扩展性,迅速在全球范围内获得广泛认可。2025年5月20日,PaddlePaddle团队正式发布了PaddleOCR 3.0版本,标志着其在OCR技术领域的又一次重大突破。
PaddleOCR 3.0不仅在模型性能上实现了显著提升,还新增了对多种文本类型、手写体识别的支持,并引入了ERNIE 4.5 Turbo等大模型技术,进一步增强了智能文档理解能力。

一、项目概述
PaddleOCR 3.0是基于PaddlePaddle 3.0框架推出的全新一代OCR工具包,旨在为开发者提供高效、准确、易用的文本识别与文档解析能力。该版本支持五种语言的文本识别,包括简体中文、繁体中文、简体中文拼音、英文和日文,并且能够处理复杂的手写体文本。此外,PaddleOCR 3.0还引入了PP-StructureV3和PP-ChatOCRv4等新模型,实现了对PDF、图片等多格式文档的高精度解析与智能理解。

二、技术特点
1. 多场景支持
PaddleOCR 3.0支持多种文本类型和场景,包括:
-
通用文本识别:支持五种语言(简体中文、繁体中文、简体中文拼音、英文、日文)的文本识别。
-
手写体识别:显著提升了对复杂草书和非标准手写体的识别能力。
-
文档解析:PP-StructureV3模型支持多布局、多场景PDF的高精度解析,优于许多开源和闭源解决方案。
-
智能文档理解:PP-ChatOCRv4模型支持关键信息提取,准确率较上一代提升15个百分点。
2. 高精度模型
PaddleOCR 3.0引入了多个高性能模型,包括:
-
PP-OCRv5:支持五种语言的通用文本识别,准确率较上一代提升13个百分点。
-
PP-StructureV3:支持多布局PDF解析,准确率在多个基准测试中领先。
-
PP-ChatOCRv4:基于ERNIE 4.5 Turbo,支持大模型部署,实现智能文档理解。
3. 多语言支持
PaddleOCR 3.0支持多种编程语言的调用,包括C++、Java、Go、C#、Node.js和PHP,方便开发者根据项目需求选择合适的语言进行开发。
4. 易用性与部署灵活性
PaddleOCR 3.0提供了丰富的工具和接口,支持从模型训练、推理到服务部署的全流程开发。此外,还支持Android平台的PP-OCRv5模型,进一步拓展了应用场景。

三、主要功能
1. 文本识别
PaddleOCR 3.0支持多种文本识别任务,包括:
-
通用文本识别:支持五种语言的文本识别。
-
手写体识别:支持复杂草书和非标准手写体的识别。
-
多语言支持:支持简体中文、繁体中文、简体中文拼音、英文和日文。
2. 文档解析
PP-StructureV3模型支持多布局、多场景PDF的高精度解析,包括:
-
表格识别:支持嵌套公式和图片的表格识别。
-
图表识别:支持图表转表格。
-
垂直文本识别:支持从PDF中提取垂直方向的文本。
-
复杂文档结构分析:支持对复杂文档结构进行解析。
3. 智能文档理解
PP-ChatOCRv4模型支持关键信息提取,包括:
-
文本识别:支持从PDF、PNG、JPG等格式中提取文本。
-
关键信息提取:支持从文档中提取关键信息,如车辆准乘人数等。
-
多模态支持:支持与大模型(如ERNIE 4.5 Turbo)集成,实现更智能的文档理解。
四、应用场景
1. 企业文档管理
-
PDF解析:支持从PDF中提取文本、表格、图表等信息。
-
文档分类:支持对文档进行分类和标签化。
-
自动化处理:支持批量处理文档,提高工作效率。
2. 金融行业
-
发票识别:支持从发票中提取关键信息,如金额、日期、供应商等。
-
合同解析:支持对合同文本的自动识别和结构化处理。
-
报表分析:支持对财务报表的自动识别和分析。
3. 医疗行业
-
病历识别:支持从病历中提取关键信息,如患者姓名、诊断结果等。
-
处方识别:支持对处方文本的自动识别和结构化处理。
-
医疗记录管理:支持对医疗记录的自动识别和分类。
4. 教育行业
-
试卷识别:支持从试卷中提取题目和答案。
-
作业批改:支持对作业文本的自动识别和批改。
-
学习资料管理:支持对学习资料的自动识别和分类。
5. 政务与法律行业
-
公文识别:支持从公文、法律文件中提取关键信息。
-
合同管理:支持对合同文本的自动识别和结构化处理。
-
政策解读:支持对政策文件的自动识别和解读。
五、快速使用
1. 安装与依赖
首先,确保已安装PaddlePaddle 3.0框架,然后通过以下命令安装PaddleOCR:
pip install paddleocr
2. PP-OCRv5 示例
from paddleocr import PaddleOCR
ocr = PaddleOCR(
use_doc_orientation_classify=False,
use_doc_unwarping=False,
use_textline_orientation=False
)
result = ocr.predict(
input="https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png"
)
for res in result:
res.print()
res.save_to_img("output")
res.save_to_json("output")
3. PP-StructureV3 示例
from pathlib import Path
from paddleocr import PPStructureV3
pipeline = PPStructureV3(
use_doc_orientation_classify=False,
use_doc_unwarping=False
)
output = pipeline.predict(
input="https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/pp_structure_v3_demo.png"
)
for res in output:
res.print()
res.save_to_json(save_path="output")
res.save_to_markdown(save_path="output")
4. PP-ChatOCRv4 示例
from paddleocr import PPChatOCRv4Doc
chat_bot_config = {
"module_name": "chat_bot",
"model_name": "ernie-3.5-8k",
"base_url": "https://qianfan.baidubce.com/v2",
"api_type": "openai",
"api_key": "api_key", # your api_key
}
retriever_config = {
"module_name": "retriever",
"model_name": "embedding-v1",
"base_url": "https://qianfan.baidubce.com/v2",
"api_type": "qianfan",
"api_key": "api_key", # your api_key
}
pipeline = PPChatOCRv4Doc(
use_doc_orientation_classify=False,
use_doc_unwarping=False
)
visual_predict_res = pipeline.visual_predict(
input="https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/vehicle_certificate-1.png",
use_common_ocr=True,
use_seal_recognition=True,
use_table_recognition=True,
)
mllm_predict_info = None
use_mllm = False
# If a multimodal large model is used, the local mllm service needs to be started. You can refer to the documentation: https://github.com/PaddlePaddle/PaddleX/blob/release/3.0/docs/pipeline_usage/tutorials/vlm_pipelines/doc_understanding.en.md performs deployment and updates the mllm_chat_bot_config configuration.
if use_mllm:
mllm_chat_bot_config = {
"module_name": "chat_bot",
"model_name": "PP-DocBee",
"base_url": "http://127.0.0.1:8080/", # your local mllm service url
"api_type": "openai",
"api_key": "api_key", # your api_key
}
mllm_predict_res = pipeline.mllm_pred(
input="https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/vehicle_certificate-1.png",
key_list=["驾驶室准乘人数"],
mllm_chat_bot_config=mllm_chat_bot_config,
)
mllm_predict_info = mllm_predict_res["mllm_res"]
visual_info_list = []
for res in visual_predict_res:
visual_info_list.append(res["visual_info"])
layout_parsing_result = res["layout_parsing_result"]
vector_info = pipeline.build_vector(
visual_info_list, flag_save_bytes_vector=True, retriever_config=retriever_config
)
chat_result = pipeline.chat(
key_list=["驾驶室准乘人数"],
visual_info=visual_info_list,
vector_info=vector_info,
mllm_predict_info=mllm_predict_info,
chat_bot_config=chat_bot_config,
retriever_config=retriever_config,
)
print(chat_result)
六、结语
PaddleOCR 3.0作为百度开源的OCR工具包,凭借其强大的多语言识别能力、高精度的文本解析能力以及良好的扩展性,正在成为企业智能化转型的重要工具。无论是金融、医疗、教育还是政务行业,PaddleOCR 3.0都能提供高效的文档处理解决方案。
七、项目资料
官方仓库:https://github.com/PaddlePaddle/PaddleOCR
官方文档:https://www.paddlepaddle.org.cn
模型下载:https://paddle-model-ecology.bj.bcebos.com/paddlex/
(文:小兵的AI视界)