🚀 PaddleOCR:百度的 OCR 黑科技,让文字识别不再是难题!

当一个开源项目获得 79,905 个 Stars,被 Dify、RAGFlow、Cherry Studio 等顶级项目信赖,并在 OmniDocBench 上达到 96.3% 准确率时,你不得不承认——这就是业界标杆。


📖 目录


项目简介

什么是 PaddleOCR?

PaddleOCR 是百度飞桨(PaddlePaddle)生态下的超轻量级 OCR 工具库,提供 100+ 种语言的文本检测与识别能力。最新版本 PaddleOCR 3.6.0 于 2026年5月28日发布,带来了多项重大更新:

特性 描述
PaddleOCR-VL-1.6 业界领先的轻量级视觉-语言模型(VLM),0.9B 参数实现商业级精度
PP-OCRv5 新一代 OCR 模型,相比 v4 版本准确率提升 13%
PP-StructureV3 文档结构分析流水线,支持版面分析、表格识别、公式识别等
跨平台支持 Python 3.8~3.12,Linux/Windows/Mac,CPU/GPU/XPU/NPU

核心价值

PaddleOCR 将 PDF 文档和图像转换为结构化的、LLM 就绪的数据(JSON/Markdown),是构建智能 RAG(Retrieval-Augmented Generation)和 Agentic 应用的基石。

适用人群

  • 🎯 开发者:快速集成 OCR 功能到应用系统
  • 🏢 企业用户:文档数字化、票据识别、自动化处理
  • 🔬 研究人员:OCR 算法研究、模型优化
  • 📱 移动开发者:轻量化模型部署

核心技术架构

三大核心模块体系

┌─────────────────────────────────────────────────┐
│           PaddleOCR 核心架构                      │
├─────────────────────────────────────────────────┤
│                                                 │
│  ┌──────────────┐  ┌──────────────┐  ┌─────────┐│
│  │ PP-OCRv5 系列│  │PaddleOCR-VL │  │PP-Struct││
│  │   (场景OCR)  │  │  (文档VLM)   │  │ ureV3   ││
│  └──────────────┘  └──────────────┘  └─────────┘│
│                                                 │
│  文本检测 + 识别     文档解析 + 结构化    版面分析  │
│  100+ 语言支持       Markdown/JSON      表格识别  │
└                                                 │┘
1. PP-OCRv5 系列:通用文本识别解决方案

PP-OCRv5 是新一代场景 OCR 模型,采用经典的 检测-分类-识别 三阶段架构:

模块 架构 功能
文本检测模块 DBNet++ 风格 定位图像中的文本区域
方向分类器 轻量 CNN 处理旋转文本(0°/90°/180°/270°)
文本识别模块 SVTR+ 识别文本区域中的字符序列

模型规格

  • mobile 版本:轻量化模型,适合移动端和边缘设备
  • server 版本:高精度模型,适合服务端部署
2. PaddleOCR-VL 系列:文档解析专用 VLM

PaddleOCR-VL 是专为文档解析设计的视觉-语言模型:

┌─────────────────┐      ┌──────────────────┐
│  NaViT 风格      │      │  ERNIE-4.5-0.3B  │
│  动态分辨率      │ ──── │  轻量化语言模型   │
│  视觉编码器      │      │                  │
└─────────────────┘      └──────────────────┘
       (视觉特征)              (文本生成)

核心特性

  • 模型规模:0.9B 参数(紧凑高效)
  • 输出格式:Markdown 和 JSON(LLM 就绪)
  • 支持元素:文本、公式、表格、图表、印章、古文档
  • 准确率:OmniDocBench v1.6 上达到 96.3%
3. PP-StructureV3:结构感知转换模块

PP-StructureV3 提供文档结构分析和细粒度坐标信息:

  • 版面分析:区分标题、正文、图片、表格等区域
  • 表格识别:支持有线/无线表格,保留单元格坐标
  • 关键信息提取(KIE):证件、发票关键字段提取
  • 公式识别:数学公式 LaTeX 格式输出

算法模型详解

文本检测算法

