PaddleOCR v5模型使用Python部署ONNX源码详解:模型部署与操作指南

1. 项目简介

本项目是 PaddleOCRv5 的 ONNX 版本实现,具有以下特点:

  • 支持简体中文、繁体中文、中文拼音、英文和日文识别
  • 无需深度学习训练框架,可直接部署使用
  • 支持 ARM 和 x86 架构
  • 高性能推理,识别速度快
  • 识别精度与 PaddleOCR 保持一致
  • 2. 环境要求

  • Python >= 3.8
  • CUDA 支持(如果使用 GPU 版本,需要GPU版本onnxruntime和对应cuda安装)
  • 足够的磁盘空间(建议至少 2GB 可用空间)
  • 3. 详细安装步骤

    3.1 基础环境准备

    1. 确保已安装 Python 3.8 或更高版本
    2. 建议使用虚拟环境(可选但推荐):
      # 创建虚拟环境
      python -m venv paddleocr_env
      
      # Windows 激活虚拟环境
      .\paddleocr_env\Scripts\activate
      
      # Linux/Mac 激活虚拟环境
      source paddleocr_env/bin/activate
      

    3.2 安装依赖包

    安装依赖包:

    pip install requirements.txt
    

    3.3 模型文件准备

    项目提供两种模型版本:

    1. Mobile 版本(默认)

    2. 已包含在项目中,位于 onnxocr/models/ppocrv5 目录下
    3. 无需额外下载
    4. Server 版本(推荐,效果更好,但是推理时间会变长)

    4. 使用说明

    4.1 快速测试

    首先到gitee.com/FIRC/fircfiles/blob/master/ppocrv5.md获取代码,然后按照使用说明安装好环境,注意onnxruntime版本和是否需要GPU版本支持
    运行测试脚本在当前目录会生成一个result.jpg即可查看效果:

    python demo_ocr.py
    
    使用 Python 调用:
    import time
    from onnxocr.ppocr_onnx import PaddleOCROnnx,SaveOCResult
    import sys
    import time
    ocr_engine = PaddleOCROnnx(use_angle_cls=True, use_gpu=False)
    img = cv2.imread('./test.jpg')
    start = time.time()
    result = ocr_engine.ocr(img)
    end = time.time()
    print("ocr time: {:.3f}".format(end - start))
    print("result is:", result)
    for box in result[0]:
        print(box)
    
    SaveOCResult(img, result,'result.jpg')
    

    测试结果:

    5. 常见问题

    1. GPU 相关问题

    2. 确保已正确安装 CUDA 和 cuDNN
    3. 检查 onnxruntime-gpu 版本是否与 CUDA 版本匹配
    4. 内存不足

    5. 如果遇到内存不足,建议使用 Mobile 版本模型
    6. 可以调整批处理大小来减少内存使用
    7. 识别效果不理想

    8. 尝试使用 Server 版本模型
    9. 确保图片清晰度足够
    10. 检查图片是否包含支持的语言类型

    6. 性能优化建议

    1. 使用 GPU 版本可以获得更好的性能
    2. 对于批量处理,建议使用批处理模式
    3. 可以根据实际需求调整模型参数
    4. 对于特定场景,可以考虑使用模型量化来提升性能

    7. 技术支持

    如果遇到问题,可以:

    1. 查看项目文档
    2. 检查常见问题解答

    8. 源码特点

  • 使用PP-OCRv5 模型
  • 支持 5 种文字类型识别
  • 识别精度比v4及其版本提升 13%
  • 与 PaddleOCR 3.0 精度保持一致
  • 作者:FL1623863129

    物联沃分享整理
    物联沃-IOTWORD物联网 » PaddleOCR v5模型使用Python部署ONNX源码详解:模型部署与操作指南

    发表回复