PaddleOCR-VL:通过 0.9B 超紧凑视觉-语言模型提升多语言文档解析


PaddleOCR 是业界领先、可直接部署的 OCR 与文档智能引擎,提供从文本识别到文档理解的全流程解决方案

介绍

PaddleOCR-VL 是一个针对文档解析的 SOTA 和资源高效的模型。其核心组件是 PaddleOCR-VL-0.9B,这是一个紧凑而强大的视觉语言模型(VLM),它将 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型集成在一起,以实现精确的元素识别。该创新模型高效支持 109 种语言,并在识别复杂元素(如文本、表格、公式和图表)方面表现出色,同时保持最低的资源消耗。通过在广泛使用的公共基准和内部基准上的全面评估,PaddleOCR-VL 在页面级文档解析和元素级识别方面均达到了 SOTA 性能。它显著优于现有的解决方案,在顶级 VLM 中表现出强大的竞争力,并提供快速的推理速度。这些优势使其非常适合在实际场景中部署。

核心特性

紧凑而强大的 VLM 架构: 我们提出了一种专为资源高效推理设计的新型视觉语言模型,在元素识别方面表现出色。通过将 NaViT 风格的动态高分辨率视觉编码器与轻量级的 ERNIE-4.5-0.3B 语言模型集成,我们显著增强了模型的识别能力和解码效率。这种集成在保持高精度的同时降低了计算需求,使其非常适合高效和实用的文档处理应用。

文档解析的 SOTA 性能: PaddleOCR-VL 在页面级文档解析和元素级识别方面都达到了最先进的性能。它显著优于现有的基于流水线的解决方案,并在文档解析方面展现出与领先的视觉语言模型(VLM)的强大竞争力。此外,它在识别复杂的文档元素(如文本、表格、公式和图表)方面表现出色,适用于各种具有挑战性的内容类型,包括手写文本和历史文档。这使其高度通用,适用于各种文档类型和场景。

多语言支持: PaddleOCR-VL 支持 109 种语言,涵盖主要的全球语言,包括但不限于中文、英文、日文、拉丁文和韩文,以及使用不同脚本和结构的语言,如俄语(西里尔字母)、阿拉伯语、印地语(天城文)和泰语。这种广泛的语言覆盖大大增强了我们的系统在多语言和全球化文档处理场景中的适用性。

模型架构

PaddleOCR

PaddleOCR 现已提供 MCP服务器,支持与 Claude Desktop 等Agent应用集成。详情请参考 PaddleOCR MCP 服务器

PaddleOCR 3.0 技术报告现已发布,详情请参考:PaddleOCR 3.0 Technical Report
PaddleOCR-VL 技术报告现已发布,详情请参考:PaddleOCR-VL Technical Report

PaddleOCR 将文档和图像转换为结构化、AI友好的数据(如JSON和Markdown),精度达到行业领先水平——为全球从独立开发者,初创企业和大型企业的AI应用提供强力支撑。凭借50,000+星标MinerU、RAGFlow、OmniParser等头部项目的深度集成,PaddleOCR已成为AI时代开发者构建智能文档等应用的首选解决方案

核心能力

  • PaddleOCR-VL - 通过 0.9B 超紧凑视觉语言模型增强多语种文档解析
    面向文档解析的 SOTA 且资源高效的模型, 支持 109 种语言,在复杂元素(如文本、表格、公式和图表)识别方面表现出色,同时资源消耗极低。

  • PP-OCRv5 — 全场景文字识别
    单模型支持五种文字类型(简中、繁中、英文、日文及拼音),精度提升13个百分点。解决多语言混合文档的识别难题。

  • PP-StructureV3 — 复杂文档解析
    将复杂PDF和文档图像智能转换为保留原始结构的Markdown文件和JSON文件,在公开评测中领先众多商业方案。完美保持文档版式和层次结构

  • PP-ChatOCRv4 — 智能信息抽取
    原生集成ERNIE 4.5,从海量文档中精准提取关键信息,精度较上一代提升15个百分点。让文档”听懂“您的问题并给出准确答案。