DB/DB++ (Differentiable Binarization)

核心创新:将二值化操作嵌入分割网络,使其可微分训练。

# 传统二值化(不可微分)
binary_map = (seg_map > threshold)

# DB 可微分二值化
binary_map = 1 / (1 + exp(-k * (seg_map - threshold)))

技术优势

  • ✅ 实时检测速度(FPS 20-30)
  • ✅ 无需手工调参阈值
  • ✅ 对任意形状文本有效

性能基准(DBNet 论文数据):

数据集 Precision Recall F-measure FPS
Total-Text 87.1% 82.5% 84.7% 27.5
CTW1500 86.9% 82.6% 84.7% 24.5
MSRA-TD500 89.0% 82.8% 85.8% 32
ICDAR2015 91.8% 83.2% 87.3% 24

📄 论文来源Real-Time Scene Text Detection with Differentiable Binarization

其他检测算法
算法 特点
EAST 单阶段检测器,直接预测文本几何形状
SAST Structure-Aware Scene Text Detector
PSE Progressive Scale Expansion Network
FCE Fourier Contour Embedding(傅里叶轮廓嵌入)
PAN Efficient Scene Text Segmentation

文本识别算法

CRNN (Convolutional Recurrent Neural Network)

CRNN 是经典的文本识别架构,采用 CNN + RNN + CTC 三阶段设计:

┌─────────┐   ┌───────────┐   ┌───────┐
│  CNN    │ → │ Bi-LSTM   │ → │  CTC  │
│特征提取 │   │ 序列建模  │   │转录层 │
└─────────┘   └───────────┘   └───────┘

技术优势

  • ✅ 无需字符分割
  • ✅ 端到端训练
  • ✅ 处理任意长度序列

📄 论文来源An End-to-End Trainable Neural Network for Image-based Sequence Recognition

SVTR (Scene Text Recognition)

SVTR 是 PP-OCRv3/v4/v5 的核心识别架构,采用纯视觉 Transformer 设计:

┌─────────────────────────────────────┐
│          SVTR 架构                   │
├─────────────────────────────────────┤
│                                     │
│  ┌─────────┐  ┌──────────┐  ┌─────┐│
│  │  CNN    │  │Transformer│  │Head ││
│  │ Backbone│ → │  Blocks  │ → │     ││
│  └─────────┘  └──────────┘  └─────┘│
│                                     │
└─────────────────────────────────────┘

技术优势

  • ✅ 更快的推理速度(无 RNN 序列建模)
  • ✅ 更好的长文本识别能力
  • ✅ 全视觉架构,易于优化

📄 论文来源SVTR: Scene Text Recognition with a Single Visual Model

PP-OCR 系列模型演进

版本 发布时间 检测模型 识别模型 模型大小 精度提升
PP-OCRv2 2021 DB CRNN ~13MB 基准
PP-OCRv3 2022 DB (优化) CRNN+SVTR ~15MB +4% 识别精度
PP-OCRv4 2023-2024 DB++ SVTR+ ~15MB +2.5% 识别精度
PP-OCRv5 2025-2026 DB++ SVTR++ ~16MB +13% 准确率

应用场景与部署

核心应用领域

应用场景 具体用途
📄 文档数字化 扫描文档、PDF 转 Word、电子档案管理
🧾 票据识别 发票、收据、银行单据、税务票据自动录入
🪪 证件识别 身份证、护照、驾驶证、营业执照、银行卡 OCR
🚗 车牌识别 停车场管理、交通监控、ETC 系统、违章抓拍
🛒 电商图片 商品详情图文字提取、比价系统、商品信息录入
✍️ 手写文字识别 表单填写、手写笔记数字化、学生作业批改
🌐 场景文字识别 街景招牌、广告牌、菜单翻译、旅游翻译
🎬 视频文字提取 视频字幕提取、直播内容审核、视频检索
📊 表格识别 PDF 表格提取、报表数字化(PP-Structure)
📐 版面分析 文档结构分析、版面恢复

部署方案矩阵

