yolov3_mobilenet_v1_fruit.yml 2.9 KB
Newer Older
1 2 3 4 5
architecture: YOLOv3
use_gpu: true
max_iters: 20000
log_smooth_window: 20
save_dir: output
6
snapshot_iter: 200
7 8 9 10 11 12
metric: VOC
map_type: 11point
pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar
weights: output/yolov3_mobilenet_v1_fruit/best_model
num_classes: 3
finetune_exclude_pretrained_params: ['yolo_output']
K
Kaipeng Deng 已提交
13
use_fine_grained_loss: false
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

YOLOv3:
  backbone: MobileNet
  yolo_head: YOLOv3Head

MobileNet:
  norm_type: sync_bn
  norm_decay: 0.
  conv_group_scale: 1
  with_extra_blocks: false

YOLOv3Head:
  anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]]
  anchors: [[10, 13], [16, 30], [33, 23],
            [30, 61], [62, 45], [59, 119],
            [116, 90], [156, 198], [373, 326]]
  norm_decay: 0.
K
Kaipeng Deng 已提交
31
  yolo_loss: YOLOv3Loss
32 33 34 35 36 37 38 39
  nms:
    background_label: -1
    keep_top_k: 100
    nms_threshold: 0.45
    nms_top_k: 1000
    normalized: false
    score_threshold: 0.01

K
Kaipeng Deng 已提交
40
YOLOv3Loss:
41 42 43 44
  # 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
K
Kaipeng Deng 已提交
45 46 47 48
  batch_size: 8
  ignore_thresh: 0.7
  label_smooth: true

49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
LearningRate:
  base_lr: 0.00001
  schedulers:
  - !PiecewiseDecay
    gamma: 0.1
    milestones:
    - 15000
    - 18000
  - !LinearWarmup
    start_factor: 0.
    steps: 100

OptimizerBuilder:
  optimizer:
    momentum: 0.9
    type: Momentum
  regularizer:
    factor: 0.0005
    type: L2

69 70 71 72 73 74 75
_READER_: 'yolov3_reader.yml'
# will merge TrainReader into yolov3_reader.yml
TrainReader:
  inputs_def:
    image_shape: [3, 608, 608]
    fields: ['image', 'gt_bbox', 'gt_class', 'gt_score']
    num_max_boxes: 50
76
  dataset:
77
    !VOCDataSet
W
wangguanzhong 已提交
78
    dataset_dir: dataset/fruit
79 80
    anno_path: train.txt
    with_background: false
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
    use_default_label: false
  sample_transforms:
  - !DecodeImage
    to_rgb: true
    with_mixup: false
  - !NormalizeBox {}
  - !ExpandImage
    max_ratio: 4.0
    mean: [123.675, 116.28, 103.53]
    prob: 0.5
  - !RandomInterpImage
    max_size: 0
    target_size: 608
  - !RandomFlipImage
    is_normalized: true
    prob: 0.5
  - !NormalizeImage
98 99
    mean: [0.485, 0.456, 0.406]
    std: [0.229, 0.224, 0.225]
100
    is_scale: true
101 102 103 104 105 106 107
    is_channel_first: false
  - !PadBox
    num_max_boxes: 50
  - !BboxXYXY2XYWH {}
  batch_transforms:
  - !RandomShape
    sizes: [608]
108 109 110
  - !Permute
    channel_first: true
    to_bgr: false
111 112 113
  batch_size: 1
  shuffle: true
  mixup_epoch: -1
114

115
EvalReader:
116
  batch_size: 1
117 118 119 120
  inputs_def:
    image_shape: [3, 608, 608]
    fields: ['image', 'im_size', 'im_id', 'gt_bbox', 'gt_class', 'is_difficult']
    num_max_boxes: 50
121
  dataset:
122
    !VOCDataSet
W
wangguanzhong 已提交
123
    dataset_dir: dataset/fruit
124
    anno_path: val.txt
125
    use_default_label: false
126
    with_background: false
127

128
TestReader:
129 130
  batch_size: 1
  dataset:
131
    !ImageFolder
W
wangguanzhong 已提交
132
    anno_path: dataset/fruit/label_list.txt
133
    use_default_label: false
134
    with_background: false