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 识别
一、创建环境
- 安装miniconda
- 创建环境
#linux 需要先 source
conda create -n paddle_ocr python=3.9.7 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- 安装完以后进入环境
conda activate paddle_ocr
二、安装环境
- 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
- paddleocr
#安装paddleocr
python -m pip install paddleocr
cd <paddleocr_path>/
#下载源代码
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/
- 测试一下
paddleocr --image_dir ./doc/imgs/11.jpg --use_angle_cls true
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.导出标记结果、导出识别结果
文件名 | 说明 |
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 为 上一次训练的输出
总结