服务端部署
方案 适用场景 技术栈 性能特点
Python 直接部署 开发测试、单机应用 PaddleOCR + PaddlePaddle 简单快速
Paddle Serving 生产环境、高并发 Paddle Serving Server 服务化、支持集群
Docker 容器化 云原生部署、K8s Docker + Kubernetes 标准化、易扩展
TensorRT 加速 高性能推理、实时处理 TensorRT + NVIDIA GPU 3-5倍加速
移动端部署
平台 技术方案 模型格式
Android Paddle Lite + Java/Kotlin .nb 格式
iOS Paddle Lite + ObjC/Swift .nb 格式
ARM Linux Paddle Lite 树莓派、RK3399
边缘设备部署
设备 加速方案 性能建议
树莓派 Paddle Lite 轻量模型 + INT8 量化
Jetson Nano TensorRT FP16 加速
RK3399 Paddle Lite + NNAdapter 原生支持
昆仑芯片 XPU Paddle Custom Device 原生支持

多硬件支持矩阵

推理方法 NVIDIA GPU Kunlunxin XPU Huawei Ascend NPU x64 CPU Apple Silicon
PaddlePaddle 🚧
Transformers 🚧 🚧 🚧
PaddlePaddle + vLLM 🚧
PaddlePaddle + SGLang 🚧 🚧
PaddlePaddle + FastDeploy 🚧

开发者工具与 API

安装指南

基础安装
# 基础 OCR 功能
python -m pip install paddleocr

# 全功能安装(文档解析、信息提取、翻译等)
python -m pip install "paddleocr[all]"

# 从源码安装最新版
python -m pip install "paddleocr@git+https://github.com/PaddlePaddle/PaddleOCR.git"
PaddlePaddle 安装
# NVIDIA GPU (CUDA 12.6)
python -m pip install paddlepaddle-gpu==3.2.1 \
  -i https://www.paddlepaddle.org.cn/packages/stable/cu126/

# x64 CPU
python -m pip install paddlepaddle==3.2.1 \
  -i https://www.paddlepaddle.org.cn/packages/stable/cpu/

Python API 使用

基础 OCR 推理
from paddleocr import PaddleOCR

# 初始化 OCR 流水线
pipeline = PaddleOCR()

# 单张图片推理
result = pipeline.predict("image.png")

# 批量推理
results = pipeline.predict(["image1.png", "image2.png"])

# 处理结果
for item in result:
    print(f"检测框: {item['bbox']}")
    print(f"识别文本: {item['text']}")
    print(f"置信度: {item['confidence']}")
高性能推理模式
from paddleocr import PaddleOCR

# 启用高性能推理(HPI)
pipeline = PaddleOCR(enable_hpi=True)
result = pipeline.predict("image.png")
指定推理引擎
from paddleocr import TextDetection

# 使用 Transformers 引擎
model = TextDetection(
    model_name="PP-OCRv5_server_det",
    engine="transformers",
)
result = model.predict("general_ocr_001.png")

# 使用 Paddle 静态图引擎(TensorRT 加速)
model = TextDetection(
    model_name="PP-OCRv5_server_det",
    engine="paddle_static",
    engine_config={
        "device_type": "gpu",
        "run_mode": "trt_fp16",
        "cpu_threads": 4,
        "enable_mkldnn": True,
        "trt_use_dynamic_shapes": True,
    },
)
result = model.predict("general_ocr_001.png")
文档解析(PaddleOCR-VL)
from paddleocr import PaddleOCR_VL

# 初始化文档解析流水线
pipeline = PaddleOCR_VL()

# 解析文档图像
result = pipeline.predict("document.png")

# 输出格式:Markdown 或 JSON
result.print()                    # 打印到终端
result.save_to_json("output.json")  # 保存为 JSON
result.save_to_md("output.md")      # 保存为 Markdown

命令行工具

基础 OCR 命令
# 基本使用
paddleocr ocr -i image.png

# 保存结果
paddleocr ocr -i image.png --save_path ./output

# 启用高性能推理
paddleocr ocr --enable_hpi True -i image.png

