Skip to content

v1.3.0 Preview 1 — Linux ONNX Runtime & OpenVINO HTTP Service

Pre-release
Pre-release

Choose a tag to compare

@lxw112190 lxw112190 released this 16 Jul 16:08

v1.3.0 Preview Release Notes

lw.PPOCR.Inference v1.3.0 正式增加 Linux ONNX Runtime 和 Linux OpenVINO 两套独立部署包。

两个版本均面向 Ubuntu 20.04 x86_64,包含完整 OCR、只识别接口、HTTP 服务、浏览器测试页面、PP-OCRv6 tiny 模型、API Key、systemd 服务脚本和完整校验文件。部署包解压后即可验证和启动,不需要下载仓库源码。

新增内容

  • 新增 Linux ONNX Runtime CPU/CUDA 推理后端
  • 新增 Linux OpenVINO CPU 推理后端
  • 支持完整 OCR:文字检测、方向分类和文字识别
  • 支持单张及批量“只识别”接口
  • 提供 JSON + Base64 HTTP API
  • 提供浏览器测试页面,可在原图绘制识别区域并显示各阶段耗时
  • 支持可选的 X-API-Key 请求认证
  • 支持安装为 Linux systemd 服务
  • 启动时输出作者、运行参数和请求参数信息
  • 部署包包含模型、网页、配置、运行库、许可证和 SHA-256 校验文件
  • 保持 C ABI v1 兼容,不改变已有公共结构体和后端枚举值

下载文件

ONNX Runtime CPU/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,初始化失败时直接报错
  • auto:优先尝试 CUDA,不可用时回退 CPU

发布附件不包含 CUDA、cuDNN 和 NVIDIA 驱动。启用 GPU 时,需要安装兼容的 NVIDIA 环境,并使用官方相同版本、相同 CUDA 系列的 ONNX Runtime GPU 包替换完整的 libonnxruntime*.so* 文件集合。

不要只替换单个 libonnxruntime.so,也不要混用不同 ONNX Runtime 版本或 CUDA 12/CUDA 13 文件。

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 Runtime
  • OpenVINO CPU Plugin
  • ONNX Frontend
  • oneTBB 与 hwloc
  • OCR 所需的最小 OpenCV 共享库

目标机器不需要另外安装 OpenVINO SDK。

当前版本只开放 CPU:

{"device":"CPU"}

OpenVINO GPU 暂未纳入本次稳定发布。

快速启动

下载对应的 .tar.gz.sha256 文件后执行:

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

HTTP API

完整 OCR:

POST /api/ocr

请求:

{
  "image_base64": "..."
}

只识别已裁剪文字区域:

POST /api/recognize

单张请求:

{
  "image_base64": "..."
}

批量请求:

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

健康检查:

GET /health

API Key

默认未启用 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

验证状态

  • Linux ONNX Runtime CPU:CI 构建通过
  • Linux ONNX Runtime CPU:Ubuntu 20.04 虚拟机验证通过
  • Linux OpenVINO CPU:CI 构建通过
  • Linux OpenVINO CPU:Ubuntu 20.04 虚拟机验证通过
  • 完整 OCR:验证通过
  • 单张及批量只识别:验证通过
  • HTTP 服务和浏览器测试页面:验证通过
  • 包内 SHA-256、ELF 依赖和真实模型自检:验证通过

升级说明

v1.2.0 Linux OpenCV DNN 用户可以继续使用原有部署包。

ONNX Runtime、OpenVINO 和 OpenCV DNN 使用相同的公共 C ABI 与 HTTP API,但各自的私有共享库不同。首次切换后端时,请下载对应的完整部署包,不建议只复制某个 Runtime .so 到旧目录。