This commit is contained in:
344
README_cn.md
Normal file
344
README_cn.md
Normal file
@@ -0,0 +1,344 @@
|
||||
<div align="center">
|
||||
<p>
|
||||
<img width="100%" src="./docs/images/Banner_cn.png" alt="PaddleOCR Banner">
|
||||
</p>
|
||||
|
||||
<!-- language -->
|
||||
[English](./README.md) | 简体中文 | [繁體中文](./README_tcn.md) | [日本語](./README_ja.md) | [한국어](./README_ko.md) | [Français](./README_fr.md) | [Русский](./README_ru.md) | [Español](./README_es.md) | [العربية](./README_ar.md)
|
||||
|
||||
<!-- icon -->
|
||||
|
||||
[](https://github.com/PaddlePaddle/PaddleOCR)
|
||||
[](https://pypi.org/project/PaddleOCR/)
|
||||

|
||||

|
||||

|
||||
|
||||
|
||||
[](https://aistudio.baidu.com/community/app/91660/webUI)
|
||||
[](https://aistudio.baidu.com/community/app/518494/webUI)
|
||||
[](https://aistudio.baidu.com/community/app/518493/webUI)
|
||||
|
||||
</div>
|
||||
|
||||
## 🚀 简介
|
||||
PaddleOCR自发布以来凭借学术前沿算法和产业落地实践,受到了产学研各方的喜爱,并被广泛应用于众多知名开源项目,例如:Umi-OCR、OmniParser、MinerU、RAGFlow等,已成为广大开发者心中的开源OCR领域的首选工具。2025年5月20日,飞桨团队发布**PaddleOCR 3.0**,全面适配**飞桨框架3.0正式版**,进一步**提升文字识别精度**,支持**多文字类型识别**和**手写体识别**,满足大模型应用对**复杂文档高精度解析**的旺盛需求,结合**ERNIE 4.5 Turbo**显著提升关键信息抽取精度,并新增**对昆仑芯、昇腾等国产硬件**的支持。完整使用文档请参考 [PaddleOCR 3.0 文档](https://paddlepaddle.github.io/PaddleOCR/latest/)。
|
||||
|
||||
PaddleOCR 3.0**新增**三大特色能力:
|
||||
- 全场景文字识别模型[PP-OCRv5](docs/version3.x/algorithm/PP-OCRv5/PP-OCRv5.md):单模型支持五种文字类型和复杂手写体识别;整体识别精度相比上一代**提升13个百分点**。[在线体验](https://aistudio.baidu.com/community/app/91660/webUI)
|
||||
- 通用文档解析方案[PP-StructureV3](docs/version3.x/algorithm/PP-StructureV3/PP-StructureV3.md):支持多场景、多版式 PDF 高精度解析,在公开评测集中**领先众多开源和闭源方案**。[在线体验](https://aistudio.baidu.com/community/app/518494/webUI)
|
||||
- 智能文档理解方案[PP-ChatOCRv4](docs/version3.x/algorithm/PP-ChatOCRv4/PP-ChatOCRv4.md):原生支持ERNIE 4.5 Turbo,精度相比上一代**提升15个百分点**。[在线体验](https://aistudio.baidu.com/community/app/518493/webUI)
|
||||
|
||||
PaddleOCR 3.0除了提供优秀的模型库外,还提供好学易用的工具,覆盖模型训练、推理和服务化部署,方便开发者快速落地AI应用。
|
||||
<div align="center">
|
||||
<p>
|
||||
<img width="100%" src="./docs/images/Arch_cn.png" alt="PaddleOCR Architecture">
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
## 📣 最新动态
|
||||
|
||||
|
||||
🔥🔥2025.06.29: **PaddleOCR 3.1.0** 发布,新增能力如下:
|
||||
|
||||
- **重要模型和产线:**
|
||||
- **新增 PP-OCRv5 多语种文本识别模型**,支持法语、西班牙语、葡萄牙语、俄语、韩语等 37 种语言的文字识别模型的训推流程。**平均精度涨幅超30%。**[详情](https://paddlepaddle.github.io/PaddleOCR/latest/version3.x/algorithm/PP-OCRv5/PP-OCRv5_multi_languages.html)
|
||||
- 升级 PP-StructureV3 中的 **PP-Chart2Table 模型**,图表转表能力进一步升级,在内部自建测评集合上指标(RMS-F1)**提升 9.36 个百分点(71.24% -> 80.60%)。**
|
||||
- 新增基于 PP-StructureV3 和 ERNIE 4.5 Turbo 的**文档翻译产线 PP-DocTranslation,支持翻译 Markdown 格式文档、各种复杂版式的 PDF 文档和文档图像,结果保存为 Markdown 格式文档。**[详情](https://paddlepaddle.github.io/PaddleOCR/latest/version3.x/pipeline_usage/PP-DocTranslation.html)
|
||||
|
||||
- **新增MCP server:**[详情](https://paddlepaddle.github.io/PaddleOCR/latest/version3.x/deployment/mcp_server.html)
|
||||
- **支持 OCR 和 PP-StructureV3 两种工具;**
|
||||
- 支持本地Python库、星河社区云服务、自托管服务三种工作模式;
|
||||
- 支持通过 stdio 调用本地服务,通过 Streamable HTTP 调用远程服务。
|
||||
|
||||
- **文档优化:** 优化了部分使用文档描述,提升阅读体验。
|
||||
|
||||
2025.06.26: **PaddleOCR 3.0.3** 发布,包含:
|
||||
- Bug修复:修复`enable_mkldnn`参数不生效的问题,恢复CPU默认使用MKL-DNN推理的行为。
|
||||
|
||||
2025.06.19: **PaddleOCR 3.0.2** 发布,包含:
|
||||
|
||||
- **功能新增:**
|
||||
- 模型默认下载源从`BOS`改为`HuggingFace`,同时也支持用户通过更改环境变量`PADDLE_PDX_MODEL_SOURCE`为`BOS`,将模型下载源设置为百度云对象存储BOS。
|
||||
- PP-OCRv5、PP-StructureV3、PP-ChatOCRv4等pipeline新增C++、Java、Go、C#、Node.js、PHP 6种语言的服务调用示例。
|
||||
- 优化PP-StructureV3产线中版面分区排序算法,对复杂竖版版面排序逻辑进行完善,进一步提升了复杂版面排序效果。
|
||||
- 优化模型选择逻辑,当指定语言、未指定模型版本时,自动选择支持该语言的最新版本的模型。
|
||||
- 为MKL-DNN缓存大小设置默认上界,防止缓存无限增长。同时,支持用户配置缓存容量。
|
||||
- 更新高性能推理默认配置,支持Paddle MKL-DNN加速。优化高性能推理自动配置逻辑,支持更智能的配置选择。
|
||||
- 调整默认设备获取逻辑,考虑环境中安装的Paddle框架对计算设备的实际支持情况,使程序行为更符合直觉。
|
||||
- 新增PP-OCRv5的Android端示例,[详情](https://paddlepaddle.github.io/PaddleOCR/latest/version3.x/deployment/on_device_deployment.html)。
|
||||
|
||||
- **Bug修复:**
|
||||
- 修复PP-StructureV3部分CLI参数不生效的问题。
|
||||
- 修复部分情况下`export_paddlex_config_to_yaml`无法正常工作的问题。
|
||||
- 修复save_path实际行为与文档描述不符的问题。
|
||||
- 修复基础服务化部署在使用MKL-DNN时可能出现的多线程错误。
|
||||
- 修复Latex-OCR模型的图像预处理的通道顺序错误。
|
||||
- 修复文本识别模块保存可视化图像的通道顺序错误。
|
||||
- 修复PP-StructureV3中表格可视化结果通道顺序错误。
|
||||
- 修复PP-StructureV3产线中极特殊的情况下,计算overlap_ratio时,变量溢出问题。
|
||||
|
||||
- **文档优化:**
|
||||
- 更新文档中对`enable_mkldnn`参数的说明,使其更准确地描述程序的实际行为。
|
||||
- 修复文档中对`lang`和`ocr_version`参数描述的错误。
|
||||
- 补充通过CLI导出产线配置文件的说明。
|
||||
- 修复PP-OCRv5性能数据表格中的列缺失问题。
|
||||
- 润色PP-StructureV3在不同配置下的benchmark指标。
|
||||
|
||||
- **其他:**
|
||||
- 放松numpy、pandas等依赖的版本限制,恢复对Python 3.12的支持。
|
||||
|
||||
<details>
|
||||
<summary><strong>历史日志</strong></summary>
|
||||
|
||||
2025.06.05: **PaddleOCR 3.0.1** 发布,包含:
|
||||
|
||||
- **优化部分模型和模型配置:**
|
||||
- 更新 PP-OCRv5默认模型配置,检测和识别均由mobile改为server模型。为了改善大多数的场景默认效果,配置中的参数`limit_side_len`由736改为64
|
||||
- 新增文本行方向分类`PP-LCNet_x1_0_textline_ori`模型,精度99.42%,OCR、PP-StructureV3、PP-ChatOCRv4产线的默认文本行方向分类器改为该模型
|
||||
- 优化文本行方向分类`PP-LCNet_x0_25_textline_ori`模型,精度提升3.3个百分点,当前精度98.85%
|
||||
- **优化和修复3.0.0版本部分存在的问题,[详情](https://paddlepaddle.github.io/PaddleOCR/latest/update/update.html)**
|
||||
|
||||
🔥🔥2025.05.20: **PaddleOCR 3.0** 正式发布,包含:
|
||||
- **PP-OCRv5**: 全场景高精度文字识别
|
||||
|
||||
1. 🌐 单模型支持**五种**文字类型(**简体中文**、**繁体中文**、**中文拼音**、**英文**和**日文**)。
|
||||
2. ✍️ 支持复杂**手写体**识别:复杂连笔、非规范字迹识别性能显著提升。
|
||||
3. 🎯 整体识别精度提升 - 多种应用场景达到 SOTA 精度, 相比上一版本PP-OCRv4,识别精度**提升13个百分点**!
|
||||
|
||||
- **PP-StructureV3**: 通用文档解析方案
|
||||
|
||||
1. 🧮 支持多场景 PDF 高精度解析,在 OmniDocBench 基准测试中**领先众多开源和闭源方案**。
|
||||
2. 🧠 多项专精能力: **印章识别**、**图表转表格**、**嵌套公式/图片的表格识别**、**竖排文本解析**及**复杂表格结构分析**等。
|
||||
|
||||
|
||||
- **PP-ChatOCRv4**: 智能文档理解方案
|
||||
1. 🔥 文档图像(PDF/PNG/JPG)关键信息提取精度相比上一代**提升15个百分点**!
|
||||
2. 💻 原生支持**ERNIE 4.5 Turbo**,还兼容 PaddleNLP、Ollama、vLLM 等工具部署的大模型。
|
||||
3. 🤝 集成 [PP-DocBee2](https://github.com/PaddlePaddle/PaddleMIX/tree/develop/paddlemix/examples/ppdocbee2),支持印刷文字、手写体文字、印章信息、表格、图表等常见的复杂文档信息抽取和理解的能力。
|
||||
|
||||
[更多日志](https://paddlepaddle.github.io/PaddleOCR/latest/update/update.html)
|
||||
|
||||
</details>
|
||||
|
||||
## ⚡ 快速开始
|
||||
### 1. 在线体验
|
||||
[](https://aistudio.baidu.com/community/app/91660/webUI)
|
||||
[](https://aistudio.baidu.com/community/app/518494/webUI)
|
||||
[](https://aistudio.baidu.com/community/app/518493/webUI)
|
||||
|
||||
### 2. 本地安装
|
||||
|
||||
请参考[安装指南](https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/develop/install/pip/linux-pip.html)完成**PaddlePaddle 3.0**的安装,然后安装paddleocr。
|
||||
|
||||
```bash
|
||||
# 安装 paddleocr
|
||||
pip install paddleocr
|
||||
```
|
||||
|
||||
### 3. 命令行方式推理
|
||||
```bash
|
||||
# 运行 PP-OCRv5 推理
|
||||
paddleocr ocr -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png --use_doc_orientation_classify False --use_doc_unwarping False --use_textline_orientation False
|
||||
|
||||
# 运行 PP-StructureV3 推理
|
||||
paddleocr pp_structurev3 -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/pp_structure_v3_demo.png --use_doc_orientation_classify False --use_doc_unwarping False
|
||||
|
||||
# 运行 PP-ChatOCRv4 推理前,需要先获得千帆API Key
|
||||
paddleocr pp_chatocrv4_doc -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/vehicle_certificate-1.png -k 驾驶室准乘人数 --qianfan_api_key your_api_key --use_doc_orientation_classify False --use_doc_unwarping False
|
||||
|
||||
# 查看 "paddleocr ocr" 详细参数
|
||||
paddleocr ocr --help
|
||||
```
|
||||
### 4. API方式推理
|
||||
|
||||
**4.1 PP-OCRv5 示例**
|
||||
```python
|
||||
from paddleocr import PaddleOCR
|
||||
# 初始化 PaddleOCR 实例
|
||||
ocr = PaddleOCR(
|
||||
use_doc_orientation_classify=False,
|
||||
use_doc_unwarping=False,
|
||||
use_textline_orientation=False)
|
||||
|
||||
# 对示例图像执行 OCR 推理
|
||||
result = ocr.predict(
|
||||
input="https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png")
|
||||
|
||||
# 可视化结果并保存 json 结果
|
||||
for res in result:
|
||||
res.print()
|
||||
res.save_to_img("output")
|
||||
res.save_to_json("output")
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary><strong>4.2 PP-StructureV3 示例</strong></summary>
|
||||
|
||||
```python
|
||||
from pathlib import Path
|
||||
from paddleocr import PPStructureV3
|
||||
|
||||
pipeline = PPStructureV3(
|
||||
use_doc_orientation_classify=False,
|
||||
use_doc_unwarping=False
|
||||
)
|
||||
|
||||
# For Image
|
||||
output = pipeline.predict(
|
||||
input="https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/pp_structure_v3_demo.png",
|
||||
)
|
||||
|
||||
# 可视化结果并保存 json 结果
|
||||
for res in output:
|
||||
res.print()
|
||||
res.save_to_json(save_path="output")
|
||||
res.save_to_markdown(save_path="output")
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<details>
|
||||
<summary><strong>4.3 PP-ChatOCRv4 示例</strong></summary>
|
||||
|
||||
```python
|
||||
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
|
||||
# 如果使用多模态大模型,需要启动本地 mllm 服务,可以参考文档:https://github.com/PaddlePaddle/PaddleX/blob/release/3.0/docs/pipeline_usage/tutorials/vlm_pipelines/doc_understanding.md 进行部署,并更新 mllm_chat_bot_config 配置。
|
||||
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)
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
### 5. **国产化硬件使用**
|
||||
- [昆仑芯安装指南](https://paddlepaddle.github.io/PaddleOCR/latest/version3.x/other_devices_support/paddlepaddle_install_XPU.html)
|
||||
- [昇腾安装指南](https://paddlepaddle.github.io/PaddleOCR/latest/version3.x/other_devices_support/paddlepaddle_install_NPU.html)
|
||||
|
||||
## ⛰️ 进阶指南
|
||||
- [PP-OCRv5 使用教程](https://paddlepaddle.github.io/PaddleOCR/latest/version3.x/pipeline_usage/OCR.html)
|
||||
- [PP-StructureV3 使用教程](https://paddlepaddle.github.io/PaddleOCR/latest/version3.x/pipeline_usage/PP-StructureV3.html)
|
||||
- [PP-ChatOCRv4 使用教程](https://paddlepaddle.github.io/PaddleOCR/latest/version3.x/pipeline_usage/PP-ChatOCRv4.html)
|
||||
|
||||
## 🔄 效果展示
|
||||
|
||||
<div align="center">
|
||||
<p>
|
||||
<img width="100%" src="./docs/images/demo.gif" alt="PP-OCRv5 Demo">
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<p>
|
||||
<img width="100%" src="./docs/images/blue_v3.gif" alt="PP-StructureV3 Demo">
|
||||
</p>
|
||||
</div>
|
||||
|
||||
## 👩👩👧👦 开发者社区
|
||||
|
||||
| 扫码关注飞桨公众号 | 扫码加入技术交流群 |
|
||||
| :---: | :---: |
|
||||
| <img src="https://raw.githubusercontent.com/cuicheng01/PaddleX_doc_images/refs/heads/main/images/paddleocr/README/qrcode_for_paddlepaddle_official_account.jpg" width="150"> | <img src="https://raw.githubusercontent.com/cuicheng01/PaddleX_doc_images/refs/heads/main/images/paddleocr/README/qr_code_for_the_questionnaire.jpg" width="150"> |
|
||||
|
||||
## 🏆 使用 PaddleOCR 的优秀项目
|
||||
PaddleOCR 的发展离不开社区贡献!💗衷心感谢所有开发者、合作伙伴与贡献者!
|
||||
| 项目名称 | 简介 |
|
||||
| ------------ | ----------- |
|
||||
| [RAGFlow](https://github.com/infiniflow/ragflow) <a href="https://github.com/infiniflow/ragflow"><img src="https://img.shields.io/github/stars/infiniflow/ragflow"></a>|基于RAG的AI工作流引擎|
|
||||
| [MinerU](https://github.com/opendatalab/MinerU) <a href="https://github.com/opendatalab/MinerU"><img src="https://img.shields.io/github/stars/opendatalab/MinerU"></a>|多类型文档转换Markdown工具|
|
||||
| [Umi-OCR](https://github.com/hiroi-sora/Umi-OCR) <a href="https://github.com/hiroi-sora/Umi-OCR"><img src="https://img.shields.io/github/stars/hiroi-sora/Umi-OCR"></a>|开源批量离线OCR软件|
|
||||
| [OmniParser](https://github.com/microsoft/OmniParser)<a href="https://github.com/microsoft/OmniParser"><img src="https://img.shields.io/github/stars/microsoft/OmniParser"></a> |基于纯视觉的GUI智能体屏幕解析工具|
|
||||
| [QAnything](https://github.com/netease-youdao/QAnything)<a href="https://github.com/netease-youdao/QAnything"><img src="https://img.shields.io/github/stars/netease-youdao/QAnything"></a> |基于任意内容的问答系统|
|
||||
| [PDF-Extract-Kit](https://github.com/opendatalab/PDF-Extract-Kit) <a href="https://github.com/opendatalab/PDF-Extract-Kit"><img src="https://img.shields.io/github/stars/opendatalab/PDF-Extract-Kit"></a>|高效复杂PDF文档提取工具包|
|
||||
| [Dango-Translator](https://github.com/PantsuDango/Dango-Translator)<a href="https://github.com/PantsuDango/Dango-Translator"><img src="https://img.shields.io/github/stars/PantsuDango/Dango-Translator"></a> |屏幕实时翻译工具|
|
||||
| [更多项目](./awesome_projects.md) | |
|
||||
|
||||
## 👩👩👧👦 贡献者
|
||||
|
||||
<a href="https://github.com/PaddlePaddle/PaddleOCR/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=PaddlePaddle/PaddleOCR&max=400&columns=20" width="800"/>
|
||||
</a>
|
||||
|
||||
|
||||
## 🌟 Star
|
||||
|
||||
[](https://star-history.com/#PaddlePaddle/PaddleOCR&Date)
|
||||
|
||||
|
||||
## 📄 许可协议
|
||||
本项目的发布受[Apache 2.0 license](LICENSE)许可认证。
|
||||
|
||||
## 🎓 学术引用
|
||||
|
||||
```
|
||||
@misc{paddleocr2020,
|
||||
title={PaddleOCR, Awesome multilingual OCR toolkits based on PaddlePaddle.},
|
||||
author={PaddlePaddle Authors},
|
||||
howpublished = {\url{https://github.com/PaddlePaddle/PaddleOCR}},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user