PaddleOCR
PaddleOCR copied to clipboard
文本检测微调模型 转推理模型后识别效果不一致
问题描述 / Problem Description
训练文本检测模型,训练后的checkpoints模型与转换后的inference模型识别效果不一致
运行环境 / Runtime Environment
- OS: Windows10
- Paddle: 2.4.2
- PaddleOCR: 2.7.0
复现代码 / 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
预测结果正常:
转推理模型: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
预测结果不正常:
配置文件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:
- ./train_data/wenbenjiance/train.txt ratio_list: [1.0] transforms:
- DecodeImage: img_mode: BGR channel_first: false
- DetLabelEncode: null
- IaaAugment: augmenter_args:
- type: Fliplr args: p: 0.5
- type: Affine args: rotate:
- -10
- 10
- type: Resize args: size:
- 0.5
- 3
- EastRandomCropData: size:
- 960
- 960 max_tries: 50 keep_ratio: true
- MakeBorderMap: shrink_ratio: 0.4 thresh_min: 0.3 thresh_max: 0.7
- MakeShrinkMap: shrink_ratio: 0.4 min_text_size: 8
- NormalizeImage: scale: 1./255. mean:
- 0.485
- 0.456
- 0.406 std:
- 0.229
- 0.224
- 0.225 order: hwc
- ToCHWImage: null
- KeepKeys: keep_keys:
- image
- threshold_map
- threshold_mask
- shrink_map
- shrink_mask loader: shuffle: true drop_last: false batch_size_per_card: 4 num_workers: 0 Eval: dataset: name: SimpleDataSet data_dir: ./train_data/wenbenjiance/imgs label_file_list:
- ./train_data/wenbenjiance/val.txt transforms:
- DecodeImage: img_mode: BGR channel_first: false
- DetLabelEncode: null
- DetResizeForTest: null
- NormalizeImage: scale: 1./255. mean:
- 0.485
- 0.456
- 0.406 std:
- 0.229
- 0.224
- 0.225 order: hwc
- ToCHWImage: null
- KeepKeys: keep_keys:
- image
- shape
- polys
- ignore_tags loader: shuffle: false drop_last: false batch_size_per_card: 1 num_workers: 0