filaPro / oneformer3d

[CVPR2024] OneFormer3D: One Transformer for Unified Point Cloud Segmentation
Other
348 stars 32 forks source link

error registering module #42

Closed meehirmhatrepy closed 7 months ago

meehirmhatrepy commented 8 months ago

(openmmlab) C:\Users\mmhatre\Downloads\oneformer3d-main (1)\oneformer3d-main>python tools/train.py configs/oneformer3d_1xb2_s3dis-area-5.py 03/21 11:43:37 - mmengine - INFO -

System environment: sys.platform: win32 Python: 3.8.18 | packaged by conda-forge | (default, Dec 23 2023, 17:17:17) [MSC v.1929 64 bit (AMD64)] CUDA available: True MUSA available: False numpy_random_seed: 1445522337 GPU 0: NVIDIA RTX 2000 Ada Generation Laptop GPU CUDA_HOME: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8 NVCC: Cuda compilation tools, release 11.8, V11.8.89 MSVC: Microsoft (R) C/C++ Optimizing Compiler Version 19.39.33521 for x64 GCC: n/a PyTorch: 2.2.1+cu118 PyTorch compiling details: PyTorch built with:

Runtime environment: cudnn_benchmark: False mp_cfg: {'mp_start_method': 'fork', 'opencv_num_threads': 0} dist_cfg: {'backend': 'nccl'} seed: 1445522337 Distributed launcher: none Distributed training: False GPU number: 1

