【无标题】

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 复制代码
相关推荐
外域速览15 分钟前
OpenAI 智能体「越狱」风波未平,苹果折叠屏 iPhone Ultra 下周三登场
人工智能·ios·iphone
william_yangshun5 小时前
【AI Agent 实战】agent-vision-toolkit 中文版:给纯文本模型(DeepSeek)装上视觉能力
人工智能·多模态
智能体与具身智能5 小时前
TVA具身智能的概念、架构与应用(19)
人工智能·python·具身智能
AI智能体工作室5 小时前
生产级 RAG 检索增强架构实战:向量数据库、混合检索(Hybrid Search)、RRF 融合与重排(Rerank)全链路
人工智能
geinvse_seg5 小时前
我做了个 AI 架构审查员,把整个微服务项目通读了一遍,还顺手做成了 Skill
人工智能
李帅朋5 小时前
微分基本定义笔记
人工智能·笔记·深度学习·神经网络
醍醐实验室5 小时前
下一代端到端全模态(Omni)模型解密:离散音频 Token 化与极速双工流式交互架构
人工智能
米小虾5 小时前
你的 Agent 有 1000 万上下文,为什么第 50 轮就开始失忆?
人工智能·agent
东风破_5 小时前
Text2SQL :用自然语言操作 SQLite 数据库
人工智能·后端
吴佳浩 Alben5 小时前
Agent 怎么做自动化评测?构建端到端的 Agent Evaluation 体系
人工智能·语言模型·架构·自动化·ai编程