---
title: PP-OCRv6-Small-ONNX-CUDA-FP16
canonical_url: "https://www.modelscope.cn/models/BeePlug/PP-OCRv6-Small-ONNX-CUDA-FP16"
md_url: "https://www.modelscope.cn/models/BeePlug/PP-OCRv6-Small-ONNX-CUDA-FP16.md"
repository: BeePlug/PP-OCRv6-Small-ONNX-CUDA-FP16
chinese_name: "PP-OCRv6 Small ONNX CUDA FP16（C++部署版）"
last_updated: 2026-08-31
license: apache-2.0
pipeline_tag: ocr-recognition
tasks:
  - ocr-recognition
library_name:
  - onnx
frameworks:
  - onnx
downloads: 0
stars: 0
---

# PP-OCRv6-Small-ONNX-CUDA-FP16

> PP-OCRv6-Small-ONNX-CUDA-FP16 - BeePlug 在 ModelScope 开源的模型。面向 Windows x64 / C++ 的 PP-OCRv6 Small 文本检测与文字识别配套 ONNX 模型，提供 CUDA FP16 权重、CPU FP32 回退权重、字符字典、SHA256 下载清单、模型契约和 ONNX Runtime C++ 示例。

BeePlug/PP-OCRv6-Small-ONNX-CUDA-FP16 是 ModelScope 魔搭社区上的ocr-recognition模型，采用 apache-2.0 许可。

- **Repository**: BeePlug/PP-OCRv6-Small-ONNX-CUDA-FP16
- **License**: apache-2.0
- **Tasks**: ocr-recognition
- **Downloads**: 0
- **Stars**: 0
- **Last updated**: 2026-08-31

Source: https://www.modelscope.cn/models/BeePlug/PP-OCRv6-Small-ONNX-CUDA-FP16

---

# PP-OCRv6 Small ONNX Runtime CUDA FP16（C++ 部署版）

这是面向 Windows x64 / C++ 的 PP-OCRv6 Small 文本检测（Det）与文字识别（Rec）配套模型仓库，提供 CUDA FP16 权重、CPU FP32 回退权重、字符字典、模型契约和 C++ 加载示例。

本仓库不是从零训练的新模型。基础权重和网络结构来自 PaddleOCR 官方 PP-OCRv6 Small；本仓库的工作是完成 CUDA FP16 转换、Det/Rec 配套整理、Windows C++ 接入、动态形状验证和端到端性能测试。

## 适用场景

- Windows C++ 本地 OCR；
- 视频硬字幕检测与识别；
- NVIDIA CUDA 加速，同时保留 CPU 回退；
- 不希望在产品中依赖 Python/PaddlePaddle Runtime 的 ONNX Runtime 项目。

语言和识别能力继承自上游 PP-OCRv6 Small。实际效果会受到图片质量、裁切、检测后处理、字符字典和识别阈值影响。

## 仓库文件

| 文件 | 用途 | 大小 |
|---|---|---:|
| `onnx/det.cuda.fp16.onnx` | CUDA FP16 文本检测 | 4.80 MiB |
| `onnx/rec.cuda.fp16.onnx` | CUDA FP16 文字识别 | 10.15 MiB |
| `onnx/det.fp32.onnx` | CPU FP32 文本检测 / 回退 | 9.47 MiB |
| `onnx/rec.fp32.onnx` | CPU FP32 文字识别 / 回退 | 20.17 MiB |
| `character_dict.txt` | 18,709 项识别字符字典 | 73.19 KiB |
| `model-manifest.json` | 稳定 role、下载组合、依赖、文件大小和 SHA256 | — |
| `DOWNLOAD_CONTRACT.md` | C++ 选择、下载、校验和缓存契约 | — |

本仓库只保留当前硬字幕项目实际会使用的四个 ONNX：FP32 Det/Rec 是程序默认入口和 CPU 回退，CUDA 可用时程序自动选择 FP16 Det/Rec。未进入当前运行路径的额外兼容模型不随本仓库发布。

FP16 模型的内部权重主要为 `FLOAT16`，但输入和输出仍为 `FLOAT32`，因此业务侧的数据契约不需要改成半精度。

## 模型来源与转换信息

