From 8a629f599fac22ce837ca2ed2e5ff2bf8e8df862 Mon Sep 17 00:00:00 2001 From: sunjiahao1999 <578431509@qq.com> Date: Mon, 27 Feb 2023 18:52:14 +0800 Subject: [PATCH 01/11] fix polarmix UT --- tests/test_datasets/test_transforms/test_transforms_3d.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_datasets/test_transforms/test_transforms_3d.py b/tests/test_datasets/test_transforms/test_transforms_3d.py index b66c3bb3c1..036d8bbfca 100644 --- a/tests/test_datasets/test_transforms/test_transforms_3d.py +++ b/tests/test_datasets/test_transforms/test_transforms_3d.py @@ -216,7 +216,7 @@ def test_transform(self): transform = PolarMix(instance_classes=[1.0, 2.0]) transform = PolarMix( - instance_classes=[1, 2], + instance_classes=[15, 16, 17], swap_ratio=1.0, pre_transform=self.pre_transform) results = transform.transform(copy.deepcopy(self.results)) From 06ad6769bf67fb2725d8e2a47b51ad46d780e5ce Mon Sep 17 00:00:00 2001 From: sunjiahao1999 <578431509@qq.com> Date: Wed, 1 Mar 2023 18:02:39 +0800 Subject: [PATCH 02/11] format --- configs/_base_/datasets/semantickitti.py | 100 ++++++++++++---------- mmdet3d/datasets/semantickitti_dataset.py | 4 +- 2 files changed, 59 insertions(+), 45 deletions(-) diff --git a/configs/_base_/datasets/semantickitti.py b/configs/_base_/datasets/semantickitti.py index 445ab6bdf5..b37ebeb074 100644 --- a/configs/_base_/datasets/semantickitti.py +++ b/configs/_base_/datasets/semantickitti.py @@ -2,13 +2,11 @@ dataset_type = 'SemanticKITTIDataset' data_root = 'data/semantickitti/' class_names = [ - 'unlabeled', 'car', 'bicycle', 'motorcycle', 'truck', 'bus', 'person', - 'bicyclist', 'motorcyclist', 'road', 'parking', 'sidewalk', 'other-ground', - 'building', 'fence', 'vegetation', 'trunck', 'terrian', 'pole', - 'traffic-sign' + 'car', 'bicycle', 'motorcycle', 'truck', 'bus', 'person', 'bicyclist', + 'motorcyclist', 'road', 'parking', 'sidewalk', 'other-ground', 'building', + 'fence', 'vegetation', 'trunck', 'terrian', 'pole', 'traffic-sign' ] palette = [ - [174, 199, 232], [152, 223, 138], [31, 119, 180], [255, 187, 120], @@ -28,43 +26,44 @@ [112, 128, 144], [227, 119, 194], [82, 84, 163], + # [174, 199, 232], use for unlabeled ] labels_map = { - 0: 0, # "unlabeled" - 1: 0, # "outlier" mapped to "unlabeled" --------------mapped - 10: 1, # "car" - 11: 2, # "bicycle" - 13: 5, # "bus" mapped to "other-vehicle" --------------mapped - 15: 3, # "motorcycle" - 16: 5, # "on-rails" mapped to "other-vehicle" ---------mapped - 18: 4, # "truck" - 20: 5, # "other-vehicle" - 30: 6, # "person" - 31: 7, # "bicyclist" - 32: 8, # "motorcyclist" - 40: 9, # "road" - 44: 10, # "parking" - 48: 11, # "sidewalk" - 49: 12, # "other-ground" - 50: 13, # "building" - 51: 14, # "fence" - 52: 0, # "other-structure" mapped to "unlabeled" ------mapped - 60: 9, # "lane-marking" to "road" ---------------------mapped - 70: 15, # "vegetation" - 71: 16, # "trunk" - 72: 17, # "terrain" - 80: 18, # "pole" - 81: 19, # "traffic-sign" - 99: 0, # "other-object" to "unlabeled" ----------------mapped - 252: 1, # "moving-car" to "car" ------------------------mapped - 253: 7, # "moving-bicyclist" to "bicyclist" ------------mapped - 254: 6, # "moving-person" to "person" ------------------mapped - 255: 8, # "moving-motorcyclist" to "motorcyclist" ------mapped - 256: 5, # "moving-on-rails" mapped to "other-vehic------mapped - 257: 5, # "moving-bus" mapped to "other-vehicle" -------mapped - 258: 4, # "moving-truck" to "truck" --------------------mapped - 259: 5 # "moving-other"-vehicle to "other-vehicle"-----mapped + 0: 19, # "unlabeled" + 1: 19, # "outlier" mapped to "unlabeled" --------------mapped + 10: 0, # "car" + 11: 1, # "bicycle" + 13: 4, # "bus" mapped to "other-vehicle" --------------mapped + 15: 2, # "motorcycle" + 16: 4, # "on-rails" mapped to "other-vehicle" ---------mapped + 18: 3, # "truck" + 20: 4, # "other-vehicle" + 30: 5, # "person" + 31: 6, # "bicyclist" + 32: 7, # "motorcyclist" + 40: 8, # "road" + 44: 9, # "parking" + 48: 10, # "sidewalk" + 49: 11, # "other-ground" + 50: 12, # "building" + 51: 13, # "fence" + 52: 19, # "other-structure" mapped to "unlabeled" ------mapped + 60: 8, # "lane-marking" to "road" ---------------------mapped + 70: 14, # "vegetation" + 71: 15, # "trunk" + 72: 16, # "terrain" + 80: 17, # "pole" + 81: 18, # "traffic-sign" + 99: 19, # "other-object" to "unlabeled" ----------------mapped + 252: 0, # "moving-car" to "car" ------------------------mapped + 253: 6, # "moving-bicyclist" to "bicyclist" ------------mapped + 254: 5, # "moving-person" to "person" ------------------mapped + 255: 7, # "moving-motorcyclist" to "motorcyclist" ------mapped + 256: 4, # "moving-on-rails" mapped to "other-vehic------mapped + 257: 4, # "moving-bus" mapped to "other-vehicle" -------mapped + 258: 3, # "moving-truck" to "truck" --------------------mapped + 259: 4 # "moving-other"-vehicle to "other-vehicle"-----mapped } metainfo = dict( @@ -95,7 +94,10 @@ file_client_args=file_client_args), dict( type='LoadAnnotations3D', + with_bbox_3d=False, + with_label_3d=False, with_seg_3d=True, + seg_3d_dtype='np.int32', seg_offset=2**16, dataset_type='semantickitti'), dict(type='PointSegClassMapping', ), @@ -121,7 +123,10 @@ file_client_args=file_client_args), dict( type='LoadAnnotations3D', + with_bbox_3d=False, + with_label_3d=False, with_seg_3d=True, + seg_3d_dtype='np.int32', seg_offset=2**16, dataset_type='semantickitti'), dict(type='PointSegClassMapping', ), @@ -138,7 +143,10 @@ file_client_args=file_client_args), dict( type='LoadAnnotations3D', + with_bbox_3d=False, + with_label_3d=False, with_seg_3d=True, + seg_3d_dtype='np.int32', seg_offset=2**16, dataset_type='semantickitti'), dict(type='PointSegClassMapping', ), @@ -146,7 +154,7 @@ ] train_dataloader = dict( - batch_size=4, + batch_size=2, num_workers=4, sampler=dict(type='DefaultSampler', shuffle=True), dataset=dict( @@ -155,10 +163,11 @@ dataset=dict( type=dataset_type, data_root=data_root, - ann_file='train_infos.pkl', + ann_file='semantickitti_infos_train.pkl', pipeline=train_pipeline, metainfo=metainfo, - modality=input_modality)), + modality=input_modality, + ignore_index=19)), ) test_dataloader = dict( @@ -171,10 +180,11 @@ dataset=dict( type=dataset_type, data_root=data_root, - ann_file='valid_infos.pkl', + ann_file='semantickitti_infos_val.pkl', pipeline=test_pipeline, metainfo=metainfo, modality=input_modality, + ignore_index=19, test_mode=True, )), ) @@ -183,3 +193,7 @@ val_evaluator = dict(type='SegMetric') test_evaluator = val_evaluator + +vis_backends = [dict(type='LocalVisBackend')] +visualizer = dict( + type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer') diff --git a/mmdet3d/datasets/semantickitti_dataset.py b/mmdet3d/datasets/semantickitti_dataset.py index c157208c6c..ec4dace662 100644 --- a/mmdet3d/datasets/semantickitti_dataset.py +++ b/mmdet3d/datasets/semantickitti_dataset.py @@ -59,7 +59,7 @@ def __init__(self, ann_file: str = '', metainfo: Optional[dict] = None, data_prefix: dict = dict( - pts='points', + pts='', img='', pts_instance_mask='', pts_semantic_mask=''), @@ -83,7 +83,7 @@ def __init__(self, **kwargs) def get_seg_label_mapping(self, metainfo): - seg_label_mapping = np.zeros(metainfo['max_label'] + 1) + seg_label_mapping = np.zeros(metainfo['max_label'] + 1, dtype=np.int64) for idx in metainfo['seg_label_mapping']: seg_label_mapping[idx] = metainfo['seg_label_mapping'][idx] return seg_label_mapping From 5223d96f8148ee9cd24e2dc7a38c40201fc9e1ac Mon Sep 17 00:00:00 2001 From: sunjiahao1999 <578431509@qq.com> Date: Thu, 2 Mar 2023 13:12:30 +0800 Subject: [PATCH 03/11] rename SemanticKittiDataset --- configs/_base_/datasets/semantickitti.py | 2 +- mmdet3d/datasets/__init__.py | 4 ++-- mmdet3d/datasets/semantickitti_dataset.py | 4 ++-- tests/test_datasets/test_semantickitti_dataset.py | 6 +++--- tests/test_datasets/test_transforms/test_transforms_3d.py | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/configs/_base_/datasets/semantickitti.py b/configs/_base_/datasets/semantickitti.py index b37ebeb074..eb35b16bb5 100644 --- a/configs/_base_/datasets/semantickitti.py +++ b/configs/_base_/datasets/semantickitti.py @@ -1,5 +1,5 @@ # dataset settings -dataset_type = 'SemanticKITTIDataset' +dataset_type = 'SemanticKittiDataset' data_root = 'data/semantickitti/' class_names = [ 'car', 'bicycle', 'motorcycle', 'truck', 'bus', 'person', 'bicyclist', diff --git a/mmdet3d/datasets/__init__.py b/mmdet3d/datasets/__init__.py index e1153ba891..d573ca4ed9 100644 --- a/mmdet3d/datasets/__init__.py +++ b/mmdet3d/datasets/__init__.py @@ -9,7 +9,7 @@ from .scannet_dataset import (ScanNetDataset, ScanNetInstanceSegDataset, ScanNetSegDataset) from .seg3d_dataset import Seg3DDataset -from .semantickitti_dataset import SemanticKITTIDataset +from .semantickitti_dataset import SemanticKittiDataset from .sunrgbd_dataset import SUNRGBDDataset # yapf: disable from .transforms import (AffineResize, BackgroundPointsFilter, GlobalAlignment, @@ -33,7 +33,7 @@ 'NormalizePointsColor', 'IndoorPatchPointSample', 'IndoorPointSample', 'PointSample', 'LoadAnnotations3D', 'GlobalAlignment', 'SUNRGBDDataset', 'ScanNetDataset', 'ScanNetSegDataset', 'ScanNetInstanceSegDataset', - 'SemanticKITTIDataset', 'Det3DDataset', 'Seg3DDataset', + 'SemanticKittiDataset', 'Det3DDataset', 'Seg3DDataset', 'LoadPointsFromMultiSweeps', 'WaymoDataset', 'BackgroundPointsFilter', 'VoxelBasedPointSampler', 'get_loading_pipeline', 'RandomDropPointsColor', 'RandomJitterPoints', 'ObjectNameFilter', 'AffineResize', diff --git a/mmdet3d/datasets/semantickitti_dataset.py b/mmdet3d/datasets/semantickitti_dataset.py index ec4dace662..f4680f1827 100644 --- a/mmdet3d/datasets/semantickitti_dataset.py +++ b/mmdet3d/datasets/semantickitti_dataset.py @@ -8,8 +8,8 @@ @DATASETS.register_module() -class SemanticKITTIDataset(Seg3DDataset): - r"""SemanticKITTI Dataset. +class SemanticKittiDataset(Seg3DDataset): + r"""SemanticKitti Dataset. This class serves as the API for experiments on the SemanticKITTI Dataset Please refer to `_ diff --git a/tests/test_datasets/test_semantickitti_dataset.py b/tests/test_datasets/test_semantickitti_dataset.py index 300253a681..deba39cf12 100644 --- a/tests/test_datasets/test_semantickitti_dataset.py +++ b/tests/test_datasets/test_semantickitti_dataset.py @@ -3,7 +3,7 @@ import numpy as np -from mmdet3d.datasets import SemanticKITTIDataset +from mmdet3d.datasets import SemanticKittiDataset from mmdet3d.utils import register_all_modules @@ -100,7 +100,7 @@ def _generate_semantickitti_dataset_config(): modality, seg_label_mapping, max_label) -class TestSemanticKITTIDataset(unittest.TestCase): +class TestSemanticKittiDataset(unittest.TestCase): def test_semantickitti(self): (data_root, ann_file, classes, palette, data_prefix, pipeline, @@ -109,7 +109,7 @@ def test_semantickitti(self): register_all_modules() np.random.seed(0) - semantickitti_dataset = SemanticKITTIDataset( + semantickitti_dataset = SemanticKittiDataset( data_root, ann_file, metainfo=dict( diff --git a/tests/test_datasets/test_transforms/test_transforms_3d.py b/tests/test_datasets/test_transforms/test_transforms_3d.py index 3d6fd6eac2..b9588a6831 100644 --- a/tests/test_datasets/test_transforms/test_transforms_3d.py +++ b/tests/test_datasets/test_transforms/test_transforms_3d.py @@ -7,7 +7,7 @@ from mmengine.testing import assert_allclose from mmdet3d.datasets import (GlobalAlignment, RandomFlip3D, - SemanticKITTIDataset) + SemanticKittiDataset) from mmdet3d.datasets.transforms import GlobalRotScaleTrans, LaserMix, PolarMix from mmdet3d.structures import LiDARPoints from mmdet3d.testing import create_data_info_after_loading @@ -187,7 +187,7 @@ def setUp(self): 259: 5 # "moving-other"-vehicle to "other-vehicle"-----mapped } max_label = 259 - self.dataset = SemanticKITTIDataset( + self.dataset = SemanticKittiDataset( './tests/data/semantickitti/', 'semantickitti_infos.pkl', metainfo=dict( @@ -305,7 +305,7 @@ def setUp(self): 259: 5 # "moving-other"-vehicle to "other-vehicle"-----mapped } max_label = 259 - self.dataset = SemanticKITTIDataset( + self.dataset = SemanticKittiDataset( './tests/data/semantickitti/', 'semantickitti_infos.pkl', metainfo=dict( From 7ccd1f9c3341a4259825d879d435023c6f3128da Mon Sep 17 00:00:00 2001 From: sunjiahao1999 <578431509@qq.com> Date: Tue, 7 Mar 2023 13:18:21 +0800 Subject: [PATCH 04/11] add platte & fix data info bug --- configs/_base_/datasets/semantickitti.py | 27 +------------------ mmdet3d/datasets/seg3d_dataset.py | 3 +++ mmdet3d/datasets/semantickitti_dataset.py | 18 ++++++++----- .../semantickitti_converter.py | 4 ++- 4 files changed, 19 insertions(+), 33 deletions(-) diff --git a/configs/_base_/datasets/semantickitti.py b/configs/_base_/datasets/semantickitti.py index eb35b16bb5..6a97b79510 100644 --- a/configs/_base_/datasets/semantickitti.py +++ b/configs/_base_/datasets/semantickitti.py @@ -6,28 +6,6 @@ 'motorcyclist', 'road', 'parking', 'sidewalk', 'other-ground', 'building', 'fence', 'vegetation', 'trunck', 'terrian', 'pole', 'traffic-sign' ] -palette = [ - [152, 223, 138], - [31, 119, 180], - [255, 187, 120], - [188, 189, 34], - [140, 86, 75], - [255, 152, 150], - [214, 39, 40], - [197, 176, 213], - [148, 103, 189], - [196, 156, 148], - [23, 190, 207], - [247, 182, 210], - [219, 219, 141], - [255, 127, 14], - [158, 218, 229], - [44, 160, 44], - [112, 128, 144], - [227, 119, 194], - [82, 84, 163], - # [174, 199, 232], use for unlabeled -] labels_map = { 0: 19, # "unlabeled" @@ -67,10 +45,7 @@ } metainfo = dict( - classes=class_names, - palette=palette, - seg_label_mapping=labels_map, - max_label=259) + classes=class_names, seg_label_mapping=labels_map, max_label=259) input_modality = dict(use_lidar=True, use_camera=False) diff --git a/mmdet3d/datasets/seg3d_dataset.py b/mmdet3d/datasets/seg3d_dataset.py index e2bb74b91a..582436965f 100644 --- a/mmdet3d/datasets/seg3d_dataset.py +++ b/mmdet3d/datasets/seg3d_dataset.py @@ -257,6 +257,9 @@ def parse_data_info(self, info: dict) -> dict: self.data_prefix.get('pts', ''), info['lidar_points']['lidar_path']) + info['num_pts_feats'] = info['lidar_points']['num_pts_feats'] + info['lidar_path'] = info['lidar_points']['lidar_path'] + if self.modality['use_camera']: for cam_id, img_info in info['images'].items(): if 'img_path' in img_info: diff --git a/mmdet3d/datasets/semantickitti_dataset.py b/mmdet3d/datasets/semantickitti_dataset.py index f4680f1827..134333f778 100644 --- a/mmdet3d/datasets/semantickitti_dataset.py +++ b/mmdet3d/datasets/semantickitti_dataset.py @@ -44,14 +44,20 @@ class SemanticKittiDataset(Seg3DDataset): Defaults to False. """ METAINFO = { - 'classes': ('unlabeled', 'car', 'bicycle', 'motorcycle', 'truck', - 'bus', 'person', 'bicyclist', 'motorcyclist', 'road', - 'parking', 'sidewalk', 'other-ground', 'building', 'fence', - 'vegetation', 'trunck', 'terrian', 'pole', 'traffic-sign'), + 'classes': ('car', 'bicycle', 'motorcycle', 'truck', 'bus', 'person', + 'bicyclist', 'motorcyclist', 'road', 'parking', 'sidewalk', + 'other-ground', 'building', 'fence', 'vegetation', + 'trunck', 'terrian', 'pole', 'traffic-sign'), + 'palette': [[100, 150, 245], [100, 230, 245], [30, 60, 150], + [80, 30, 180], [100, 80, 250], [155, 30, 30], + [255, 40, 200], [150, 30, 90], [255, 0, 255], + [255, 150, 255], [75, 0, 75], [175, 0, 75], [255, 200, 0], + [255, 120, 50], [0, 175, 0], [135, 60, 0], [150, 240, 80], + [255, 240, 150], [255, 0, 0]], 'seg_valid_class_ids': - tuple(range(20)), + tuple(range(19)), 'seg_all_class_ids': - tuple(range(20)), + tuple(range(19)), } def __init__(self, diff --git a/tools/dataset_converters/semantickitti_converter.py b/tools/dataset_converters/semantickitti_converter.py index 4df419f6e4..2454eea6f9 100644 --- a/tools/dataset_converters/semantickitti_converter.py +++ b/tools/dataset_converters/semantickitti_converter.py @@ -62,7 +62,9 @@ def get_semantickitti_info(split): 'lidar_path': osp.join('sequences', str(i_folder).zfill(2), 'velodyne', - str(j).zfill(6) + '.bin') + str(j).zfill(6) + '.bin'), + 'num_pts_feats': + 4 }, 'pts_semantic_mask_path': osp.join('sequences', From 93461ee879926824b29602dde4d0941ea7199dd9 Mon Sep 17 00:00:00 2001 From: sunjiahao1999 <578431509@qq.com> Date: Tue, 7 Mar 2023 13:33:23 +0800 Subject: [PATCH 05/11] fix ut --- .../test_transforms/test_transforms_3d.py | 62 +++---------------- 1 file changed, 8 insertions(+), 54 deletions(-) diff --git a/tests/test_datasets/test_transforms/test_transforms_3d.py b/tests/test_datasets/test_transforms/test_transforms_3d.py index b9588a6831..94d2e0c55e 100644 --- a/tests/test_datasets/test_transforms/test_transforms_3d.py +++ b/tests/test_datasets/test_transforms/test_transforms_3d.py @@ -124,32 +124,10 @@ def setUp(self): seg_3d_dtype='np.int32'), dict(type='PointSegClassMapping'), ] - classes = ('unlabeled', 'car', 'bicycle', 'motorcycle', 'truck', 'bus', - 'person', 'bicyclist', 'motorcyclist', 'road', 'parking', - 'sidewalk', 'other-ground', 'building', 'fence', - 'vegetation', 'trunck', 'terrian', 'pole', 'traffic-sign') - palette = [ - [174, 199, 232], - [152, 223, 138], - [31, 119, 180], - [255, 187, 120], - [188, 189, 34], - [140, 86, 75], - [255, 152, 150], - [214, 39, 40], - [197, 176, 213], - [148, 103, 189], - [196, 156, 148], - [23, 190, 207], - [247, 182, 210], - [219, 219, 141], - [255, 127, 14], - [158, 218, 229], - [44, 160, 44], - [112, 128, 144], - [227, 119, 194], - [82, 84, 163], - ] + classes = ('car', 'bicycle', 'motorcycle', 'truck', 'bus', 'person', + 'bicyclist', 'motorcyclist', 'road', 'parking', 'sidewalk', + 'other-ground', 'building', 'fence', 'vegetation', 'trunck', + 'terrian', 'pole', 'traffic-sign') seg_label_mapping = { 0: 0, # "unlabeled" 1: 0, # "outlier" mapped to "unlabeled" --------------mapped @@ -192,7 +170,6 @@ def setUp(self): 'semantickitti_infos.pkl', metainfo=dict( classes=classes, - palette=palette, seg_label_mapping=seg_label_mapping, max_label=max_label), data_prefix=dict( @@ -242,32 +219,10 @@ def setUp(self): seg_3d_dtype='np.int32'), dict(type='PointSegClassMapping'), ] - classes = ('unlabeled', 'car', 'bicycle', 'motorcycle', 'truck', 'bus', - 'person', 'bicyclist', 'motorcyclist', 'road', 'parking', - 'sidewalk', 'other-ground', 'building', 'fence', - 'vegetation', 'trunck', 'terrian', 'pole', 'traffic-sign') - palette = [ - [174, 199, 232], - [152, 223, 138], - [31, 119, 180], - [255, 187, 120], - [188, 189, 34], - [140, 86, 75], - [255, 152, 150], - [214, 39, 40], - [197, 176, 213], - [148, 103, 189], - [196, 156, 148], - [23, 190, 207], - [247, 182, 210], - [219, 219, 141], - [255, 127, 14], - [158, 218, 229], - [44, 160, 44], - [112, 128, 144], - [227, 119, 194], - [82, 84, 163], - ] + classes = ('car', 'bicycle', 'motorcycle', 'truck', 'bus', 'person', + 'bicyclist', 'motorcyclist', 'road', 'parking', 'sidewalk', + 'other-ground', 'building', 'fence', 'vegetation', 'trunck', + 'terrian', 'pole', 'traffic-sign') seg_label_mapping = { 0: 0, # "unlabeled" 1: 0, # "outlier" mapped to "unlabeled" --------------mapped @@ -310,7 +265,6 @@ def setUp(self): 'semantickitti_infos.pkl', metainfo=dict( classes=classes, - palette=palette, seg_label_mapping=seg_label_mapping, max_label=max_label), data_prefix=dict( From 40fcdda775e9a6233741464b3e4f93c0c851bae5 Mon Sep 17 00:00:00 2001 From: sunjiahao1999 <578431509@qq.com> Date: Tue, 7 Mar 2023 13:42:57 +0800 Subject: [PATCH 06/11] fix semantic_kitti ut --- .../test_semantickitti_dataset.py | 39 ++++--------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/tests/test_datasets/test_semantickitti_dataset.py b/tests/test_datasets/test_semantickitti_dataset.py index deba39cf12..4c8f6dce5e 100644 --- a/tests/test_datasets/test_semantickitti_dataset.py +++ b/tests/test_datasets/test_semantickitti_dataset.py @@ -10,32 +10,10 @@ def _generate_semantickitti_dataset_config(): data_root = './tests/data/semantickitti/' ann_file = 'semantickitti_infos.pkl' - classes = ('unlabeled', 'car', 'bicycle', 'motorcycle', 'truck', 'bus', - 'person', 'bicyclist', 'motorcyclist', 'road', 'parking', - 'sidewalk', 'other-ground', 'building', 'fence', 'vegetation', - 'trunck', 'terrian', 'pole', 'traffic-sign') - palette = [ - [174, 199, 232], - [152, 223, 138], - [31, 119, 180], - [255, 187, 120], - [188, 189, 34], - [140, 86, 75], - [255, 152, 150], - [214, 39, 40], - [197, 176, 213], - [148, 103, 189], - [196, 156, 148], - [23, 190, 207], - [247, 182, 210], - [219, 219, 141], - [255, 127, 14], - [158, 218, 229], - [44, 160, 44], - [112, 128, 144], - [227, 119, 194], - [82, 84, 163], - ] + classes = ('car', 'bicycle', 'motorcycle', 'truck', 'bus', 'person', + 'bicyclist', 'motorcyclist', 'road', 'parking', 'sidewalk', + 'other-ground', 'building', 'fence', 'vegetation', 'trunck', + 'terrian', 'pole', 'traffic-sign') seg_label_mapping = { 0: 0, # "unlabeled" @@ -96,15 +74,15 @@ def _generate_semantickitti_dataset_config(): data_prefix = dict( pts='sequences/00/velodyne', pts_semantic_mask='sequences/00/labels') - return (data_root, ann_file, classes, palette, data_prefix, pipeline, - modality, seg_label_mapping, max_label) + return (data_root, ann_file, classes, data_prefix, pipeline, modality, + seg_label_mapping, max_label) class TestSemanticKittiDataset(unittest.TestCase): def test_semantickitti(self): - (data_root, ann_file, classes, palette, data_prefix, pipeline, - modality, seg_label_mapping, + (data_root, ann_file, classes, data_prefix, pipeline, modality, + seg_label_mapping, max_label) = _generate_semantickitti_dataset_config() register_all_modules() @@ -114,7 +92,6 @@ def test_semantickitti(self): ann_file, metainfo=dict( classes=classes, - palette=palette, seg_label_mapping=seg_label_mapping, max_label=max_label), data_prefix=data_prefix, From 46cfecfbfd079b33c1044f4856191cf1b219d159 Mon Sep 17 00:00:00 2001 From: sunjiahao1999 <578431509@qq.com> Date: Wed, 8 Mar 2023 17:07:44 +0800 Subject: [PATCH 07/11] fix ut label_map --- .../test_semantickitti_dataset.py | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/tests/test_datasets/test_semantickitti_dataset.py b/tests/test_datasets/test_semantickitti_dataset.py index 4c8f6dce5e..b4641a99d2 100644 --- a/tests/test_datasets/test_semantickitti_dataset.py +++ b/tests/test_datasets/test_semantickitti_dataset.py @@ -16,40 +16,40 @@ def _generate_semantickitti_dataset_config(): 'terrian', 'pole', 'traffic-sign') seg_label_mapping = { - 0: 0, # "unlabeled" - 1: 0, # "outlier" mapped to "unlabeled" --------------mapped - 10: 1, # "car" - 11: 2, # "bicycle" - 13: 5, # "bus" mapped to "other-vehicle" --------------mapped - 15: 3, # "motorcycle" - 16: 5, # "on-rails" mapped to "other-vehicle" ---------mapped - 18: 4, # "truck" - 20: 5, # "other-vehicle" - 30: 6, # "person" - 31: 7, # "bicyclist" - 32: 8, # "motorcyclist" - 40: 9, # "road" - 44: 10, # "parking" - 48: 11, # "sidewalk" - 49: 12, # "other-ground" - 50: 13, # "building" - 51: 14, # "fence" - 52: 0, # "other-structure" mapped to "unlabeled" ------mapped - 60: 9, # "lane-marking" to "road" ---------------------mapped - 70: 15, # "vegetation" - 71: 16, # "trunk" - 72: 17, # "terrain" - 80: 18, # "pole" - 81: 19, # "traffic-sign" - 99: 0, # "other-object" to "unlabeled" ----------------mapped - 252: 1, # "moving-car" to "car" ------------------------mapped - 253: 7, # "moving-bicyclist" to "bicyclist" ------------mapped - 254: 6, # "moving-person" to "person" ------------------mapped - 255: 8, # "moving-motorcyclist" to "motorcyclist" ------mapped - 256: 5, # "moving-on-rails" mapped to "other-vehic------mapped - 257: 5, # "moving-bus" mapped to "other-vehicle" -------mapped - 258: 4, # "moving-truck" to "truck" --------------------mapped - 259: 5 # "moving-other"-vehicle to "other-vehicle"-----mapped + 0: 19, # "unlabeled" + 1: 19, # "outlier" mapped to "unlabeled" --------------mapped + 10: 0, # "car" + 11: 1, # "bicycle" + 13: 4, # "bus" mapped to "other-vehicle" --------------mapped + 15: 2, # "motorcycle" + 16: 4, # "on-rails" mapped to "other-vehicle" ---------mapped + 18: 3, # "truck" + 20: 4, # "other-vehicle" + 30: 5, # "person" + 31: 6, # "bicyclist" + 32: 7, # "motorcyclist" + 40: 8, # "road" + 44: 9, # "parking" + 48: 10, # "sidewalk" + 49: 11, # "other-ground" + 50: 12, # "building" + 51: 13, # "fence" + 52: 19, # "other-structure" mapped to "unlabeled" ------mapped + 60: 8, # "lane-marking" to "road" ---------------------mapped + 70: 14, # "vegetation" + 71: 15, # "trunk" + 72: 16, # "terrain" + 80: 17, # "pole" + 81: 18, # "traffic-sign" + 99: 19, # "other-object" to "unlabeled" ----------------mapped + 252: 0, # "moving-car" to "car" ------------------------mapped + 253: 6, # "moving-bicyclist" to "bicyclist" ------------mapped + 254: 5, # "moving-person" to "person" ------------------mapped + 255: 7, # "moving-motorcyclist" to "motorcyclist" ------mapped + 256: 4, # "moving-on-rails" mapped to "other-vehic------mapped + 257: 4, # "moving-bus" mapped to "other-vehicle" -------mapped + 258: 3, # "moving-truck" to "truck" --------------------mapped + 259: 4 # "moving-other"-vehicle to "other-vehicle"-----mapped } max_label = 259 modality = dict(use_lidar=True, use_camera=False) From 226c9f4034d1dbf0ec4174d48186b4f0d6f854de Mon Sep 17 00:00:00 2001 From: sunjiahao1999 <578431509@qq.com> Date: Wed, 8 Mar 2023 17:07:54 +0800 Subject: [PATCH 08/11] fix ut label_map --- tests/test_datasets/test_semantickitti_dataset.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/test_datasets/test_semantickitti_dataset.py b/tests/test_datasets/test_semantickitti_dataset.py index b4641a99d2..d334870da5 100644 --- a/tests/test_datasets/test_semantickitti_dataset.py +++ b/tests/test_datasets/test_semantickitti_dataset.py @@ -106,10 +106,9 @@ def test_semantickitti(self): self.assertEqual(points.shape[0], pts_semantic_mask.shape[0]) expected_pts_semantic_mask = np.array([ - 13., 13., 13., 15., 15., 13., 0., 13., 15., 13., 13., 15., 16., 0., - 15., 13., 13., 13., 13., 0., 13., 13., 13., 13., 13., 15., 13., - 16., 13., 15., 15., 18., 13., 15., 15., 15., 16., 15., 13., 13., - 15., 13., 18., 15., 13., 15., 13., 15., 15., 13. + 12, 12, 12, 14, 14, 12, 19, 12, 14, 12, 12, 14, 15, 19, 14, 12, 12, + 12, 12, 19, 12, 12, 12, 12, 12, 14, 12, 15, 12, 14, 14, 17, 12, 14, + 14, 14, 15, 14, 12, 12, 14, 12, 17, 14, 12, 14, 12, 14, 14, 12 ]) self.assertTrue( From 81f502faf0fbe96eebe44594a5b18690d4b0fe28 Mon Sep 17 00:00:00 2001 From: sunjiahao1999 <578431509@qq.com> Date: Tue, 14 Mar 2023 15:44:19 +0800 Subject: [PATCH 09/11] add indication --- configs/_base_/datasets/semantickitti.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/configs/_base_/datasets/semantickitti.py b/configs/_base_/datasets/semantickitti.py index 6a97b79510..dda899381f 100644 --- a/configs/_base_/datasets/semantickitti.py +++ b/configs/_base_/datasets/semantickitti.py @@ -1,4 +1,8 @@ -# dataset settings +# For Semantickitti we usually do 19-class segmentation. +# For labels_map we follow the uniform format of mmdet & mmseg +# i.e. we consider the unlabeled class as the last one, +# which is different from the original implementation of some methods +# e.g. Cylinder3D. dataset_type = 'SemanticKittiDataset' data_root = 'data/semantickitti/' class_names = [ @@ -6,7 +10,6 @@ 'motorcyclist', 'road', 'parking', 'sidewalk', 'other-ground', 'building', 'fence', 'vegetation', 'trunck', 'terrian', 'pole', 'traffic-sign' ] - labels_map = { 0: 19, # "unlabeled" 1: 19, # "outlier" mapped to "unlabeled" --------------mapped From 7837fb1ff60752b6dfefdc1724558912461b2c3a Mon Sep 17 00:00:00 2001 From: sunjiahao1999 <578431509@qq.com> Date: Tue, 14 Mar 2023 15:44:53 +0800 Subject: [PATCH 10/11] add indication --- configs/_base_/datasets/semantickitti.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/configs/_base_/datasets/semantickitti.py b/configs/_base_/datasets/semantickitti.py index dda899381f..db47baeb8f 100644 --- a/configs/_base_/datasets/semantickitti.py +++ b/configs/_base_/datasets/semantickitti.py @@ -1,8 +1,7 @@ # For Semantickitti we usually do 19-class segmentation. # For labels_map we follow the uniform format of mmdet & mmseg -# i.e. we consider the unlabeled class as the last one, -# which is different from the original implementation of some methods -# e.g. Cylinder3D. +# i.e. we consider the unlabeled class as the last one, which is different +# from the original implementation of some methods e.g. Cylinder3D. dataset_type = 'SemanticKittiDataset' data_root = 'data/semantickitti/' class_names = [ From f9c685ea58b87f5e1d5025bc18f07437a66929c7 Mon Sep 17 00:00:00 2001 From: sunjiahao1999 <578431509@qq.com> Date: Tue, 14 Mar 2023 15:49:18 +0800 Subject: [PATCH 11/11] fix typo --- configs/_base_/datasets/semantickitti.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/_base_/datasets/semantickitti.py b/configs/_base_/datasets/semantickitti.py index db47baeb8f..aaa0794a0e 100644 --- a/configs/_base_/datasets/semantickitti.py +++ b/configs/_base_/datasets/semantickitti.py @@ -1,5 +1,5 @@ -# For Semantickitti we usually do 19-class segmentation. -# For labels_map we follow the uniform format of mmdet & mmseg +# For SemanticKitti we usually do 19-class segmentation. +# For labels_map we follow the uniform format of MMDetection & MMSegmentation # i.e. we consider the unlabeled class as the last one, which is different # from the original implementation of some methods e.g. Cylinder3D. dataset_type = 'SemanticKittiDataset'