yolov4_cspdarknet_voc.yml 4.4 KB
Newer Older
W
wangguanzhong 已提交
1 2
architecture: YOLOv4
use_gpu: true
D
dengkaipeng 已提交
3
max_iters: 70000
W
wangguanzhong 已提交
4 5
log_smooth_window: 20
save_dir: output
D
dengkaipeng 已提交
6
snapshot_iter: 2000
W
wangguanzhong 已提交
7
metric: VOC
D
dengkaipeng 已提交
8
pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/CSPDarkNet53_pretrained.pdparams
W
wangguanzhong 已提交
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
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]
W
wangguanzhong 已提交
34
  scale_x_y: [1.2, 1.1, 1.05]
W
wangguanzhong 已提交
35 36 37 38 39 40

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
D
dengkaipeng 已提交
41
  batch_size: 8
W
wangguanzhong 已提交
42
  ignore_thresh: 0.7
D
dengkaipeng 已提交
43
  label_smooth: false
W
wangguanzhong 已提交
44
  downsample: [8,16,32]
W
wangguanzhong 已提交
45
  scale_x_y: [1.2, 1.1, 1.05]
W
wangguanzhong 已提交
46
  iou_loss: IouLoss
D
dengkaipeng 已提交
47
  ignore_class_score_thresh: 0.25
W
wangguanzhong 已提交
48 49 50 51 52 53

IouLoss:
  loss_weight: 0.07
  max_height: 608
  max_width: 608
  ciou_term: true
D
dengkaipeng 已提交
54
  loss_square: false
W
wangguanzhong 已提交
55 56

LearningRate:
D
dengkaipeng 已提交
57
  base_lr: 0.0013
W
wangguanzhong 已提交
58 59 60 61
  schedulers:
  - !PiecewiseDecay
    gamma: 0.1
    milestones:
D
dengkaipeng 已提交
62 63
    - 56000
    - 62000
W
wangguanzhong 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
  - !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:
D
dengkaipeng 已提交
80 81 82
    fields: ['image', 'gt_bbox', 'gt_class', 'gt_score']
    num_max_boxes: 90
  use_fine_grained_loss: true
W
wangguanzhong 已提交
83 84 85 86 87 88 89 90
  dataset:
    !VOCDataSet
      anno_path: trainval.txt
      dataset_dir: dataset/voc
      with_background: false
  sample_transforms:
    - !DecodeImage
      to_rgb: True
D
dengkaipeng 已提交
91 92 93 94 95 96 97 98
      with_mosaic: True
    - !MosaicImage
      offset: 0.3
      mosaic_scale: [0.8, 1.0]
      sample_scale: [0.3, 1.0]
      sample_flip: 0.5
      use_cv2: true
      interp: 2
W
wangguanzhong 已提交
99 100
    - !NormalizeBox {}
    - !PadBox
D
dengkaipeng 已提交
101
      num_max_boxes: 90
W
wangguanzhong 已提交
102 103
    - !BboxXYXY2XYWH {}
  batch_transforms:
D
dengkaipeng 已提交
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
    - !RandomShape
      sizes: [320, 352, 384, 416, 448, 480, 512, 544, 576, 608]
      random_inter: True
    - !NormalizeImage
      mean: [0.485, 0.456, 0.406]
      std: [0.229, 0.224, 0.225]
      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]
      num_classes: 20
      iou_thresh: 0.213
  batch_size: 8
  mosaic_prob: 0.3
  mosaic_epoch: 300
W
wangguanzhong 已提交
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
  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
D
dengkaipeng 已提交
151
      interp: 2
W
wangguanzhong 已提交
152
    - !NormalizeImage
D
dengkaipeng 已提交
153 154
      mean: [0.485, 0.456, 0.406]
      std: [0.229, 0.224, 0.225]
W
wangguanzhong 已提交
155 156 157 158 159 160 161
      is_scale: True
      is_channel_first: false
    - !PadBox
      num_max_boxes: 90
    - !Permute
      to_bgr: false
      channel_first: True
D
dengkaipeng 已提交
162
  batch_size: 8
W
wangguanzhong 已提交
163 164 165 166 167
  drop_empty: false
  worker_num: 8
  bufsize: 16

TestReader:
D
dengkaipeng 已提交
168 169 170
  inputs_def:
    image_shape: [3, 608, 608]
    fields: ['image', 'im_size', 'im_id']
W
wangguanzhong 已提交
171 172 173 174 175 176 177 178 179 180 181
  dataset:
    !ImageFolder
    use_default_label: true
    with_background: false
  sample_transforms:
    - !DecodeImage
      to_rgb: True
    - !ResizeImage
      target_size: 608
      interp: 1
    - !NormalizeImage
D
dengkaipeng 已提交
182 183
      mean: [0.485, 0.456, 0.406]
      std: [0.229, 0.224, 0.225]
W
wangguanzhong 已提交
184 185 186 187 188
      is_scale: True
      is_channel_first: false
    - !Permute
      to_bgr: false
      channel_first: True