PaddleOCR 集成配置指南¶
简介¶
PaddleOCR 是基于PaddlePaddle深度学习框架的OCR工具库,提供高精度的文字识别能力。
特点¶
- ✅ 高精度:开源OCR中识别精度最高
- ✅ 完全免费:MIT开源协议
- ✅ 跨平台:支持Linux/macOS/Windows
一、环境要求¶
- Node.js >= 18.0.0
- 内存:推荐 4GB 以上
二、安装依赖¶
三、模型文件¶
PaddleOCR 需要以下模型文件才能工作:
| 文件 | 用途 | 大小 |
|---|---|---|
PP-OCRv5_mobile_det_infer.onnx |
文字检测模型 | ~4.5MB |
PP-OCRv5_mobile_rec_infer.onnx |
文字识别模型 | ~9MB |
ppocrv5_dict.txt |
字符字典 | ~50KB |
3.1 下载模型¶
方式一:使用脚本自动下载(Linux/macOS)¶
# 创建模型目录
mkdir -p models
# 下载检测模型
curl -L -o models/PP-OCRv5_mobile_det_infer.onnx \
https://github.com/X3ZvaWQ/paddleocr.js/raw/main/assets/PP-OCRv5_mobile_det_infer.onnx
# 下载识别模型
curl -L -o models/PP-OCRv5_mobile_rec_infer.onnx \
https://github.com/X3ZvaWQ/paddleocr.js/raw/main/assets/PP-OCRv5_mobile_rec_infer.onnx
# 下载字典文件
curl -L -o models/ppocrv5_dict.txt \
https://github.com/X3ZvaWQ/paddleocr.js/raw/main/assets/ppocrv5_dict.txt
或使用提供的下载脚本:
方式二:Windows 手动下载(推荐)¶
如果网络环境不支持curl或下载失败,可以手动下载:
步骤1:创建models目录
- 在项目根目录下新建 models 文件夹
步骤2:下载3个文件
| 文件 | 下载地址 | 保存位置 |
|---|---|---|
| 检测模型 | PP-OCRv5_mobile_det_infer.onnx | models/PP-OCRv5_mobile_det_infer.onnx |
| 识别模型 | PP-OCRv5_mobile_rec_infer.onnx | models/PP-OCRv5_mobile_rec_infer.onnx |
| 字典文件 | ppocrv5_dict.txt | models/ppocrv5_dict.txt |
下载步骤:
1. 点击上表中的链接,跳转文件页面
2. 点击 "Download" 按钮下载文件
3. 将下载的文件保存到 models/ 目录
4. 确保文件名与上表一致(区分大小写)
最终目录结构:
test-ocr/
├── models/
│ ├── PP-OCRv5_mobile_det_infer.onnx (~4.5MB)
│ ├── PP-OCRv5_mobile_rec_infer.onnx (~9MB)
│ └── ppocrv5_dict.txt (~50KB)
⚠️ 注意:Windows文件名区分大小写,请确保文件命名完全一致。
四、快速开始¶
4.1 基本用法¶
import { PaddleOcrService } from 'paddleocr';
import { decode } from 'fast-png';
import fs from 'fs';
async function basicOCR() {
// 初始化OCR服务
const ocr = await PaddleOcrService.createInstance({
ort: await import('onnxruntime-node'),
detection: {
modelBuffer: fs.readFileSync('./models/PP-OCRv5_mobile_det_infer.onnx'),
},
recognition: {
modelBuffer: fs.readFileSync('./models/PP-OCRv5_mobile_rec_infer.onnx'),
charactersDictionary: fs.readFileSync('./models/ppocrv5_dict.txt', 'utf-8').split('\n'),
},
});
// 读取图片
const imageBuffer = fs.readFileSync('./image.png');
const image = decode(imageBuffer.buffer);
// 识别文字
const result = await ocr.recognize({
data: image.data,
width: image.width,
height: image.height,
});
// 输出结果
result.forEach((item, i) => {
console.log(`文字${i + 1}: "${item.text}" (${(item.confidence * 100).toFixed(1)}%)`);
});
// 清理资源
await ocr.destroy();
}
basicOCR();
4.2 识别结果结构¶
[
{
text: "识别文字",
confidence: 0.95, // 置信度 0-1
points: [ // 文字四个角点坐标
{ x: 100, y: 50 },
{ x: 300, y: 50 },
{ x: 300, y: 80 },
{ x: 100, y: 80 }
]
},
// ... 更多结果
]
五、项目结构¶
test-ocr/
├── package.json
├── paddle-test.mjs # 测试脚本
├── download-models.sh # 模型下载脚本
├── models/ # 模型文件目录
│ ├── PP-OCRv5_mobile_det_infer.onnx
│ ├── PP-OCRv5_mobile_rec_infer.onnx
│ └── ppocrv5_dict.txt
└── test-images/ # 测试图片目录
└── test.png
六、使用步骤¶
# 1. 进入项目目录
cd test-ocr
# 2. 安装依赖
npm install
# 3. 下载模型
./download-models.sh
# 4. 放入测试图片
cp your-image.png test-images/test.png
# 5. 运行测试
node paddle-test.mjs
七、对比 Tesseract.js¶
| 特性 | PaddleOCR | Tesseract.js |
|---|---|---|
| 精度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 安装便捷性 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 无需模型文件 | ❌ | ✅ |
| 纯JS实现 | ❌ 依赖ONNX | ✅ |
| 中文识别 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
八、项目仓库¶
| 仓库 | 描述 |
|---|---|
| test-ocr | PaddleOCR集成测试项目,包含OCR识别脚本、格式化输出、模型下载脚本等 |
九、相关链接¶
| 链接 | 描述 |
|---|---|
| PaddleOCR.js GitHub | PaddleOCR JavaScript实现的官方仓库 |
| PaddleOCR.js npm | npm包地址 |
| PaddlePaddle 官方 | PaddlePaddle深度学习框架官网 |
文档创建日期: 2026年2月7日 最后更新: 2026年2月7日