云天徽上 发表于 2024-8-19 10:47:26

【PPOCR】PaddleOCR微调en_PP-OCRv3_det_infer检测模型

本帖最后由 云天徽上 于 2024-8-20 17:11 编辑

> 本帖最后由 云天徽上 于 2024-8-20 14:20 编辑

> 本帖最后由 云天徽上 于 2024-8-19 17:20 编辑

### 1、获取微调检测模型的数据


检测模型的数据集的制作和获取具体参考PPOCRLabel进行数据标注,并划分检测数据集的步骤;得到的检测结果如下图所示:

!(data/attachment/forum/202408/19/100211cp61o2ljelcodqei.png)

   其中trian/val/test文件夹下图片,train.txt等文件是对应的文本框的标注文件;

### 2、初始权重的获取

    en_PP-OCRv3_det        【最新】原始超轻量模型,支持英文、数字检测        (file:/././PaddleOCR-release-2.5/configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_cml.yml)        3.8M       


下载地址:
   
   [https://paddleocr.bj.bcebos.com/PP-OCRv3/english/en_PP-OCRv3_det_distill_train.tar](https://paddleocr.bj.bcebos.com/PP-OCRv3/english/en_PP-OCRv3_det_distill_train.tar)


###3、检测模型的推理:
python tools/infer_det.py -c ./configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_cml.yml -o Global.infer_img="./train_data/drivingData/" Global.pretrained_model="./inference_model/en_PP-OCRv3_det_infer/best_accuracy"

###4、检测模型的验证:
python tools/eval.py -c ./configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_cml.yml-o Global.checkpoints="{path/to/weights}/best_accuracy"

###5、检测模型的训练:
有3种模型配置文件加载的方式,对应不同的yml的权重文件:具体参考:[https://aistudio.baidu.com/projectdetail/8236106](https://aistudio.baidu.com/projectdetail/8236106)
训练的细节参考:[https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/finetune.md](https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/finetune.md)

#### 4.1单机单卡训练:
python tools/train.py -c ./configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_cml.yml -o Global.pretrained_model="./inference_model/en_PP-OCRv3_det_infer/best_accuracy"

#### 4.2混合精度训练:
python3 tools/train.py -c configs/det/det_mv3_db.yml -o Global.pretrained_model=./pretrain_models/MobileNetV3_large_x0_5_pretrained Global.use_amp=True Global.scale_loss=1024.0 Global.use_dynamic_loss_scaling=True


### 5、微调结果测试:
python tools/eval.py -c ./configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_cml.yml-o Global.checkpoints="./inference_model/en_PP-OCRv3_det_infer/best_accuracy"

####   5.1 检测模型微调前的精度

!(data/attachment/forum/202408/19/104521nr9vfjmirxovogor.png)

####5.2 检测模型微调后的精度
!(data/attachment/forum/202408/19/104644atc59a59ixnanr58.png)

训练后的模型各方面的性能都有了提升。。。


### 5.训练后的模型转静态模型
python tools/export_model.py -c configs/rec/PP-OCRv4/en_PP-OCRv4_rec.yml
    -o Global.pretrained_model=./output/best_accuracy
    Global.save_inference_dir=./inference/

### 6.静态模型转onnx支持C++的TensorRT部署
paddle2onnx --model_dir /mnt/d/Downloads/202406/paddelocr/pp/ch_PP-OCRv4_det_infer/ --model_filename inference.pdmodel --params_filename inference.pdiparams --opset_version 11 --save_file /mnt/d/Downloads/202406/paddelocr/onnx/ch_PP-OCRv4_rec_infer.onnx



### 注意点:
1、如果检测的图像尺寸偏小的话,可以使用resize将图片放大一些;
2、如果训练出来的检测框偏小,可以修改参数unclip_ratio,将其调大即可。配置文件中的参数;
页: [1]
查看完整版本: 【PPOCR】PaddleOCR微调en_PP-OCRv3_det_infer检测模型