KadirYilmaz's picture
Upload instance segmentation experiments
4453688 verified
Raw History Blame Contribute Delete
10.5 kB
weight = 'weights/volt-small-scannet.pth'
resume = False
evaluate = True
test_only = False
seed = 5793371
save_path = 'exp/scannet/2026-07-23_152153'
num_worker = 16
batch_size = 8
gradient_accumulation_steps = 1
batch_size_val = None
batch_size_test = None
epoch = 75
eval_epoch = 75
clip_grad = 10.0
use_ema = False
ema_decay = 0.999
dataset_ratios = None
sync_bn = False
enable_amp = True
amp_dtype = 'float16'
empty_cache = False
empty_cache_per_epoch = False
find_unused_parameters = True
enable_wandb = True
wandb_project = 'Volt'
wandb_key = None
mix_prob = 0.8
param_dicts = None
hooks = [
dict(
type='CheckpointLoader',
keywords='module.backbone',
replacement='module.backbone'),
dict(type='IterationTimer', warmup_iter=2),
dict(type='InformationWriter'),
dict(
type='InsSegEvaluator',
segment_ignore_index=(-1, 0, 1),
instance_ignore_index=-1),
dict(type='CheckpointSaver', save_freq=None),
dict(type='PreciseEvaluator', test_last=False)
]
train = dict(type='DefaultTrainer')
test = dict(
type='InsSegTester',
verbose=True,
segment_ignore_index=(-1, 0, 1),
instance_ignore_index=-1)
CLASS_LABELS_20 = ('wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table',
'door', 'window', 'bookshelf', 'picture', 'counter', 'desk',
'curtain', 'refrigerator', 'shower curtain', 'toilet',
'sink', 'bathtub', 'otherfurniture')
VALID_CLASS_IDS_20 = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 24, 28,
33, 34, 36, 39)
class_names = ('wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table',
'door', 'window', 'bookshelf', 'picture', 'counter', 'desk',
'curtain', 'refrigerator', 'shower curtain', 'toilet', 'sink',
'bathtub', 'otherfurniture')
class_ids = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 24, 28, 33, 34, 36,
39)
num_classes = 20
segment_ignore_index = (-1, 0, 1)
semantic_num_classes = 18
num_channels = 128
model = dict(
type='SPFormer-v1m1',
backbone=dict(
type='Volt',
in_channels=6,
embed_dim=384,
depth=12,
num_heads=6,
mlp_ratio=4,
init_values=None,
qk_norm=True,
drop_path=0.3,
stride=5,
kernel_size=5,
increase_drop_path=True,
up_mlp_dim=128),
decoder=dict(
type='SPFormerDecoder',
num_class=18,
in_channel=128,
num_layer=6,
num_query=400,
d_model=384,
nhead=8,
hidden_dim=1024,
dropout=0.0,
activation_fn='gelu',
iter_pred=True,
attn_mask=True,
use_query_pos=False,
use_score=False,
use_param_query=True),
criterion=dict(
type='SPFormerCriterion',
matcher=dict(
type='SPFormerHungarianMatcher',
costs=[
dict(type='SPFormerQueryClassificationCost', weight=0.5),
dict(type='SPFormerMaskBCECost', weight=1.0),
dict(type='SPFormerMaskDiceCost', weight=1.0)
]),
loss_weight=[0.2, 1.0, 1.0, 0.5],
num_classes=18,
non_object_weight=0.1,
fix_dice_loss_weight=False,
iter_matcher=True,
fix_mean_loss=True),
semantic_num_classes=18,
semantic_ignore_index=-1,
segment_ignore_index=(-1, 0, 1),
instance_ignore_index=-1,
topk_insts=100,
score_thr=0.0,
npoint_thr=100,
nms=True)
optimizer = dict(type='AdamW', lr=0.0003, weight_decay=0.1)
scheduler = dict(type='PolyLR')
dataset_type = 'ScanNetDataset'
data_root = 'data/scannet'
data = dict(
num_classes=20,
ignore_index=-1,
names=('wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table', 'door',
'window', 'bookshelf', 'picture', 'counter', 'desk', 'curtain',
'refrigerator', 'shower curtain', 'toilet', 'sink', 'bathtub',
'otherfurniture'),
ids=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 24, 28, 33, 34, 36,
39),
train=dict(
type='ScanNetDataset',
split='train',
data_root='data/scannet',
transform=[
dict(type='CenterShift', apply_z=True),
dict(
type='RandomDropout',
dropout_ratio=0.2,
dropout_application_ratio=0.5),
dict(type='RandomFlip', p=0.5),
dict(
type='RandomRotate',
angle=[-1, 1],
axis='z',
center=[0, 0, 0],
p=0.95),
dict(
type='RandomRotate',
angle=[-0.041666666666666664, 0.041666666666666664],
axis='x',
p=0.95),
dict(
type='RandomRotate',
angle=[-0.041666666666666664, 0.041666666666666664],
axis='y',
p=0.95),
dict(type='RandomScale', scale=[0.8, 1.2]),
dict(
type='RandomShift',
shift=[(-0.5, 0.5), (-0.5, 0.5), (-0.5, 0.5)]),
dict(
type='ElasticDistortion',
distortion_params=[[0.2, 0.4], [0.8, 1.6]]),
dict(type='ChromaticAutoContrast', p=0.5, blend_factor=None),
dict(type='ChromaticTranslation', p=0.95, ratio=0.1),
dict(type='ChromaticJitter', p=0.95, std=0.05),
dict(type='SphereCrop', sample_rate=0.6, mode='random'),
dict(type='SphereCrop', point_max=102400, mode='random'),
dict(
type='Copy',
keys_dict=dict(
coord='origin_coord',
instance='origin_instance',
segment='origin_segment')),
dict(
type='Update',
keys_dict=dict(index_valid_keys=[
'coord', 'color', 'normal', 'strength', 'segment',
'instance', 'image_coord', 'image_mask'
])),
dict(
type='GridSample',
grid_size=0.02,
hash_type='fnv',
mode='train',
return_grid_coord=True,
return_inverse=True),
dict(type='NormalizeColor'),
dict(
type='InstanceParser',
segment_ignore_index=(-1, 0, 1),
instance_ignore_index=-1),
dict(type='ToTensor'),
dict(
type='Collect',
keys=('coord', 'origin_coord', 'grid_coord', 'segment',
'origin_segment', 'instance', 'origin_instance',
'superpoint', 'inverse'),
feat_keys=('color', 'normal'),
offset_keys_dict=dict(
offset='coord', origin_offset='origin_coord'))
],
test_mode=False,
loop=1),
val=dict(
type='ScanNetDataset',
split='val',
data_root='data/scannet',
transform=[
dict(type='MeanShift'),
dict(
type='RandomRotate',
angle=[0.35, 0.35],
axis='z',
center=[0, 0, 0],
always_apply=True),
dict(
type='Copy',
keys_dict=dict(
coord='origin_coord',
instance='origin_instance',
segment='origin_segment')),
dict(
type='Update',
keys_dict=dict(index_valid_keys=[
'coord', 'color', 'normal', 'strength', 'segment',
'instance', 'image_coord', 'image_mask'
])),
dict(
type='GridSample',
grid_size=0.02,
hash_type='fnv',
mode='train',
deterministic=True,
return_grid_coord=True,
return_inverse=True),
dict(type='NormalizeColor'),
dict(
type='InstanceParser',
segment_ignore_index=(-1, 0, 1),
instance_ignore_index=-1),
dict(type='ToTensor'),
dict(
type='Collect',
keys=('coord', 'origin_coord', 'grid_coord', 'segment',
'origin_segment', 'instance', 'origin_instance',
'superpoint', 'inverse', 'name'),
feat_keys=('color', 'normal'),
offset_keys_dict=dict(
offset='coord', origin_offset='origin_coord'))
],
test_mode=False),
test=dict(
type='ScanNetDataset',
split='val',
data_root='data/scannet',
transform=[
dict(type='MeanShift'),
dict(
type='RandomRotate',
angle=[0.35, 0.35],
axis='z',
center=[0, 0, 0],
always_apply=True),
dict(
type='Copy',
keys_dict=dict(
coord='origin_coord',
instance='origin_instance',
segment='origin_segment')),
dict(
type='Update',
keys_dict=dict(index_valid_keys=[
'coord', 'color', 'normal', 'strength', 'segment',
'instance', 'image_coord', 'image_mask'
])),
dict(
type='GridSample',
grid_size=0.02,
hash_type='fnv',
mode='train',
deterministic=True,
return_grid_coord=True,
return_inverse=True),
dict(type='NormalizeColor'),
dict(
type='InstanceParser',
segment_ignore_index=(-1, 0, 1),
instance_ignore_index=-1),
dict(type='ToTensor'),
dict(
type='Collect',
keys=('coord', 'origin_coord', 'grid_coord', 'segment',
'origin_segment', 'instance', 'origin_instance',
'superpoint', 'inverse', 'name'),
feat_keys=('color', 'normal'),
offset_keys_dict=dict(
offset='coord', origin_offset='origin_coord'))
],
test_mode=False))
num_worker_per_gpu = 8
batch_size_per_gpu = 4
batch_size_val_per_gpu = 1
batch_size_test_per_gpu = 1