forked from PulseFocusPlatform/PulseFocusPlatform
130 lines
2.7 KiB
YAML
130 lines
2.7 KiB
YAML
architecture: YOLOv3
|
|
use_gpu: true
|
|
max_iters: 20000
|
|
log_iter: 20
|
|
save_dir: output
|
|
snapshot_iter: 200
|
|
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']
|
|
use_fine_grained_loss: false
|
|
|
|
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.
|
|
yolo_loss: YOLOv3Loss
|
|
nms:
|
|
background_label: -1
|
|
keep_top_k: 100
|
|
nms_threshold: 0.45
|
|
nms_top_k: 1000
|
|
normalized: false
|
|
score_threshold: 0.01
|
|
|
|
YOLOv3Loss:
|
|
ignore_thresh: 0.7
|
|
label_smooth: true
|
|
|
|
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
|
|
|
|
_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
|
|
dataset:
|
|
!VOCDataSet
|
|
dataset_dir: dataset/fruit
|
|
anno_path: train.txt
|
|
with_background: false
|
|
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
|
|
mean: [0.485, 0.456, 0.406]
|
|
std: [0.229, 0.224, 0.225]
|
|
is_scale: true
|
|
is_channel_first: false
|
|
- !PadBox
|
|
num_max_boxes: 50
|
|
- !BboxXYXY2XYWH {}
|
|
batch_transforms:
|
|
- !RandomShape
|
|
sizes: [608]
|
|
- !Permute
|
|
channel_first: true
|
|
to_bgr: false
|
|
batch_size: 1
|
|
shuffle: true
|
|
mixup_epoch: -1
|
|
|
|
EvalReader:
|
|
batch_size: 1
|
|
inputs_def:
|
|
image_shape: [3, 608, 608]
|
|
fields: ['image', 'im_size', 'im_id', 'gt_bbox', 'gt_class', 'is_difficult']
|
|
num_max_boxes: 50
|
|
dataset:
|
|
!VOCDataSet
|
|
dataset_dir: dataset/fruit
|
|
anno_path: val.txt
|
|
use_default_label: false
|
|
with_background: false
|
|
|
|
TestReader:
|
|
batch_size: 1
|
|
dataset:
|
|
!ImageFolder
|
|
anno_path: dataset/fruit/label_list.txt
|
|
use_default_label: false
|
|
with_background: false
|