e2e_r50_vd_pg.yml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. Global:
  2. use_gpu: True
  3. epoch_num: 600
  4. log_smooth_window: 20
  5. print_batch_step: 10
  6. save_model_dir: ./output/pgnet_r50_vd_totaltext/
  7. save_epoch_step: 10
  8. # evaluation is run every 0 iterationss after the 1000th iteration
  9. eval_batch_step: [ 0, 1000 ]
  10. cal_metric_during_train: False
  11. pretrained_model:
  12. checkpoints:
  13. save_inference_dir:
  14. use_visualdl: False
  15. infer_img:
  16. infer_visual_type: EN # two mode: EN is for english datasets, CN is for chinese datasets
  17. valid_set: totaltext # two mode: totaltext valid curved words, partvgg valid non-curved words
  18. save_res_path: ./output/pgnet_r50_vd_totaltext/predicts_pgnet.txt
  19. character_dict_path: ppocr/utils/ic15_dict.txt
  20. character_type: EN
  21. max_text_length: 50 # the max length in seq
  22. max_text_nums: 30 # the max seq nums in a pic
  23. tcl_len: 64
  24. Architecture:
  25. model_type: e2e
  26. algorithm: PGNet
  27. Transform:
  28. Backbone:
  29. name: ResNet
  30. layers: 50
  31. Neck:
  32. name: PGFPN
  33. Head:
  34. name: PGHead
  35. character_dict_path: ppocr/utils/ic15_dict.txt # the same as Global:character_dict_path
  36. Loss:
  37. name: PGLoss
  38. tcl_bs: 64
  39. max_text_length: 50 # the same as Global: max_text_length
  40. max_text_nums: 30 # the same as Global:max_text_nums
  41. pad_num: 36 # the length of dict for pad
  42. Optimizer:
  43. name: Adam
  44. beta1: 0.9
  45. beta2: 0.999
  46. lr:
  47. name: Cosine
  48. learning_rate: 0.001
  49. warmup_epoch: 50
  50. regularizer:
  51. name: 'L2'
  52. factor: 0.0001
  53. PostProcess:
  54. name: PGPostProcess
  55. score_thresh: 0.5
  56. mode: fast # fast or slow two ways
  57. point_gather_mode: align # same as PGProcessTrain: point_gather_mode
  58. Metric:
  59. name: E2EMetric
  60. mode: A # two ways for eval, A: label from txt, B: label from gt_mat
  61. gt_mat_dir: ./train_data/total_text/gt # the dir of gt_mat
  62. character_dict_path: ppocr/utils/ic15_dict.txt
  63. main_indicator: f_score_e2e
  64. Train:
  65. dataset:
  66. name: PGDataSet
  67. data_dir: ./train_data/total_text/train
  68. label_file_list: [./train_data/total_text/train/train.txt]
  69. ratio_list: [1.0]
  70. transforms:
  71. - DecodeImage: # load image
  72. img_mode: BGR
  73. channel_first: False
  74. - E2ELabelEncodeTrain:
  75. - PGProcessTrain:
  76. batch_size: 14 # same as loader: batch_size_per_card
  77. use_resize: True
  78. use_random_crop: False
  79. min_crop_size: 24
  80. min_text_size: 4
  81. max_text_size: 512
  82. point_gather_mode: align # two mode: align and none, align mode is better than none mode
  83. - KeepKeys:
  84. keep_keys: [ 'images', 'tcl_maps', 'tcl_label_maps', 'border_maps','direction_maps', 'training_masks', 'label_list', 'pos_list', 'pos_mask' ] # dataloader will return list in this order
  85. loader:
  86. shuffle: True
  87. drop_last: True
  88. batch_size_per_card: 14
  89. num_workers: 16
  90. Eval:
  91. dataset:
  92. name: PGDataSet
  93. data_dir: ./train_data/total_text/test
  94. label_file_list: [./train_data/total_text/test/test.txt]
  95. transforms:
  96. - DecodeImage: # load image
  97. img_mode: BGR
  98. channel_first: False
  99. - E2ELabelEncodeTest:
  100. - E2EResizeForTest:
  101. max_side_len: 768
  102. - NormalizeImage:
  103. scale: 1./255.
  104. mean: [ 0.485, 0.456, 0.406 ]
  105. std: [ 0.229, 0.224, 0.225 ]
  106. order: 'hwc'
  107. - ToCHWImage:
  108. - KeepKeys:
  109. keep_keys: [ 'image', 'shape', 'polys', 'texts', 'ignore_tags', 'img_id']
  110. loader:
  111. shuffle: False
  112. drop_last: False
  113. batch_size_per_card: 1 # must be 1
  114. num_workers: 2