yolov4_cspdarknet_voc.yml 4.0 KB
Newer Older
W
wangguanzhong 已提交
1 2
architecture: YOLOv4
use_gpu: true
W
wangguanzhong 已提交
3
max_iters: 140000
W
wangguanzhong 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
log_smooth_window: 20
save_dir: output
snapshot_iter: 1000
metric: VOC
pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/yolov4_cspdarknet.pdparams
weights: output/yolov4_cspdarknet_voc/model_final
num_classes: 20
use_fine_grained_loss: true

YOLOv4:
  backbone: CSPDarkNet
  yolo_head: YOLOv4Head

CSPDarkNet:
  norm_type: sync_bn
  norm_decay: 0.
  depth: 53

YOLOv4Head:
  anchors: [[12, 16], [19, 36], [40, 28], [36, 75], [76, 55],
            [72, 146], [142, 110], [192, 243], [459, 401]]
  anchor_masks: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
  nms:
    background_label: -1
    keep_top_k: -1
    nms_threshold: 0.45
    nms_top_k: -1
    normalized: true
    score_threshold: 0.001
  downsample: [8,16,32]

YOLOv3Loss:
  # batch_size here is only used for fine grained loss, not used
  # for training batch_size setting, training batch_size setting
  # is in configs/yolov3_reader.yml TrainReader.batch_size, batch
  # size here should be set as same value as TrainReader.batch_size
  batch_size: 4
  ignore_thresh: 0.7
  label_smooth: true
  downsample: [8,16,32]
  #scale_x_y: [1.2, 1.1, 1.05]
  iou_loss: IouLoss
  match_score: true

IouLoss:
  loss_weight: 0.07
  max_height: 608
  max_width: 608
  ciou_term: true
  loss_square: true

LearningRate:
  base_lr: 0.0001
  schedulers:
  - !PiecewiseDecay
    gamma: 0.1
    milestones:
W
wangguanzhong 已提交
61 62
    - 110000
    - 130000
W
wangguanzhong 已提交
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
  - !LinearWarmup
    start_factor: 0.
    steps: 1000

OptimizerBuilder:
  clip_grad_by_norm: 10.
  optimizer:
    momentum: 0.949
    type: Momentum
  regularizer:
    factor: 0.0005
    type: L2

_READER_: '../yolov3_reader.yml'
TrainReader:
  inputs_def:
    fields: ['image', 'gt_bbox', 'gt_class', 'gt_score', 'im_id']
    num_max_boxes: 50
  dataset:
    !VOCDataSet
      anno_path: trainval.txt
      dataset_dir: dataset/voc
      with_background: false
  sample_transforms:
    - !DecodeImage
      to_rgb: True
    - !ColorDistort {}
    - !RandomExpand
      fill_value: [123.675, 116.28, 103.53]
    - !RandomCrop {}
    - !RandomFlipImage
      is_normalized: false
    - !NormalizeBox {}
    - !PadBox
      num_max_boxes: 50
    - !BboxXYXY2XYWH {}
  batch_transforms:
  - !RandomShape
    sizes: [320, 352, 384, 416, 448, 480, 512, 544, 576, 608]
    random_inter: True
  - !NormalizeImage
    mean: [0.,0.,0.]
    std: [1.,1.,1.]
    is_scale: True
    is_channel_first: false
  - !Permute
    to_bgr: false
    channel_first: True
  # Gt2YoloTarget is only used when use_fine_grained_loss set as true,
  # this operator will be deleted automatically if use_fine_grained_loss
  # is set as false
  - !Gt2YoloTarget
    anchor_masks: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
    anchors: [[12, 16], [19, 36], [40, 28],
              [36, 75], [76, 55], [72, 146],
              [142, 110], [192, 243], [459, 401]]
    downsample_ratios: [8, 16, 32]
  batch_size: 4
  shuffle: true
  drop_last: true
  worker_num: 8
  bufsize: 16
  use_process: true
  drop_empty: false

EvalReader:
  inputs_def:
    fields: ['image', 'im_size', 'im_id', 'gt_bbox', 'gt_class', 'is_difficult']
    num_max_boxes: 90
  dataset:
    !VOCDataSet
      anno_path: test.txt
      dataset_dir: dataset/voc
      use_default_label: true
      with_background: false
  sample_transforms:
    - !DecodeImage
      to_rgb: True
    - !ResizeImage
      target_size: 608
      interp: 1
    - !NormalizeImage
      mean: [0., 0., 0.]
      std: [1., 1., 1.]
      is_scale: True
      is_channel_first: false
    - !PadBox
      num_max_boxes: 90
    - !Permute
      to_bgr: false
      channel_first: True
  batch_size: 4
  drop_empty: false
  worker_num: 8
  bufsize: 16

TestReader:
  dataset:
    !ImageFolder
    use_default_label: true
    with_background: false
  sample_transforms:
    - !DecodeImage
      to_rgb: True
    - !ResizeImage
      target_size: 608
      interp: 1
    - !NormalizeImage
      mean: [0., 0., 0.]
      std: [1., 1., 1.]
      is_scale: True
      is_channel_first: false
    - !Permute
      to_bgr: false
      channel_first: True