Skip to content

Commit

Permalink
add test pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
cizhenshi committed Aug 25, 2019
1 parent 5d30d29 commit 0251178
Show file tree
Hide file tree
Showing 26 changed files with 18,816 additions and 329 deletions.
16,843 changes: 16,807 additions & 36 deletions PrepareData.ipynb

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion configs/rs_cascade_mask_rcnn_r50_fpn_ohem.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@
keep_all_stages=False)
# dataset settings
dataset_type = 'CocoDataset'
data_root = './data/rscup/'
data_root = '/home/xfr/git_mm/mmdetection/data/rscup/'
aug_root = "./data/rscup/aug/"
img_norm_cfg = dict(
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
Expand Down
4 changes: 2 additions & 2 deletions configs/rscup/htc_next_3s.py
Original file line number Diff line number Diff line change
Expand Up @@ -276,8 +276,8 @@
with_label=True),
test=dict(
type=dataset_type,
ann_file='./data/rscup/annotation/annos_rscup_test.json',
img_prefix='./data/rscup/test',
ann_file='./data/rscup/annotation/annos_rscup_val.json',
img_prefix='./data/rscup/val',
img_scale=(512, 512),
img_norm_cfg=img_norm_cfg,
size_divisor=32,
Expand Down
314 changes: 314 additions & 0 deletions configs/rscup/htc_next_3s_ft.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,314 @@
# model settings
fp16 = dict(loss_scale=512.)
# norm_cfg = dict(type='GN', num_groups=32, requires_grad=True)
norm_cfg = dict(type='SyncBN', requires_grad=True)
model = dict(
type='HybridTaskCascade',
num_stages=3,
pretrained='open-mmlab://resnext101_64x4d',
interleaved=True,
mask_info_flow=True,
backbone=dict(
type='ResNeXt',
depth=101,
groups=64,
base_width=4,
num_stages=4,
out_indices=(0, 1, 2, 3),
frozen_stages=1,
style='pytorch',
dcn=dict(
modulated=False,
groups=64,
deformable_groups=1,
fallback_on_stride=False),
stage_with_dcn=(False, True, True, True),
),
neck=dict(
type='FPN',
in_channels=[256, 512, 1024, 2048],
out_channels=256,
num_outs=5),
rpn_head=dict(
type='RPNHead',
in_channels=256,
feat_channels=256,
anchor_scales=[8],
anchor_ratios=[0.5, 1.0, 1.5, 2.5, 5.0, 7.0],
anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0],
loss_cls=dict(
type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0),
loss_bbox=dict(type='SmoothL1Loss', beta=1.0 / 9.0, loss_weight=1.0)),
bbox_roi_extractor=dict(
type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
out_channels=256,
featmap_strides=[4, 8, 16, 32]),
bbox_head=[
dict(
type='SharedFCBBoxHead',
num_fcs=2,
in_channels=256,
fc_out_channels=1024,
roi_feat_size=7,
num_classes=19,
target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=True,
loss_cls=dict(
type='CrossEntropyLoss',
use_sigmoid=False,
loss_weight=1.0),
loss_bbox=dict(
type='SmoothL1Loss',
beta=1.0,
loss_weight=1.0)),

dict(
type='SharedFCBBoxHead',
num_fcs=2,
in_channels=256,
fc_out_channels=1024,
roi_feat_size=7,
num_classes=19,
target_means=[0., 0., 0., 0.],
target_stds=[0.05, 0.05, 0.1, 0.1],
reg_class_agnostic=True,
loss_cls=dict(
type='CrossEntropyLoss',
use_sigmoid=False,
loss_weight=1.0),
loss_bbox=dict(
type='SmoothL1Loss',
beta=1.0,
loss_weight=1.0)),
dict(
type='SharedFCBBoxHead',
num_fcs=2,
in_channels=256,
fc_out_channels=1024,
roi_feat_size=7,
num_classes=19,
target_means=[0., 0., 0., 0.],
target_stds=[0.033, 0.033, 0.067, 0.067],
reg_class_agnostic=True,
loss_cls=dict(
type='CrossEntropyLoss',
use_sigmoid=False,
loss_weight=1.0),
loss_bbox=dict(
type='SmoothL1Loss',
beta=1.0,
loss_weight=1.0))
],
mask_roi_extractor=dict(
type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2),
out_channels=256,
featmap_strides=[4, 8, 16, 32]),
mask_head=dict(
type='HTCMaskHead',
num_convs=4,
in_channels=256,
conv_out_channels=256,
num_classes=19,
loss_mask=dict(
type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)))
# model training and testing settings
train_cfg = dict(
rpn=dict(
assigner=dict(
type='MaxIoUAssigner',
pos_iou_thr=0.7,
neg_iou_thr=0.3,
min_pos_iou=0.3,
ignore_iof_thr=-1),
sampler=dict(
type='RandomSampler',
num=256,
pos_fraction=0.5,
neg_pos_ub=-1,
add_gt_as_proposals=False),
allowed_border=0,
pos_weight=-1,
debug=False),
rpn_proposal=dict(
nms_across_levels=False,
nms_pre=2000,
nms_post=2000,
max_num=2000,
nms_thr=0.7,
min_bbox_size=0),
rcnn=[
dict(
assigner=dict(
type='MaxIoUAssigner',
pos_iou_thr=0.4,
neg_iou_thr=0.4,
min_pos_iou=0.4,
ignore_iof_thr=-1),
sampler=dict(
type='CombinedSampler',
num=512,
pos_fraction=0.25,
add_gt_as_proposals=True,
pos_sampler=dict(type='InstanceBalancedPosSampler'),
neg_sampler=dict(
type='IoUBalancedNegSampler',
floor_thr=-1,
floor_fraction=0,
num_bins=3)),
mask_size=28,
pos_weight=-1,
debug=False),
dict(
assigner=dict(
type='MaxIoUAssigner',
pos_iou_thr=0.5,
neg_iou_thr=0.5,
min_pos_iou=0.5,
ignore_iof_thr=-1),
sampler=dict(
type='CombinedSampler',
num=512,
pos_fraction=0.25,
add_gt_as_proposals=True,
pos_sampler=dict(type='InstanceBalancedPosSampler'),
neg_sampler=dict(
type='IoUBalancedNegSampler',
floor_thr=-1,
floor_fraction=0,
num_bins=3)),
mask_size=28,
pos_weight=-1,
debug=False),
dict(
assigner=dict(
type='MaxIoUAssigner',
pos_iou_thr=0.6,
neg_iou_thr=0.6,
min_pos_iou=0.6,
ignore_iof_thr=-1),
sampler=dict(
type='CombinedSampler',
num=512,
pos_fraction=0.25,
add_gt_as_proposals=True,
pos_sampler=dict(type='InstanceBalancedPosSampler'),
neg_sampler=dict(
type='IoUBalancedNegSampler',
floor_thr=-1,
floor_fraction=0,
num_bins=3)),
mask_size=28,
pos_weight=-1,
debug=False)
],
stage_loss_weights=[0.5, 1, 0.25])
test_cfg = dict(
rpn=dict(
nms_across_levels=False,
nms_pre=1000,
nms_post=1000,
max_num=1000,
nms_thr=0.7,
min_bbox_size=0),
rcnn=dict(
score_thr=0.05,
nms=dict(type='nms', iou_thr=0.5),
max_per_img=1000,
mask_thr_binary=0.5),
keep_all_stages=False)
# dataset settings
dataset_type = 'CocoDataset'
data_root = './data/rscup/'
aug_root = "./data/rscup/aug/"
other_aug_root = "./data/rscup/otheraug/"
img_norm_cfg = dict(
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
data = dict(
imgs_per_gpu=4,
workers_per_gpu=4,
train=dict(
type=dataset_type,
ann_file=(data_root + 'annotation/annos_rscup_train.json',
data_root + 'annotation/annos_rscup_s2.json',
aug_root + 'annos_rscup_airport.json',
other_aug_root + "annos_rscup_baseball-diamond.json",
other_aug_root + "annos_rscup_basketball-court.json",
other_aug_root + "annos_rscup_container-crane.json",
other_aug_root + "annos_rscup_helicopter.json",
other_aug_root + "annos_rscup_helipad.json",
other_aug_root + "annos_rscup_helipad_ship.json",
other_aug_root + "annos_rscup_roundabout.json",
other_aug_root + "annos_rscup_soccer-ball-field_ground-track-field.json",
),
img_prefix=(data_root + 'train/',
data_root + 's2/',
aug_root + "airport/",
other_aug_root + "baseball-diamond",
other_aug_root + "basketball-court",
other_aug_root + "container-crane",
other_aug_root + "helicopter",
other_aug_root + "helipad",
other_aug_root + "helipad_ship",
other_aug_root + "roundabout",
other_aug_root + "soccer-ball-field_ground-track-field"),
img_scale=(512, 512),
img_norm_cfg=img_norm_cfg,
size_divisor=32,
flip_ratio=0.5,
with_mask=True,
with_crowd=True,
with_label=True),
val=dict(
type=dataset_type,
ann_file=data_root + 'annotation/annos_rscup_val.json',
img_prefix=data_root + 'val/',
img_scale=(512, 512),
img_norm_cfg=img_norm_cfg,
size_divisor=32,
flip_ratio=0,
with_mask=True,
with_crowd=True,
with_label=True),
test=dict(
type=dataset_type,
ann_file='./data/rscup/annotation/annos_rscup_val.json',
img_prefix='./data/rscup/val',
img_scale=(512, 512),
img_norm_cfg=img_norm_cfg,
size_divisor=32,
flip_ratio=0,
with_mask=True,
with_label=False,
test_mode=True))
# optimizer
optimizer = dict(type='SGD', lr=6e-4, momentum=0.9, weight_decay=0.0001)
optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))
# learning policy
lr_config = dict(
policy='step',
warmup='linear',
warmup_iters=500,
warmup_ratio=1.0 / 3,
step=[1])
checkpoint_config = dict(interval=1)
# yapf:disable
log_config = dict(
interval=50,
hooks=[
dict(type='TextLoggerHook'),
dict(type='TensorboardLoggerHook')
])
# yapf:enable
# runtime settings
total_epochs = 2
dist_params = dict(backend='nccl')
log_level = 'INFO'
work_dir = './work_dirs/htc_next_3s_ft'
load_from = None
resume_from = None
workflow = [('train', 1)]
5 changes: 3 additions & 2 deletions configs/rscup/htc_next_ft.py
Original file line number Diff line number Diff line change
Expand Up @@ -276,10 +276,11 @@
with_label=True),
test=dict(
type=dataset_type,
ann_file='./data/rscup/annotation/annos_rscup_test.json',
img_prefix='./data/rscup/test',
ann_file='./data/rscup/annotation/annos_rscup_val.json',
img_prefix='./data/rscup/val',
img_scale=(512, 512),
img_norm_cfg=img_norm_cfg,
resize_keep_ratio=True,
size_divisor=32,
flip_ratio=0,
with_mask=True,
Expand Down
3 changes: 2 additions & 1 deletion configs/rscup/htc_sy.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# model settings
fp16 = dict(loss_scale=512.)
# fp16 = dict(loss_scale=512.)
# norm_cfg = dict(type='GN', num_groups=32, requires_grad=True)
norm_cfg = dict(type='SyncBN', requires_grad=True)
model = dict(
Expand Down Expand Up @@ -274,6 +274,7 @@
img_scale=(512, 512),
img_norm_cfg=img_norm_cfg,
size_divisor=32,
resize_keep_ratio=True,
flip_ratio=0,
with_mask=True,
with_label=False,
Expand Down
4 changes: 2 additions & 2 deletions configs/rscup/htc_sy_next.py
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,8 @@
with_label=True),
test=dict(
type=dataset_type,
ann_file='./data/rscup/annotation/annos_rscup_test.json',
img_prefix='./data/rscup/test',
ann_file='./data/rscup/annotation/annos_rscup_val.json',
img_prefix='./data/rscup/val',
img_scale=(512, 512),
img_norm_cfg=img_norm_cfg,
size_divisor=32,
Expand Down
Loading

0 comments on commit 0251178

Please sign in to comment.