03/21 11:43:37 - mmengine - INFO - Config: class_names = [ 'ceiling', 'floor', 'wall', 'beam', 'column', 'window', 'door', 'table', 'chair', 'sofa', 'bookcase', 'board', 'clutter', 'unlabeled', ] custom_hooks = [ dict(after_iter=True, type='EmptyCacheHook'), ] custom_imports = dict(imports=[ 'oneformer3d', ]) data_prefix = dict( pts='points', pts_instance_mask='instance_mask', pts_semantic_mask='semantic_mask') data_root = 'data/s3dis/' datasettype = 'S3DISSegDataset' default_hooks = dict( checkpoint=dict( scope='mmdet3d', interval=16, max_keep_ckpts=1, rule='greater', save_best=[ 'all_ap_50%', 'miou', ], type='CheckpointHook'), logger=dict(scope='mmdet3d', interval=50, type='LoggerHook'), param_scheduler=dict(scope='mmdet3d', type='ParamSchedulerHook'), sampler_seed=dict(scope='mmdet3d', type='DistSamplerSeedHook'), timer=dict(scope='mmdet3d', type='IterTimerHook'), visualization=dict(scope='mmdet3d', type='Det3DVisualizationHook')) default_scope = 'mmdet3d' env_cfg = dict( cudnn_benchmark=False, dist_cfg=dict(backend='nccl'), mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0)) label2cat = dict({ 0: 'ceiling', 1: 'floor', 10: 'bookcase', 11: 'board', 12: 'clutter', 13: 'unlabeled', 2: 'wall', 3: 'beam', 4: 'column', 5: 'window', 6: 'door', 7: 'table', 8: 'chair', 9: 'sofa' }) launcher = 'none' load_from = 'work_dirs/tmp/instance-only-oneformer3d_1xb2_scannet-and-structured3d.pth' log_level = 'INFO' log_processor = dict( scope='mmdet3d', by_epoch=True, type='LogProcessor', window_size=50) metric_meta = dict( classes=[ 'ceiling', 'floor', 'wall', 'beam', 'column', 'window', 'door', 'table', 'chair', 'sofa', 'bookcase', 'board', 'clutter', 'unlabeled', ], dataset_name='S3DIS', ignore_index=[ 13, ], label2cat=dict({ 0: 'ceiling', 1: 'floor', 10: 'bookcase', 11: 'board', 12: 'clutter', 13: 'unlabeled', 2: 'wall', 3: 'beam', 4: 'column', 5: 'window', 6: 'door', 7: 'table', 8: 'chair', 9: 'sofa' })) model = dict( backbone=dict( num_planes=[ 64, 128, 192, 256, 320, ], return_blocks=True, type='SpConvUNet'), criterion=dict( inst_criterion=dict( fix_dice_loss_weight=True, fix_mean_loss=True, iter_matcher=True, loss_weight=[ 0.5, 1.0, 1.0, 0.5, ], matcher=dict( costs=[ dict(type='QueryClassificationCost', weight=0.5), dict(type='MaskBCECost', weight=1.0), dict(type='MaskDiceCost', weight=1.0), ], type='HungarianMatcher'), non_object_weight=0.05, num_classes=13, type='InstanceCriterion'), num_semantic_classes=13, sem_criterion=dict(loss_weight=5.0, type='S3DISSemanticCriterion'), type='S3DISUnifiedCriterion'), data_preprocessor=dict(type='Det3DDataPreprocessor'), decoder=dict( activation_fn='gelu', attn_mask=True, d_model=256, dropout=0.0, fix_attention=True, hidden_dim=1024, in_channels=64, iter_pred=True, num_classes=13, num_heads=8, num_instance_classes=13, num_instance_queries=400, num_layers=3, num_semantic_queries=13, objectness_flag=True, type='QueryDecoder'), in_channels=6, min_spatial_shape=128, num_channels=64, num_classes=13, test_cfg=dict( inst_score_thr=0.0, matrix_nms_kernel='linear', nms=True, npoint_thr=300, num_sem_cls=13, obj_normalization=True, obj_normalization_thr=0.01, pan_score_thr=0.4, sp_score_thr=0.15, stuff_cls=[ 0, 1, 2, 3, 4, 5, 6, 12, ], thing_cls=[ 7, 8, 9, 10, 11, ], topk_insts=450), train_cfg=dict(), type='S3DISOneFormer3D', voxel_size=0.05) num_channels = 64 num_instance_classes = 13 num_semantic_classes = 13 optim_wrapper = dict( clip_grad=dict(max_norm=10, norm_type=2), optimizer=dict(lr=0.0001, type='AdamW', weight_decay=0.05), type='OptimWrapper') param_scheduler = dict(begin=0, end=512, power=0.9, type='PolyLR') resume = False sem_mapping = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ] test_area = 5 test_cfg = dict(type='TestLoop') test_dataloader = dict( batch_size=1, dataset=dict( ann_file='s3dis_infos_Area_5.pkl', backend_args=None, box_type_3d='Depth', data_prefix=dict( pts='points', pts_instance_mask='instance_mask', pts_semantic_mask='semantic_mask'), data_root='data/s3dis/', pipeline=[ dict( coord_type='DEPTH', load_dim=6, shift_height=False, type='LoadPointsFromFile', use_color=True, use_dim=[ 0, 1, 2, 3, 4, 5, ]), dict( type='LoadAnnotations3D', with_bbox_3d=False, with_label_3d=False, with_mask_3d=True, with_seg_3d=True), dict( flip=False, img_scale=( 1333, 800, ), pts_scale_ratio=1, transforms=[ dict( colormean=[ 127.5, 127.5, 127.5, ], type='NormalizePointsColor'), ], type='MultiScaleFlipAug3D'), dict(keys=[ 'points', ], type='Pack3DDetInputs_'), ], testmode=True, type='S3DISSegDataset'), num_workers=1, persistent_workers=True, sampler=dict(shuffle=False, type='DefaultSampler')) test_evaluator = dict( id_offset=65536, inst_mapping=[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ], metric_meta=dict( classes=[ 'ceiling', 'floor', 'wall', 'beam', 'column', 'window', 'door', 'table', 'chair', 'sofa', 'bookcase', 'board', 'clutter', 'unlabeled', ], dataset_name='S3DIS', ignore_index=[ 13, ], label2cat=dict({ 0: 'ceiling', 1: 'floor', 10: 'bookcase', 11: 'board', 12: 'clutter', 13: 'unlabeled', 2: 'wall', 3: 'beam', 4: 'column', 5: 'window', 6: 'door', 7: 'table', 8: 'chair', 9: 'sofa' })), min_num_points=1, sem_mapping=[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ], stuff_class_inds=[ 0, 1, 2, 3, 4, 5, 6, 12, ], submission_prefix_instance=None, submission_prefix_semantic=None, thing_class_inds=[ 7, 8, 9, 10, 11, ], type='UnifiedSegMetric') test_pipeline = [ dict( coord_type='DEPTH', load_dim=6, shift_height=False, type='LoadPointsFromFile', use_color=True, use_dim=[ 0, 1, 2, 3, 4, 5, ]), dict( type='LoadAnnotations3D', with_bbox_3d=False, with_label_3d=False, with_mask_3d=True, with_seg_3d=True), dict( flip=False, img_scale=( 1333, 800, ), pts_scale_ratio=1, transforms=[ dict( colormean=[ 127.5, 127.5, 127.5, ], type='NormalizePointsColor'), ], type='MultiScaleFlipAug3D'), dict(keys=[ 'points', ], type='Pack3DDetInputs_'), ] train_area = [ 1, 2, 3, 4, 6, ] train_cfg = dict(max_epochs=512, type='EpochBasedTrainLoop', val_interval=16) train_dataloader = dict( batch_size=2, dataset=dict( datasets=[ dict( ann_file='s3dis_infos_Area_1.pkl', backend_args=None, box_type_3d='Depth', data_prefix=dict( pts='points', pts_instance_mask='instance_mask', pts_semantic_mask='semantic_mask'), data_root='data/s3dis/', filter_empty_gt=True, pipeline=[ dict( coord_type='DEPTH', load_dim=6, shift_height=False, type='LoadPointsFromFile', use_color=True, use_dim=[ 0, 1, 2, 3, 4, 5, ]), dict( type='LoadAnnotations3D', with_bbox_3d=False, with_label_3d=False, with_mask_3d=True, with_seg_3d=True), dict(numpoints=180000, type='PointSample'), dict(numclasses=13, type='PointInstClassMapping'), dict( flip_ratio_bev_horizontal=0.5, flip_ratio_bev_vertical=0.5, sync_2d=False, type='RandomFlip3D'), dict( rot_range=[ 0.0, 0.0, ], scale_ratio_range=[ 0.9, 1.1, ], shift_height=False, translation_std=[ 0.1, 0.1, 0.1, ], type='GlobalRotScaleTrans'), dict( colormean=[ 127.5, 127.5, 127.5, ], type='NormalizePointsColor'), dict( keys=[ 'points', 'gt_labels_3d', 'pts_semantic_mask', 'pts_instancemask', ], type='Pack3DDetInputs'), ], type='S3DISSegDataset_'), dict( ann_file='s3dis_infos_Area_2.pkl', backend_args=None, box_type_3d='Depth', data_prefix=dict( pts='points', pts_instance_mask='instance_mask', pts_semantic_mask='semantic_mask'), data_root='data/s3dis/', filter_empty_gt=True, pipeline=[ dict( coord_type='DEPTH', load_dim=6, shift_height=False, type='LoadPointsFromFile', use_color=True, use_dim=[ 0, 1, 2, 3, 4, 5, ]), dict( type='LoadAnnotations3D', with_bbox_3d=False, with_label_3d=False, with_mask_3d=True, with_seg_3d=True), dict(numpoints=180000, type='PointSample'), dict(numclasses=13, type='PointInstClassMapping'), dict( flip_ratio_bev_horizontal=0.5, flip_ratio_bev_vertical=0.5, sync_2d=False, type='RandomFlip3D'), dict( rot_range=[ 0.0, 0.0, ], scale_ratio_range=[ 0.9, 1.1, ], shift_height=False, translation_std=[ 0.1, 0.1, 0.1, ], type='GlobalRotScaleTrans'), dict( colormean=[ 127.5, 127.5, 127.5, ], type='NormalizePointsColor'), dict( keys=[ 'points', 'gt_labels_3d', 'pts_semantic_mask', 'pts_instancemask', ], type='Pack3DDetInputs'), ], type='S3DISSegDataset_'), dict( ann_file='s3dis_infos_Area_3.pkl', backend_args=None, box_type_3d='Depth', data_prefix=dict( pts='points', pts_instance_mask='instance_mask', pts_semantic_mask='semantic_mask'), data_root='data/s3dis/', filter_empty_gt=True, pipeline=[ dict( coord_type='DEPTH', load_dim=6, shift_height=False, type='LoadPointsFromFile', use_color=True, use_dim=[ 0, 1, 2, 3, 4, 5, ]), dict( type='LoadAnnotations3D', with_bbox_3d=False, with_label_3d=False, with_mask_3d=True, with_seg_3d=True), dict(numpoints=180000, type='PointSample'), dict(numclasses=13, type='PointInstClassMapping'), dict( flip_ratio_bev_horizontal=0.5, flip_ratio_bev_vertical=0.5, sync_2d=False, type='RandomFlip3D'), dict( rot_range=[ 0.0, 0.0, ], scale_ratio_range=[ 0.9, 1.1, ], shift_height=False, translation_std=[ 0.1, 0.1, 0.1, ], type='GlobalRotScaleTrans'), dict( colormean=[ 127.5, 127.5, 127.5, ], type='NormalizePointsColor'), dict( keys=[ 'points', 'gt_labels_3d', 'pts_semantic_mask', 'pts_instancemask', ], type='Pack3DDetInputs'), ], type='S3DISSegDataset_'), dict( ann_file='s3dis_infos_Area_4.pkl', backend_args=None, box_type_3d='Depth', data_prefix=dict( pts='points', pts_instance_mask='instance_mask', pts_semantic_mask='semantic_mask'), data_root='data/s3dis/', filter_empty_gt=True, pipeline=[ dict( coord_type='DEPTH', load_dim=6, shift_height=False, type='LoadPointsFromFile', use_color=True, use_dim=[ 0, 1, 2, 3, 4, 5, ]), dict( type='LoadAnnotations3D', with_bbox_3d=False, with_label_3d=False, with_mask_3d=True, with_seg_3d=True), dict(numpoints=180000, type='PointSample'), dict(numclasses=13, type='PointInstClassMapping'), dict( flip_ratio_bev_horizontal=0.5, flip_ratio_bev_vertical=0.5, sync_2d=False, type='RandomFlip3D'), dict( rot_range=[ 0.0, 0.0, ], scale_ratio_range=[ 0.9, 1.1, ], shift_height=False, translation_std=[ 0.1, 0.1, 0.1, ], type='GlobalRotScaleTrans'), dict( colormean=[ 127.5, 127.5, 127.5, ], type='NormalizePointsColor'), dict( keys=[ 'points', 'gt_labels_3d', 'pts_semantic_mask', 'pts_instancemask', ], type='Pack3DDetInputs'), ], type='S3DISSegDataset_'), dict( ann_file='s3dis_infos_Area_6.pkl', backend_args=None, box_type_3d='Depth', data_prefix=dict( pts='points', pts_instance_mask='instance_mask', pts_semantic_mask='semantic_mask'), data_root='data/s3dis/', filter_empty_gt=True, pipeline=[ dict( coord_type='DEPTH', load_dim=6, shift_height=False, type='LoadPointsFromFile', use_color=True, use_dim=[ 0, 1, 2, 3, 4, 5, ]), dict( type='LoadAnnotations3D', with_bbox_3d=False, with_label_3d=False, with_mask_3d=True, with_seg_3d=True), dict(numpoints=180000, type='PointSample'), dict(numclasses=13, type='PointInstClassMapping'), dict( flip_ratio_bev_horizontal=0.5, flip_ratio_bev_vertical=0.5, sync_2d=False, type='RandomFlip3D'), dict( rot_range=[ 0.0, 0.0, ], scale_ratio_range=[ 0.9, 1.1, ], shift_height=False, translation_std=[ 0.1, 0.1, 0.1, ], type='GlobalRotScaleTrans'), dict( colormean=[ 127.5, 127.5, 127.5, ], type='NormalizePointsColor'), dict( keys=[ 'points', 'gt_labels_3d', 'pts_semantic_mask', 'pts_instancemask', ], type='Pack3DDetInputs'), ], type='S3DISSegDataset_'), ], type='ConcatDataset'), num_workers=3, persistent_workers=True, sampler=dict(shuffle=True, type='DefaultSampler')) train_pipeline = [ dict( coord_type='DEPTH', load_dim=6, shift_height=False, type='LoadPointsFromFile', use_color=True, use_dim=[ 0, 1, 2, 3, 4, 5, ]), dict( type='LoadAnnotations3D', with_bbox_3d=False, with_label_3d=False, with_mask_3d=True, with_seg_3d=True), dict(numpoints=180000, type='PointSample'), dict(numclasses=13, type='PointInstClassMapping'), dict( flip_ratio_bev_horizontal=0.5, flip_ratio_bev_vertical=0.5, sync_2d=False, type='RandomFlip3D'), dict( rot_range=[ 0.0, 0.0, ], scale_ratio_range=[ 0.9, 1.1, ], shift_height=False, translation_std=[ 0.1, 0.1, 0.1, ], type='GlobalRotScaleTrans'), dict(colormean=[ 127.5, 127.5, 127.5, ], type='NormalizePointsColor'), dict( keys=[ 'points', 'gt_labels_3d', 'pts_semantic_mask', 'pts_instancemask', ], type='Pack3DDetInputs'), ] val_cfg = dict(type='ValLoop') val_dataloader = dict( batch_size=1, dataset=dict( ann_file='s3dis_infos_Area_5.pkl', backend_args=None, box_type_3d='Depth', data_prefix=dict( pts='points', pts_instance_mask='instance_mask', pts_semantic_mask='semantic_mask'), data_root='data/s3dis/', pipeline=[ dict( coord_type='DEPTH', load_dim=6, shift_height=False, type='LoadPointsFromFile', use_color=True, use_dim=[ 0, 1, 2, 3, 4, 5, ]), dict( type='LoadAnnotations3D', with_bbox_3d=False, with_label_3d=False, with_mask_3d=True, with_seg_3d=True), dict( flip=False, img_scale=( 1333, 800, ), pts_scale_ratio=1, transforms=[ dict( colormean=[ 127.5, 127.5, 127.5, ], type='NormalizePointsColor'), ], type='MultiScaleFlipAug3D'), dict(keys=[ 'points', ], type='Pack3DDetInputs_'), ], testmode=True, type='S3DISSegDataset'), num_workers=1, persistent_workers=True, sampler=dict(shuffle=False, type='DefaultSampler')) val_evaluator = dict( id_offset=65536, inst_mapping=[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ], metric_meta=dict( classes=[ 'ceiling', 'floor', 'wall', 'beam', 'column', 'window', 'door', 'table', 'chair', 'sofa', 'bookcase', 'board', 'clutter', 'unlabeled', ], dataset_name='S3DIS', ignore_index=[ 13, ], label2cat=dict({ 0: 'ceiling', 1: 'floor', 10: 'bookcase', 11: 'board', 12: 'clutter', 13: 'unlabeled', 2: 'wall', 3: 'beam', 4: 'column', 5: 'window', 6: 'door', 7: 'table', 8: 'chair', 9: 'sofa' })), min_num_points=1, sem_mapping=[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ], stuff_class_inds=[ 0, 1, 2, 3, 4, 5, 6, 12, ], submission_prefix_instance=None, submission_prefix_semantic=None, thing_class_inds=[ 7, 8, 9, 10, 11, ], type='UnifiedSegMetric') work_dir = './work_dirs\oneformer3d_1xb2_s3dis-area-5'

