PaddleOCR/README_tcn.md
2025-06-26 18:00:21 +08:00

17 KiB
Raw Permalink Blame History

🚀 簡介

PaddleOCR 自發布以來,憑藉其學術前沿的演算法與產業落地實踐,深受產學研各界的喜愛,並廣泛應用於眾多知名開源專案,如 Umi-OCR、OmniParser、MinerU、RAGFlow 等,已成為廣大開發者心中開源 OCR 領域的首選工具。2025 年 5 月 20 日,飛槳團隊發布 PaddleOCR 3.0,全面適配飛槳框架 3.0 正式版,進一步提升文字辨識精度,支援多種文字類型辨識手寫體辨識,滿足大型模型應用對複雜文件高精度解析的旺盛需求。結合ERNIE 4.5 Turbo,顯著提升了關鍵資訊擷取的精度,並新增對崑崙芯、昇騰等國產硬體的支援。完整使用說明請參閱 PaddleOCR 3.0 文檔

PaddleOCR 3.0 新增三大特色功能:

  • 全場景文字辨識模型 PP-OCRv5:單一模型支援五種文字類型和複雜手寫體辨識;整體辨識精度相較前一代提升 13 個百分點線上體驗
  • 通用文件解析方案 PP-StructureV3:支援多場景、多版式的 PDF 高精度解析,在公開評測集中領先眾多開源與閉源方案線上體驗
  • 智慧文件理解方案 PP-ChatOCRv4原生支援ERNIE 4.5 Turbo精度相較前一代提升 15 個百分點線上體驗

除了提供優秀的模型庫PaddleOCR 3.0 還提供好學易用的工具,涵蓋模型訓練、推論及服務化部署,方便開發者快速將 AI 應用落地。

PaddleOCR 架構

📣 最新動態

2025.06.26: PaddleOCR 3.0.3 發布,包含:

  • 錯誤修復:修復enable_mkldnn參數不生效的問題恢復CPU默認使用MKL-DNN推理的行為。

🔥🔥2025.06.19: PaddleOCR 3.0.2 發布,包含:

  • 功能新增:

    • 模型預設下載來源從BOS改為HuggingFace,同時也支援使用者透過更改環境變數PADDLE_PDX_MODEL_SOURCEBOS,將模型下載來源設定為百度雲端物件儲存 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 端範例,詳情
  • 錯誤修復:

    • 修復 PP-StructureV3 部分 CLI 參數不生效的問題。
    • 修復部分情況下 export_paddlex_config_to_yaml 無法正常運作的問題。
    • 修復 save_path 實際行為與文件描述不符的問題。
    • 修復基礎服務化部署在使用 MKL-DNN 時可能出現的多執行緒錯誤。
    • 修復 Latex-OCR 模型的影像預處理通道順序錯誤。
    • 修復文字辨識模組儲存視覺化影像的通道順序錯誤。
    • 修復 PP-StructureV3 中表格視覺化結果通道順序錯誤。
    • 修復 PP-StructureV3 產線中極特殊情況下,計算 overlap_ratio 時,變數溢位問題。
  • 文件優化:

    • 更新文件中對 enable_mkldnn 參數的說明,使其更準確地描述程式的實際行為。
    • 修復文件中對 langocr_version 參數描述的錯誤。
    • 補充透過 CLI 匯出產線設定檔案的說明。
    • 修復 PP-OCRv5 效能資料表格中的欄位缺失問題。
    • 潤飾 PP-StructureV3 在不同設定下的 benchmark 指標。
  • 其他:

    • 放寬 numpy、pandas 等依賴項的版本限制,恢復對 Python 3.12 的支援。
歷史日誌

🔥🔥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 版本的部分問題,詳情

🔥🔥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,支援印刷體、手寫體、印章、表格、圖表等複雜文件元素的資訊擷取與理解。

更多日誌

快速入門

1. 線上體驗

AI Studio AI Studio AI Studio

2. 本機安裝

請參考安裝指南完成 PaddlePaddle 3.0 的安裝,然後安裝 paddleocr。

# 安裝 paddleocr
pip install paddleocr

3. 命令列推論

# 執行 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 範例

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")
4.2 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",
    )

# 將結果視覺化並儲存為 JSON
for res in output:
    res.print() 
    res.save_to_json(save_path="output") 
    res.save_to_markdown(save_path="output") 
4.3 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
# 若使用多模態大型模型,需啟動本機 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)

5. 國產硬體支援

⛰️ 進階指南

🔄 效果展示

PP-OCRv5 Demo

PP-StructureV3 Demo

👩‍👩‍👧‍👦 開發者社群

掃描 QR Code 關注飛槳官方帳號 掃描 QR Code 加入技術交流群組

🏆 採用 PaddleOCR 的優秀專案

PaddleOCR 的發展離不開社群的貢獻!💗 衷心感謝所有的開發者、合作夥伴與貢獻者!

專案名稱 簡介
RAGFlow 基於 RAG 的 AI 工作流引擎
MinerU 多類型文件轉 Markdown 工具
Umi-OCR 開源批次離線 OCR 軟體
OmniParser 基於純視覺的 GUI Agent 螢幕解析工具
QAnything 基於任意內容的問答系統
PDF-Extract-Kit 高效複雜 PDF 文件擷取工具套件
Dango-Translator 螢幕即時翻譯工具
更多專案

👩‍👩‍👧‍👦 貢獻者

🌟 Star

Star History Chart

📄 授權條款

本專案的發布受 Apache 2.0 license 授權條款認證。

🎓 學術引用

@misc{paddleocr2020,
title={PaddleOCR, Awesome multilingual OCR toolkits based on PaddlePaddle.},
author={PaddlePaddle Authors},
howpublished = {\url{https://github.com/PaddlePaddle/PaddleOCR}},
year={2020}
}