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

在这里插入图片描述
在这里插入图片描述

部分训练截图

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

更多推荐