Skip to content

Commit

Permalink
Update YOLOv3_ENHANCEMENT.md (PaddlePaddle#206)
Browse files Browse the repository at this point in the history
* update YOLOv3_ENHANCEMENT.md
* update IoUloss and DropBlock configs for YOLOv3 related configs
  • Loading branch information
Noplz authored Feb 5, 2020
1 parent 90a0e6c commit 791b8f4
Show file tree
Hide file tree
Showing 7 changed files with 211 additions and 123 deletions.
104 changes: 104 additions & 0 deletions configs/dcn/yolov3_enhance_reader.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
TrainReader:
inputs_def:
fields: ['image', 'gt_bbox', 'gt_class', 'gt_score']
num_max_boxes: 50
use_fine_grained_loss: true
dataset:
!COCODataSet
image_dir: train2017
anno_path: annotations/instances_train2017.json
dataset_dir: dataset/coco
with_background: false
sample_transforms:
- !DecodeImage
to_rgb: True
- !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.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
is_scale: False
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: [[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]]
downsample_ratios: [32, 16, 8]
batch_size: 8
shuffle: true
drop_last: true
worker_num: 8
bufsize: 32
use_process: true

EvalReader:
inputs_def:
image_shape: [3, 608, 608]
fields: ['image', 'im_size', 'im_id']
num_max_boxes: 50
dataset:
!COCODataSet
dataset_dir: dataset/coco
anno_path: annotations/instances_val2017.json
image_dir: val2017
with_background: false
sample_transforms:
- !DecodeImage
to_rgb: True
with_mixup: false
- !ResizeImage
interp: 2
target_size: 608
- !NormalizeImage
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
is_scale: False
is_channel_first: false
- !Permute
to_bgr: false
channel_first: True
batch_size: 8
drop_empty: false
worker_num: 8
bufsize: 32

TestReader:
inputs_def:
image_shape: [3, 608, 608]
fields: ['image', 'im_size', 'im_id']
dataset:
!ImageFolder
anno_path: annotations/instances_val2017.json
with_background: false
sample_transforms:
- !DecodeImage
to_rgb: True
with_mixup: false
- !ResizeImage
interp: 2
target_size: 608
- !NormalizeImage
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
is_scale: False
is_channel_first: false
- !Permute
to_bgr: false
channel_first: True
batch_size: 1
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
architecture: YOLOv3
use_gpu: true
max_iters: 55000
max_iters: 85000
log_smooth_window: 20
save_dir: output
snapshot_iter: 10000
metric: COCO
pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/ResNet50_vd_obj365_pretrained.tar
weights: output/yolov3_r50vd_dcn_iouloss_obj365_pretrained_coco/model_final
pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/ResNet50_vd_dcn_db_obj365_pretrained.tar
weights: output/yolov3_r50vd_dcn_db_iouloss_obj365_pretrained_coco/model_final
num_classes: 80
use_fine_grained_loss: true

Expand Down Expand Up @@ -39,6 +39,7 @@ YOLOv3Head:
nms_top_k: 1000
normalized: false
score_threshold: 0.01
drop_block: true

YOLOv3Loss:
batch_size: 8
Expand All @@ -58,8 +59,8 @@ LearningRate:
- !PiecewiseDecay
gamma: 0.1
milestones:
- 40000
- 50000
- 55000
- 75000
- !LinearWarmup
start_factor: 0.
steps: 4000
Expand All @@ -72,4 +73,4 @@ OptimizerBuilder:
factor: 0.0005
type: L2

_READER_: '../yolov3_reader.yml'
_READER_: 'yolov3_enhance_reader.yml'
70 changes: 70 additions & 0 deletions configs/dcn/yolov3_r50vd_dcn_db_obj365_pretrained_coco.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
architecture: YOLOv3
use_gpu: true
max_iters: 85000
log_smooth_window: 20
save_dir: output
snapshot_iter: 10000
metric: COCO
pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/ResNet50_vd_dcn_db_obj365_pretrained.tar
weights: output/yolov3_r50vd_dcn_db_obj365_pretrained_coco/model_final
num_classes: 80
use_fine_grained_loss: true

YOLOv3:
backbone: ResNet
yolo_head: YOLOv3Head
use_fine_grained_loss: true

ResNet:
norm_type: sync_bn
freeze_at: 0
freeze_norm: false
norm_decay: 0.
depth: 50
feature_maps: [3, 4, 5]
variant: d
dcn_v2_stages: [5]

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
drop_block: true

YOLOv3Loss:
batch_size: 8
ignore_thresh: 0.7
label_smooth: false
use_fine_grained_loss: true

LearningRate:
base_lr: 0.001
schedulers:
- !PiecewiseDecay
gamma: 0.1
milestones:
- 55000
- 75000
- !LinearWarmup
start_factor: 0.
steps: 4000

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

_READER_: 'yolov3_enhance_reader.yml'
118 changes: 9 additions & 109 deletions configs/dcn/yolov3_r50vd_dcn_obj365_pretrained_coco.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
architecture: YOLOv3
use_gpu: true
max_iters: 55000
max_iters: 85000
log_smooth_window: 20
save_dir: output
snapshot_iter: 10000
metric: COCO
pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/ResNet50_vd_obj365_pretrained.tar
weights: output/yolov3_r50vd_dcn_obj365_pretrained_coco/model_final
pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/ResNet50_vd_dcn_db_obj365_pretrained.tar
weights: output/yolov3_r50vd_dcn_db_obj365_pretrained_coco/model_final
num_classes: 80
use_fine_grained_loss: false
use_fine_grained_loss: true

YOLOv3:
backbone: ResNet
yolo_head: YOLOv3Head
use_fine_grained_loss: true

ResNet:
norm_type: sync_bn
Expand Down Expand Up @@ -43,15 +44,16 @@ YOLOv3Loss:
batch_size: 8
ignore_thresh: 0.7
label_smooth: false
use_fine_grained_loss: true

LearningRate:
base_lr: 0.001
schedulers:
- !PiecewiseDecay
gamma: 0.1
milestones:
- 40000
- 50000
- 55000
- 75000
- !LinearWarmup
start_factor: 0.
steps: 4000
Expand All @@ -64,106 +66,4 @@ OptimizerBuilder:
factor: 0.0005
type: L2

TrainReader:
inputs_def:
fields: ['image', 'gt_bbox', 'gt_class', 'gt_score']
num_max_boxes: 50
dataset:
!COCODataSet
image_dir: train2017
anno_path: annotations/instances_train2017.json
dataset_dir: dataset/coco
with_background: false
sample_transforms:
- !DecodeImage
to_rgb: True
- !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.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
is_scale: False
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: [[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]]
downsample_ratios: [32, 16, 8]
batch_size: 8
shuffle: true
drop_last: true
worker_num: 8
bufsize: 32
use_process: true

EvalReader:
inputs_def:
image_shape: [3, 608, 608]
fields: ['image', 'im_size', 'im_id']
num_max_boxes: 50
dataset:
!COCODataSet
dataset_dir: dataset/coco
anno_path: annotations/instances_val2017.json
image_dir: val2017
with_background: false
sample_transforms:
- !DecodeImage
to_rgb: True
with_mixup: false
- !ResizeImage
interp: 2
target_size: 608
- !NormalizeImage
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
is_scale: False
is_channel_first: false
- !Permute
to_bgr: false
channel_first: True
batch_size: 8
drop_empty: false
worker_num: 8
bufsize: 32

TestReader:
inputs_def:
image_shape: [3, 608, 608]
fields: ['image', 'im_size', 'im_id']
dataset:
!ImageFolder
anno_path: annotations/instances_val2017.json
with_background: false
sample_transforms:
- !DecodeImage
to_rgb: True
with_mixup: false
- !ResizeImage
interp: 2
target_size: 608
- !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
batch_size: 1
_READER_: 'yolov3_enhance_reader.yml'
Binary file added demo/dropblock.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 791b8f4

Please sign in to comment.