- Det 基础模型：[PaddlePaddle/PP-OCRv6_small_det_onnx](https://www.modelscope.cn/models/PaddlePaddle/PP-OCRv6_small_det_onnx)
- Rec 基础模型：[PaddlePaddle/PP-OCRv6_small_rec_onnx](https://www.modelscope.cn/models/PaddlePaddle/PP-OCRv6_small_rec_onnx)
- ONNX Opset：17
- IR Version：8
- FP16 转换器：`onnxconverter-common 1.16.0`
- Det FP16 初始化器：201 个 FLOAT16、12 个 FLOAT
- Rec FP16 初始化器：192 个 FLOAT16、48 个 INT64

## 下载

完整仓库：

```powershell
modelscope download --model BeePlug/PP-OCRv6-Small-ONNX-CUDA-FP16 --revision v1.0.0 --local_dir .\ppocrv6-small
```

C++ 产品不必安装 ModelScope Python SDK，可以直接读取 `model-manifest.json`，按稳定的 `role` 或 `profile` 选择文件，并校验其中的 `bytes` 和 `sha256`：

```text
https://www.modelscope.cn/models/BeePlug/PP-OCRv6-Small-ONNX-CUDA-FP16/resolve/v1.0.0/<仓库相对路径>
```

生产软件应固定 `v1.0.0` 或具体提交，不要长期依赖会变化的 `master`。

魔塔仓库为了便于网页上传，仅使用一级目录。清单中的 `path` 是远端扁平路径，`install_path` 是下载器安装到本地缓存时使用的项目兼容路径；C++ 程序不要假设两者相同。

`v1.0.0` 的 `model-manifest.json` 信任锚（SHA256）：

```text
97eee00e2edafad62b4dafe4e8b3631dd8b46282a65d572f3daf9a3b36d71f6d
```

- 只做检测：可单独选择 `detector_cuda_fp16` 或 `detector_cpu_fp32`；
- 只做识别：选择 recognizer 后还必须按 `requires` 下载 `recognition_dictionary`；
- 完整 CUDA OCR：选择 `cuda_fp16_ocr` profile；
- 完整 CPU OCR：选择 `cpu_fp32_ocr` profile。

安全下载和缓存要求见 [`DOWNLOAD_CONTRACT.md`](DOWNLOAD_CONTRACT.md)。

## C++ 加载

仓库提供两个 Windows x64 C++ 示例。安全下载示例只依赖 Windows 自带的 WinHTTP 和 BCrypt：

```powershell
cmake -S cpp -B cpp\build -A x64
cmake --build cpp\build --config Release `
  --target ppocrv6-download-example
.\cpp\build\Release\ppocrv6-download-example.exe list
.\cpp\build\Release\ppocrv6-download-example.exe `
  verify detector_cuda_fp16 .
```

下载器支持 HTTPS、Unicode 路径、进度/取消回调、已存在文件复用、`.part` 临时文件、流式 SHA256 和校验后原子替换。

ONNX Runtime 模型加载与输入输出检查示例：

```powershell
cmake -S cpp -B cpp\build -A x64 `
  -DONNXRUNTIME_ROOT=D:\path\to\onnxruntime-win-x64-gpu-1.24.4
cmake --build cpp\build --config Release `
  --target ppocrv6-model-info
.\cpp\build\Release\ppocrv6-model-info.exe .
```

最小 Session 创建方式：

```cpp
Ort::Env env{ORT_LOGGING_LEVEL_WARNING, "ppocrv6"};
Ort::SessionOptions options;
options.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_ENABLE_ALL);

std::filesystem::path det =
    model_root / L"onnx/det.cuda.fp16.onnx";
Ort::Session det_session{env, det.c_str(), options};
```

仅创建 Session 不等于完成 OCR。实际集成还必须实现 Det 归一化、DB 后处理、透视裁切、Rec 宽度分桶、CTC 解码和字典查表。完整契约见 [`MODEL_CONTRACT.md`](MODEL_CONTRACT.md)。

## 实测性能

在 RTX 2060、ONNX Runtime 1.24.4、CUDA 13、Windows x64 Release 环境中，对 177.144 秒、1920×1080 视频执行固定字幕区域 OCR：

| 指标 | 实测结果 |
|---|---:|
| 端到端墙钟（含加载/一次性准备） | 23.2–29.4 秒 |
| 相对视频时长 | 6.1–7.6× 实时 |
| 热态处理速度 | 17.4–20.4× 实时 |
| Rec 全片累计推理 | 0.28–0.31 秒 |
| 固定宽度桶稳态 Rec | 12–17 ms/批 |
| 固定质量门 | 46/46 通过，连续 3 次 |

这些是完整硬字幕工具的集成基准，不是跨平台通用的模型排行榜成绩。输入形状、GPU、驱动、CUDA/cuDNN、批大小、视频解码与预热策略都会显著影响结果。测试方法和批次说明见 [`benchmark/README.md`](benchmark/README.md)。

## 限制

- 只包含 Det + Rec，不包含文档方向分类、图像矫正或版面分析模型；
- CUDA FP16 版本主要面向 NVIDIA GPU；
- 动态 Rec 宽度在 cuDNN 下可能触发执行计划重建，建议使用固定 320/640/960 宽度桶并为每个桶复用 Session；
- 应用必须校验模型文件 SHA256，避免下载中断或缓存污染；
- 模型效果和上游数据偏差由 PP-OCRv6 能力边界决定。

## 许可证与署名

本仓库遵循 Apache License 2.0。基础模型和 PaddleOCR 项目版权归其原作者及贡献者所有。这里提供的是转换、部署和工程验证成果；修改内容已在本模型卡中明确说明。详见 [`LICENSE`](LICENSE)。
