_base_ = ['./tr3d.py', 'mmdet3d::_base_/datasets/scannet-3d.py'] custom_imports = dict(imports=['projects.TR3D.tr3d']) model = dict( bbox_head=dict( label2level=[0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0])) train_pipeline = [ dict( type='LoadPointsFromFile', coord_type='DEPTH', shift_height=False, use_color=True, load_dim=6, use_dim=[0, 1, 2, 3, 4, 5]), dict(type='LoadAnnotations3D'), dict(type='GlobalAlignment', rotation_axis=2), # We do not sample 100k points for ScanNet, as very few scenes have # significantly more then 100k points. So we sample 33 to 100% of them. dict(type='TR3DPointSample', num_points=0.33), dict( type='RandomFlip3D', sync_2d=False, flip_ratio_bev_horizontal=0.5, flip_ratio_bev_vertical=0.5), dict( type='GlobalRotScaleTrans', rot_range=[-0.02, 0.02], scale_ratio_range=[0.9, 1.1], translation_std=[0.1, 0.1, 0.1], shift_height=False), dict(type='NormalizePointsColor', color_mean=None), dict( type='Pack3DDetInputs', keys=['points', 'gt_bboxes_3d', 'gt_labels_3d']) ] test_pipeline = [ dict( type='LoadPointsFromFile', coord_type='DEPTH', shift_height=False, use_color=True, load_dim=6, use_dim=[0, 1, 2, 3, 4, 5]), dict(type='GlobalAlignment', rotation_axis=2), dict( type='MultiScaleFlipAug3D', img_scale=(1333, 800), pts_scale_ratio=1, flip=False, transforms=[ # We do not sample 100k points for ScanNet, as very few scenes have # significantly more then 100k points. So it doesn't affect # inference time and we can accept all points. # dict(type='PointSample', num_points=100000), dict(type='NormalizePointsColor', color_mean=None), ]), dict(type='Pack3DDetInputs', keys=['points']) ] train_dataloader = dict( batch_size=16, num_workers=8, dataset=dict( type='RepeatDataset', times=15, dataset=dict(pipeline=train_pipeline, filter_empty_gt=False))) val_dataloader = dict(dataset=dict(pipeline=test_pipeline)) test_dataloader = val_dataloader