# 指定推理引擎
paddleocr ocr -i image.png --engine paddle_static
文档解析命令
# NVIDIA GPU
paddleocr doc_parser -i demo.png --save_path ./output

# Kunlunxin XPU
paddleocr doc_parser -i demo.png --device xpu --save_path ./output

# 启用文档方向分类
paddleocr doc_parser -i demo.png \
  --use_doc_orientation_classify True \
  --save_path ./output

# 启用文档矫正
paddleocr doc_parser -i demo.png \
  --use_doc_unwarping True \
  --save_path ./output
高性能推理依赖安装
# 安装 CPU 高性能推理依赖
paddleocr install_hpi_deps cpu

# 安装 GPU 高性能推理依赖
paddleocr install_hpi_deps gpu

自定义训练流程

数据集准备
# 下载示例数据集
wget https://paddle-model-ecology.bj.bcebos.com/paddlex/data/ocr_rec_dataset_examples.tar
tar -xf ocr_rec_dataset_examples.tar
下载预训练模型
# PP-OCRv5_server_rec 预训练模型
wget https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/PP-OCRv5_server_rec_pretrained.pdparams
模型训练
# 单 GPU 训练
python3 tools/train.py -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml \
   -o Global.pretrained_model=./PP-OCRv5_server_rec_pretrained.pdparams

# 多 GPU 训练
python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py \
   -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml \
   -o Global.pretrained_model=./PP-OCRv5_server_rec_pretrained.pdparams
模型评估与导出
# 模型评估
python3 tools/eval.py -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml \
   -o Global.pretrained_model=output/xxx/xxx.pdparams

# 模型导出
python3 tools/export_model.py -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml \
   -o Global.pretrained_model=output/xxx/xxx.pdparams \
   Global.save_inference_dir="./PP-OCRv5_server_rec_infer/"

导出后的模型结构:

./PP-OCRv5_server_rec_infer/
├── inference.json
├── inference.pdiparams
├── inference.pdmodel
└── inference.yml

模型导出为 ONNX

# 安装 Paddle2ONNX 插件
paddlex --install paddle2onnx

# 模型转换为 ONNX
paddlex \
    --paddle2onnx \
    --paddle_model_dir /your/paddle_model/dir \
    --onnx_model_dir /your/onnx_model/output/dir \
    --opset_version 7

服务化部署

基础服务部署
# 安装服务依赖
paddlex --install serving

# 启动 OCR 服务
paddlex --serve --pipeline OCR

# 启动 PP-StructureV3 服务
paddlex --serve --pipeline PP-StructureV3

# 启动 PaddleOCR-VL 服务
paddlex --serve --pipeline PaddleOCR-VL

服务参数

参数 说明
--pipeline 流水线注册名或配置文件路径
--device 部署设备,默认 GPU(可用则用)
--host 服务器绑定地址,默认 0.0.0.0
--port 监听端口,默认 8080
--use_hpip 使用高性能推理
Docker 部署
# NVIDIA GPU Docker
docker run \
    -it \
    --gpus all \
    --network host \
    --user root \
    ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-vl:latest-nvidia-gpu \
    /bin/bash

# 离线环境镜像(约 10GB)
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-vl:latest-nvidia-gpu-offline

性能基准测试

PP-OCRv5 模型性能

文本检测性能
模型 Hmean (%) GPU 推理时间 (ms) 模型大小 (MB)
PP-OCRv5_server_det 83.8 89.55 84.3
PP-OCRv5_mobile_det 79.0 10.67 4.7
文本识别性能
模型 准确率 (%) GPU 推理时间 (ms) 模型大小 (MB)
PP-OCRv5_server_rec 86.38 8.46 81
PP-OCRv5_mobile_rec 81.29 5.43 16
en_PP-OCRv5_mobile_rec 85.25 - 7.5
korean_PP-OCRv5_mobile_rec 88.0 - 14
th_PP-OCRv5_mobile_rec 82.68 - 7.5

PaddleOCR-VL 文档解析性能

OmniDocBench v1.6 基准

