root@ea607ab0c950:/workspace# PYTHONPATH=.:$PYTHONPATH python tools/test.py configs/oneformer3d_1xb4_scannet.py work_dirs/oneformer3d_1xb4_scannet/oneformer3d_1xb4_scannet.pth --show --task lidar_seg
/opt/conda/lib/python3.10/site-packages/mmdet3d/evaluation/functional/kitti_utils/eval.py:10: NumbaDeprecationWarning: The 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.
def get_thresholds(scores: np.ndarray, num_gt, num_sample_pts=41):
12/02 10:01:06 - mmengine - INFO -
System environment:
sys.platform: linux
Python: 3.10.8 (main, Nov 4 2022, 13:48:29) [GCC 11.2.0]
CUDA available: True
numpy_random_seed: 720987765
GPU 0: NVIDIA GeForce RTX 3060
CUDA_HOME: /opt/conda
NVCC: Cuda compilation tools, release 11.6, V11.6.124
GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
PyTorch: 1.13.1
PyTorch compiling details: PyTorch built with:
GCC 9.3
C++ Version: 201402
Intel(R) oneAPI Math Kernel Library Version 2021.4-Product Build 20210904 for Intel(R) 64 architecture applications
12/02 10:01:14 - mmengine - INFO - Distributed training is not used, all SyncBatchNorm (SyncBN) layers in the model will be automatically reverted to BatchNormXd layers if they are used.
/opt/conda/lib/python3.10/site-packages/mmdet3d/engine/hooks/visualization_hook.py:67: UserWarning: The show is True, it means that only the prediction results are visualized without storing data, so vis_backends needs to be excluded.
warnings.warn('The show is True, it means that only '
12/02 10:01:14 - mmengine - INFO - Hooks will be executed in the following order:
before_run:
(VERY_HIGH ) RuntimeInfoHook
(BELOW_NORMAL) LoggerHook
12/02 10:01:16 - mmengine - WARNING - The prefix is not set in metric class UnifiedSegMetric.
Loads checkpoint by local backend from path: work_dirs/oneformer3d_1xb4_scannet/oneformer3d_1xb4_scannet.pth
12/02 10:01:19 - mmengine - INFO - Load checkpoint from work_dirs/oneformer3d_1xb4_scannet/oneformer3d_1xb4_scannet.pth
/opt/conda/lib/python3.10/site-packages/mmdet3d/structures/points/base_points.py:136: UserWarning: point got color value beyond [0, 255]
warnings.warn('point got color value beyond [0, 255]')
Traceback (most recent call last):
File "/workspace/tools/test.py", line 149, in
main()
File "/workspace/tools/test.py", line 145, in main
runner.test()
File "/opt/conda/lib/python3.10/site-packages/mmengine/runner/runner.py", line 1767, in test
metrics = self.test_loop.run() # type: ignore
File "/opt/conda/lib/python3.10/site-packages/mmengine/runner/loops.py", line 435, in run
self.run_iter(idx, data_batch)
File "/opt/conda/lib/python3.10/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
return func(args, kwargs)
File "/opt/conda/lib/python3.10/site-packages/mmengine/runner/loops.py", line 456, in run_iter
self.runner.call_hook(
File "/opt/conda/lib/python3.10/site-packages/mmengine/runner/runner.py", line 1783, in call_hook
getattr(hook, fn_name)(self, kwargs)
File "/opt/conda/lib/python3.10/site-packages/mmdet3d/engine/hooks/visualization_hook.py", line 207, in after_test_iter
self._visualizer.add_datasample(
File "/opt/conda/lib/python3.10/site-packages/mmengine/dist/utils.py", line 366, in wrapper
return func(args, **kwargs)
File "/opt/conda/lib/python3.10/site-packages/mmdet3d/visualization/local_visualizer.py", line 891, in add_datasample
self._draw_pts_sem_seg(data_input['points'],
File "/opt/conda/lib/python3.10/site-packages/mmdet3d/visualization/local_visualizer.py", line 733, in _draw_pts_sem_seg
pts_sem_seg = tensor2ndarray(pts_seg.pts_semantic_mask)
AttributeError: 'PointData' object has no attribute 'pts_semantic_mask'
When I run the command, the error shows like upside:
PYTHONPATH=.:$PYTHONPATH python tools/test.py configs/oneformer3d_1xb4_scannet.py work_dirs/oneformer3d_1xb4_scannet/oneformer3d_1xb4_scannet.pth --show --task lidar_seg
root@ea607ab0c950:/workspace# PYTHONPATH=.:$PYTHONPATH python tools/test.py configs/oneformer3d_1xb4_scannet.py work_dirs/oneformer3d_1xb4_scannet/oneformer3d_1xb4_scannet.pth --show --task lidar_seg /opt/conda/lib/python3.10/site-packages/mmdet3d/evaluation/functional/kitti_utils/eval.py:10: NumbaDeprecationWarning: The 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details. def get_thresholds(scores: np.ndarray, num_gt, num_sample_pts=41): 12/02 10:01:06 - mmengine - INFO -
System environment: sys.platform: linux Python: 3.10.8 (main, Nov 4 2022, 13:48:29) [GCC 11.2.0] CUDA available: True numpy_random_seed: 720987765 GPU 0: NVIDIA GeForce RTX 3060 CUDA_HOME: /opt/conda NVCC: Cuda compilation tools, release 11.6, V11.6.124 GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 PyTorch: 1.13.1 PyTorch compiling details: PyTorch built with:
Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.6, CUDNN_VERSION=8.3.2, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wunused-local-typedefs -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.13.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF,
TorchVision: 0.14.1 OpenCV: 4.7.0 MMEngine: 0.7.3
Runtime environment: cudnn_benchmark: False mp_cfg: {'mp_start_method': 'fork', 'opencv_num_threads': 0} dist_cfg: {'backend': 'nccl'} seed: None Distributed launcher: none Distributed training: False GPU number: 1
12/02 10:01:08 - mmengine - INFO - Config: default_scope = 'mmdet3d' default_hooks = dict( timer=dict(type='IterTimerHook', scope='mmdet3d'), logger=dict(type='LoggerHook', interval=50, scope='mmdet3d'), param_scheduler=dict(type='ParamSchedulerHook', scope='mmdet3d'), checkpoint=dict( type='CheckpointHook', interval=32, scope='mmdet3d', max_keep_ckpts=8), sampler_seed=dict(type='DistSamplerSeedHook', scope='mmdet3d'), visualization=dict( type='Det3DVisualizationHook', scope='mmdet3d', draw=True, show=True, wait_time=2, vis_task='lidar_seg', score_thr=0.1)) env_cfg = dict( cudnn_benchmark=False, mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0), dist_cfg=dict(backend='nccl')) log_processor = dict( type='LogProcessor', window_size=50, by_epoch=True, scope='mmdet3d') log_level = 'INFO' load_from = 'work_dirs/oneformer3d_1xb4_scannet/oneformer3d_1xb4_scannet.pth' resume = False class_names = [ 'wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table', 'door', 'window', 'bookshelf', 'picture', 'counter', 'desk', 'curtain', 'refrigerator', 'showercurtrain', 'toilet', 'sink', 'bathtub', 'otherfurniture', 'unlabeled' ] metainfo = dict( classes=('wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table', 'door', 'window', 'bookshelf', 'picture', 'counter', 'desk', 'curtain', 'refrigerator', 'showercurtrain', 'toilet', 'sink', 'bathtub', 'otherfurniture')) datasettype = 'ScanNetSegDataset' data_root = 'data/scannet/' input_modality = dict(use_lidar=True, use_camera=False) data_prefix = dict( pts='points', pts_instance_mask='instance_mask', pts_semantic_mask='semantic_mask', sp_pts_mask='super_points') backend_args = None num_points = 8192 train_pipeline = [ dict( type='LoadPointsFromFile', coord_type='DEPTH', shift_height=False, use_color=True, load_dim=6, usedim=[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, with_sp_mask_3d=True), dict(type='PointSegClassMapping'), dict( type='RandomFlip3D', sync_2d=False, flip_ratio_bev_horizontal=0.5, flip_ratio_bev_vertical=0.5), dict( type='GlobalRotScaleTrans', rot_range=[-3.14, 3.14], scale_ratio_range=[0.8, 1.2], translation_std=[0.1, 0.1, 0.1], shiftheight=False), dict(type='NormalizePointsColor', color_mean=[127.5, 127.5, 127.5]), dict( type='AddSuperPointAnnotations', num_classes=20, stuff_classes=[0, 1], merge_non_stuff_cls=False), dict( type='ElasticTransfrom', gran=[6, 20], mag=[40, 160], voxelsize=0.02, p=0.5), dict( type='Pack3DDetInputs', keys=[ 'points', 'gt_labels_3d', 'pts_semantic_mask', 'pts_instance_mask', 'sp_pts_mask', 'gt_sp_masks', 'elastic_coords' ]) ] test_pipeline = [ dict( type='LoadPointsFromFile', coord_type='DEPTH', shift_height=False, use_color=True, load_dim=6, usedim=[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, with_sp_mask_3d=True), dict(type='PointSegClassMapping'), dict( type='MultiScaleFlipAug3D', img_scale=(1333, 800), pts_scaleratio=1, flip=False, transforms=[ dict( type='NormalizePointsColor', color_mean=[127.5, 127.5, 127.5]), dict( type='AddSuperPointAnnotations', num_classes=20, stuff_classes=[0, 1], merge_non_stuffcls=False) ]), dict(type='Pack3DDetInputs', keys=['points', 'sp_pts_mask']) ] eval_pipeline = [ dict( type='LoadPointsFromFile', coord_type='DEPTH', shift_height=False, use_color=True, load_dim=6, use_dim=[0, 1, 2, 3, 4, 5], backend_args=None, scope='mmdet3d'), dict(type='NormalizePointsColor', color_mean=None, scope='mmdet3d'), dict(type='Pack3DDetInputs', keys=['points'], scope='mmdet3d') ] tta_pipeline = [ dict( type='LoadPointsFromFile', coord_type='DEPTH', shift_height=False, use_color=True, load_dim=6, use_dim=[0, 1, 2, 3, 4, 5], backend_args=None, scope='mmdet3d'), dict( type='LoadAnnotations3D', with_bbox_3d=False, with_label_3d=False, with_mask_3d=False, with_seg_3d=True, backend_args=None, scope='mmdet3d'), dict(type='NormalizePointsColor', color_mean=None, scope='mmdet3d'), dict( type='TestTimeAug', transforms=[[{ 'type': 'RandomFlip3D', 'sync_2d': False, 'flip_ratio_bev_horizontal': 0.0, 'flip_ratio_bev_vertical': 0.0 }], [{ 'type': 'Pack3DDetInputs', 'keys': ['points'] }]], scope='mmdet3d') ] train_dataloader = dict( batch_size=4, num_workers=6, persistent_workers=True, sampler=dict(type='DefaultSampler', shuffle=True, scope='mmdet3d'), dataset=dict( type='ScanNetSegDataset_', data_root='data/scannet/', ann_file='scannet_oneformer3d_infos_train.pkl', metainfo=dict( classes=('wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table', 'door', 'window', 'bookshelf', 'picture', 'counter', 'desk', 'curtain', 'refrigerator', 'showercurtrain', 'toilet', 'sink', 'bathtub', 'otherfurniture')), data_prefix=dict( pts='points', pts_instance_mask='instance_mask', pts_semantic_mask='semantic_mask', sp_pts_mask='super_points'), pipeline=[ dict( type='LoadPointsFromFile', coord_type='DEPTH', shift_height=False, use_color=True, load_dim=6, usedim=[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, with_sp_mask_3d=True), dict(type='PointSegClassMapping'), dict( type='RandomFlip3D', sync_2d=False, flip_ratio_bev_horizontal=0.5, flip_ratio_bev_vertical=0.5), dict( type='GlobalRotScaleTrans', rot_range=[-3.14, 3.14], scale_ratio_range=[0.8, 1.2], translation_std=[0.1, 0.1, 0.1], shiftheight=False), dict( type='NormalizePointsColor', color_mean=[127.5, 127.5, 127.5]), dict( type='AddSuperPointAnnotations', num_classes=20, stuff_classes=[0, 1], merge_non_stuff_cls=False), dict( type='ElasticTransfrom', gran=[6, 20], mag=[40, 160], voxelsize=0.02, p=0.5), dict( type='Pack3DDetInputs', keys=[ 'points', 'gt_labels_3d', 'pts_semantic_mask', 'pts_instance_mask', 'sp_pts_mask', 'gt_sp_masks', 'elastic_coords' ]) ], modality=dict(use_lidar=True, use_camera=False), ignore_index=20, scene_idxs=None, test_mode=False, backend_args=None, scope='mmdet3d')) test_dataloader = dict( batch_size=1, num_workers=1, persistent_workers=True, drop_last=False, sampler=dict(type='DefaultSampler', shuffle=False, scope='mmdet3d'), dataset=dict( type='ScanNetSegDataset_', data_root='data/scannet/', ann_file='scannet_oneformer3d_infos_val.pkl', metainfo=dict( classes=('wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table', 'door', 'window', 'bookshelf', 'picture', 'counter', 'desk', 'curtain', 'refrigerator', 'showercurtrain', 'toilet', 'sink', 'bathtub', 'otherfurniture')), data_prefix=dict( pts='points', pts_instance_mask='instance_mask', pts_semantic_mask='semantic_mask', sp_pts_mask='super_points'), pipeline=[ dict( type='LoadPointsFromFile', coord_type='DEPTH', shift_height=False, use_color=True, load_dim=6, usedim=[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, with_sp_mask_3d=True), dict(type='PointSegClassMapping'), dict( type='MultiScaleFlipAug3D', img_scale=(1333, 800), pts_scaleratio=1, flip=False, transforms=[ dict( type='NormalizePointsColor', color_mean=[127.5, 127.5, 127.5]), dict( type='AddSuperPointAnnotations', num_classes=20, stuff_classes=[0, 1], merge_non_stuffcls=False) ]), dict(type='Pack3DDetInputs', keys=['points', 'sp_pts_mask']) ], modality=dict(use_lidar=True, use_camera=False), ignore_index=20, test_mode=True, backend_args=None, scope='mmdet3d')) val_dataloader = dict( batch_size=1, num_workers=1, persistent_workers=True, drop_last=False, sampler=dict(type='DefaultSampler', shuffle=False, scope='mmdet3d'), dataset=dict( type='ScanNetSegDataset_', data_root='data/scannet/', ann_file='scannet_oneformer3d_infos_val.pkl', metainfo=dict( classes=('wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table', 'door', 'window', 'bookshelf', 'picture', 'counter', 'desk', 'curtain', 'refrigerator', 'showercurtrain', 'toilet', 'sink', 'bathtub', 'otherfurniture')), data_prefix=dict( pts='points', pts_instance_mask='instance_mask', pts_semantic_mask='semantic_mask', sp_pts_mask='super_points'), pipeline=[ dict( type='LoadPointsFromFile', coord_type='DEPTH', shift_height=False, use_color=True, load_dim=6, usedim=[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, with_sp_mask_3d=True), dict(type='PointSegClassMapping'), dict( type='MultiScaleFlipAug3D', img_scale=(1333, 800), pts_scaleratio=1, flip=False, transforms=[ dict( type='NormalizePointsColor', color_mean=[127.5, 127.5, 127.5]), dict( type='AddSuperPointAnnotations', num_classes=20, stuff_classes=[0, 1], merge_non_stuffcls=False) ]), dict(type='Pack3DDetInputs', keys=['points', 'sp_pts_mask']) ], modality=dict(use_lidar=True, use_camera=False), ignore_index=20, test_mode=True, backend_args=None, scope='mmdet3d')) val_evaluator = dict( type='UnifiedSegMetric', scope='mmdet3d', stuff_class_inds=[0, 1], thing_class_inds=[ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ], min_num_points=1, id_offset=65536, sem_mapping=[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 24, 28, 33, 34, 36, 39 ], inst_mapping=[ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 24, 28, 33, 34, 36, 39 ], metric_meta=dict( label2cat=dict({ 0: 'wall', 1: 'floor', 2: 'cabinet', 3: 'bed', 4: 'chair', 5: 'sofa', 6: 'table', 7: 'door', 8: 'window', 9: 'bookshelf', 10: 'picture', 11: 'counter', 12: 'desk', 13: 'curtain', 14: 'refrigerator', 15: 'showercurtrain', 16: 'toilet', 17: 'sink', 18: 'bathtub', 19: 'otherfurniture', 20: 'unlabeled' }), ignore_index=[20], classes=[ 'wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table', 'door', 'window', 'bookshelf', 'picture', 'counter', 'desk', 'curtain', 'refrigerator', 'showercurtrain', 'toilet', 'sink', 'bathtub', 'otherfurniture', 'unlabeled' ], dataset_name='ScanNet')) test_evaluator = dict( type='UnifiedSegMetric', scope='mmdet3d', stuff_class_inds=[0, 1], thing_class_inds=[ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ], min_num_points=1, id_offset=65536, sem_mapping=[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 24, 28, 33, 34, 36, 39 ], inst_mapping=[ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 24, 28, 33, 34, 36, 39 ], metric_meta=dict( label2cat=dict({ 0: 'wall', 1: 'floor', 2: 'cabinet', 3: 'bed', 4: 'chair', 5: 'sofa', 6: 'table', 7: 'door', 8: 'window', 9: 'bookshelf', 10: 'picture', 11: 'counter', 12: 'desk', 13: 'curtain', 14: 'refrigerator', 15: 'showercurtrain', 16: 'toilet', 17: 'sink', 18: 'bathtub', 19: 'otherfurniture', 20: 'unlabeled' }), ignore_index=[20], classes=[ 'wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table', 'door', 'window', 'bookshelf', 'picture', 'counter', 'desk', 'curtain', 'refrigerator', 'showercurtrain', 'toilet', 'sink', 'bathtub', 'otherfurniture', 'unlabeled' ], dataset_name='ScanNet')) vis_backends = [dict(type='LocalVisBackend', scope='mmdet3d')] visualizer = dict( type='Det3DLocalVisualizer', vis_backends=[dict(type='LocalVisBackend')], name='visualizer', scope='mmdet3d') tta_model = dict(type='Seg3DTTAModel', scope='mmdet3d') custom_imports = dict(imports=['oneformer3d']) num_channels = 32 num_instance_classes = 18 num_semantic_classes = 20 model = dict( type='ScanNetOneFormer3D', datapreprocessor=dict(type='Det3DDataPreprocessor'), in_channels=6, num_channels=32, voxel_size=0.02, num_classes=18, min_spatial_shape=128, query_thr=0.5, backbone=dict( type='SpConvUNet', num_planes=[32, 64, 96, 128, 160], return_blocks=True), decoder=dict( type='ScanNetQueryDecoder', num_layers=6, num_instance_queries=0, num_semantic_queries=0, num_instance_classes=18, num_semantic_classes=20, num_semantic_linears=1, in_channels=32, d_model=256, num_heads=8, hidden_dim=1024, dropout=0.0, activation_fn='gelu', iter_pred=True, attn_mask=True, fix_attention=True, objectness_flag=False), criterion=dict( type='ScanNetUnifiedCriterion', num_semantic_classes=20, sem_criterion=dict( type='ScanNetSemanticCriterion', ignore_index=20, loss_weight=0.2), inst_criterion=dict( type='InstanceCriterion', matcher=dict( type='SparseMatcher', costs=[ dict(type='QueryClassificationCost', weight=0.5), dict(type='MaskBCECost', weight=1.0), dict(type='MaskDiceCost', weight=1.0) ], topk=1), loss_weight=[0.5, 1.0, 1.0, 0.5], num_classes=18, non_object_weight=0.1, fix_dice_loss_weight=True, iter_matcher=True, fix_mean_loss=True)), train_cfg=dict(), test_cfg=dict( topk_insts=600, inst_score_thr=0.0, pan_score_thr=0.5, npoint_thr=100, obj_normalization=True, sp_score_thr=0.4, nms=True, matrix_nms_kernel='linear', stuff_classes=[0, 1])) label2cat = dict({ 0: 'wall', 1: 'floor', 2: 'cabinet', 3: 'bed', 4: 'chair', 5: 'sofa', 6: 'table', 7: 'door', 8: 'window', 9: 'bookshelf', 10: 'picture', 11: 'counter', 12: 'desk', 13: 'curtain', 14: 'refrigerator', 15: 'showercurtrain', 16: 'toilet', 17: 'sink', 18: 'bathtub', 19: 'otherfurniture', 20: 'unlabeled' }) metric_meta = dict( label2cat=dict({ 0: 'wall', 1: 'floor', 2: 'cabinet', 3: 'bed', 4: 'chair', 5: 'sofa', 6: 'table', 7: 'door', 8: 'window', 9: 'bookshelf', 10: 'picture', 11: 'counter', 12: 'desk', 13: 'curtain', 14: 'refrigerator', 15: 'showercurtrain', 16: 'toilet', 17: 'sink', 18: 'bathtub', 19: 'otherfurniture', 20: 'unlabeled' }), ignore_index=[20], classes=[ 'wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table', 'door', 'window', 'bookshelf', 'picture', 'counter', 'desk', 'curtain', 'refrigerator', 'showercurtrain', 'toilet', 'sink', 'bathtub', 'otherfurniture', 'unlabeled' ], dataset_name='ScanNet') sem_mapping = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 24, 28, 33, 34, 36, 39 ] inst_mapping = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 24, 28, 33, 34, 36, 39 ] optim_wrapper = dict( type='OptimWrapper', optimizer=dict(type='AdamW', lr=0.0001, weight_decay=0.05), clip_grad=dict(max_norm=10, norm_type=2)) param_scheduler = dict(type='PolyLR', begin=0, end=512, power=0.9) custom_hooks = [dict(type='EmptyCacheHook', after_iter=True)] train_cfg = dict( type='EpochBasedTrainLoop', max_epochs=512, dynamic_intervals=[(1, 16), (496, 1)]) val_cfg = dict(type='ValLoop') test_cfg = dict(type='TestLoop') launcher = 'none' work_dir = './work_dirs/oneformer3d_1xb4_scannet'
12/02 10:01:14 - mmengine - INFO - Distributed training is not used, all SyncBatchNorm (SyncBN) layers in the model will be automatically reverted to BatchNormXd layers if they are used. /opt/conda/lib/python3.10/site-packages/mmdet3d/engine/hooks/visualization_hook.py:67: UserWarning: The show is True, it means that only the prediction results are visualized without storing data, so vis_backends needs to be excluded. warnings.warn('The show is True, it means that only ' 12/02 10:01:14 - mmengine - INFO - Hooks will be executed in the following order: before_run: (VERY_HIGH ) RuntimeInfoHook (BELOW_NORMAL) LoggerHook
before_train: (VERY_HIGH ) RuntimeInfoHook (NORMAL ) IterTimerHook (VERY_LOW ) CheckpointHook
before_train_epoch: (VERY_HIGH ) RuntimeInfoHook (NORMAL ) IterTimerHook (NORMAL ) DistSamplerSeedHook (NORMAL ) EmptyCacheHook
before_train_iter: (VERY_HIGH ) RuntimeInfoHook (NORMAL ) IterTimerHook
after_train_iter: (VERY_HIGH ) RuntimeInfoHook (NORMAL ) IterTimerHook (NORMAL ) EmptyCacheHook (BELOW_NORMAL) LoggerHook (LOW ) ParamSchedulerHook (VERY_LOW ) CheckpointHook
after_train_epoch: (NORMAL ) IterTimerHook (NORMAL ) EmptyCacheHook (LOW ) ParamSchedulerHook (VERY_LOW ) CheckpointHook
before_val_epoch: (NORMAL ) IterTimerHook (NORMAL ) EmptyCacheHook
before_val_iter: (NORMAL ) IterTimerHook
after_val_iter: (NORMAL ) IterTimerHook (NORMAL ) Det3DVisualizationHook (NORMAL ) EmptyCacheHook (BELOW_NORMAL) LoggerHook
after_val_epoch: (VERY_HIGH ) RuntimeInfoHook (NORMAL ) IterTimerHook (NORMAL ) EmptyCacheHook (BELOW_NORMAL) LoggerHook (LOW ) ParamSchedulerHook (VERY_LOW ) CheckpointHook
after_train: (VERY_LOW ) CheckpointHook
before_test_epoch: (NORMAL ) IterTimerHook (NORMAL ) EmptyCacheHook
before_test_iter: (NORMAL ) IterTimerHook
after_test_iter: (NORMAL ) IterTimerHook (NORMAL ) Det3DVisualizationHook (NORMAL ) EmptyCacheHook (BELOW_NORMAL) LoggerHook
after_test_epoch: (VERY_HIGH ) RuntimeInfoHook (NORMAL ) IterTimerHook (NORMAL ) EmptyCacheHook (BELOW_NORMAL) LoggerHook
after_run: (BELOW_NORMAL) LoggerHook
12/02 10:01:16 - mmengine - WARNING - The prefix is not set in metric class UnifiedSegMetric. Loads checkpoint by local backend from path: work_dirs/oneformer3d_1xb4_scannet/oneformer3d_1xb4_scannet.pth 12/02 10:01:19 - mmengine - INFO - Load checkpoint from work_dirs/oneformer3d_1xb4_scannet/oneformer3d_1xb4_scannet.pth /opt/conda/lib/python3.10/site-packages/mmdet3d/structures/points/base_points.py:136: UserWarning: point got color value beyond [0, 255] warnings.warn('point got color value beyond [0, 255]') Traceback (most recent call last): File "/workspace/tools/test.py", line 149, in
main()
File "/workspace/tools/test.py", line 145, in main
runner.test()
File "/opt/conda/lib/python3.10/site-packages/mmengine/runner/runner.py", line 1767, in test
metrics = self.test_loop.run() # type: ignore
File "/opt/conda/lib/python3.10/site-packages/mmengine/runner/loops.py", line 435, in run
self.run_iter(idx, data_batch)
File "/opt/conda/lib/python3.10/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
return func(args, kwargs)
File "/opt/conda/lib/python3.10/site-packages/mmengine/runner/loops.py", line 456, in run_iter
self.runner.call_hook(
File "/opt/conda/lib/python3.10/site-packages/mmengine/runner/runner.py", line 1783, in call_hook
getattr(hook, fn_name)(self, kwargs)
File "/opt/conda/lib/python3.10/site-packages/mmdet3d/engine/hooks/visualization_hook.py", line 207, in after_test_iter
self._visualizer.add_datasample(
File "/opt/conda/lib/python3.10/site-packages/mmengine/dist/utils.py", line 366, in wrapper
return func(args, **kwargs)
File "/opt/conda/lib/python3.10/site-packages/mmdet3d/visualization/local_visualizer.py", line 891, in add_datasample
self._draw_pts_sem_seg(data_input['points'],
File "/opt/conda/lib/python3.10/site-packages/mmdet3d/visualization/local_visualizer.py", line 733, in _draw_pts_sem_seg
pts_sem_seg = tensor2ndarray(pts_seg.pts_semantic_mask)
AttributeError: 'PointData' object has no attribute 'pts_semantic_mask'
When I run the command, the error shows like upside: PYTHONPATH=.:$PYTHONPATH python tools/test.py configs/oneformer3d_1xb4_scannet.py work_dirs/oneformer3d_1xb4_scannet/oneformer3d_1xb4_scannet.pth --show --task lidar_seg
How can I fix it?