| import numpy as np | |
| ######################################################################## | |
| # Download information # | |
| ######################################################################## | |
| # Credit: https://github.com/torch-points3d/torch-points3d | |
| FORM_URL = "https://docs.google.com/forms/d/e/1FAIpQLScDimvNMCGhy_rmBA2gHfDu3naktRm6A8BPwAWWDv-Uhm6Shw/viewform?c=0&w=1" | |
| ZIP_NAME = "Stanford3dDataset_v1.2.zip" | |
| ALIGNED_ZIP_NAME = "Stanford3dDataset_v1.2_Aligned_Version.zip" | |
| UNZIP_NAME = "Stanford3dDataset_v1.2" | |
| ALIGNED_UNZIP_NAME = "Stanford3dDataset_v1.2_Aligned_Version" | |
| ######################################################################## | |
| # Data splits # | |
| ######################################################################## | |
| # Credit: https://github.com/torch-points3d/torch-points3d | |
| ROOM_TYPES = { | |
| "conferenceRoom": 0, | |
| "copyRoom": 1, | |
| "hallway": 2, | |
| "office": 3, | |
| "pantry": 4, | |
| "WC": 5, | |
| "auditorium": 6, | |
| "storage": 7, | |
| "lounge": 8, | |
| "lobby": 9, | |
| "openspace": 10} | |
| VALIDATION_ROOMS = [ | |
| "hallway_1", | |
| "hallway_6", | |
| "hallway_11", | |
| "office_1", | |
| "office_6", | |
| "office_11", | |
| "office_16", | |
| "office_21", | |
| "office_26", | |
| "office_31", | |
| "office_36", | |
| "WC_2", | |
| "storage_1", | |
| "storage_5", | |
| "conferenceRoom_2", | |
| "auditorium_1"] | |
| ROOMS = { | |
| "Area_1": [ | |
| "conferenceRoom_1", | |
| "conferenceRoom_2", | |
| "copyRoom_1", | |
| "hallway_1", | |
| "hallway_2", | |
| "hallway_3", | |
| "hallway_4", | |
| "hallway_5", | |
| "hallway_6", | |
| "hallway_7", | |
| "hallway_8", | |
| "office_1", | |
| "office_10", | |
| "office_11", | |
| "office_12", | |
| "office_13", | |
| "office_14", | |
| "office_15", | |
| "office_16", | |
| "office_17", | |
| "office_18", | |
| "office_19", | |
| "office_2", | |
| "office_20", | |
| "office_21", | |
| "office_22", | |
| "office_23", | |
| "office_24", | |
| "office_25", | |
| "office_26", | |
| "office_27", | |
| "office_28", | |
| "office_29", | |
| "office_3", | |
| "office_30", | |
| "office_31", | |
| "office_4", | |
| "office_5", | |
| "office_6", | |
| "office_7", | |
| "office_8", | |
| "office_9", | |
| "pantry_1", | |
| "WC_1"], | |
| "Area_2": [ | |
| "auditorium_1", | |
| "auditorium_2", | |
| "conferenceRoom_1", | |
| "hallway_1", | |
| "hallway_10", | |
| "hallway_11", | |
| "hallway_12", | |
| "hallway_2", | |
| "hallway_3", | |
| "hallway_4", | |
| "hallway_5", | |
| "hallway_6", | |
| "hallway_7", | |
| "hallway_8", | |
| "hallway_9", | |
| "office_1", | |
| "office_10", | |
| "office_11", | |
| "office_12", | |
| "office_13", | |
| "office_14", | |
| "office_2", | |
| "office_3", | |
| "office_4", | |
| "office_5", | |
| "office_6", | |
| "office_7", | |
| "office_8", | |
| "office_9", | |
| "storage_1", | |
| "storage_2", | |
| "storage_3", | |
| "storage_4", | |
| "storage_5", | |
| "storage_6", | |
| "storage_7", | |
| "storage_8", | |
| "storage_9", | |
| "WC_1", | |
| "WC_2"], | |
| "Area_3": [ | |
| "conferenceRoom_1", | |
| "hallway_1", | |
| "hallway_2", | |
| "hallway_3", | |
| "hallway_4", | |
| "hallway_5", | |
| "hallway_6", | |
| "lounge_1", | |
| "lounge_2", | |
| "office_1", | |
| "office_10", | |
| "office_2", | |
| "office_3", | |
| "office_4", | |
| "office_5", | |
| "office_6", | |
| "office_7", | |
| "office_8", | |
| "office_9", | |
| "storage_1", | |
| "storage_2", | |
| "WC_1", | |
| "WC_2"], | |
| "Area_4": [ | |
| "conferenceRoom_1", | |
| "conferenceRoom_2", | |
| "conferenceRoom_3", | |
| "hallway_1", | |
| "hallway_10", | |
| "hallway_11", | |
| "hallway_12", | |
| "hallway_13", | |
| "hallway_14", | |
| "hallway_2", | |
| "hallway_3", | |
| "hallway_4", | |
| "hallway_5", | |
| "hallway_6", | |
| "hallway_7", | |
| "hallway_8", | |
| "hallway_9", | |
| "lobby_1", | |
| "lobby_2", | |
| "office_1", | |
| "office_10", | |
| "office_11", | |
| "office_12", | |
| "office_13", | |
| "office_14", | |
| "office_15", | |
| "office_16", | |
| "office_17", | |
| "office_18", | |
| "office_19", | |
| "office_2", | |
| "office_20", | |
| "office_21", | |
| "office_22", | |
| "office_3", | |
| "office_4", | |
| "office_5", | |
| "office_6", | |
| "office_7", | |
| "office_8", | |
| "office_9", | |
| "storage_1", | |
| "storage_2", | |
| "storage_3", | |
| "storage_4", | |
| "WC_1", | |
| "WC_2", | |
| "WC_3", | |
| "WC_4"], | |
| "Area_5": [ | |
| "conferenceRoom_1", | |
| "conferenceRoom_2", | |
| "conferenceRoom_3", | |
| "hallway_1", | |
| "hallway_10", | |
| "hallway_11", | |
| "hallway_12", | |
| "hallway_13", | |
| "hallway_14", | |
| "hallway_15", | |
| "hallway_2", | |
| "hallway_3", | |
| "hallway_4", | |
| "hallway_5", | |
| "hallway_6", | |
| "hallway_7", | |
| "hallway_8", | |
| "hallway_9", | |
| "lobby_1", | |
| "office_1", | |
| "office_10", | |
| "office_11", | |
| "office_12", | |
| "office_13", | |
| "office_14", | |
| "office_15", | |
| "office_16", | |
| "office_17", | |
| "office_18", | |
| "office_19", | |
| "office_2", | |
| "office_20", | |
| "office_21", | |
| "office_22", | |
| "office_23", | |
| "office_24", | |
| "office_25", | |
| "office_26", | |
| "office_27", | |
| "office_28", | |
| "office_29", | |
| "office_3", | |
| "office_30", | |
| "office_31", | |
| "office_32", | |
| "office_33", | |
| "office_34", | |
| "office_35", | |
| "office_36", | |
| "office_37", | |
| "office_38", | |
| "office_39", | |
| "office_4", | |
| "office_40", | |
| "office_41", | |
| "office_42", | |
| "office_5", | |
| "office_6", | |
| "office_7", | |
| "office_8", | |
| "office_9", | |
| "pantry_1", | |
| "storage_1", | |
| "storage_2", | |
| "storage_3", | |
| "storage_4", | |
| "WC_1", | |
| "WC_2"], | |
| "Area_6": [ | |
| "conferenceRoom_1", | |
| "copyRoom_1", | |
| "hallway_1", | |
| "hallway_2", | |
| "hallway_3", | |
| "hallway_4", | |
| "hallway_5", | |
| "hallway_6", | |
| "lounge_1", | |
| "office_1", | |
| "office_10", | |
| "office_11", | |
| "office_12", | |
| "office_13", | |
| "office_14", | |
| "office_15", | |
| "office_16", | |
| "office_17", | |
| "office_18", | |
| "office_19", | |
| "office_2", | |
| "office_20", | |
| "office_21", | |
| "office_22", | |
| "office_23", | |
| "office_24", | |
| "office_25", | |
| "office_26", | |
| "office_27", | |
| "office_28", | |
| "office_29", | |
| "office_3", | |
| "office_30", | |
| "office_31", | |
| "office_32", | |
| "office_33", | |
| "office_34", | |
| "office_35", | |
| "office_36", | |
| "office_37", | |
| "office_4", | |
| "office_5", | |
| "office_6", | |
| "office_7", | |
| "office_8", | |
| "office_9", | |
| "openspace_1", | |
| "pantry_1"]} | |
| ######################################################################## | |
| # Labels # | |
| ######################################################################## | |
| # Credit: https://github.com/torch-points3d/torch-points3d | |
| S3DIS_NUM_CLASSES = 13 | |
| INV_OBJECT_LABEL = { | |
| 0: "ceiling", | |
| 1: "floor", | |
| 2: "wall", | |
| 3: "beam", | |
| 4: "column", | |
| 5: "window", | |
| 6: "door", | |
| 7: "chair", | |
| 8: "table", | |
| 9: "bookcase", | |
| 10: "sofa", | |
| 11: "board", | |
| 12: "clutter"} | |
| CLASS_NAMES = [INV_OBJECT_LABEL[i] for i in range(S3DIS_NUM_CLASSES)] + ['ignored'] | |
| CLASS_COLORS = np.asarray([ | |
| [233, 229, 107], # 'ceiling' -> yellow | |
| [95, 156, 196], # 'floor' -> blue | |
| [179, 116, 81], # 'wall' -> brown | |
| [241, 149, 131], # 'beam' -> salmon | |
| [81, 163, 148], # 'column' -> bluegreen | |
| [77, 174, 84], # 'window' -> bright green | |
| [108, 135, 75], # 'door' -> dark green | |
| [41, 49, 101], # 'chair' -> darkblue | |
| [79, 79, 76], # 'table' -> dark grey | |
| [223, 52, 52], # 'bookcase' -> red | |
| [89, 47, 95], # 'sofa' -> purple | |
| [81, 109, 114], # 'board' -> grey | |
| [233, 233, 229], # 'clutter' -> light grey | |
| [0, 0, 0]]) # unlabelled -> black | |
| OBJECT_LABEL = {name: i for i, name in INV_OBJECT_LABEL.items()} | |
| def object_name_to_label(object_class): | |
| """Convert from object name to int label. By default, if an unknown | |
| object nale | |
| """ | |
| object_label = OBJECT_LABEL.get(object_class, OBJECT_LABEL["clutter"]) | |
| return object_label | |
| # For instance segmentation | |
| MIN_OBJECT_SIZE = 100 | |
| STUFF_CLASSES = [] | |
| THING_CLASSES = list(range(S3DIS_NUM_CLASSES)) | |
| STUFF_CLASSES_MODIFIED = [0, 1, 2] | |
| THING_CLASSES_MODIFIED = list(range(3, S3DIS_NUM_CLASSES)) | |