RapidOCR + ONNX Runtime + OpenVINO 一句话理清

RapidOCR = 上层OCR调度框架(基于PP-OCR)
ONNX Runtime、OpenVINO 是两个不同的底层推理后端(引擎)
模型本身都是 PP-OCRv4/v6 转出来的 .onnx,精度几乎不变,只是跑模型的加速器不一样。

你的场景:X99 E5 Intel CPU、试卷识别、手写+红批改,OpenVINO 是专门给Intel CPU优化的,会比默认ONNX Runtime CPU更快

1、RapidOCR 是什么

RapidAI 开源,把 PaddleOCR(PP-OCR)导出成 ONNX,封装好检测(det)+方向分类(cls)+识别(rec)三阶段流水线,开箱即用,支持中英文、手写、印刷体,很适合试卷、答题卡、票据。

  • 相比原版 PaddleOCR:去掉了沉重的Paddle框架依赖,推理后端可插拔
  • 支持引擎:ONNX Runtime(默认)、OpenVINO、TensorRT、MNN、Paddle、PyTorch
  • 版本:>=3.0 支持det/cls/rec 分别指定不同引擎,比如检测用OpenVINO、识别用ONNX Runtime
  • 模型:PP-OCRv4 mobile(轻量,适合试卷)、PP-OCRv6 small/medium

2、ONNX Runtime(简称ORT)

微软开源跨平台推理引擎,RapidOCR默认后端。
✅ 优点

  • 跨平台:Intel/AMD CPU、N卡CUDA、AMD GPU、国产NPU都能跑,兼容性最强
  • 简单省心,开箱,支持动态shape,维护稳定
  • 支持INT8量化
    ❌ 缺点
  • Intel CPU上没有深度调优,不会充分利用AVX2、VNNI指令集;你的老E5只有AVX2,ORT能用,但不是最优
  • 同一张试卷,ORT CPU:大约 2~4s /张(你的E5)

3、OpenVINO(Intel自家,重点是你现在要用的)

Intel开源推理套件,专门为Intel CPU、核显、NPU做底层算子融合、图优化、指令集调度,吃满AVX2/AVX512/VNNI

重点:模型还是同一个onnx文件,只是交给OpenVINO编译器做一层图优化(IR中间表示)再跑,精度几乎无损,速度明显提升
✅ 对你E5 X99的收益

  • 实测PP-OCRv4:OpenVINO 比 ONNX Runtime CPU 快 1.5~2倍,很多算子合并、内存复用优化
  • 你之前ORT跑A4试卷3s,换成OpenVINO可以压到 1.2~2s/张,正好是你现在显卡挂掉之后最划算的提速方案
  • 支持批量、异步推理,适合试卷批量处理服务
    ❌ 缺点
  • 只对Intel硬件友好,AMD CPU上OpenVINO反而慢、坑多
  • 老E5(X99)虽然支持AVX2,但没有VNNI,相比新一代Xeon收益会打折,但依然强于原生ORT
  • 版本坑多,Linux部署要注意OpenVINO版本、Python版本匹配

4、速度对比(贴合你的试卷场景,E5 26xx V4)

模型:PP-OCRv4 mobile,A4试卷、带红批改预处理

  1. Paddle原生:最慢,3~6s,不推荐
  2. ONNX Runtime CPU(默认):2~4s
  3. OpenVINO:1.2~2s
  4. 2080Ti GPU(ORT CUDA):0.3~0.7s

精度:三者几乎看不出差别,试卷手写、印刷识别效果一致,速度提升不牺牲识别率

5、安装和最简代码(Linux root,你现在的环境)

# 方式A:一键装openvino版本
pip install rapidocr_openvino
from rapidocr import RapidOCR, EngineType

# 全部三段都走OpenVINO
engine = RapidOCR(
    params={
        "Det.engine_type": EngineType.OPENVINO,
        "Cls.engine_type": EngineType.OPENVINO,
        "Rec.engine_type": EngineType.OPENVINO,
    }
)

# 识别图片
result = engine("test_paper.jpg")
print(result.boxes, result.txts, result.scores)

如果想对比ORT:

pip install rapidocr onnxruntime
# 不指定engine_type,默认就是 ONNX Runtime
engine = RapidOCR()

6、试卷场景额外建议(手写+红批改)

  1. 预处理(Python OpenCV):分离红色通道、二值化、长边缩放到1600,这个开销有时候比OCR推理还大,要单独优化
  2. 优先 PP-OCRv4 mobile,v6-medium精度略高、速度更慢
  3. 批量服务:OpenVINO开异步推理,不要循环串行单张跑,吞吐提升很大
  4. 坑提醒:X99多路E5,NUMA节点问题,OpenVINO绑核很关键,跨NUMA会掉速

7、怎么选(给你直接结论)

  • 你现在:Intel E5 X99,显卡挂了,跑试卷OCR → 优先 OpenVINO
  • 以后换AMD机器、或者要兼容多硬件 → 换回 ONNX Runtime
  • 有显卡恢复之后 → 直接用 ONNX Runtime CUDA / TensorRT
作者:月影鹏鹏  创建时间:2026-10-29 09:54
最后编辑:月影鹏鹏  更新时间:2026-10-29 09:55