📋 PaddleOCR 核心速览
- PaddleOCR 是全球领先的开源 OCR 工具包,PaddleOCR-VL-1.6 模型在 OmniDocBench v1.6 权威评测中斩获 96.33% SOTA 准确率。
- 只需执行
pip install paddlepaddle paddleocr 即可在 Windows、macOS、Linux (CPU / GPU) 上完成部署。
- 三大核心解析流水线:PP-OCRv6(快速文本字符检测与识别)、PP-StructureV3(PDF/复杂表格解析与版面分析)、PaddleOCR-VL(端到端多模态视觉语言文档大模型)。
- 原生支持 100+ 种语言;PP-OCRv6 将中文、英文、日文以及 46 种拉丁语系整合入统一模型架构,无需频繁切换语种权重。
- 原生适配 Dify、RAGFlow、Cherry Studio,并支持标准 Model Context Protocol (MCP) 供 AI 智能体直接调用。
入门
PaddleOCR 概览与核心能力
PaddleOCR 是由百度飞桨 (PaddlePaddle) 团队开发的高性能、超轻量开源 OCR 与文档 AI 引擎。其设计目标是提供兼顾极致准确率、超高运行速度与极小内存占用的产业级文档解析工具。
三大核心流水线
PP-OCRv6
文本检测与字符识别流水线
适用于自然场景图片、扫描单据、屏幕截图、街景招牌以及各类文档。提供 Tiny (1.5M)、Small (7.7M) 与 Medium (34.5M) 三档硬件优化模型。
PP-StructureV3
智能版面分析与表格结构化恢复
专注于复杂排版 PDF 与合同发票。自动识别表格边界坐标、还原 HTML/Markdown 表格代码,并识别公式与公章。
PaddleOCR-VL
端到端视觉语言大模型 (0.9B)
多模态大模型架构。直接将整页复杂文档图转化为高精度的 Markdown,在多栏排版与跨页表格处理上表现卓越。
安装指南
环境配置与安装 (分步指南)
PaddleOCR 安装极其简便。请确保您的机器满足以下基础环境:
Python 版本建议: 推荐使用 Python 3.8 至 3.12。目前 Python 3.13 官方 Wheel 包正在适配中。
步骤 1:安装 PaddlePaddle 深度学习底座
根据您的硬件环境选择 CPU 版本或 GPU (CUDA) 版本:
pip install paddlepaddle-gpu
步骤 2:安装 PaddleOCR 工具包
快速上手
三行代码快速验证
安装完成后,只需在 Python 中编写三行代码即可运行文本识别:
from paddleocr import PaddleOCR
# 初始化中英文识别模型并开启方向校正
ocr = PaddleOCR(use_angle_cls=True, lang='ch')
# 预测图像并输出文本
result = ocr.ocr('your_test_image.jpg', cls=True)
for line in result[0]:
print(line[1][0]) # 打印识别出的文字
核心模型
PP-OCRv6 核心技术解析
PP-OCRv6 是 PaddleOCR v3.7.0 的旗舰 OCR 引擎。相比上一代 PP-OCRv5,它带来了革命性的提升:
| 模型档位 |
参数量 |
建议运行平台 |
CPU 单张推理耗时 |
准确率提升 |
| PP-OCRv6_tiny |
1.5M |
树莓派 / 移动端 / 纯 CPU |
~12ms (OpenVINO) |
+3.8% |
| PP-OCRv6_small |
7.7M |
常规服务器 / 开发者本地 |
~28ms |
+4.6% |
| PP-OCRv6_medium |
34.5M |
NVIDIA GPU / 密集型生产集群 |
~55ms (GPU 下 <4ms) |
+5.1% |
文档解析
PP-StructureV3 复杂表格与版面分析
PP-StructureV3 专为解决合同、财报、研报等结构复杂文档而生。它不仅提取文本,还能精准还原版面层级与表格数据。
from paddleocr import PPStructureV3
engine = PPStructureV3(show_log=True, lang='ch')
result = engine('contract.pdf')
for region in result:
if region['type'] == 'table':
print("提取到的 HTML 表格:")
print(region['res']['html'])
前端与跨平台
JavaScript, Node.js 与 WebAssembly 纯前端运行
无需 Python 环境,直接在网页浏览器 (WebAssembly/WebGPU) 或 Node.js 后端运行 PaddleOCR:
npm install @paddlejs-models/ocr onnxruntime-web
import * as ocr from '@paddlejs-models/ocr';
// 初始化并自动缓存模型
await ocr.init();
// 传入 HTML <img> 或 Canvas 元素进行识别
const imgElement = document.getElementById('scanned-doc');
const result = await ocr.recognize(imgElement);
console.log('识别文本:', result.text);
console.log('坐标框:', result.points);
排错手册
常见报错与故障排查字典 (Error Dictionary)
1. ImportError: cannot import name 'draw_ocr' from 'paddleocr'
原因: PaddleOCR 新版将可视化工具拆分至 tools 依赖中。
解决方法: 执行 pip install "paddleocr[tools]",并从 from paddleocr.tools.infer.utility import draw_ocr 导入。
2. TypeError: predict() got an unexpected keyword argument 'cls'
原因: 误将 cls=True 传给 .predict() 而非 .ocr()。
解决方法: 使用 ocr.ocr('img.jpg', cls=True) 或在类初始化时设置 use_angle_cls=True。
3. convertpirattribute2runtimeattribute (Windows OneDNN 冲突)
原因: Windows 平台下 PIR 编译器与 OneDNN 加速存在属性映射异常。
解决方法: 在导入 paddle 之前添加环境变量:import os; os.environ['FLAGS_enable_pir_api'] = '0'。
4. 如何提取文本框四边形坐标与置信度过滤?
result = ocr.ocr('invoice.jpg', cls=True)
for line in result[0]:
box = line[0] # 四点坐标 [[x1,y1],[x2,y2],[x3,y3],[x4,y4]]
text, score = line[1] # 识别文字与置信度分数
if score >= 0.85:
print(f"高置信度文字: {text}, 坐标: {box}")
5. Windows 下报错 ImportError: DLL load failed
解决方法: 下载并安装微软官方发布的 Visual C++ 2015–2022 Redistributable (x64)。
更新日志
版本更新记录
v3.7.0 (2026年6月发布)
- 全新发布 PP-OCRv6 旗舰模型,支持 50 种语言统一架构。
- 推出 PP-StructureV3,大幅优化无线表格与跨页表格识别。
- 新增 PaddleOCR-VL-1.6 (0.9B 多模态文档解析大模型),在 OmniDocBench v1.6 达到 96.33% 顶级分值。
- 全面支持 Python 3.12 与 OpenVINO 5.2x 硬件加速。