paddleOcr 训练自定义数据

paddleOcr 训练自定义数据


文章目录

  • paddleOcr 训练自定义数据
  • 前言
  • 一、创建环境
  • 二、安装环境
  • 三、使用ppocrlabel标注图片
        • 1.打开图片目录
        • 2.导出标记结果、导出识别结果
  • 四、训练
        • 1.切分数据
        • 2.修改训练的模型 yml
        • 3.开始训练
  • 五、已经训练的模型,有了新数据需要继续训练
        • 1.使用恢复训练
        • 2.使用迁移学习
  • 总结


前言

环境

python: 3.7.5

paddlepaddle-gpu: 2.2.2

paddleocr: 2.4.0.1

#paddlepaddle
https://www.paddlepaddle.org.cn/
#paddleocr
https://github.com/PaddlePaddle/PaddleOCR
https://gitee.com/paddlepaddle/PaddleOCR

paddleocr 有三种模型 det 检测 cls 方向 rec 识别


一、创建环境

  1. 安装miniconda

    https://blog.csdn.net/mtl1994/article/details/114968140
    
  2. 创建环境

    #linux 需要先 source
    conda create -n paddle_ocr python=3.9.7  --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    
  3. 安装完以后进入环境

    conda activate paddle_ocr
    

二、安装环境

  1. paddlepaddle

    #去官网找到适合自己环境的版本  windows
    python -m pip install paddlepaddle-gpu==2.2.2.post112 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
    #linux
    python -m pip install paddlepaddle-gpu==2.2.2.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
    
  2. paddleocr

    #安装paddleocr
    python -m pip install paddleocr
    cd /
    #下载源代码
    git clone https://gitee.com/paddlepaddle/PaddleOCR.git
    cd PaddleOCR/
    #安装依赖
    python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
    #需要用到 PPOCRLabel 标注
    cd PPOCRLabel/
    python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
    
  3. 测试一下

    paddleocr --image_dir ./doc/imgs/11.jpg --use_angle_cls true
    

paddleOcr 训练自定义数据_第1张图片

  1. 选择模型

    https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/doc/doc_ch/models_list.md

    我使用的模型是

    ch_ppocr_server_v2.0
    det: ch_det_res18_db_v2.0.yml
    rec:  rec_chinese_common_train_v2.0.yml
    cls:  ch_ppocr_mobile_v2.0_cls
    

三、使用ppocrlabel标注图片

cd 到 ppocrlabel 目录下,python PPOCRLabel.py --lang ch

1.打开图片目录

2.导出标记结果、导出识别结果

paddleOcr 训练自定义数据_第2张图片

文件名 说明
Label.txt 检测标签,可直接用于PPOCR检测模型训练。用户每确认5张检测结果后,程序会进行自动写入。当用户关闭应用程序或切换文件路径后同样会进行写入。
fileState.txt 图片状态标记文件,保存当前文件夹下已经被用户手动确认过的图片名称。
Cache.cach 缓存文件,保存模型自动识别的结果。
rec_gt.txt 识别标签。可直接用于PPOCR识别模型训练。需用户手动点击菜单栏“文件” - "导出识别结果"后产生。
crop_img 识别数据。按照检测框切割后的图片。与rec_gt.txt同时产生。

四、训练

1.切分数据

首先cd 到 PPOCRLabel 目录下

python gen_ocr_train_val_test.py --trainValTestRatio 6:2:2 --datasetRootPath <数据地址>

执行完后,会在上一级目录,也就是 PPocr目录下生成 train_data

2.修改训练的模型 yml

3.开始训练

python tools/train.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml

五、已经训练的模型,有了新数据需要继续训练

1.使用恢复训练

修改配置文件中的 epoch_num

指定恢复训练的节点

python tools/train.py -c configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml -o Global.checkpoints=output/ch_db_res18/best_accuracy

2.使用迁移学习

训练的时候指定 pretrained_model 为 上一次训练的输出


总结

你可能感兴趣的:(深度学习,python,paddlepaddle,ocr)