【无标题】

works:

  1. .dec/rec :parameters --> inference -->onnx
  2. deal srt contrast
  3. cls+ocr
  4. flask
    1+2 要求:图像输入 → 输出文本 + 文本框 + 文本比对
    检测 ONNX:输入图像 → 输出 文本框坐标
    识别 ONNX(端到端内嵌字典 + 解码):输入裁剪文本行图 → 直接输出字符串文本
    上层业务:拿到 框坐标 + 文本 → 执行文本比对

Start

1.1 从训练权重 → Paddle 推理模型 → ONNX 模型

bash 复制代码
python3 tools/export_model.py -c ./configs/det/PP-OCRv5/PP-OCRv5_mobile_det.yml -o Global.pretrained_model=./output/PP-OCRv5_mobile_det/first_train/best_accuracy.pdparams -o  Global.save_inference_dir=output/infer/PP-OCRv5_mobile_det_infer/first_det_0610
'''
(paddle) root@autodl-container-d8dlmpu3b9-2023ec6b:~/PaddleOCR-main# python3 tools/export_model.py -c ./configs/det/PP-OCRv5/PP-OCRv5_mobile_det.yml -o Global.pretrained_model=./output/PP-OCRv5_mobile_det/first_train/best_accuracy.pdparams -o  Global.save_inference_dir=output/infer/PP-OCRv5_mobile_det_infer/first_det
/root/miniconda3/envs/paddle/lib/python3.10/site-packages/paddle/utils/cpp_extension/extension_utils.py:715: UserWarning: No ccache found. Please be aware that recompiling all source files may be required. You can download and install ccache from: https://github.com/ccache/ccache/blob/master/doc/INSTALL.md
  warnings.warn(warning_message)
Skipping import of the encryption module.
W0610 15:23:09.306272  1993 gpu_resources.cc:114] Please NOTE: device: 0, GPU Compute Capability: 8.9, Driver API Version: 13.0, Runtime API Version: 11.8
[2026/06/10 15:23:09] ppocr INFO: load pretrain successful from ./output/PP-OCRv5_mobile_det/first_train/best_accuracy
[2026/06/10 15:23:09] ppocr INFO: Export inference config file to output/infer/PP-OCRv5_mobile_det_infer/first_det/inference.yml
Skipping import of the encryption module
[2026/06/10 15:23:12] ppocr INFO: inference model is saved to output/infer/PP-OCRv5_mobile_det_infer/first_det/inference
'''
python 复制代码
python3 tools/export_model.py -c ./configs/rec/PP-OCRv5/PP-OCRv5_mobile_rec.yml -o Global.pretrained_model=./output/PP-OCRv5_mobile_rec/first/best_accuracy.pdparams -o  Global.save_inference_dir=output/infer/PP-OCRv5_mobile_rec_infer/first_rec_0610

(paddle) root@autodl-container-d8dlmpu3b9-2023ec6b:~/PaddleOCR-main# python3 tools/export_model.py -c ./configs/rec/PP-OCRv5/PP-OCRv5_mobile_rec.yml -o Global.pretrained_model=./output/PP-OCRv5_mobile_rec/first/best_accuracy.pdparams -o  Global.save_inference_dir=output/infer/PP-OCRv5_mobile_rec_infer/first_rec                                         Skipping import of the encryption module.
W0610 15:28:27.813534  2532 gpu_resources.cc:114] Please NOTE: device: 0, GPU Compute Capability: 8.9, Driver API Version: 13.0, Runtime API Version: 11.8
[2026/06/10 15:28:28] ppocr INFO: load pretrain successful from ./output/PP-OCRv5_mobile_rec/first/best_accuracy
[2026/06/10 15:28:28] ppocr INFO: Export inference config file to output/infer/PP-OCRv5_mobile_rec_infer/first_rec/inference.yml
Skipping import of the encryption module
[2026/06/10 15:28:31] ppocr INFO: inference model is saved to output/infer/PP-OCRv5_mobile_rec_infer/first_rec/inference

export_model.py生成ONNX

