Global:
  use_gpu: true
  epoch_num: 1200
  log_smooth_window: 20
  print_batch_step: 2
  save_model_dir: ./output/det_r50_vd/
  save_epoch_step: 1200
  # evaluation is run every 5000 iterations after the 4000th iteration
  eval_batch_step: 8
  # if pretrained_model is saved in static mode, load_static_weights must set to True
  load_static_weights: True
  cal_metric_during_train: False
  pretrained_model: ./pretrain_models/ResNet50_vd_ssld_pretrained/
  checkpoints:
  save_inference_dir:
  use_visualdl: True
  infer_img: doc/imgs_en/img_10.jpg
  save_res_path: ./output/det_db/predicts_db.txt

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

Architecture:
  type: det
  algorithm: DB
  Transform:
  Backbone:
    name: ResNet
    layers: 50
  Neck:
    name: FPN
    out_channels: 256
  Head:
    name: DBHead
    k: 50

Loss:
  name: DBLoss
  balance_loss: true
  main_loss_type: DiceLoss
  alpha: 5
  beta: 10
  ohem_ratio: 3

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: ./detection/
    file_list:
      - ./detection/train_icdar2015_label.txt # dataset1
    ratio_list: [1.0]
    transforms:
      - DecodeImage: # load image
          img_mode: BGR
          channel_first: False
      - DetLabelEncode: # Class handling label
      - IaaAugment:
          augmenter_args:
            - { 'type': Fliplr, 'args': { 'p': 0.5 } }
            - { 'type': Affine, 'args': { 'rotate': [ -10,10 ] } }
            - { 'type': Resize,'args': { 'size': [ 0.5,3 ] } }
      - EastRandomCropData:
          size: [ 640,640 ]
          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'] # dataloader will return list in this order
  loader:
    shuffle: True
    drop_last: False
    batch_size: 16
    num_workers: 8

EVAL:
  dataset:
    name: SimpleDataSet
    data_dir: ./detection/
    file_list:
      - ./detection/test_icdar2015_label.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: 1 # must be 1
    num_workers: 8