PaddleOCR 3.0除了提供优秀的模型库外,还提供好学易用的工具,覆盖模型训练、推理和服务化部署,方便开发者快速落地AI应用。

特别说明:PaddleOCR 3.x 引入了多项重要的接口变动,基于 PaddleOCR 2.x 编写的旧代码很可能无法使用 PaddleOCR 3.x 运行。请确保您阅读的文档与实际使用的 PaddleOCR 版本匹配。此文档 阐述了升级原因及 PaddleOCR 2.x 到 PaddleOCR 3.x 的主要变更。

⚡ 快速开始

1. 在线体验

  • AI Studio
  • AI Studio
  • AI Studio

2. 本地安装

请参考安装指南完成PaddlePaddle 3.0的安装,然后安装paddleocr。

# 只希望使用基础文字识别功能(返回文字位置坐标和文本内容),包含 PP-OCR 系列
python -m pip install paddleocr
# 希望使用文档解析、文档理解、文档翻译、关键信息抽取等全部功能
# python -m pip install "paddleocr[all]"

从 3.2.0 版本开始,除了上面演示的 all 依赖组以外,PaddleOCR 也支持通过指定其它依赖组,安装部分可选功能。PaddleOCR 提供的所有依赖组如下:

依赖组名称 对应的功能
doc-parser 文档解析,可用于提取文档中的表格、公式、印章、图片等版面元素,包含 PP-StructureV3 等模型方案
ie 信息抽取,可用于从文档中提取关键信息,如姓名、日期、地址、金额等,包含 PP-ChatOCRv4 等模型方案
trans 文档翻译,可用于将文档从一种语言翻译为另一种语言,包含 PP-DocTranslation 等模型方案
all 完整功能

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-VL 推理
paddleocr doc_parser -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/paddleocr_vl_demo.png

# 查看 "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
)

# 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") 

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)

4.4 PaddleOCR-VL 示例

from paddleocr import PaddleOCRVL

pipeline = PaddleOCRVL()
output = pipeline.predict("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/paddleocr_vl_demo.png")
for res in output:
    res.print()
    res.save_to_json(save_path="output")
    res.save_to_markdown(save_path="output")

5. 国产化硬件使用

🧩 更多特性

⛰️ 进阶指南

🔄 效果展示

PP-OCRv5 Demo

PP-StructureV3 Demo

🏆 使用 PaddleOCR 的优秀项目

PaddleOCR 的发展离不开社区贡献!💗衷心感谢所有开发者、合作伙伴与贡献者!
| 项目名称 | 简介 |
| ———— | ———– |
| RAGFlow |基于RAG的AI工作流引擎|
| MinerU |多类型文档转换Markdown工具|
| Umi-OCR |开源批量离线OCR软件|
| OmniParser |基于纯视觉的GUI智能体屏幕解析工具|
| QAnything |基于任意内容的问答系统|
| PDF-Extract-Kit |高效复杂PDF文档提取工具包|
| Dango-Translator |屏幕实时翻译工具|
| 更多项目 | 更多基于PaddleOCR的项目 |

📄 许可协议

本项目的发布受Apache 2.0 license许可认证。

🎓 学术引用

@misc{cui2025paddleocr30technicalreport,
      title={PaddleOCR 3.0 Technical Report}, 
      author={Cheng Cui and Ting Sun and Manhui Lin and Tingquan Gao and Yubo Zhang and Jiaxuan Liu and Xueqing Wang and Zelun Zhang and Changda Zhou and Hongen Liu and Yue Zhang and Wenyu Lv and Kui Huang and Yichao Zhang and Jing Zhang and Jun Zhang and Yi Liu and Dianhai Yu and Yanjun Ma},
      year={2025},
      eprint={2507.05595},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2507.05595}
}
作者:Jeebiz  创建时间:2025-10-19 11:10
最后编辑:Jeebiz  更新时间:2025-11-11 17:29