Skip to content

v1.3.0 — Linux ONNX Runtime, OpenVINO & OpenCV DNN HTTP Service

Latest

Choose a tag to compare

@lxw112190 lxw112190 released this 16 Jul 16:51

lw.PPOCR.Inference v1.3.0

lw.PPOCR.Inference v1.3.0 正式提供三套面向 Ubuntu 20.04 x86_64 的 Linux OCR 部署包:OpenCV DNN、ONNX Runtime 和 OpenVINO。

三个版本均已通过 GitHub Actions CI 和 Ubuntu 20.04 虚拟机验证。部署包已经包含推理 Runtime、PP-OCRv6 tiny 模型、HTTP 服务、浏览器测试页面、API Key、systemd 脚本、许可证和校验文件,下载后不需要仓库源码即可运行。

下载附件

OpenCV DNN CPU

lw.PPOCR.Inference-v1.3.0-linux-x64-opencv.tar.gz
lw.PPOCR.Inference-v1.3.0-linux-x64-opencv.tar.gz.sha256

适合希望部署简单、兼容性明确的通用 CPU 场景,包内固定使用 OpenCV 5.0 DNN CPU 后端。

ONNX Runtime CPU / NVIDIA CUDA

lw.PPOCR.Inference-v1.3.0-linux-x64-onnxruntime-cpu.tar.gz
lw.PPOCR.Inference-v1.3.0-linux-x64-onnxruntime-cpu.tar.gz.sha256

默认内置官方 ONNX Runtime 1.26.0 CPU Runtime,解压后可直接使用 CPU 推理。

设备配置支持:

{"device":"cpu"}
{"device":"cuda"}
{"device":"auto"}
  • cpu:强制使用 CPU。
  • cuda:强制使用 NVIDIA CUDA,CUDA Provider 或依赖不可用时启动失败。
  • auto:优先尝试 CUDA,不可用时回退 CPU。

发布附件不包含 NVIDIA 驱动、CUDA 和 cuDNN。启用 GPU 时,必须使用官方相同 ONNX Runtime 版本、相同 CUDA 系列 GPU 包中的完整 libonnxruntime*.so* 集合替换 CPU 文件。不要只替换一个 .so,也不要混用 CUDA 12 与 CUDA 13 包。本次正式包和虚拟机验证以 CPU Runtime 为基线。

OpenVINO CPU

lw.PPOCR.Inference-v1.3.0-linux-x64-openvino-cpu.tar.gz
lw.PPOCR.Inference-v1.3.0-linux-x64-openvino-cpu.tar.gz.sha256

固定使用官方 OpenVINO 2025.2.0 Ubuntu 20.04 Runtime,包内包含 OpenVINO core、CPU plugin、ONNX frontend、oneTBB、hwloc 和 OCR 所需的最小 OpenCV 共享库。目标机器不需要另外安装 OpenVINO SDK。

当前正式包只开放:

{"device":"CPU"}

OpenVINO GPU 暂不纳入 v1.3.0 的稳定支持范围。

v1.3.0 新增与完善

  • Linux OpenCV DNN、ONNX Runtime、OpenVINO 三个后端独立打包。
  • 支持检测、方向分类、文字识别组成的完整 OCR 流程。
  • 支持单张和批量“只识别”接口,客户可直接提交已经裁剪好的文字区域。
  • 提供 JSON + Base64 HTTP API。
  • 提供浏览器测试页面,在原图绘制识别区域并显示各阶段耗时。
  • 支持可选的 X-API-Key 请求认证。
  • 支持安装为 Linux systemd 服务。
  • 服务启动时输出作者、配置和请求参数信息,但不会输出 API Key 明文。
  • 三个部署包均携带模型、网页、配置、私有共享库、许可证、包内文件校验和发布文件 SHA-256。
  • 三条 CI 均执行 ABI 测试、真实模型正确性测试、HTTP 冒烟测试和打包后再次验证。
  • LW_PPOCR_API_VERSION 保持为 1,不改变 v1.0.0/v1.1.0 的公共 ABI。

快速启动

下载所选后端对应的 .tar.gz.tar.gz.sha256 后,在 Linux 执行:

sha256sum -c 文件名.tar.gz.sha256
tar -xzf 文件名.tar.gz
cd 解压后的目录

sudo ./install-deps-ubuntu.sh
./verify-linux-package.sh
./run-http-service.sh

浏览器访问:

http://127.0.0.1:8787/

请使用 run-http-service.sh 启动。该脚本会设置当前后端私有共享库所需的 LD_LIBRARY_PATH。如果目录曾在 Windows 解压后再上传,Linux 执行权限可能丢失,可以运行:

chmod +x *.sh

更推荐直接把 .tar.gz 上传到 Linux 后解压,以保留权限和符号链接。

HTTP API

接口 用途
GET /health 服务健康检查,不要求 API Key
POST /api/ocr 检测 + 分类 + 识别完整流程
POST /api/recognize 识别已经裁剪好的单张或批量文字区域

完整 OCR 请求:

{"image_base64":"..."}

批量只识别请求:

{"images_base64":["...","..."]}

API Key 与局域网部署

默认仅监听本机且不启用认证:

{
  "listen_host": "127.0.0.1",
  "api_key": ""
}

局域网部署建议修改为:

{
  "listen_host": "0.0.0.0",
  "api_key": "替换为足够长的随机密钥"
}

客户端通过请求头传递:

X-API-Key: 替换为足够长的随机密钥

不要把未设置 API Key 的服务直接暴露到公网,同时应使用防火墙或反向代理限制访问来源。

systemd

完成自检并修改好配置后执行:

sudo ./install-systemd.sh
systemctl status lw-ppocr-http.service
journalctl -u lw-ppocr-http.service -f

升级与兼容性

  • v1.2.0 OpenCV DNN 用户可以继续使用原部署包。
  • 三个 v1.3.0 Linux 包的公共 C ABI 和 HTTP API 相同。
  • 三个后端的私有共享库不同,首次切换后端必须下载对应完整包,不建议只复制某个 Runtime .so
  • 模型、配置或推理框架版本发生变化时,应优先使用完整部署包;只有 Release Notes 明确列出可替换文件时,才建议增量覆盖。

验证状态

  • Linux OpenCV DNN:CI 与 Ubuntu 20.04 虚拟机通过。
  • Linux ONNX Runtime CPU:CI 与 Ubuntu 20.04 虚拟机通过。
  • Linux OpenVINO CPU:CI 与 Ubuntu 20.04 虚拟机通过。
  • 完整 OCR、单张/批量只识别、HTTP 网页、API Key、包内校验和 ELF 依赖验证通过。

English Summary

lw.PPOCR.Inference v1.3.0 formally ships three self-contained Linux x64 HTTP OCR packages for Ubuntu 20.04: OpenCV DNN CPU, ONNX Runtime CPU/CUDA, and OpenVINO CPU. All three packages have passed GitHub Actions CI and Ubuntu 20.04 VM validation.

Each package includes the native loader and backend, PP-OCRv6 tiny models, full OCR and recognition-only APIs, a browser test page, optional X-API-Key authentication, systemd scripts, licenses, and SHA-256 verification files. The public C ABI remains version 1.

The ONNX Runtime package bundles ORT 1.26.0 CPU by default. CUDA requires a compatible NVIDIA software stack and the complete matching official GPU libonnxruntime*.so* set. The OpenVINO package bundles OpenVINO 2025.2.0 and intentionally supports CPU only in this release.