-
系统环境/System Environment: ubuntu20.04
-
版本号/Version:Paddle: PaddleOCR: 问题相关组件/Related components: paddle 1.0.2 paddle-bfloat 0.1.2 paddle2onnx 0.9.7 paddlefsl 1.1.0 paddlenlp 2.4.1 paddleocr 2.6.1.2 paddlepaddle-gpu 2.4.1.post116 pandas 1.1.5 pandocfilters 1.5.0
-
运行指令/Command Code:
python3 tools/train.py -c configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_dml_zzszyfp.yml \ -o Architecture.Models.Student.pretrained=./pretrain_models/ResNet50_vd_ssld_pretrained \ Architecture.Models.Student2.pretrained=./pretrain_models/ResNet50_vd_ssld_pretrained \ Global.save_model_dir=/home/DiskA/zncsPython/picture_ocr/zzszyfp_v1/model/det/output/ch_db_mv3/
-
完整报错/Complete Error Message: 评估的结果 : hmean:0.6829268292682926 precision:0.6666666666666666 recall:0.7 导致后面的导出的模型预测结果不太理想。是标记数据问题?还是训练方法问题?还是配置问题。能不能指点一下
-
ch_PP-OCRv3_det_dml_zzszyfp.yml 文件
Global: use_gpu: true #epoch_num: 1200 epoch_num: 120 log_smooth_window: 20 print_batch_step: 2 save_model_dir: /home/DiskA/zncsPython/picture_ocr/zzszyfp_v1/model/det/output/ch_db_mv3/ #save_epoch_step: 1200 save_epoch_step: 1200 # evaluation is run every 5000 iterations after the 4000th iteration # eval_batch_step: [3000, 2000] eval_batch_step: [0, 20] cal_metric_during_train: False pretrained_model: ./pretrain_models/MobileNetV3_large_x0_5_pretrained checkpoints: save_inference_dir: use_visualdl: False infer_img: doc/imgs_en/img_10.jpg save_res_path: ./output/det_db/predicts_db.txt
Architecture: name: DistillationModel algorithm: Distillation model_type: det Models: Student: return_all_feats: false model_type: det algorithm: DB Backbone: name: ResNet_vd in_channels: 3 layers: 50 Neck: name: LKPAN out_channels: 256 Head: name: DBHead kernel_list: [7,2,2] k: 50 Student2: return_all_feats: false model_type: det algorithm: DB Backbone: name: ResNet_vd in_channels: 3 layers: 50 Neck: name: LKPAN out_channels: 256 Head: name: DBHead kernel_list: [7,2,2] k: 50
Loss: name: CombinedLoss loss_config_list:
- DistillationDMLLoss:
model_name_pairs:
- ["Student", "Student2"]
maps_name: "thrink_maps"
weight: 1.0
act: None
model_name_pairs: ["Student", "Student2"] key: maps
- ["Student", "Student2"]
maps_name: "thrink_maps"
weight: 1.0
act: None
- DistillationDBLoss:
weight: 1.0
model_name_list: ["Student", "Student2"]
key: maps
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.001 warmup_epoch: 2 regularizer: name: 'L2' factor: 0
PostProcess: name: DistillationDBPostProcess model_name: ["Student", "Student2"] key: head_out thresh: 0.3 box_thresh: 0.6 max_candidates: 1000 unclip_ratio: 1.5
Metric: name: DistillationMetric base_metric_name: DetMetric main_indicator: hmean key: "Student"
Train: dataset: name: SimpleDataSet data_dir: /home/DiskA/zncsPython/picture_ocr/zzszyfp_v1/split_data/det label_file_list:
- /home/DiskA/zncsPython/picture_ocr/zzszyfp_v1/split_data/det/train.txt ratio_list: [1.0] transforms:
- DecodeImage: # load image img_mode: BGR channel_first: False
- DetLabelEncode: # Class handling label
- CopyPaste:
- 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:
- KeepKeys:
keep_keys: ['image', 'threshold_map', 'threshold_mask', 'shrink_map', 'shrink_mask'] # the order of the dataloader list
loader:
shuffle: True
drop_last: False
batch_size_per_card: 8
batch_size_per_card: 2 num_workers: 4
Eval: dataset: name: SimpleDataSet data_dir: /home/DiskA/zncsPython/picture_ocr/zzszyfp_v1/split_data/det label_file_list:
- /home/DiskA/zncsPython/picture_ocr/zzszyfp_v1/split_data/det/val.txt transforms:
- DecodeImage: # load image img_mode: BGR channel_first: False
- DetLabelEncode: # Class handling label
- DetResizeForTest: image_shape: [736, 1280]
- NormalizeImage: scale: 1./255. mean: [0.485, 0.456, 0.406] std: [0.229, 0.224, 0.225] order: 'hwc'
- ToCHWImage:
- KeepKeys: keep_keys: ['image', 'shape', 'polys', 'ignore_tags'] loader: shuffle: False drop_last: False batch_size_per_card: 1 # must be 1 num_workers: 2
- 标注文件label.txt
类似这种格式大概20张
/home/DiskA/zncsPython/picture_ocr/zzszyfp_v1/split_data/det/train/zzszyfp_9.jpg [{"transcription": "连云港弘果电子有限员任公司", "points": [[138, 80], [407, 80], [407, 94], [138, 94]], "difficult": false, "key_cls": "购买方名称"}, {"transcription": "9132070605183856951", "points": [[137, 95], [407, 95], [407, 107], [137, 107]], "difficult": false, "key_cls": "购买方纳税人识别号"}, {"transcription": "江苏省连云港市海州区周培街魏书路16号0518-17417186", "points": [[138, 108], [407, 108], [407, 120], [138, 120]], "difficult": false, "key_cls": "购买方地址电话"}, {"transcription": "中国建设银行连云港市海州区支行41123350084496", "points": [[138, 124], [408, 124], [408, 134], [138, 134]], "difficult": false, "key_cls": "购买方开户行及账号"}, {"transcription": "(详见销货清单)", "points": [[54, 153], [186, 153], [186, 169], [54, 169]], "difficult": false, "key_cls": "项目名称1"}, {"transcription": "无法识别", "points": [[188, 153], [253, 153], [253, 167], [188, 167]], "difficult": false, "key_cls": "规格型号1"}, {"transcription": "无法识别", "points": [[256, 151], [288, 151], [288, 167], [256, 167]], "difficult": false, "key_cls": "单位1"}, {"transcription": "无法识别", "points": [[289, 151], [343, 151], [343, 170], [289, 170]], "difficult": false, "key_cls": "数量1"}, {"transcription": "无法识别", "points": [[344, 150], [418, 150], [418, 169], [344, 169]], "difficult": false, "key_cls": "单价1"}, {"transcription": "1441200.00", "points": [[421, 151], [506, 151], [506, 169], [421, 169]], "difficult": false, "key_cls": "金额1"}, {"transcription": "酒", "points": [[509, 152], [535, 152], [535, 171], [509, 171]], "difficult": false, "key_cls": "税率1"}, {"transcription": "187356.00", "points": [[536, 153], [638, 153], [638, 170], [536, 170]], "difficult": false, "key_cls": "税额1"}, {"transcription": "¥1441200.00", "points": [[421, 235], [505, 235], [505, 253], [421, 253]], "difficult": false, "key_cls": "合计金额"}, {"transcription": "0095E81夫", "points": [[535, 235], [637, 235], [637, 251], [535, 251]], "difficult": false, "key_cls": "合计税额"}, {"transcription": "壹佰陆洽贰万仟伍伍拾陆元整", "points": [[204, 255], [435, 255], [435, 271], [204, 271]], "difficult": false, "key_cls": "价税合计大写"}, {"transcription": "1628556.00", "points": [[529, 254], [635, 254], [635, 273], [529, 273]], "difficult": false, "key_cls": "价税合计小写"}, {"transcription": "谷满堂 ", "points": [[354, 328], [416, 328], [416, 343], [354, 343]], "difficult": false, "key_cls": "开票人"}, {"transcription": "2022年04月11日", "points": [[550, 56], [641, 56], [641, 74], [550, 74]], "difficult": false, "key_cls": "开票日期"}, {"transcription": "39882604", "points": [[491, 12], [592, 12], [592, 43], [491, 43]], "difficult": false, "key_cls": "发票号"}, {"transcription": "3207181140", "points": [[111, 19], [215, 19], [215, 39], [111, 39]], "difficult": false, "key_cls": "other"}]
- 是用paddleocrLable 标注的。如下图
![image](https://user-images.githubusercontent.com/32863094/218388700-798c425b-258e-4afc-bd21-4d58505ee2ac.png)