Traceback (most recent call last): File "tools/train.py", line 136, in main() File "tools/train.py", line 125, in main runner = Runner.from_cfg(cfg) File "C:\Users\mmhatre\AppData\Local\anaconda3\envs\openmmlab\lib\site-packages\mmengine\runner\runner.py", line 462, in from_cfg runner = cls( File "C:\Users\mmhatre\AppData\Local\anaconda3\envs\openmmlab\lib\site-packages\mmengine\runner\runner.py", line 429, in init self.model = self.build_model(model) File "C:\Users\mmhatre\AppData\Local\anaconda3\envs\openmmlab\lib\site-packages\mmengine\runner\runner.py", line 836, in build_model model = MODELS.build(model) File "C:\Users\mmhatre\AppData\Local\anaconda3\envs\openmmlab\lib\site-packages\mmengine\registry\registry.py", line 570, in build return self.build_func(cfg, *args, **kwargs, registry=self) File "C:\Users\mmhatre\AppData\Local\anaconda3\envs\openmmlab\lib\site-packages\mmengine\registry\build_functions.py", line 232, in build_model_from_cfg return build_from_cfg(cfg, registry, default_args) File "C:\Users\mmhatre\AppData\Local\anaconda3\envs\openmmlab\lib\site-packages\mmengine\registry\build_functions.py", line 100, in build_from_cfg raise KeyError( KeyError: 'S3DISOneFormer3D is not in the mmdet3d::model registry. Please check whether the value of S3DISOneFormer3D is correct or it was registered as expected. More details can be found at https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#import-the-custom-module'

(openmmlab) C:\Users\mmhatre\Downloads\oneformer3d-main (1)\oneformer3d-main>python tools/train.py configs/oneformer3d_1xb2_s3dis-area-5.py Traceback (most recent call last): File "tools/train.py", line 15, in MODELS.module_dict['S3DISOneFormer3D'] KeyError: 'S3DISOneFormer3D'

oneformer3d-contributor commented 8 months ago

Please follow #17.

meehirmhatrepy commented 8 months ago

Would you please help me with specific steps to do? I am not able to follow #17 or #10. really appreciate the help.

oneformer3d-contributor commented 8 months ago

So adding PYTHONPATH before the script doesn't fix the problem?

Btw, I also notices that you are using much recent versions of pytorch and mmengine, that we use. Our versions are set in Dockerfile.