python 复制代码
import paddle
from paddle.static import InputSpec
from ppocr.modeling.architectures import build_model
from ppocr.postprocess import build_post_process
from ppocr.utils.save_load import load_pretrained_params
import yaml

# 1. 加载配置文件
config_path = './configs/det/PP-OCRv5/PP-OCRv5_mobile_det.yml'
with open(config_path, 'r') as f:
    config = yaml.safe_load(f)

# 2. 构建模型并加载权重
model = build_model(config['Architecture'])
load_pretrained_params(model, './output/PP-OCRv5_mobile_det/first_train/best_accuracy.pdparams')
model.eval()  # 切换到评估模式

# 3. 定义输入张量的形状(根据你的模型实际输入调整)
# OCR 检测模型通常输入为 [batch_size, channels, height, width]
input_spec = [InputSpec(shape=[1, 3, 640, 640], dtype='float32', name='image')]

# 4. 导出为 ONNX 格式
paddle.onnx.export(
    layer=model,
    path='./output/infer/PP-OCRv5_mobile_det_infer/first_det_0610/model',
    input_spec=input_spec,
    opset_version=13,  # 推荐使用 13 或更高版本以支持现代算子
    enable_onnx_checker=True
)

print("✅ ONNX 模型已成功导出!")

REC 导出ONNX

python 复制代码
import paddle
from paddle.static import InputSpec
from ppocr.modeling.architectures import build_model
from ppocr.utils.save_load import load_pretrained_params
# 导入官方的配置解析工具
from tools.program import get_config 

# 1. 使用官方工具加载配置(会自动读取你修改的字典路径并补全参数)
config_path = './configs/rec/PP-OCRv5/PP-OCRv5_mobile_rec.yml'
config, _, _ = get_config(config_path, show=False)

# 2. 构建模型并加载权重
model = build_model(config['Architecture'])
load_pretrained_params(model, './output/PP-OCRv5_mobile_rec/first/best_accuracy.pdparams')
model.eval()

# 3. 定义输入张量的形状(识别模型标准尺寸)
input_spec = [InputSpec(shape=[1, 3, 48, 320], dtype='float32', name='image')]

# 4. 导出为 ONNX 格式
paddle.onnx.export(
    layer=model,
    path='./output/infer/PP-OCRv5_mobile_rec_infer/first_rec_0610/model',
    input_spec=input_spec,
    opset_version=13,
    enable_onnx_checker=True
)

print("✅ 识别模型 ONNX 已成功导出!")
bash 复制代码
相关推荐
龙腾AI白云2 小时前
AI检索增强生成(RAG):解决大模型幻觉的核心落地技术
数据库·人工智能·机器学习·知识图谱
云票2 小时前
企业对接AI合同审查系统的工程实践
人工智能
admin and root3 小时前
「AI安全篇」实战AntiDebug自动化JS逆向加解密MCP
javascript·人工智能·网络安全·自动化·漏洞挖掘·cnvd·src赏金
智能RPA3 小时前
智能体自动化平台与主数据管理平台(MDM)对比评测
人工智能·自动化·agent·rpa
跨境小彭3 小时前
Temu拉美站点铺货实操复盘:手动复制痛点与批量自动化解决方案
服务器·人工智能·搜索引擎·自动化·temu电商运营
封印师请假去地球钓鱼3 小时前
边解边变的问题:从“决策依赖“一词出发
人工智能·算法
AI搅拌机4 小时前
ComfyUI管理大师:安全稳定升级+切换指定版本!
人工智能
浅安的邂逅4 小时前
20929-OpenAI 一天踩三脚急刹:暂停前沿训练、叫停 Astra、披露越权访问澳政府网站
人工智能·大模型·ai编程·行业动态·ai日报
Qyr994 小时前
2026-2032直接芯片液冷板市场爆发式增长:AI算力浪潮下的热管理核心赛道
大数据·人工智能
微学AI4 小时前
不让每一步都调用最贵模型:用蓝耘智能路由改造自主式研究 Agent
数据库·人工智能·蓝耘