Commit 57d34592 authored by Jiangmiao Pang's avatar Jiangmiao Pang Committed by Kai Chen
Browse files

Add loss evaluator (#678)

* Fix license in setup.py

* Add code for loss evaluator

* Configs support loss evaluator

* Fix a little bug

* Fix flake8

* return revised bbox to reg

* return revised bbox to reg

* revision according to comments

* fix flake8
parent a99dbae7
...@@ -28,7 +28,13 @@ model = dict( ...@@ -28,7 +28,13 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False)) reg_class_agnostic=False,
loss_cls=dict(
type='CrossEntropyLoss',
use_sigmoid=False,
loss_weight=1.0),
loss_bbox=dict(
type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rcnn=dict( rcnn=dict(
......
...@@ -36,7 +36,13 @@ model = dict( ...@@ -36,7 +36,13 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False)) reg_class_agnostic=False,
loss_cls=dict(
type='CrossEntropyLoss',
use_sigmoid=False,
loss_weight=1.0),
loss_bbox=dict(
type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rcnn=dict( rcnn=dict(
......
...@@ -28,7 +28,13 @@ model = dict( ...@@ -28,7 +28,13 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False)) reg_class_agnostic=False,
loss_cls=dict(
type='CrossEntropyLoss',
use_sigmoid=False,
loss_weight=1.0),
loss_bbox=dict(
type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rcnn=dict( rcnn=dict(
......
...@@ -23,7 +23,9 @@ model = dict( ...@@ -23,7 +23,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -38,7 +40,10 @@ model = dict( ...@@ -38,7 +40,10 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False)) reg_class_agnostic=False,
loss_cls=dict(
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),
loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -56,7 +61,6 @@ train_cfg = dict( ...@@ -56,7 +61,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -23,7 +23,9 @@ model = dict( ...@@ -23,7 +23,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -38,7 +40,10 @@ model = dict( ...@@ -38,7 +40,10 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False)) reg_class_agnostic=False,
loss_cls=dict(
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),
loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -56,7 +61,6 @@ train_cfg = dict( ...@@ -56,7 +61,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -32,7 +32,9 @@ model = dict( ...@@ -32,7 +32,9 @@ model = dict(
anchor_strides=[16], anchor_strides=[16],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2),
...@@ -46,7 +48,10 @@ model = dict( ...@@ -46,7 +48,10 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False)) reg_class_agnostic=False,
loss_cls=dict(
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),
loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -64,7 +69,6 @@ train_cfg = dict( ...@@ -64,7 +69,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -23,7 +23,9 @@ model = dict( ...@@ -23,7 +23,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -38,7 +40,10 @@ model = dict( ...@@ -38,7 +40,10 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False)) reg_class_agnostic=False,
loss_cls=dict(
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),
loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -56,7 +61,6 @@ train_cfg = dict( ...@@ -56,7 +61,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -25,7 +25,9 @@ model = dict( ...@@ -25,7 +25,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -40,7 +42,10 @@ model = dict( ...@@ -40,7 +42,10 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False)) reg_class_agnostic=False,
loss_cls=dict(
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),
loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -58,7 +63,6 @@ train_cfg = dict( ...@@ -58,7 +63,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
...@@ -159,7 +163,7 @@ log_config = dict( ...@@ -159,7 +163,7 @@ log_config = dict(
total_epochs = 12 total_epochs = 12
dist_params = dict(backend='nccl') dist_params = dict(backend='nccl')
log_level = 'INFO' log_level = 'INFO'
work_dir = './work_dirs/faster_rcnn_r50_fpn_1x' work_dir = './work_dirs/faster_rcnn_x101_32x4d_fpn_1x'
load_from = None load_from = None
resume_from = None resume_from = None
workflow = [('train', 1)] workflow = [('train', 1)]
...@@ -25,7 +25,9 @@ model = dict( ...@@ -25,7 +25,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -40,7 +42,10 @@ model = dict( ...@@ -40,7 +42,10 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False)) reg_class_agnostic=False,
loss_cls=dict(
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),
loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -58,7 +63,6 @@ train_cfg = dict( ...@@ -58,7 +63,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
...@@ -159,7 +163,7 @@ log_config = dict( ...@@ -159,7 +163,7 @@ log_config = dict(
total_epochs = 12 total_epochs = 12
dist_params = dict(backend='nccl') dist_params = dict(backend='nccl')
log_level = 'INFO' log_level = 'INFO'
work_dir = './work_dirs/faster_rcnn_r50_fpn_1x' work_dir = './work_dirs/faster_rcnn_x101_64x4d_fpn_1x'
load_from = None load_from = None
resume_from = None resume_from = None
workflow = [('train', 1)] workflow = [('train', 1)]
...@@ -29,7 +29,9 @@ model = dict( ...@@ -29,7 +29,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -48,7 +50,10 @@ model = dict( ...@@ -48,7 +50,10 @@ model = dict(
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False, reg_class_agnostic=False,
conv_cfg=conv_cfg, conv_cfg=conv_cfg,
norm_cfg=norm_cfg)) norm_cfg=norm_cfg,
loss_cls=dict(
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),
loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -66,7 +71,6 @@ train_cfg = dict( ...@@ -66,7 +71,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -29,7 +29,9 @@ model = dict( ...@@ -29,7 +29,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -48,7 +50,10 @@ model = dict( ...@@ -48,7 +50,10 @@ model = dict(
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False, reg_class_agnostic=False,
conv_cfg=conv_cfg, conv_cfg=conv_cfg,
norm_cfg=norm_cfg), norm_cfg=norm_cfg,
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( mask_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2),
...@@ -61,7 +66,9 @@ model = dict( ...@@ -61,7 +66,9 @@ model = dict(
conv_out_channels=256, conv_out_channels=256,
num_classes=81, num_classes=81,
conv_cfg=conv_cfg, conv_cfg=conv_cfg,
norm_cfg=norm_cfg)) norm_cfg=norm_cfg,
loss_mask=dict(
type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -79,7 +86,6 @@ train_cfg = dict( ...@@ -79,7 +86,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -29,7 +29,9 @@ model = dict( ...@@ -29,7 +29,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -48,7 +50,10 @@ model = dict( ...@@ -48,7 +50,10 @@ model = dict(
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False, reg_class_agnostic=False,
conv_cfg=conv_cfg, conv_cfg=conv_cfg,
norm_cfg=norm_cfg), norm_cfg=norm_cfg,
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( mask_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2),
...@@ -61,7 +66,9 @@ model = dict( ...@@ -61,7 +66,9 @@ model = dict(
conv_out_channels=256, conv_out_channels=256,
num_classes=81, num_classes=81,
conv_cfg=conv_cfg, conv_cfg=conv_cfg,
norm_cfg=norm_cfg)) norm_cfg=norm_cfg,
loss_mask=dict(
type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -79,7 +86,6 @@ train_cfg = dict( ...@@ -79,7 +86,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -31,7 +31,9 @@ model = dict( ...@@ -31,7 +31,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -50,7 +52,10 @@ model = dict( ...@@ -50,7 +52,10 @@ model = dict(
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False, reg_class_agnostic=False,
conv_cfg=conv_cfg, conv_cfg=conv_cfg,
norm_cfg=norm_cfg), norm_cfg=norm_cfg,
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( mask_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2),
...@@ -63,7 +68,9 @@ model = dict( ...@@ -63,7 +68,9 @@ model = dict(
conv_out_channels=256, conv_out_channels=256,
num_classes=81, num_classes=81,
conv_cfg=conv_cfg, conv_cfg=conv_cfg,
norm_cfg=norm_cfg)) norm_cfg=norm_cfg,
loss_mask=dict(
type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -81,7 +88,6 @@ train_cfg = dict( ...@@ -81,7 +88,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -27,7 +27,9 @@ model = dict( ...@@ -27,7 +27,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -45,7 +47,10 @@ model = dict( ...@@ -45,7 +47,10 @@ model = dict(
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False, reg_class_agnostic=False,
norm_cfg=norm_cfg), norm_cfg=norm_cfg,
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( mask_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2),
...@@ -57,8 +62,9 @@ model = dict( ...@@ -57,8 +62,9 @@ model = dict(
in_channels=256, in_channels=256,
conv_out_channels=256, conv_out_channels=256,
num_classes=81, num_classes=81,
norm_cfg=norm_cfg)) norm_cfg=norm_cfg,
loss_mask=dict(
type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -76,7 +82,6 @@ train_cfg = dict( ...@@ -76,7 +82,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -27,7 +27,9 @@ model = dict( ...@@ -27,7 +27,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -45,7 +47,10 @@ model = dict( ...@@ -45,7 +47,10 @@ model = dict(
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False, reg_class_agnostic=False,
norm_cfg=norm_cfg), norm_cfg=norm_cfg,
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( mask_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2),
...@@ -57,8 +62,9 @@ model = dict( ...@@ -57,8 +62,9 @@ model = dict(
in_channels=256, in_channels=256,
conv_out_channels=256, conv_out_channels=256,
num_classes=81, num_classes=81,
norm_cfg=norm_cfg)) norm_cfg=norm_cfg,
loss_mask=dict(
type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -76,7 +82,6 @@ train_cfg = dict( ...@@ -76,7 +82,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -27,7 +27,9 @@ model = dict( ...@@ -27,7 +27,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -45,7 +47,10 @@ model = dict( ...@@ -45,7 +47,10 @@ model = dict(
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=False, reg_class_agnostic=False,
norm_cfg=norm_cfg), norm_cfg=norm_cfg,
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( mask_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2),
...@@ -57,8 +62,9 @@ model = dict( ...@@ -57,8 +62,9 @@ model = dict(
in_channels=256, in_channels=256,
conv_out_channels=256, conv_out_channels=256,
num_classes=81, num_classes=81,
norm_cfg=norm_cfg)) norm_cfg=norm_cfg,
loss_mask=dict(
type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)))
# model training and testing settings # model training and testing settings
train_cfg = dict( train_cfg = dict(
rpn=dict( rpn=dict(
...@@ -76,7 +82,6 @@ train_cfg = dict( ...@@ -76,7 +82,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -34,7 +34,7 @@ mmdetection ...@@ -34,7 +34,7 @@ mmdetection
## Results and Models ## Results and Models
The results on COCO 2017val is shown in the below table. (results on test-dev are usually slightly higher than val) The results on COCO 2017val are shown in the below table. (results on test-dev are usually slightly higher than val)
| Backbone | Style | Lr schd | Mem (GB) | Train time (s/iter) | Inf time (fps) | box AP | mask AP | Download | | Backbone | Style | Lr schd | Mem (GB) | Train time (s/iter) | Inf time (fps) | box AP | mask AP | Download |
|:---------:|:-------:|:-------:|:--------:|:-------------------:|:--------------:|:------:|:-------:|:--------:| |:---------:|:-------:|:-------:|:--------:|:-------------------:|:--------------:|:------:|:-------:|:--------:|
...@@ -52,4 +52,4 @@ We also provide a powerful HTC with DCN and multi-scale training model. No testi ...@@ -52,4 +52,4 @@ We also provide a powerful HTC with DCN and multi-scale training model. No testi
| Backbone | Style | DCN | training scales | Lr schd | box AP | mask AP | Download | | Backbone | Style | DCN | training scales | Lr schd | box AP | mask AP | Download |
|:----------------:|:-------:|:-----:|:---------------:|:-------:|:------:|:-------:|:--------:| |:----------------:|:-------:|:-----:|:---------------:|:-------:|:------:|:-------:|:--------:|
| X-101-64x4d-FPN | pytorch | c3-c5 | 400~1400 | 20e | 50.7 | 43.9 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_dconv_c3-c5_mstrain_400_1400_x101_64x4d_fpn_20e_20190408-0e50669c.pth) | | X-101-64x4d-FPN | pytorch | c3-c5 | 400~1400 | 20e | 50.7 | 43.9 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_dconv_c3-c5_mstrain_400_1400_x101_64x4d_fpn_20e_20190408-0e50669c.pth) |
\ No newline at end of file
...@@ -34,7 +34,9 @@ model = dict( ...@@ -34,7 +34,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -50,7 +52,15 @@ model = dict( ...@@ -50,7 +52,15 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=True), 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( dict(
type='SharedFCBBoxHead', type='SharedFCBBoxHead',
num_fcs=2, num_fcs=2,
...@@ -60,7 +70,15 @@ model = dict( ...@@ -60,7 +70,15 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.05, 0.05, 0.1, 0.1], target_stds=[0.05, 0.05, 0.1, 0.1],
reg_class_agnostic=True), 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( dict(
type='SharedFCBBoxHead', type='SharedFCBBoxHead',
num_fcs=2, num_fcs=2,
...@@ -70,7 +88,15 @@ model = dict( ...@@ -70,7 +88,15 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.033, 0.033, 0.067, 0.067], target_stds=[0.033, 0.033, 0.067, 0.067],
reg_class_agnostic=True) 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( mask_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
...@@ -82,7 +108,9 @@ model = dict( ...@@ -82,7 +108,9 @@ model = dict(
num_convs=4, num_convs=4,
in_channels=256, in_channels=256,
conv_out_channels=256, conv_out_channels=256,
num_classes=81), num_classes=81,
loss_mask=dict(
type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)),
semantic_roi_extractor=dict( semantic_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2),
...@@ -115,7 +143,6 @@ train_cfg = dict( ...@@ -115,7 +143,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -26,7 +26,9 @@ model = dict( ...@@ -26,7 +26,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -42,7 +44,15 @@ model = dict( ...@@ -42,7 +44,15 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=True), 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( dict(
type='SharedFCBBoxHead', type='SharedFCBBoxHead',
num_fcs=2, num_fcs=2,
...@@ -52,7 +62,15 @@ model = dict( ...@@ -52,7 +62,15 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.05, 0.05, 0.1, 0.1], target_stds=[0.05, 0.05, 0.1, 0.1],
reg_class_agnostic=True), 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( dict(
type='SharedFCBBoxHead', type='SharedFCBBoxHead',
num_fcs=2, num_fcs=2,
...@@ -62,7 +80,15 @@ model = dict( ...@@ -62,7 +80,15 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.033, 0.033, 0.067, 0.067], target_stds=[0.033, 0.033, 0.067, 0.067],
reg_class_agnostic=True) 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( mask_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
...@@ -74,7 +100,9 @@ model = dict( ...@@ -74,7 +100,9 @@ model = dict(
num_convs=4, num_convs=4,
in_channels=256, in_channels=256,
conv_out_channels=256, conv_out_channels=256,
num_classes=81), num_classes=81,
loss_mask=dict(
type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)),
semantic_roi_extractor=dict( semantic_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2),
...@@ -107,7 +135,6 @@ train_cfg = dict( ...@@ -107,7 +135,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
...@@ -26,7 +26,9 @@ model = dict( ...@@ -26,7 +26,9 @@ model = dict(
anchor_strides=[4, 8, 16, 32, 64], anchor_strides=[4, 8, 16, 32, 64],
target_means=[.0, .0, .0, .0], target_means=[.0, .0, .0, .0],
target_stds=[1.0, 1.0, 1.0, 1.0], target_stds=[1.0, 1.0, 1.0, 1.0],
use_sigmoid_cls=True), 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( bbox_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),
...@@ -42,7 +44,15 @@ model = dict( ...@@ -42,7 +44,15 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.1, 0.1, 0.2, 0.2], target_stds=[0.1, 0.1, 0.2, 0.2],
reg_class_agnostic=True), 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( dict(
type='SharedFCBBoxHead', type='SharedFCBBoxHead',
num_fcs=2, num_fcs=2,
...@@ -52,7 +62,15 @@ model = dict( ...@@ -52,7 +62,15 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.05, 0.05, 0.1, 0.1], target_stds=[0.05, 0.05, 0.1, 0.1],
reg_class_agnostic=True), 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( dict(
type='SharedFCBBoxHead', type='SharedFCBBoxHead',
num_fcs=2, num_fcs=2,
...@@ -62,7 +80,15 @@ model = dict( ...@@ -62,7 +80,15 @@ model = dict(
num_classes=81, num_classes=81,
target_means=[0., 0., 0., 0.], target_means=[0., 0., 0., 0.],
target_stds=[0.033, 0.033, 0.067, 0.067], target_stds=[0.033, 0.033, 0.067, 0.067],
reg_class_agnostic=True) 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( mask_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
...@@ -74,7 +100,9 @@ model = dict( ...@@ -74,7 +100,9 @@ model = dict(
num_convs=4, num_convs=4,
in_channels=256, in_channels=256,
conv_out_channels=256, conv_out_channels=256,
num_classes=81), num_classes=81,
loss_mask=dict(
type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)),
semantic_roi_extractor=dict( semantic_roi_extractor=dict(
type='SingleRoIExtractor', type='SingleRoIExtractor',
roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2), roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2),
...@@ -107,7 +135,6 @@ train_cfg = dict( ...@@ -107,7 +135,6 @@ train_cfg = dict(
add_gt_as_proposals=False), add_gt_as_proposals=False),
allowed_border=0, allowed_border=0,
pos_weight=-1, pos_weight=-1,
smoothl1_beta=1 / 9.0,
debug=False), debug=False),
rpn_proposal=dict( rpn_proposal=dict(
nms_across_levels=False, nms_across_levels=False,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment