PaddlePaddle / PaddleOCR

Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)
Apache License 2.0
40.26k stars 7.45k forks source link

文本检测微调模型 转推理模型后识别效果不一致 #13228

Open zhongmy20230403 opened 4 days ago

zhongmy20230403 commented 4 days ago

问题描述 / Problem Description

训练文本检测模型,训练后的checkpoints模型与转换后的inference模型识别效果不一致

运行环境 / Runtime Environment

复现代码 / Reproduction Code

训练:tools/train.py -c ./configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_student.yml 评估:tools/eval.py -c ./configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_student.yml -o Global.checkpoints=./output/1-fapiao_putong_ch_PP-OCR_V3_det/best_accuracy.pdparams 预测:tools/infer_det.py -c configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_student.yml -o Global.infer_img=./train_data/wenbenjiance_test Global.checkpoints=./output/1-fapiao_putong_ch_PP-OCR_V3_det/best_accuracy.pdparams 预测结果正常: image

转推理模型:tools/export_model.py -c configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_student.yml -o Global.checkpoints=./output/1-fapiao_putong_ch_PP-OCR_V3_det/best_accuracy Global.save_inference_dir=./output/fapiao_putong_ch_PP-OCR_v3_det_inferer

推理模型预测:tools/infer/predict_det.py --image_dir=./train_data/wenbenjiance_test --det_model_dir=./output/fapiao_putong_ch_PP-OCR_v3_det_inferer

预测结果不正常: image

配置文件ch_PP-OCRv3_det_student.yml Global: debug: false use_gpu: true epoch_num: 500 log_smooth_window: 20 print_batch_step: 10 save_model_dir: ./output/fapiao_putong_ch_PP-OCR_V3_det/ save_epoch_step: 100 eval_batch_step:

0 500 cal_metric_during_train: false pretrained_model: ./pretrained_model/ch_PP-OCRv3_det_distill_train/student.pdparams checkpoints: null save_inference_dir: null use_visualdl: false infer_img: doc/imgs_en/img_10.jpg save_res_path: ./output/fapiao_putong_checkpoints/det_db/predicts_db.txt distributed: true Architecture: model_type: det algorithm: DB Transform: Backbone: name: MobileNetV3 scale: 0.5 model_name: large disable_se: True Neck: name: RSEFPN out_channels: 96 shortcut: True Head: name: DBHead k: 50

Loss: name: DBLoss balance_loss: true main_loss_type: DiceLoss alpha: 5 beta: 10 ohem_ratio: 3 Optimizer: name: Adam beta1: 0.9 beta2: 0.999 lr: name: Cosine learning_rate: 0.00005 warmup_epoch: 2 regularizer: name: L2 factor: 5.0e-05 PostProcess: name: DBPostProcess thresh: 0.3 box_thresh: 0.6 max_candidates: 1000 unclip_ratio: 1.5 Metric: name: DetMetric main_indicator: hmean Train: dataset: name: SimpleDataSet data_dir: ./train_data/wenbenjiance/imgs label_file_list:

可能解决方案 / Possible solutions

附件 / Appendix

UserWangZz commented 3 days ago

转inference模型后,会有一套默认配置,需要确保这个配置和动态图推理时一致。