模型 准确率 参数量 适用场景
PaddleOCR-VL-1.6 96.3% 0.9B 生产级文档解析
PaddleOCR-VL-1.5 94.5% 0.9B 标准文档解析

推理加速效果

加速技术 加速倍数 适用场景
TensorRT FP16 2-3 倍 NVIDIA GPU
TensorRT INT8 3-5 倍 高吞吐场景
Paddle Lite 移动端优化 手机/边缘设备
ONNX Runtime 跨平台 通用部署
OpenVINO Intel 优化 Intel CPU/GPU

快速开始指南

第一步:环境准备

# 安装 PaddlePaddle(CPU 版本)
pip install paddlepaddle

# 安装 PaddleOCR
pip install paddleocr

第二步:快速推理

from paddleocr import PaddleOCR

# 初始化 OCR(中文模型)
ocr = PaddleOCR(use_angle_cls=True, lang='ch')

# 执行推理
result = ocr.ocr('your_image.jpg', cls=True)

# 打印结果
for idx in range(len(result)):
    for line in result[idx]:
        print(f"文本: {line[1][0]}, 置信度: {line[1][1]:.4f}")

第三步:可视化结果

# 保存可视化结果
from paddleocr import PaddleOCR

ocr = PaddleOCR(use_angle_cls=True, lang='ch', use_space_char=True)
result = ocr.ocr('your_image.jpg', cls=True)

# 绘制结果并保存
from PIL import Image, ImageDraw, ImageFont

img = Image.open('your_image.jpg')
draw = ImageDraw.Draw(img)

for line in result[0]:
    box = line[0]
    txt = line[1][0]
    draw polygon and text...

img.save('result_visualization.jpg')

第四步:选择合适模型

需求场景 推荐模型 特点
移动端部署 PP-OCRv5_mobile 轻量级,4.7MB+16MB
服务端高精度 PP-OCRv5_server 高精度,84MB+81MB
文档解析 PaddleOCR-VL-1.6 96.3%准确率,Markdown输出
多语言场景 多语言 PP-OCRv5 支持80+语言
实时处理 TensorRT INT8 加速 3-5倍加速

参考资料

官方资源

资源 链接
GitHub 仓库 https://github.com/PaddlePaddle/PaddleOCR
官方网站 https://www.paddleocr.com
在线体验 https://www.paddleocr.com
API 文档 https://paddlepaddle.github.io/PaddleOCR/latest/
HuggingFace 模型 https://huggingface.co/PaddlePaddle/PaddleOCR-VL-1.6

学术论文

论文 链接
DBNet 论文 Real-Time Scene Text Detection with Differentiable Binarization
SVTR 论文 Scene Text Recognition with a Single Visual Model
CRNN 论文 An End-to-End Trainable Neural Network for Image-based Sequence Recognition
EAST 论文 Efficient and Accurate Scene Text Detector
PaddleOCR 3.0 技术报告 https://arxiv.org/abs/2507.05595
PaddleOCR-VL 论文 https://arxiv.org/abs/2510.14528

版本兼容性

组件 版本要求
PaddlePaddle >= 3.0.0
Python(推理) 3.8 ~ 3.12
Python(训练) 3.8+
CUDA 11.8 (TensorRT) 或 12.6 (OpenVINO/ONNX Runtime)
cuDNN 8.9 (CUDA 11.8) 或 9.5 (CUDA 12.6)

许可证

  • 开源许可证:Apache 2.0
  • 商用友好:可自由用于商业项目

总结

PaddleOCR 凭借其 超轻量化高精度多语言支持丰富工具链,已成为 OCR 领域的开源标杆。无论是移动端应用、服务端部署,还是文档解析、票据识别,PaddleOCR 都提供了完整的解决方案。

核心优势总结

维度 优势
精度 PP-OCRv5 精度提升 13%,PaddleOCR-VL 达到 96.3%
轻量 mobile 模型仅 16MB,适合移动端部署
速度 TensorRT INT8 获得 3-5倍加速
生态 完整工具链:训练、部署、量化、服务化
多语言 支持 100+ 语言
输出 Markdown/JSON 格式,LLM 就绪
Logo

免费领 150 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