RapidAI/paddleocr_convert:PaddleOCR中模型快速转换为ONNX格式

RapidAI/paddleocr_convert

PyPI paddleocr_convert documentation

  • 仓库地址:Github
  • 本仓库主要是针对性地将PaddleOCR中推理模型转换为ONNX格式。
  • 注意
    • 输入:推理模型的url或者本地tar路径
    • 输出:转换后的ONNX模型
    • 如果是识别模型,需要提供对应字典的原始txt路径(打开github中txt文件,点击右上角raw之后的路径),用来将字典写入到onnx模型中
    • !!!需要搭配RapidOCR中相关推理代码使用

使用步骤

  1. 安装paddleocr_convert

    pip install paddleocr_convert
    
  2. 命令行使用

    • 用法:
      $ paddleocr_convert -h
      usage: paddleocr_convert [-h] [-p MODEL_PATH] [-o SAVE_DIR]
                              [-txt_path TXT_PATH]
      
      optional arguments:
      -h, --help            show this help message and exit
      -p MODEL_PATH, --model_path MODEL_PATH
                              The inference model url or local path of paddleocr.
                              e.g. https://paddleocr.bj.bcebos.com/PP-
                              OCRv3/chinese/ch_PP-OCRv3_det_infer.tar or
                              models/ch_PP-OCRv3_det_infer.tar
      -o SAVE_DIR, --save_dir SAVE_DIR
                              The directory of saving the model.
      -txt_path TXT_PATH, --txt_path TXT_PATH
                              The raw txt url or local txt path, if the model is
                              recognition model.
      
    • 示例:
      # online
      $ paddleocr_convert -p https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar \
                          -o models
      
      $ paddleocr_convert -p https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar \
                          -o models \
                          -txt_path https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.6/ppocr/utils/ppocr_keys_v1.txt
      
      # offline
      $ paddleocr_convert -p models/ch_PP-OCRv3_det_infer.tar \
                          -o models
      
      $ paddleocr_convert -p models/ch_PP-OCRv3_rec_infer.tar \
                          -o models \
                          -txt_path models/ppocr_keys_v1.txt
      
  3. 脚本使用

    from paddleocr_convert import PaddleOCRModelConvert
    
    converter = PaddleOCRModelConvert()
    
    save_dir = 'models'
    
    # online
    url = 'https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar'
    txt_url = 'https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.6/ppocr/utils/ppocr_keys_v1.txt'
    
    converter(url, save_dir, txt_path=txt_url)
    
    # offline
    model_path = 'models/ch_PP-OCRv3_rec_infer.tar'
    txt_path = 'models/ppocr_keys_v1.txt'
    converter(model_path, save_dir, txt_path=txt_path)
    
  4. 使用模型方法:

    • 假设要用日文识别模型,且已经转好,路径为local/models/japan.onnx
    1. 安装rapidocr_onnxruntime
      pip install rapidocr_onnxruntime
      
    2. 脚本使用
      from rapidocr_onnxruntime import RapidOCR
      
      model_path = 'local/models/japan.onnx'
      engine = RapidOCR(rec_model_path=model_path)
      
      img = '1.jpg'
      result, elapse = engine(img)
      
    3. 命令行使用
      $ rapidocr_onnxruntime -img 1.jpg --rec_model_path local/models/japan.onnx
      

更新日志

  • 2023-03-05 v0.0.4~7 update:

    • 支持对本地的模型和字典转写
    • 优化内部逻辑和错误反馈
  • 2023-02-28 v0.0.3 update:

    • 添加对不是动态输入的模型自动更改为动态输入的设置
  • 2023-02-27 v0.0.2 update:

    • 将转换模型代码封装成包,便于自助转模型
  • 2022-08-15 v0.0.1 update:

    • 将识别模型的字典写入到onnx模型中的meta中,便于后续分发。
posted @ 2023-03-21 14:43  Danno  阅读(371)  评论(0编辑  收藏  举报