OpenMMLab Detection Toolbox and Benchmark
https://mmdetection.readthedocs.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.8 KiB
84 lines
2.8 KiB
_base_ = 'ssd300_coco.py' |
|
input_size = 512 |
|
model = dict( |
|
neck=dict( |
|
out_channels=(512, 1024, 512, 256, 256, 256, 256), |
|
level_strides=(2, 2, 2, 2, 1), |
|
level_paddings=(1, 1, 1, 1, 1), |
|
last_kernel_size=4), |
|
bbox_head=dict( |
|
in_channels=(512, 1024, 512, 256, 256, 256, 256), |
|
anchor_generator=dict( |
|
type='SSDAnchorGenerator', |
|
scale_major=False, |
|
input_size=input_size, |
|
basesize_ratio_range=(0.1, 0.9), |
|
strides=[8, 16, 32, 64, 128, 256, 512], |
|
ratios=[[2], [2, 3], [2, 3], [2, 3], [2, 3], [2], [2]]))) |
|
# dataset settings |
|
dataset_type = 'CocoDataset' |
|
data_root = 'data/coco/' |
|
img_norm_cfg = dict(mean=[123.675, 116.28, 103.53], std=[1, 1, 1], to_rgb=True) |
|
train_pipeline = [ |
|
dict(type='LoadImageFromFile'), |
|
dict(type='LoadAnnotations', with_bbox=True), |
|
dict( |
|
type='Expand', |
|
mean=img_norm_cfg['mean'], |
|
to_rgb=img_norm_cfg['to_rgb'], |
|
ratio_range=(1, 4)), |
|
dict( |
|
type='MinIoURandomCrop', |
|
min_ious=(0.1, 0.3, 0.5, 0.7, 0.9), |
|
min_crop_size=0.3), |
|
dict(type='Resize', img_scale=(512, 512), keep_ratio=False), |
|
dict(type='RandomFlip', flip_ratio=0.5), |
|
dict( |
|
type='PhotoMetricDistortion', |
|
brightness_delta=32, |
|
contrast_range=(0.5, 1.5), |
|
saturation_range=(0.5, 1.5), |
|
hue_delta=18), |
|
dict(type='Normalize', **img_norm_cfg), |
|
dict(type='DefaultFormatBundle'), |
|
dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels']), |
|
] |
|
test_pipeline = [ |
|
dict(type='LoadImageFromFile'), |
|
dict( |
|
type='MultiScaleFlipAug', |
|
img_scale=(512, 512), |
|
flip=False, |
|
transforms=[ |
|
dict(type='Resize', keep_ratio=False), |
|
dict(type='Normalize', **img_norm_cfg), |
|
dict(type='ImageToTensor', keys=['img']), |
|
dict(type='Collect', keys=['img']), |
|
]) |
|
] |
|
data = dict( |
|
samples_per_gpu=8, |
|
workers_per_gpu=3, |
|
train=dict( |
|
_delete_=True, |
|
type='RepeatDataset', |
|
times=5, |
|
dataset=dict( |
|
type=dataset_type, |
|
ann_file=data_root + 'annotations/instances_train2017.json', |
|
img_prefix=data_root + 'train2017/', |
|
pipeline=train_pipeline)), |
|
val=dict(pipeline=test_pipeline), |
|
test=dict(pipeline=test_pipeline)) |
|
# optimizer |
|
optimizer = dict(type='SGD', lr=2e-3, momentum=0.9, weight_decay=5e-4) |
|
optimizer_config = dict(_delete_=True) |
|
custom_hooks = [ |
|
dict(type='NumClassCheckHook'), |
|
dict(type='CheckInvalidLossHook', interval=50, priority='VERY_LOW') |
|
] |
|
|
|
# NOTE: `auto_scale_lr` is for automatically scaling LR, |
|
# USER SHOULD NOT CHANGE ITS VALUES. |
|
# base_batch_size = (8 GPUs) x (8 samples per GPU) |
|
auto_scale_lr = dict(base_batch_size=64)
|
|
|