主题
OCR 模型配置说明
OCR 模块将 模型元数据 / 生命周期诊断 与 推理调参 拆分,详见 OCRModelInfo与ModelConfig说明。
OCR Ex 系列通过 OcrSetModelConfig / OcrSetModelConfigByKey / OcrGetModelConfig 按 模型句柄 维度读写推理调参。
JSON 键使用 PascalCase(大小写不敏感)。规则见 JSON配置解析约定。
| 概念 | 说明 |
|---|---|
modelHandle = 0 | 内置 PP-OCR mobile 模型,无需 OcrLoadModel |
modelHandle > 0 | OcrLoadModel / OcrLoadModelMemory 返回值 |
| OCR 加密包魔数 | OLAOENC1 |
| YOLO 加密包魔数 | OLAYENC1(见 YOLO 模块) |
推荐流程
- (可选)OcrEncryptModel 打包 NCNN 四文件 + 字典
OcrLoadModel或OcrLoadModelMemory得到modelHandle- (可选)
OcrSetModelConfig或OcrSetModelConfigByKey微调阈值、GPU 等 OcrEx/OcrDetailsEx/OcrFromPtrEx等识别FreeStringPtr释放返回字符串
configJson 字段(Set / Get 共用)
Set 时未出现的键保持不变。Get 成功时另含 Success、ModelHandle、BackendId、Runtime 及下表字段。
| 字段 | 类型 | 后端 | 说明 | 默认 |
|---|---|---|---|---|
| OcrUseGpu | bool | ncnn/paddle | 是否启用 GPU | 内置首次尝试 true |
| OcrGpuId | int | ncnn/paddle | GPU 设备索引 | 0 |
| OcrCpuThreads | int | ncnn/paddle | CPU 推理线程数 | 8 |
| OcrEnableMkldnn | bool | paddle | MKL-DNN 加速 | true |
| OcrPrecision | string | ncnn/paddle | fp32/fp16/int8/auto | int8 |
| OcrLimitSideLen | int | ncnn | 检测前缩放目标边长 | 960 |
| OcrDetDbThresh | double | ncnn | DB 二值化阈值 | 0.3 |
| OcrDetDbBoxThresh | double | ncnn | DB 框置信度阈值 | 0.6 |
| OcrDetDbUnclipRatio | double | ncnn | DB 框扩张比例 | 2.3 |
| OcrRecImgH | int | ncnn | 识别裁剪行高 | 48 |
| OcrRecImgW | int | ncnn | 识别输入宽度上限 | 320 |
| OcrDisableFp16 | bool? | ncnn | 禁用 FP16(null=自动) | null |
| Runtime | object | ncnn/paddle | Common/Ncnn/Paddle 子对象(键名同为 PascalCase) | — |
不支持 load 后修改:模型路径、密码、BackendId 等加载期参数,需重新 OcrLoadModel。
Runtime 对象
Runtime 可包含 Common、Ncnn、PaddleInference、PaddleInferenceDll 等子对象(如 UseGpu、GpuId、DisableFp16 等,键名均为 PascalCase)。
示例
Set(JSON 对象)
json
{
"OcrUseGpu": true,
"OcrGpuId": 0,
"OcrCpuThreads": 8,
"OcrLimitSideLen": 960,
"OcrDetDbThresh": 0.3
}Set(单键)
cpp
OcrSetModelConfigByKey(ola, modelHandle, "OcrUseGpu", "false");
OcrSetModelConfigByKey(ola, modelHandle, "OcrDetDbThresh", "0.25");Get 成功示例
json
{
"Success": true,
"ModelHandle": 1001,
"BackendId": "ncnn",
"OcrUseGpu": true,
"OcrGpuId": 0,
"OcrCpuThreads": 8,
"OcrLimitSideLen": 960,
"OcrDetDbThresh": 0.3,
"OcrDisableFp16": null
}与旧接口关系
| 旧接口 | 新接口 |
|---|---|
Ocr(无模型句柄) | OcrEx(..., modelHandle),modelHandle=0 为内置 mobile |
OcrDetails | OcrDetailsEx |
OcrV5 / OcrV5Details 等(已移除) | OcrEx / OcrDetailsEx 等 |
GetOcrConfig / SetOcrConfig / SetOcrConfigByKey(已移除) | OcrGetModelConfig / OcrSetModelConfig / OcrSetModelConfigByKey |
