Commit 7a6deaef authored by ChaimZhu's avatar ChaimZhu Committed by ZwwWayne
Browse files

[Refactor] rename `CLASSES` and `PALETTE` to `classes` and `palette` in dataset metainfo (#1932)

* rame CLASS and PALETTE to class and palette

* change mmcv-full to mmcv

* fix comments
parent 48ab8e2d
...@@ -136,7 +136,7 @@ class TestScanNetDataset(unittest.TestCase): ...@@ -136,7 +136,7 @@ class TestScanNetDataset(unittest.TestCase):
ann_file, ann_file,
data_prefix=data_prefix, data_prefix=data_prefix,
pipeline=pipeline, pipeline=pipeline,
metainfo=dict(CLASSES=classes), metainfo=dict(classes=classes),
modality=modality) modality=modality)
scannet_dataset.prepare_data(0) scannet_dataset.prepare_data(0)
...@@ -163,7 +163,7 @@ class TestScanNetDataset(unittest.TestCase): ...@@ -163,7 +163,7 @@ class TestScanNetDataset(unittest.TestCase):
torch.tensor([107.7353])) torch.tensor([107.7353]))
no_class_scannet_dataset = ScanNetDataset( no_class_scannet_dataset = ScanNetDataset(
data_root, ann_file, metainfo=dict(CLASSES=['cabinet'])) data_root, ann_file, metainfo=dict(classes=['cabinet']))
input_dict = no_class_scannet_dataset.get_data_info(0) input_dict = no_class_scannet_dataset.get_data_info(0)
ann_info = no_class_scannet_dataset.parse_ann_info(input_dict) ann_info = no_class_scannet_dataset.parse_ann_info(input_dict)
...@@ -175,7 +175,7 @@ class TestScanNetDataset(unittest.TestCase): ...@@ -175,7 +175,7 @@ class TestScanNetDataset(unittest.TestCase):
self.assertEqual(ann_info['gt_labels_3d'].dtype, np.int64) self.assertEqual(ann_info['gt_labels_3d'].dtype, np.int64)
# all instance have been filtered by classes # all instance have been filtered by classes
self.assertEqual(len(ann_info['gt_labels_3d']), 27) self.assertEqual(len(ann_info['gt_labels_3d']), 27)
self.assertEqual(len(no_class_scannet_dataset.metainfo['CLASSES']), 1) self.assertEqual(len(no_class_scannet_dataset.metainfo['classes']), 1)
def test_scannet_seg(self): def test_scannet_seg(self):
data_root, ann_file, classes, palette, scene_idxs, data_prefix, \ data_root, ann_file, classes, palette, scene_idxs, data_prefix, \
...@@ -186,7 +186,7 @@ class TestScanNetDataset(unittest.TestCase): ...@@ -186,7 +186,7 @@ class TestScanNetDataset(unittest.TestCase):
scannet_seg_dataset = ScanNetSegDataset( scannet_seg_dataset = ScanNetSegDataset(
data_root, data_root,
ann_file, ann_file,
metainfo=dict(CLASSES=classes, PALETTE=palette), metainfo=dict(classes=classes, palette=palette),
data_prefix=data_prefix, data_prefix=data_prefix,
pipeline=pipeline, pipeline=pipeline,
modality=modality, modality=modality,
......
...@@ -72,7 +72,7 @@ class TestSemanticKITTIDataset(unittest.TestCase): ...@@ -72,7 +72,7 @@ class TestSemanticKITTIDataset(unittest.TestCase):
semantickitti_dataset = SemanticKITTIDataset( semantickitti_dataset = SemanticKITTIDataset(
data_root, data_root,
ann_file, ann_file,
metainfo=dict(CLASSES=classes, PALETTE=palette), metainfo=dict(classes=classes, palette=palette),
data_prefix=data_prefix, data_prefix=data_prefix,
pipeline=pipeline, pipeline=pipeline,
modality=modality) modality=modality)
......
...@@ -48,7 +48,7 @@ class TestScanNetDataset(unittest.TestCase): ...@@ -48,7 +48,7 @@ class TestScanNetDataset(unittest.TestCase):
ann_file, ann_file,
data_prefix=data_prefix, data_prefix=data_prefix,
pipeline=pipeline, pipeline=pipeline,
metainfo=dict(CLASSES=classes), metainfo=dict(classes=classes),
modality=modality) modality=modality)
scannet_dataset.prepare_data(0) scannet_dataset.prepare_data(0)
...@@ -81,7 +81,7 @@ class TestScanNetDataset(unittest.TestCase): ...@@ -81,7 +81,7 @@ class TestScanNetDataset(unittest.TestCase):
ann_file, ann_file,
data_prefix=data_prefix, data_prefix=data_prefix,
pipeline=pipeline, pipeline=pipeline,
metainfo=dict(CLASSES=classes), metainfo=dict(classes=classes),
modality=modality) modality=modality)
input_dict = bed_scannet_dataset.get_data_info(0) input_dict = bed_scannet_dataset.get_data_info(0)
...@@ -94,4 +94,4 @@ class TestScanNetDataset(unittest.TestCase): ...@@ -94,4 +94,4 @@ class TestScanNetDataset(unittest.TestCase):
assert ann_info['gt_labels_3d'].dtype == np.int64 assert ann_info['gt_labels_3d'].dtype == np.int64
# all instance have been filtered by classes # all instance have been filtered by classes
self.assertEqual(len(ann_info['gt_labels_3d']), 3) self.assertEqual(len(ann_info['gt_labels_3d']), 3)
self.assertEqual(len(bed_scannet_dataset.metainfo['CLASSES']), 1) self.assertEqual(len(bed_scannet_dataset.metainfo['classes']), 1)
...@@ -49,7 +49,7 @@ class TestIndoorMetric(unittest.TestCase): ...@@ -49,7 +49,7 @@ class TestIndoorMetric(unittest.TestCase):
pred_dict['eval_ann_info'] = eval_ann_info pred_dict['eval_ann_info'] = eval_ann_info
indoor_metric.dataset_meta = { indoor_metric.dataset_meta = {
'CLASSES': ('cabinet', 'bed', 'chair', 'sofa', 'table', 'door', 'classes': ('cabinet', 'bed', 'chair', 'sofa', 'table', 'door',
'window', 'bookshelf', 'picture', 'counter', 'desk', 'window', 'bookshelf', 'picture', 'counter', 'desk',
'curtain', 'refrigerator', 'showercurtrain', 'toilet', 'curtain', 'refrigerator', 'showercurtrain', 'toilet',
'sink', 'bathtub', 'garbagebin'), 'sink', 'bathtub', 'garbagebin'),
......
...@@ -67,7 +67,7 @@ class TestInstanceSegMetric(unittest.TestCase): ...@@ -67,7 +67,7 @@ class TestInstanceSegMetric(unittest.TestCase):
'curtain', 'refrigerator', 'showercurtrain', 'toilet', 'curtain', 'refrigerator', 'showercurtrain', 'toilet',
'sink', 'bathtub', 'garbagebin') 'sink', 'bathtub', 'garbagebin')
dataset_meta = dict( dataset_meta = dict(
seg_valid_class_ids=seg_valid_class_ids, CLASSES=class_labels) seg_valid_class_ids=seg_valid_class_ids, classes=class_labels)
instance_seg_metric = InstanceSegMetric() instance_seg_metric = InstanceSegMetric()
instance_seg_metric.dataset_meta = dataset_meta instance_seg_metric.dataset_meta = dataset_meta
instance_seg_metric.process(data_batch, predictions) instance_seg_metric.process(data_batch, predictions)
......
...@@ -53,7 +53,7 @@ def test_multi_modal_kitti_metric(): ...@@ -53,7 +53,7 @@ def test_multi_modal_kitti_metric():
pytest.skip('test requires GPU and torch+cuda') pytest.skip('test requires GPU and torch+cuda')
kittimetric = KittiMetric( kittimetric = KittiMetric(
data_root + '/kitti_infos_train.pkl', metric=['mAP']) data_root + '/kitti_infos_train.pkl', metric=['mAP'])
kittimetric.dataset_meta = dict(CLASSES=['Pedestrian', 'Cyclist', 'Car']) kittimetric.dataset_meta = dict(classes=['Pedestrian', 'Cyclist', 'Car'])
data_batch, predictions = _init_multi_modal_evaluate_input() data_batch, predictions = _init_multi_modal_evaluate_input()
kittimetric.process(data_batch, predictions) kittimetric.process(data_batch, predictions)
ap_dict = kittimetric.compute_metrics(kittimetric.results) ap_dict = kittimetric.compute_metrics(kittimetric.results)
...@@ -76,7 +76,7 @@ def test_kitti_metric_mAP(): ...@@ -76,7 +76,7 @@ def test_kitti_metric_mAP():
pytest.skip('test requires GPU and torch+cuda') pytest.skip('test requires GPU and torch+cuda')
kittimetric = KittiMetric( kittimetric = KittiMetric(
data_root + '/kitti_infos_train.pkl', metric=['mAP']) data_root + '/kitti_infos_train.pkl', metric=['mAP'])
kittimetric.dataset_meta = dict(CLASSES=['Pedestrian', 'Cyclist', 'Car']) kittimetric.dataset_meta = dict(classes=['Pedestrian', 'Cyclist', 'Car'])
data_batch, predictions = _init_evaluate_input() data_batch, predictions = _init_evaluate_input()
kittimetric.process(data_batch, predictions) kittimetric.process(data_batch, predictions)
ap_dict = kittimetric.compute_metrics(kittimetric.results) ap_dict = kittimetric.compute_metrics(kittimetric.results)
......
...@@ -243,7 +243,7 @@ def create_groundtruth_database(dataset_class_name, ...@@ -243,7 +243,7 @@ def create_groundtruth_database(dataset_class_name,
image_idx = example['sample_idx'] image_idx = example['sample_idx']
points = example['points'].tensor.numpy() points = example['points'].tensor.numpy()
gt_boxes_3d = annos['gt_bboxes_3d'].tensor.numpy() gt_boxes_3d = annos['gt_bboxes_3d'].tensor.numpy()
names = [dataset.metainfo['CLASSES'][i] for i in annos['gt_labels_3d']] names = [dataset.metainfo['classes'][i] for i in annos['gt_labels_3d']]
group_dict = dict() group_dict = dict()
if 'group_ids' in annos: if 'group_ids' in annos:
group_ids = annos['group_ids'] group_ids = annos['group_ids']
...@@ -409,7 +409,7 @@ class GTDatabaseCreater: ...@@ -409,7 +409,7 @@ class GTDatabaseCreater:
points = example['points'].tensor.numpy() points = example['points'].tensor.numpy()
gt_boxes_3d = annos['gt_bboxes_3d'].tensor.numpy() gt_boxes_3d = annos['gt_bboxes_3d'].tensor.numpy()
names = [ names = [
self.dataset.metainfo['CLASSES'][i] for i in annos['gt_labels_3d'] self.dataset.metainfo['classes'][i] for i in annos['gt_labels_3d']
] ]
group_dict = dict() group_dict = dict()
if 'group_ids' in annos: if 'group_ids' in annos:
......
...@@ -261,7 +261,7 @@ def update_nuscenes_infos(pkl_path, out_dir): ...@@ -261,7 +261,7 @@ def update_nuscenes_infos(pkl_path, out_dir):
print(f'Reading from input file: {pkl_path}.') print(f'Reading from input file: {pkl_path}.')
data_list = mmengine.load(pkl_path) data_list = mmengine.load(pkl_path)
METAINFO = { METAINFO = {
'CLASSES': 'classes':
('car', 'truck', 'trailer', 'bus', 'construction_vehicle', 'bicycle', ('car', 'truck', 'trailer', 'bus', 'construction_vehicle', 'bicycle',
'motorcycle', 'pedestrian', 'traffic_cone', 'barrier'), 'motorcycle', 'pedestrian', 'traffic_cone', 'barrier'),
} }
...@@ -340,8 +340,8 @@ def update_nuscenes_infos(pkl_path, out_dir): ...@@ -340,8 +340,8 @@ def update_nuscenes_infos(pkl_path, out_dir):
empty_instance = get_empty_instance() empty_instance = get_empty_instance()
empty_instance['bbox_3d'] = ori_info_dict['gt_boxes'][ empty_instance['bbox_3d'] = ori_info_dict['gt_boxes'][
i, :].tolist() i, :].tolist()
if ori_info_dict['gt_names'][i] in METAINFO['CLASSES']: if ori_info_dict['gt_names'][i] in METAINFO['classes']:
empty_instance['bbox_label'] = METAINFO['CLASSES'].index( empty_instance['bbox_label'] = METAINFO['classes'].index(
ori_info_dict['gt_names'][i]) ori_info_dict['gt_names'][i])
else: else:
ignore_class_name.add(ori_info_dict['gt_names'][i]) ignore_class_name.add(ori_info_dict['gt_names'][i])
...@@ -386,7 +386,7 @@ def update_kitti_infos(pkl_path, out_dir): ...@@ -386,7 +386,7 @@ def update_kitti_infos(pkl_path, out_dir):
# TODO update to full label # TODO update to full label
# TODO discuss how to process 'Van', 'DontCare' # TODO discuss how to process 'Van', 'DontCare'
METAINFO = { METAINFO = {
'CLASSES': ('Pedestrian', 'Cyclist', 'Car', 'Van', 'Truck', 'classes': ('Pedestrian', 'Cyclist', 'Car', 'Van', 'Truck',
'Person_sitting', 'Tram', 'Misc'), 'Person_sitting', 'Tram', 'Misc'),
} }
print(f'Reading from input file: {pkl_path}.') print(f'Reading from input file: {pkl_path}.')
...@@ -451,8 +451,8 @@ def update_kitti_infos(pkl_path, out_dir): ...@@ -451,8 +451,8 @@ def update_kitti_infos(pkl_path, out_dir):
empty_instance = get_empty_instance() empty_instance = get_empty_instance()
empty_instance['bbox'] = anns['bbox'][instance_id].tolist() empty_instance['bbox'] = anns['bbox'][instance_id].tolist()
if anns['name'][instance_id] in METAINFO['CLASSES']: if anns['name'][instance_id] in METAINFO['classes']:
empty_instance['bbox_label'] = METAINFO['CLASSES'].index( empty_instance['bbox_label'] = METAINFO['classes'].index(
anns['name'][instance_id]) anns['name'][instance_id])
else: else:
ignore_class_name.add(anns['name'][instance_id]) ignore_class_name.add(anns['name'][instance_id])
...@@ -522,7 +522,7 @@ def update_s3dis_infos(pkl_path, out_dir): ...@@ -522,7 +522,7 @@ def update_s3dis_infos(pkl_path, out_dir):
print(f'Warning, you may overwriting ' print(f'Warning, you may overwriting '
f'the original data {pkl_path}.') f'the original data {pkl_path}.')
time.sleep(5) time.sleep(5)
METAINFO = {'CLASSES': ('table', 'chair', 'sofa', 'bookcase', 'board')} METAINFO = {'classes': ('table', 'chair', 'sofa', 'bookcase', 'board')}
print(f'Reading from input file: {pkl_path}.') print(f'Reading from input file: {pkl_path}.')
data_list = mmengine.load(pkl_path) data_list = mmengine.load(pkl_path)
print('Start updating:') print('Start updating:')
...@@ -554,12 +554,12 @@ def update_s3dis_infos(pkl_path, out_dir): ...@@ -554,12 +554,12 @@ def update_s3dis_infos(pkl_path, out_dir):
empty_instance['bbox_3d'] = anns['gt_boxes_upright_depth'][ empty_instance['bbox_3d'] = anns['gt_boxes_upright_depth'][
instance_id].tolist() instance_id].tolist()
if anns['class'][instance_id] < len(METAINFO['CLASSES']): if anns['class'][instance_id] < len(METAINFO['classes']):
empty_instance['bbox_label_3d'] = anns['class'][ empty_instance['bbox_label_3d'] = anns['class'][
instance_id] instance_id]
else: else:
ignore_class_name.add( ignore_class_name.add(
METAINFO['CLASSES'][anns['class'][instance_id]]) METAINFO['classes'][anns['class'][instance_id]])
empty_instance['bbox_label_3d'] = -1 empty_instance['bbox_label_3d'] = -1
empty_instance = clear_instance_unused_keys(empty_instance) empty_instance = clear_instance_unused_keys(empty_instance)
...@@ -593,7 +593,7 @@ def update_scannet_infos(pkl_path, out_dir): ...@@ -593,7 +593,7 @@ def update_scannet_infos(pkl_path, out_dir):
f'the original data {pkl_path}.') f'the original data {pkl_path}.')
time.sleep(5) time.sleep(5)
METAINFO = { METAINFO = {
'CLASSES': 'classes':
('cabinet', 'bed', 'chair', 'sofa', 'table', 'door', 'window', ('cabinet', 'bed', 'chair', 'sofa', 'table', 'door', 'window',
'bookshelf', 'picture', 'counter', 'desk', 'curtain', 'refrigerator', 'bookshelf', 'picture', 'counter', 'desk', 'curtain', 'refrigerator',
'showercurtrain', 'toilet', 'sink', 'bathtub', 'garbagebin') 'showercurtrain', 'toilet', 'sink', 'bathtub', 'garbagebin')
...@@ -629,9 +629,9 @@ def update_scannet_infos(pkl_path, out_dir): ...@@ -629,9 +629,9 @@ def update_scannet_infos(pkl_path, out_dir):
empty_instance['bbox_3d'] = anns['gt_boxes_upright_depth'][ empty_instance['bbox_3d'] = anns['gt_boxes_upright_depth'][
instance_id].tolist() instance_id].tolist()
if anns['name'][instance_id] in METAINFO['CLASSES']: if anns['name'][instance_id] in METAINFO['classes']:
empty_instance['bbox_label_3d'] = METAINFO[ empty_instance['bbox_label_3d'] = METAINFO[
'CLASSES'].index(anns['name'][instance_id]) 'classes'].index(anns['name'][instance_id])
else: else:
ignore_class_name.add(anns['name'][instance_id]) ignore_class_name.add(anns['name'][instance_id])
empty_instance['bbox_label_3d'] = -1 empty_instance['bbox_label_3d'] = -1
...@@ -667,7 +667,7 @@ def update_sunrgbd_infos(pkl_path, out_dir): ...@@ -667,7 +667,7 @@ def update_sunrgbd_infos(pkl_path, out_dir):
f'the original data {pkl_path}.') f'the original data {pkl_path}.')
time.sleep(5) time.sleep(5)
METAINFO = { METAINFO = {
'CLASSES': ('bed', 'table', 'sofa', 'chair', 'toilet', 'desk', 'classes': ('bed', 'table', 'sofa', 'chair', 'toilet', 'desk',
'dresser', 'night_stand', 'bookshelf', 'bathtub') 'dresser', 'night_stand', 'bookshelf', 'bathtub')
} }
print(f'Reading from input file: {pkl_path}.') print(f'Reading from input file: {pkl_path}.')
...@@ -705,9 +705,9 @@ def update_sunrgbd_infos(pkl_path, out_dir): ...@@ -705,9 +705,9 @@ def update_sunrgbd_infos(pkl_path, out_dir):
empty_instance['bbox_3d'] = anns['gt_boxes_upright_depth'][ empty_instance['bbox_3d'] = anns['gt_boxes_upright_depth'][
instance_id].tolist() instance_id].tolist()
empty_instance['bbox'] = anns['bbox'][instance_id].tolist() empty_instance['bbox'] = anns['bbox'][instance_id].tolist()
if anns['name'][instance_id] in METAINFO['CLASSES']: if anns['name'][instance_id] in METAINFO['classes']:
empty_instance['bbox_label_3d'] = METAINFO[ empty_instance['bbox_label_3d'] = METAINFO[
'CLASSES'].index(anns['name'][instance_id]) 'classes'].index(anns['name'][instance_id])
empty_instance['bbox_label'] = empty_instance[ empty_instance['bbox_label'] = empty_instance[
'bbox_label_3d'] 'bbox_label_3d']
else: else:
...@@ -746,7 +746,7 @@ def update_lyft_infos(pkl_path, out_dir): ...@@ -746,7 +746,7 @@ def update_lyft_infos(pkl_path, out_dir):
print(f'Reading from input file: {pkl_path}.') print(f'Reading from input file: {pkl_path}.')
data_list = mmengine.load(pkl_path) data_list = mmengine.load(pkl_path)
METAINFO = { METAINFO = {
'CLASSES': 'classes':
('car', 'truck', 'bus', 'emergency_vehicle', 'other_vehicle', ('car', 'truck', 'bus', 'emergency_vehicle', 'other_vehicle',
'motorcycle', 'bicycle', 'pedestrian', 'animal'), 'motorcycle', 'bicycle', 'pedestrian', 'animal'),
} }
...@@ -817,8 +817,8 @@ def update_lyft_infos(pkl_path, out_dir): ...@@ -817,8 +817,8 @@ def update_lyft_infos(pkl_path, out_dir):
empty_instance = get_empty_instance() empty_instance = get_empty_instance()
empty_instance['bbox_3d'] = ori_info_dict['gt_boxes'][ empty_instance['bbox_3d'] = ori_info_dict['gt_boxes'][
i, :].tolist() i, :].tolist()
if ori_info_dict['gt_names'][i] in METAINFO['CLASSES']: if ori_info_dict['gt_names'][i] in METAINFO['classes']:
empty_instance['bbox_label'] = METAINFO['CLASSES'].index( empty_instance['bbox_label'] = METAINFO['classes'].index(
ori_info_dict['gt_names'][i]) ori_info_dict['gt_names'][i])
else: else:
ignore_class_name.add(ori_info_dict['gt_names'][i]) ignore_class_name.add(ori_info_dict['gt_names'][i])
...@@ -865,7 +865,7 @@ def update_waymo_infos(pkl_path, out_dir): ...@@ -865,7 +865,7 @@ def update_waymo_infos(pkl_path, out_dir):
# TODO update to full label # TODO update to full label
# TODO discuss how to process 'Van', 'DontCare' # TODO discuss how to process 'Van', 'DontCare'
METAINFO = { METAINFO = {
'CLASSES': ('Car', 'Pedestrian', 'Cyclist', 'Sign'), 'classes': ('Car', 'Pedestrian', 'Cyclist', 'Sign'),
} }
print(f'Reading from input file: {pkl_path}.') print(f'Reading from input file: {pkl_path}.')
data_list = mmengine.load(pkl_path) data_list = mmengine.load(pkl_path)
...@@ -955,8 +955,8 @@ def update_waymo_infos(pkl_path, out_dir): ...@@ -955,8 +955,8 @@ def update_waymo_infos(pkl_path, out_dir):
empty_instance = get_empty_instance() empty_instance = get_empty_instance()
empty_instance['bbox'] = anns['bbox'][instance_id].tolist() empty_instance['bbox'] = anns['bbox'][instance_id].tolist()
if anns['name'][instance_id] in METAINFO['CLASSES']: if anns['name'][instance_id] in METAINFO['classes']:
empty_instance['bbox_label'] = METAINFO['CLASSES'].index( empty_instance['bbox_label'] = METAINFO['classes'].index(
anns['name'][instance_id]) anns['name'][instance_id])
else: else:
ignore_class_name.add(anns['name'][instance_id]) ignore_class_name.add(anns['name'][instance_id])
...@@ -999,8 +999,8 @@ def update_waymo_infos(pkl_path, out_dir): ...@@ -999,8 +999,8 @@ def update_waymo_infos(pkl_path, out_dir):
empty_instance = get_empty_instance() empty_instance = get_empty_instance()
empty_instance['bbox'] = anns['bbox'][instance_id].tolist() empty_instance['bbox'] = anns['bbox'][instance_id].tolist()
if anns['name'][instance_id] in METAINFO['CLASSES']: if anns['name'][instance_id] in METAINFO['classes']:
empty_instance['bbox_label'] = METAINFO['CLASSES'].index( empty_instance['bbox_label'] = METAINFO['classes'].index(
anns['name'][instance_id]) anns['name'][instance_id])
else: else:
ignore_class_name.add(anns['name'][instance_id]) ignore_class_name.add(anns['name'][instance_id])
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment