PaddleOCR使用笔记-文字识别训练
·
PaddleOCR使用笔记
Linux环境下
文字识别训练
数据准备
- 在官网下载 icdar2015 数据,用于快速验证。
- PaddleOCR 提供了一份用于训练 icdar2015 数据集的标签文件,通过以下方式下载:
# 训练集标签
wget -P ./train_data/ic15_data https://paddleocr.bj.bcebos.com/dataset/rec_gt_train.txt
# 测试集标签
wget -P ./train_data/ic15_data https://paddleocr.bj.bcebos.com/dataset/rec_gt_test.txt
- 最终的训练集和测试集的目录结构:
|-train_data
|-rec
|- rec_gt_train.txt
|- train
|- word_001.png
|- word_002.jpg
|- word_003.jpg
| ...
|- rec_gt_test.txt
|- test
|- word_001.jpg
|- word_002.jpg
|- word_003.jpg
| ...
启动训练
- 下载与训练模型
cd PaddleOCR/
# 下载MobileNetV3的预训练模型
wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_none_bilstm_ctc_v2.0_train.tar
# 解压模型参数
cd pretrain_models
tar -xf rec_mv3_none_bilstm_ctc_v2.0_train.tar && rm -rf rec_mv3_none_bilstm_ctc_v2.0_train.tar
- 开始训练
如果您安装的是cpu版本,请将配置文件中的 use_gpu 字段修改为false
# GPU训练 支持单卡,多卡训练,通过--gpus参数指定卡号
# 训练icdar15英文数据 训练日志会自动保存为 "{save_model_dir}" 下的train.log
python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/rec/rec_icdar15_train.yml
- Windows下测试训练(使用CPU)
python tools/train.py -c configs/rec/rec_icdar15_train.yml


- 在Linux下使用GPU训练
python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/rec/rec_icdar15_train.yml


- 使用GPU多卡训练时卡住了,暂不知道原因。
- 使用GPU单卡训练:
python3 tools/train.py -c configs/rec/rec_icdar15_train.yml
# python3 -m paddle.distributed.launch --gpus '4' tools/train.py -c configs/rec/multi_language/rec_en_number_lite_train.yml
python3 tools/train.py -c configs/rec/multi_language/rec_en_number_lite_train.yml




评估训练
评估数据集可以通过 configs/rec/rec_icdar15_train.yml 修改Eval中的 label_file_path 设置。
# GPU 评估, Global.checkpoints 为待测权重
python3 -m paddle.distributed.launch --gpus '0' tools/eval.py -c configs/rec/rec_icdar15_train.yml -o Global.checkpoints={path/to/weights}/best_accuracy
- 在windows(使用CPU)下评估
python tools/eval.py -c configs/rec/rec_icdar15_train.yml -o Global.checkpoints=pretrain_models/rec_r34_vd_none_bilstm_ctc_v2.0_train/best_accuracy


- 在Linux(使用GPU)中评估
python3 -m paddle.distributed.launch --gpus '0' tools/eval.py -c configs/rec/rec_icdar15_train.yml -o Global.checkpoints="output/rec/ic15/latest"


- 在Linux(使用GPU)中评估
python3 -m paddle.distributed.launch --gpus '0' tools/eval.py -c configs/rec/rec_icdar15_train.yml -o Global.checkpoints="pretrain_models/rec_r34_vd_none_bilstm_ctc_v2.0_train/best_accuracy"
python3 tools/eval.py -c configs/rec/multi_language/rec_en_number_lite_train.yml -o Global.checkpoints="output/rec_en_number_lite_crown/best_accuracy"




测试
- 在Windows下测试
python tools/infer_rec.py -c configs/rec/rec_icdar15_train.yml -o Global.pretrained_model=pretrain_models/rec_r34_vd_none_bilstm_ctc_v2.0_train/best_accuracy Global.load_static_weights=false Global.infer_img=doc/imgs_words/en/word_1.png


- 在Linux下测试
python3 tools/infer_rec.py -c configs/rec/rec_icdar15_train.yml -o Global.pretrained_model=pretrain_models/rec_r34_vd_none_bilstm_ctc_v2.0_train/best_accuracy Global.load_static_weights=false Global.infer_img=doc/imgs_words/en/word_1.png
# python3 tools/infer_rec.py -c configs/rec/multi_language/rec_en_number_lite_train.yml -o Global.pretrained_model=output/rec_en_number_lite/best_accuracy Global.load_static_weights=false Global.infer_img=doc/imgs_10_BZ_test/crop
# python3 tools/infer_rec.py -c configs/rec/multi_language/rec_en_number_lite_train.yml -o Global.pretrained_model=output/rec_en_number_lite2/best_accuracy Global.load_static_weights=false Global.infer_img=doc/imgs_10_BZ_test/crop
python3 tools/infer_rec.py -c configs/rec/multi_language/rec_en_number_lite_train.yml -o Global.pretrained_model=output/rec_en_number_lite_crown/best_accuracy Global.load_static_weights=false Global.infer_img=doc/imgs_crown_test/crop




- 在Linux下测试
python3 tools/infer_rec.py -c configs/rec/rec_icdar15_train.yml -o Global.pretrained_model=output/rec/ic15/latest Global.load_static_weights=false Global.infer_img=doc/imgs_words/en/word_1.png


部分训练截图










创作不易,喜欢的话加个关注点个赞,❤谢谢谢谢❤
更多推荐



所有评论(0)