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)
https://paddlepaddle.github.io/PaddleOCR/
Apache License 2.0
43.9k stars 7.8k forks source link

识别模型训练差异 #4143

Closed lin-0015 closed 1 year ago

lin-0015 commented 3 years ago

请问下ocr版本release/2.1 release/2.2 release/2.3区别在哪呢?他们是分支??直接就发布2.3? 为什么两段式算法中识别部分有些模型差别很大? 哪能去看代码提交记录吗,想看看当时是为什么那么修改

2.3版本训练backbone为MobileNetV3的db算法识别模型 一样的预训练模型 一样的配置参数 识别验证集准确率只有40%

2.1 可以达到 97%左右

LDOUBLEV commented 3 years ago

2.1到2.3分支的发布每次都更新了一些新的内容;

2.3版本训练backbone为MobileNetV3的db算法识别模型 一样的预训练模型 一样的配置参数 识别验证集准确率只有40% 2.1 可以达到 97%左右

你用的是哪个配置文件?

lin-0015 commented 3 years ago

2.1到2.3分支的发布每次都更新了一些新的内容;

2.3版本训练backbone为MobileNetV3的db算法识别模型 一样的预训练模型 一样的配置参数 识别验证集准确率只有40% 2.1 可以达到 97%左右

你用的是哪个配置文件?

rec_mv3_tps_bilstm_ctc

Global: use_gpu: True epoch_num: 3000 log_smooth_window: 20 print_batch_step: 10 save_model_dir: /paddle/PaddleOCR_v2.3/output/rec/mv3_tps_bilstm_ctc/ save_epoch_step: 500 eval_batch_step: [0, 40] cal_metric_during_train: True pretrained_model: /paddle/PaddleOCR_v2.3/pretrain_models/rec_mv3_tps_bilstm_ctc_v2.0_train/best_accuracy checkpoints: /paddle/PaddleOCR_v2.3/output/rec/mv3_tps_bilstm_ctc/latest save_inference_dir: /paddle/PaddleOCR_v2.3/inference/rec_crnn/rec/ use_visualdl: False infer_img: doc/imgs_words_en/word_10.png character_dict_path: ppocr/utils/number_dict.txt character_type: ch max_text_length: 25 infer_mode: False use_space_char: False save_res_path: ./output/rec/predicts_r34_vd_tps_bilstm_ctc.txt debug : False distributed : True

Optimizer: name: Adam beta1: 0.9 beta2: 0.999 lr: learning_rate: 0.001 regularizer: name: 'L2' factor: 0

Architecture: model_type: rec algorithm: STARNet Transform: name: TPS num_fiducial: 20 loc_lr: 0.1 model_name: small Backbone: name: MobileNetV3 scale: 0.5 model_name: large Neck: name: SequenceEncoder encoder_type: rnn hidden_size: 96 Head: name: CTCHead fc_decay: 0.0004

Loss: name: CTCLoss

PostProcess: name: CTCLabelDecode

Metric: name: RecMetric main_indicator: acc

Train: dataset: name: SimpleDataSet data_dir: /paddle/PaddleOCR_v2.3/train_data/ label_file_list:

Eval: dataset: name: SimpleDataSet data_dir: /paddle/PaddleOCR_v2.3/train_data/ label_file_list:

lin-0015 commented 3 years ago

2.1到2.3分支的发布每次都更新了一些新的内容;

2.3版本训练backbone为MobileNetV3的db算法识别模型 一样的预训练模型 一样的配置参数 识别验证集准确率只有40% 2.1 可以达到 97%左右

你用的是哪个配置文件?

日志信息如下 再次确认配置文件和预训练模型的一致性 image

image

tink2123 commented 3 years ago

看两个log里的学习率不同且和官方配置并不一致,建议使用同一份配置文件训练,另外迭代轮次也不一致,请对比同一轮次的loss和acc。

lin-0015 commented 3 years ago

看两个log里的学习率不同且和官方配置并不一致,建议使用同一份配置文件训练,另外迭代轮次也不一致,请对比同一轮次的loss和acc。 配置文件对照过了 日志信息前也有

image

image image

LDOUBLEV commented 3 years ago

两个日志里的学习率不一样 image

lin-0015 commented 3 years ago

两个日志里的学习率不一样 image

我之后改过 ,一致的也试了的

lin-0015 commented 3 years ago

2.1到2.3分支的发布每次都更新了一些新的内容;

2.3版本训练backbone为MobileNetV3的db算法识别模型 一样的预训练模型 一样的配置参数 识别验证集准确率只有40% 2.1 可以达到 97%左右

你用的是哪个配置文件?

image image image 2.3训练的比2.1快很多

Gmgge commented 3 years ago

ppocr2.3对应文章PP-OCRv2 Bag of Tricks for Ultra Lightweight OCR System,相对原先PP-OCR A Practical Ultra Lightweight OCR System做了一些改进,简单浏览下文章应该对该问题有所帮助。

lin-0015 commented 3 years ago

Bag of Tricks for Ultra Lightweight OCR System

好的 谢谢啦

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.