跳转至

PaddleOCR 集成配置指南

简介

PaddleOCR 是基于PaddlePaddle深度学习框架的OCR工具库,提供高精度的文字识别能力。

特点

  • ✅ 高精度:开源OCR中识别精度最高
  • ✅ 完全免费:MIT开源协议
  • ✅ 跨平台:支持Linux/macOS/Windows

一、环境要求

  • Node.js >= 18.0.0
  • 内存:推荐 4GB 以上

二、安装依赖

npm install paddleocr onnxruntime-node fast-png

三、模型文件

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

或使用提供的下载脚本:

chmod +x download-models.sh
./download-models.sh

方式二: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日