PaddleOCR:百度开源的超轻量 OCR 工具套件

PaddleOCR:百度开源的超轻量 OCR 工具套件

大模型

📖 简介

PaddleOCR 是百度开源的 OCR 工具套件,86k+ Stars。超轻量模型 14M 即可运行,支持 80+ 语言识别、表格识别、版面分析。

📝 详细介绍

一个让图片文字提取开箱即用的OCR工具

如果你需要在Python项目里从图片、PDF或摄像头中提取文字,PaddleOCR是目前门槛最低、文档最全的端到端方案。它把文字检测+文字识别两条管线压到一个ocr()调用里,训练和部署都带了开箱即用的模型和脚本。

GitHub 数据卡片

指标
Stars46k+
语言Python(核心),C++(推理后端)
协议Apache 2.0
最近更新2025年2月(持续月度迭代)

项目背景

百度深度学习团队在内部业务(如文档识别、发票录入、AI拍照解题)中积累了OCR工业化落地的经验后,于2020年开源了PaddleOCR。当时市面上的开源OCR要么模型笨重(检测+识别独立模型,需拼装),要么只支持英文。PaddleOCR的初衷是提供一个多语言、轻量、可直接商用的OCR工具箱,并且把训练、量化、部署整条链路都打包进一个仓库。

它的核心痛点是:开发者不需要再自己组Detection + Recognition两个模型,也不用为不同的部署环境(CPU/GPU/手机)重复适配。

核心功能解析

1. paddleocr 一键推理

最常用的接口就是导入PaddleOCR类,指定语言后直接调用。内部自动加载检测+识别模型,输出结构化结果(文本框、置信度、识别文本)。

from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang='ch')
result = ocr.ocr('sample.jpg', cls=True)
for line in result[0]:
    print(line[1][0])  # 识别文本

2. 全流程可训练脚本

项目提供了独立的tools/train.pytools/eval.pytools/infer.py,支持对检测、识别、分类模型分别或在联合模式下微调。数据格式采用PPOCRLabel标注工具导出的标准JSON格式,不需要自己写数据加载器。

# 训练检测模型(在PaddleOCR根目录)
python tools/train.py -c configs/det/ch_ppocr_v2.0/ch_det_lite_train_v2.0.yml

3. 模型量化与端侧部署

内置Paddle-Lite导出脚本,可以将模型转换为.nb格式,在Android/iOS端运行。同时支持ONNX导出,适配其他推理后端。对于服务端,提供了paddle_inference的GPU TensorRT加速配置。

# 导出推理模型
python tools/export_model.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml 
    -o Global.pretrained_model=./pretrain/best_accuracy Global.save_inference_dir=./inference/rec

快速上手

推荐使用Python 3.8+,安装前确保PaddlePaddle已安装(pip install paddlepaddle-gpu或CPU版)。

# 安装PaddleOCR(包含所有依赖)
pip install paddleocr

# 或者从源码安装(获取最新更新)
git clone https://github.com/PaddlePaddle/PaddleOCR.git
cd PaddleOCR
pip install -r requirements.txt
python setup.py install

# 一行命令测试
paddleocr --image_dir ./doc/imgs/11.jpg --lang ch --use_angle_cls True

第一次运行会自动下载检测、识别和方向分类模型(总共约15MB,根据语言包会再加几MB)。输出结果会打印到终端,同时生成带框的标注图。

技术亮点

轻量模型设计

PaddleOCR的检测模型基于DB(Differentiable Binarization)变体,骨干网络使用MobileNetV3或PPLCNet(百度自研轻量CNN)。识别模型是CRNN + CTC结构,但引入了STN(空间变换网络)应对不规则文字。模型通过剪枝、蒸馏和量化,在保持精度的情况下,全部模型打包后仅15MB(中英文)。

端到端管线解耦但统一

项目并不像Tesseract那样把检测和识别糅在一个二进制里,而是拆成三个独立子模型(检测→方向分类→识别)。但通过PaddleOCR类封装成单一入口,用户不需要关心内部流程。同时每个子模型都提供了独立的配置文件(YAML格式),可以单独替换或训练。

设计决策:解耦的关键是TextDetectorTextRecognizerTextClassifier三个接口,它们共享同一个PaddlePredictor后端,确保推理链不产生冗余内存复制。

多语言支持与自动语言检测

预训练模型覆盖80种语言(包括繁体、日、韩、阿拉伯语等),通过lang参数指定。还可以开启自动语言检测(基于分类器),在未知混合语言场景下自动选择模型。这个能力在同类开源项目中属于第一梯队。

同类对比

项目文件大小支持语言训练可定制部署便捷性GitHub Stars
PaddleOCR~15MB(中英文)80种完整训练+微调脚本pip install + 一行推理46k+
Tesseract OCR~40MB(基础包)100+种需要训练工具(jTessBoxEditor)需安装系统库,Python绑定不稳定65k+
EasyOCR~80MB(含所有语言)80+种支持微调,但文档薄弱pip install,但首次下载慢25k+
Surya(OCR)~300MB40+种有限支持pip install,但依赖重12k+

总结对比:Tesseract历史悠久但集成困难,EasyOCR精度略低于PaddleOCR且体积大,Surya偏向文档级OCR。PaddleOCR在轻量、易用、定制化三者中取得了最佳平衡。

总结

如果你需要一个开箱即用、能上生产、还能自己微调的OCR方案,PaddleOCR是当前最务实的选择。特别推荐给需要快速集成图片文字提取的Python后端、移动端或边缘计算开发者。

🚀

AI 项目推荐

大模型
标签
#OCR #文字识别 #深度学习 #百度
浏览
👁️ 8
发布日期
2026-07-30