facebookresearch / habitat-sim

A flexible, high-performance 3D simulator for Embodied AI research.
https://aihabitat.org/
MIT License
2.62k stars 420 forks source link

Download Util broken? #1755

Closed uahic closed 2 years ago

uahic commented 2 years ago

Habitat-Sim version

main

🐛 Bug

1) In the current conda package, there is no automatic pulling of semantic annotations and this diverts from the description of the install instructions which is quite confusing for beginners

2) I've grabbed the source code from the main branch (utils.dataset_download.py) and tried again. When pulling hm3d_minival, there is a hm3d-minival-semantic-annots-v0.1.tar.gz file contained but cant be unpackaged.

Traceback (most recent call last):
  File "download.py", line 688, in <module>
    main(sys.argv[1:])
  File "download.py", line 682, in main
    download_and_place(
  File "download.py", line 520, in download_and_place
    with tarfile.open(data_path + package_name, "r:*") as tar_ref:
  File "/data/miniconda3/lib/python3.8/tarfile.py", line 1608, in open
    raise ReadError("file could not be opened successfully")
tarfile.ReadError: file could not be opened successfully

The file is 324 bytes large and can't even be unpacked using tar

tar -zxvf hm3d-minival-semantic-annots-v0.1.tar.gz
tar (child): hm3d-minival-semantic-annots-v0.1.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

Is the file corrupt or is it another format than the file extension suggests?

joaomcm commented 2 years ago

I'm having the same issue when attempting to download the semantic labels for the validation and train splits. Did you find any solution to this?

StOnEGiggity commented 2 years ago

Hi, I have the same issue, too. It seems that the progress is stuck when it tries to unpack "hm3d-minival-habitat.tar", and I have applied for the access to HM3D dataset. Is there any suggestion?

dhruvbatra commented 2 years ago

@uahic @joaomcm -- can you try again now?

uahic commented 2 years ago

@dhruvbatra tested on 'hm3d_full', works for me now. It seems that only very few scene folders contain dedicated semantic annotation files, probably it is what it is but maybe it could be another bug.

Thanks for the fix

joaomcm commented 2 years ago

@dhruvbatra Thank you! The util is now fully working. And the semantic annotations for the training set are now being fully downloaded (before, only 10 of the scenes had their semantic .glb loaded). One interesting thing to note is that it seems that the class labels in natural language are somewhat consistent (even though in some scenes a bed covered in a blanket is labelled as a blanket), the class ID numbers are not consistent between classes ,i.e. , a semantic_id= 30 has a category.name = 'chair' and a category.index = 1 in a scene, but on a different scene, another instance with semantic id (for instance) 45 has the category name "chair', but the category.index = 15 - i.e. , the mapping between category_names and category_indices is not consistent between scenes. Is that by design of is there a bug in the labelling?

Kind regards,

Joao

dhruvbatra commented 2 years ago

CC: @srama2512

srama2512 commented 2 years ago

@joaomcm - What class ID numbers are you referring to here? Can you please share a script to reproduce the above issue?

joaomcm commented 2 years ago

Dear @srama2512 ,

Thank you for your attention to this matter.

The class Id I'm referring to is habitat_sim.scene.SemanticCategory (name and index)

The following code snippet will load a few scenes from the training set and print the dictionary between class names and class indices that were used to label that specific scene.


import numpy as np
import habitat_sim
import gc

class Semantic_env:
    def __init__(self,path_to_hm3d = "/home/motion/habitat-challenge/habitat-challenge-data/data/scene_datasets/hm3d"):
        self.path_to_hm3d = path_to_hm3d
        self.started = False
        self.names_to_classes = {'chair':0,'desk chair':0,'couch':5,'pouffe':5,'l-shaped sofa':5,'plant':2,'bed':1,'toilet':3,'tv':4,'table':6,'kitchen table':6,'oven':7,'sink':8,'refrigerator':9,'book':10,'clock':11,'vase':12,'flower vase':12,'cup':13,'bottle':14,'soap bottle':14}

        self.create_scene_at()

    def create_scene_at(self,scene_id = "vLpv2VX547B"):
        if self.started:
            del self.sim
            del self.sim_cfg
            del self.scene
            gc.collect()
        self.scene_id = scene_id
        backend_cfg = habitat_sim.SimulatorConfiguration()
        backend_cfg.scene_id = scene_id #
        backend_cfg.scene_dataset_config_file = f"{self.path_to_hm3d}/hm3d_annotated_basis.scene_dataset_config.json"

        settings = {'width':640,'height':480,'sensor_height':0.88}
        sensor_specs = []
        color_sensor_spec = habitat_sim.CameraSensorSpec()
        color_sensor_spec.uuid = "color_sensor"
        color_sensor_spec.sensor_type = habitat_sim.SensorType.COLOR
        color_sensor_spec.resolution = [settings["height"], settings["width"]]
        color_sensor_spec.position = [0.0, settings["sensor_height"], 0.0]
        color_sensor_spec.hfov = 79
        color_sensor_spec.sensor_subtype = habitat_sim.SensorSubType.PINHOLE
        sensor_specs.append(color_sensor_spec)

        depth_sensor_spec = habitat_sim.CameraSensorSpec()
        depth_sensor_spec.uuid = "depth_sensor"
        depth_sensor_spec.sensor_type = habitat_sim.SensorType.DEPTH
        depth_sensor_spec.resolution = [settings["height"], settings["width"]]
        depth_sensor_spec.position = [0.0, settings["sensor_height"], 0.0]
        depth_sensor_spec.hfov = 79
        depth_sensor_spec.sensor_subtype = habitat_sim.SensorSubType.PINHOLE
        sensor_specs.append(depth_sensor_spec)

        semantic_sensor_spec = habitat_sim.CameraSensorSpec()
        semantic_sensor_spec.uuid = "semantic_sensor"
        semantic_sensor_spec.sensor_type = habitat_sim.SensorType.SEMANTIC
        semantic_sensor_spec.resolution = [settings["height"], settings["width"]]
        semantic_sensor_spec.position = [0.0, settings["sensor_height"], 0.0]
        semantic_sensor_spec.hfov = 79
        semantic_sensor_spec.sensor_subtype = habitat_sim.SensorSubType.PINHOLE
        sensor_specs.append(semantic_sensor_spec)

        agent_cfg = habitat_sim.agent.AgentConfiguration()
        agent_cfg.sensor_specifications = sensor_specs

        sim_cfg = habitat_sim.Configuration(backend_cfg, [agent_cfg])
        self.sim_cfg = sim_cfg
        self.sim = habitat_sim.Simulator(sim_cfg)

        self.scene = self.sim.semantic_scene
        self.index_dict,self.category_to_index = self.create_index_dict(self.scene)

        print("# objects: {}".format(len(self.sim.semantic_scene.objects)))
        self.started = True

    def create_index_dict(self,scene):
        index_dict={}
        category_to_index = {}
        # pdb.set_trace()
        dct = self.names_to_classes
        test_dict = {}
        for obj in scene.objects:
            category_to_index.update({obj.category.name():obj.category.index()})
            index_dict.update({obj.semantic_id:dct.get(obj.category.name().lower(),255)})
        # print('These are the category name to id mappings: {}'.format(category_to_index))
        return index_dict,category_to_index

    def reconfigure_sim(self,new_scene_id):
        self.sim_cfg.sim_cfg.scene_id = new_scene_id
        self.scene_id = new_scene_id
        self.sim._Simulator__set_from_config(self.sim_cfg)
        self.sim.reset()
        self.scene = self.sim.semantic_scene
        self.index_dict,self.category_to_index = self.create_index_dict(self.scene)

if __name__ == '__main__':

    sim = Semantic_env()

    scene_dicts = {}
    for scn in ["vLpv2VX547B","qk9eeNeR4vw","oEPjPNSPmzL","gmuS7Wgsbrx","ixTj1aTMup2","Wo6kuutE9i7","6imZUJGRUq4","3XYAD64HpDr","Jfyvj3xn2aJ"]:
        sim.reconfigure_sim(scn)
        scene_dicts.update({scn:sim.category_to_index})

    del sim

    print('\n\n\n\n\n\n\n')
    print('These are the category names to category indices dictionaries per scene')

    for scn in ["vLpv2VX547B","qk9eeNeR4vw","oEPjPNSPmzL","gmuS7Wgsbrx","ixTj1aTMup2","Wo6kuutE9i7","6imZUJGRUq4","3XYAD64HpDr","Jfyvj3xn2aJ"]:
        print('\nScene: {}, dict = {}\n'.format(scn,scene_dicts[scn]))

The expected output should be as below. Note that not only are the indices not consistent, there are misspelled classes, such as "cabiinet" in Scene "Jfyvj3xn2aJ" and "Joga Mat" in scene "3XYAD64HpDr". Hope this helps track down the issues.

Kind regards,

Joao.

Scene: vLpv2VX547B, dict = {'Unknown': 0, 'ceiling': 1, 'wall': 2, 'curtain': 3, 'picture': 4, 'floor': 5, 'door': 6, 'lamp': 7, 'cabinet': 8, 'radio': 9, 'car': 10, 'stuffed animal': 11, 'cardboard box': 12, 'rocking horse': 13, 'globe': 14, 'box': 15, 'wardrobe': 16, 'mirror': 17, 'container': 18, 'bag': 19, 'desk chair': 20, 'desk': 21, 'clock': 22, 'book': 23, 'unknown': 24, 'laptop': 25, 'shoe': 26, 'printer': 27, 'chair': 28, 'device': 29, 'newspaper': 30, 'toy': 31, 'computer mouse': 32, 'doll': 33, 'bath towel': 34, 'window': 35, 'heater': 36, 'platform': 37, 'storage box': 38, 'tissue box': 39, 'bottle': 40, 'bottle of soap': 41, 'sink': 42, 'tap': 43, 'soap dispenser': 44, 'soap': 45, 'cup': 46, 'shower soap shelf': 47, 'soap bottle': 48, 'shower': 49, 'rug': 50, 'shower floor': 51, 'toilet': 52, 'paper towel': 53, 'button': 54, 'box of tissues': 55, 'cartboard': 56, 'paper towel dispenser': 57, 'calendar': 58, 'cart': 59, 'guitar': 60, 'crib': 61, 'armchair': 62, 'cardboard': 63, 'casket': 64, 'towel': 65, 'ball': 66, 'bed': 67, 'pillow': 68, 'plush toy': 69, 'blanket': 70, 'hanger': 71, 'backpack': 72, 'table': 73, 'pouffe': 74, 'couch': 75, 'drum': 76, 'curtain rod': 77, 'wall clock': 78, 'kitchen cabinet': 79, 'stovetop': 80, 'kitchen top': 81, 'wall cabinet': 82, 'refrigerator': 83, 'kitchen counter': 84, 'kitchen counter support': 85, 'washing machine': 86, 'toaster': 87, 'coffee machine': 88, 'liquid soap': 89, 'microwave': 90, 'tv': 91, 'vase': 92, 'flowerpot': 93, 'ornament': 94, 'speaker': 95, 'tray': 96, 'case': 97, 'ventilation': 98, 'hat': 99, 'mirror frame': 100, 'shelf': 101, 'board': 102, 'paper': 103, 'unknown clutter': 104, 'keyboard piano': 105, 'bookshelf': 106, 'tv stand': 107, 'plant': 108, 'stand': 109, 'l-shaped sofa': 110, 'stairs': 111, 'vacuum cleaner': 112, 'basket': 113, 'bathroom towel': 114, 'bathroom shelf': 115, 'shampoo': 116, 'shower tap': 117, 'brush': 118, 'bathroom cabinet': 119, 'bin': 120, 'jar': 121, 'jacket': 122, 'computer': 123, 'stack of papers': 124, 'sculpture': 125, 'computer desk': 126, 'toolbox': 127, 'table tray': 128, 'unknown kitchen appliance': 129, 'kitchen table': 130, 'range hood': 131, 'oven': 132, 'food tray': 133, 'scale': 134, 'kitchen appliance': 135, 'food': 136, 'power breaker box': 137, 'handle': 138, 'broom': 139, 'shovel': 140, 'basket of something': 141, 'storage cabinet': 142, 'air conditioning': 143, 'desk lamp': 144, 'flower': 145, 'flower stand': 146, 'dresser': 147, 'frame': 148, 'chest': 149, 'decoration': 150, 'clothes': 151, 'railing': 152, 'ceiling window': 153, 'flower vase': 154, 'beside table': 155, 'mat': 156}

Scene: qk9eeNeR4vw, dict = {'Unknown': 0, 'mirror': 1, 'flower vase': 2, 'book': 3, 'coffee table': 4, 'window ': 5, 'armchair': 6, 'pillow': 7, 'sofa seat': 8, 'cabient': 9, 'table': 10, 'floor lamp': 11, 'ceiling': 12, 'wall': 13, 'floor': 14, 'frame': 15, 'Ceiling': 16, 'picture frame': 17, 'door': 18, 'door frame': 19, 'doorframe': 20, 'window frame': 21, 'picture': 22, 'unknown': 23, 'candle': 24, 'bedside lamp': 25, 'bed': 26, 'footrest': 27, 'door stopper': 28, 'led tv': 29, 'shelf': 30, 'record player': 31, 'decorative plant': 32, 'decoration': 33, 'chandelier': 34, 'clock': 35, 'light': 36, 'window shutter': 37, 'window': 38, 'telephone': 39, 'bed table': 40, 'perfume': 41, 'liquid soap': 42, 'shower cabin': 43, 'shower tap': 44, 'toilet paper': 45, 'toilet bin': 46, 'toilet': 47, 'tap': 48, 'toilet sink': 49, 'shower floor': 50, 'bathroom cabinet': 51, 'ceiling light ': 52, 'refrigerator': 53, 'kitchen island': 54, 'dishwasher': 55, 'microwave': 56, 'sink': 57, 'coffee mug': 58, 'kitchen cabinet': 59, 'oven': 60, 'cup': 61, 'plant': 62, 'photo': 63, 'rug': 64, 'couch': 65, ' ledTv': 66, 'wall lamp': 67, 'wall panel': 68, 'vase': 69, 'doormat': 70, 'wall clock': 71, 'chair': 72, 'decorative bowl': 73, 'fruit': 74, 'mug': 75, 'calendar': 76, 'elephant sculpture': 77, 'flower': 78, 'high shelf': 79, 'monitor': 80, 'computer desk': 81, 'cabinet': 82, 'printer': 83, 'books': 84, 'blanket': 85, 'tray': 86, 'speaker': 87, 'florr': 88, 'cieling': 89, 'grill': 90, 'patio chair': 91, 'mat': 92, 'curtain': 93, 'ventilation': 94, 'door handle': 95, 'handle': 96, 'washing machine': 97, 'laundry basket': 98, 'electric wire ': 99, 'floor mat': 100, 'closet mirror wall': 101, 'lamp table': 102, 'night table': 103, 'tissue box': 104, 'towel': 105, 'box': 106, 'toy': 107, 'lamp': 108, 'trash bin': 109, 'container': 110, 'diploma': 111, 'bath': 112, 'box of tissue': 113, 'toilet paper dispenser': 114, 'hand soap': 115, 'shower-bath cabinet': 116, 'shampoo': 117}

Scene: oEPjPNSPmzL, dict = {'Unknown': 0, 'ceiling': 1, 'ceiling lamp': 2, 'floor': 3, 'wall': 4, 'blanket': 5, 'pillow': 6, 'couch': 7, 'blinds': 8, 'window frame': 9, 'window glass': 10, 'picture': 11, 'electric heater': 12, 'decorative plant': 13, 'unknown': 14, 'basket': 15, 'blinder': 16, 'tv': 17, 'speaker': 18, 'tv stand': 19, 'rack': 20, 'appliance': 21, 'cabinet': 22, 'small table': 23, 'ceiling vent': 24, 'kitchen wall': 25, 'door': 26, 'door frame': 27, 'kitchen countertop item': 28, 'stool': 29, 'kitchen island': 30, 'kitchen cabinet': 31, 'kitchen extractor': 32, 'kitchen lower cabinet': 33, 'dishwasher': 34, 'faucet': 35, 'clutter': 36, 'sink': 37, 'kitchen appliance': 38, 'bottle of detergent': 39, 'kitchen utensil': 40, 'kitchen countertop': 41, 'kitchen countertop items': 42, 'microwave': 43, 'washcloth': 44, 'oven and stove': 45, 'clock': 46, 'trash bin': 47, 'wall electronics': 48, 'refrigerator': 49, 'basket of something': 50, 'vacuum cleaner': 51, 'table': 52, 'ceiling molding': 53, 'socket': 54, 'washer-dryer': 55, 'hot water/cold water knob': 56, 'bathroom utensil': 57, 'cabinet clutter': 58, 'storage cabinet': 59, 'ceiling lamp': 60, 'rug': 61, 'toilet': 62, 'toilet paper': 63, 'cosmetics': 64, 'bathtub utensil': 65, 'bathtub': 66, 'bath wall': 67, 'bath towel': 68, 'cosmetic': 69, 'shower cabin': 70, 'shower wall': 71, 'sink cabinet': 72, 'mirror': 73, 'bed': 74, 'fan': 75, 'nightstand': 76, 'decoration': 77, 'casket': 78, 'pot': 79, 'wall tv': 80, 'shelf': 81, 'books': 82, 'book shelf': 83, 'wardrobe': 84, 'bicycle': 85, 'laptop': 86, 'box of something': 87, 'printer': 88, 'side table': 89, 'desk clutter': 90, 'desk chair': 91, 'desk': 92}

Scene: gmuS7Wgsbrx, dict = {'Unknown': 0, 'carpet': 1, 'wall': 2, 'ceiling': 3, 'window': 4, 'door': 5, 'painting': 6, 'fan': 7, 'bed': 8, 'cabinet': 9, 'bedside lamp': 10, 'dresser': 11, 'mirror': 12, 'ceiling lamp': 13, 'tiled floor': 14, 'sink cabinet': 15, 'door frame': 16, 'lamp': 17, 'shower curtain': 18, 'toilet': 19, 'toilet plunger': 20, 'bathroom cabinet': 21, 'pillow': 22, 'bed light': 23, 'bed table': 24, 'desk': 25, 'desk chair': 26, 'bin': 27, 'decoration': 28, 'picture': 29, 'book rack': 30, 'book': 31, 'cardboard box': 32, 'plush toy': 33, 'pouffe': 34, 'rug': 35, 'sink': 36, 'toilet brush': 37, 'shower cabin': 38, 'tv': 39, 'table': 40, 'wardrobe': 41, 'fire alarm': 42, 'chair': 43, 'computer': 44, 'screen': 45, 'printer': 46, 'ceiling duct': 47, 'ceiling ': 48, 'ceiling dome': 49, 'handrail': 50, 'stair': 51, 'stair step': 52, 'stairs railing': 53, 'stair wall': 54, 'platform': 55, 'wall panel': 56, 'flower vase': 57, 'sofa seat': 58, 'dining table': 59, 'dining chair': 60, 'speaker': 61, 'basket of something': 62, 'vase': 63, 'flowerpot': 64, 'appliance': 65, 'kitchen counter': 66, 'kitchen lower cabinet': 67, 'kitchen cabinet': 68, 'kitchen countertop item': 69, 'kettle': 70, 'kitchen extractor': 71, 'refrigerator cabinet': 72, 'oven': 73, 'stovetop': 74, 'microwave': 75, 'dishwasher': 76, 'refrigerator': 77, 'stool': 78, 'fluorescent light': 79, 'laundry machine': 80, 'bag': 81, 'towel': 82, 'toilet paper holder': 83, 'toilet brush holder': 84, 'wall clock': 85, 'basket': 86, 'rack': 87, 'monitor': 88, 'laptop': 89, 'pillar': 90, 'bathtub platform': 91, 'bathtub': 92, 'candle': 93, 'shower-bath cabinet': 94, 'shower wall': 95, 'shower pipe': 96, 'shower tap': 97, 'scale': 98, 'bottle of soap': 99, 'clothes rack': 100, 'shoe': 101, 'clothes': 102, 'case': 103, 'ceiling wall': 104, 'tissue box': 105, 'box': 106, 'floor': 107, 'beam': 108, 'sofa chair': 109, 'table plant': 110, 'grill': 111, 'barbecue': 112, 'pot': 113, 'chest': 114, 'terrace door': 115, 'roof': 116}

Scene: ixTj1aTMup2, dict = {'Unknown': 0, 'door window': 1, 'armchair': 2, 'plant': 3, 'chest of drawers': 4, 'picture': 5, 'wall lamp': 6, 'table': 7, 'mirror': 8, 'door': 9, 'pillow': 10, 'towel': 11, 'bed': 12, 'speaker': 13, 'wall': 14, 'floor': 15, 'ceiling': 16, 'blanket': 17, 'shelf': 18, 'fan': 19, 'unknown': 20, 'hanger': 21, 'pipe': 22, 'lamp': 23, 'closet': 24, 'chair': 25, 'flower pot': 26, 'window': 27, 'newspaper': 28, 'trash bin': 29, 'office chair': 30, 'office table': 31, 'board': 32, 'cabinet': 33, 'toilet paper holder': 34, 'toilet brush': 35, 'toilet paper': 36, 'toilet': 37, 'button': 38, 'bathroom cabinet': 39, 'bath sink': 40, 'shower door frame': 41, 'shower hose': 42, 'showerhead': 43, 'shower': 44, 'shower floor': 45, 'brochure': 46, 'cosmetics': 47, 'soapbox': 48, 'bathtub': 49, 'bath wall': 50, 'cosmetic': 51, 'bath faucet': 52, 'shower knob': 53, 'shower pipe': 54, 'sink': 55, 'radiator': 56, 'carpet': 57, 'scale': 58, 'toilet paper dispenser': 59, 'flowerpot': 60, 'bathroom counter': 61, 'railing': 62, 'stairs': 63, 'vase': 64, 'decoder': 65, 'remote control': 66, 'tv': 67, 'candle': 68, 'telephone': 69, 'alarm': 70, 'coffee table': 71, 'plate of food': 72, 'couch': 73, 'curtain': 74, 'plate': 75, 'cup': 76, 'vacuum cleaner': 77, 'kitchen cabinet': 78, 'oven': 79, 'kitchen counter': 80, 'coffee machine': 81, 'microwave': 82, 'cooker': 83, 'pot': 84, 'kitchen utensil': 85, 'bottle': 86, 'kitchen countertop items': 87, 'bar chair': 88, 'jar': 89, 'food tray': 90, 'hood': 91, 'clock': 92, 'box': 93, 'book': 94, 'elevator': 95, 'can': 96, 'bookshelf': 97, 'curtain rod': 98, 'night table': 99, 'bath tub': 100, 'bathtub utensil': 101, 'shower wall': 102}

Scene: Wo6kuutE9i7, dict = {'Unknown': 0, 'bedroom ceiling': 1, 'wall': 2, 'floor': 3, 'picture': 4, 'cabinet': 5, 'unknown': 6, 'mirror': 7, 'lamp': 8, 'book': 9, 'bed': 10, 'cushion': 11, 'window': 12, 'sensor': 13, 'ceiling bedroom': 14, 'clock': 15, 'tv': 16, 'record player': 17, 'ceiling': 18, 'shower wall': 19, 'flower vase': 20, 'tray': 21, 'perfume': 22, 'shower handle': 23, 'showerhead': 24, 'shampoo': 25, 'towel holder': 26, 'towel': 27, 'toilet': 28, 'toilet paper': 29, 'toilet paper holder': 30, 'bath cabinet': 31, 'weight': 32, 'bath sink': 33, 'tap': 34, 'liquid soap': 35, 'shower floor': 36, 'door frame': 37, 'dresser': 38, 'candlestick': 39, 'wall cabinet': 40, 'refrigerator': 41, 'kitchen cabinet': 42, 'microwave': 43, 'oven': 44, 'ventilation hood': 45, 'kettle': 46, 'coffee machine': 47, 'stovetop': 48, 'kitchen top': 49, 'dishwasher': 50, 'cabinet kitchen': 51, 'table tray': 52, 'antique clock': 53, 'picture frame': 54, 'candle': 55, 'vase': 56, 'table': 57, 'chair': 58, 'armchair': 59, 'basket': 60, 'couch': 61, 'speaker': 62, 'rail': 63, 'air conditioning': 64, 'window curtain': 65, 'floor /outside': 66, 'fence': 67, 'bench': 68, 'balustrade': 69, 'canopy': 70, 'door': 71}

Scene: 6imZUJGRUq4, dict = {'Unknown': 0, 'Floor': 1, 'wall': 2, 'clothes hanger': 3, 'ladder': 4, 'device ': 5, 'trash bin': 6, 'garage door': 7, 'ceiling': 8, 'container': 9, 'grill': 10, 'bicycle': 11, 'armchair': 12, 'carpet': 13, 'shelf': 14, 'wood': 15, 'cardboard box': 16, 'garage light': 17, 'garage door opener motor': 18, 'garage door railing': 19, 'pipe': 20, 'device': 21, 'vacuum cleaner': 22, 'unknown': 23, 'toolbox': 24, 'toy': 25, 'broom': 26, 'stairs': 27, 'stairs railing': 28, 'tool': 29, 'door frame': 30, 'window': 31, 'microwave': 32, 'tabletop': 33, 'dishwasher': 34, 'sink': 35, 'paper': 36, 'clock': 37, 'flower vase': 38, 'fruit': 39, 'oven and stove': 40, 'floor': 41, 'decoration': 42, 'door ': 43, 'door': 44, 'refrigerator': 45, 'fan': 46, 'lamp': 47, 'tv': 48, 'chair': 49, 'step': 50, 'pouffe': 51, 'vase': 52, 'table': 53, 'couch': 54, 'pillow': 55, 'blanket': 56, 'candle holder': 57, 'fireplace': 58, 'basket': 59, 'curtain': 60, 'mirror': 61, 'aquarium': 62, 'wardrobe': 63, 'fire alarm': 64, 'bed': 65, 'high shelf': 66, 'ceiling lamp': 67, 'art frame': 68, 'paper towel': 69, 'cabinet': 70, 'towel': 71, 'toilet': 72, 'bath cabinet': 73, 'sink cabinet': 74, 'decotarion': 75, 'closet shelf': 76, 'towel basket': 77, 'washing machine': 78, 'basket of something': 79, 'clothes bag': 80, 'picture frame': 81, 'storage box': 82, 'radiator': 83, 'fridge': 84, 'chest': 85, 'cloth': 86, 'treadmill': 87, 'exercise equipment': 88, 'pillar': 89, 'window frame': 90}

Scene: 3XYAD64HpDr, dict = {'Unknown': 0, 'wall': 1, 'ceiling': 2, 'painting': 3, 'ornament': 4, 'table': 5, 'floor': 6, 'doormat': 7, 'carpet': 8, 'ventilation': 9, 'tablet': 10, 'sofa': 11, 'blanket': 12, 'pillow': 13, 'window shade': 14, 'window': 15, 'alarm': 16, 'door frame': 17, 'door': 18, 'door window': 19, 'lamp': 20, 'tv stand': 21, 'tv': 22, 'amplifier': 23, 'speaker': 24, 'ornament plant': 25, 'cabinet': 26, 'box': 27, 'bottles': 28, 'drawer': 29, 'post': 30, 'kitchen cabinet': 31, 'kitchen countertop': 32, 'sink': 33, 'countertop item': 34, 'pot': 35, 'oven and stove': 36, 'ventilation hood': 37, 'fridge': 38, 'coffe machine': 39, 'books': 40, 'countertop': 41, 'stool': 42, 'chair': 43, 'unknown': 44, 'window frame': 45, 'fence': 46, 'plant': 47, 'flowerpot': 48, 'bed': 49, 'bed cabinet': 50, 'bed cabinet lamp': 51, 'chest of drawers': 52, 'mirror': 53, 'curtain': 54, 'towel': 55, 'towell': 56, 'toilet': 57, 'toilet paper': 58, 'towel hang': 59, 'washbasin cabinet': 60, 'washbasin counter': 61, 'washbasin': 62, 'photo mount': 63, 'office chair': 64, 'monitor': 65, 'desk': 66, 'file': 67, 'mouse': 68, 'keyboard': 69, 'camera': 70, 'cross-trainer ': 71, 'modem': 72, 'window ': 73, 'window shade': 74, 'printer': 75, 'dumbbell': 76, 'joga mat': 77, 'cloth hanger': 78, 'bag': 79, 'air conditioning': 80, 'bedside cabinet': 81, 'armchair': 82, 'coffee table': 83, 'window frame': 84, 'clock': 85, 'tablecloth': 86, 'toilet brush': 87, 'paper holder': 88, 'stairs': 89, 'door rame': 90, 'cabinet door': 91, 'dishawasher': 92, 'pavement': 93, 'rocks': 94, 'banister': 95, 'tile': 96, 'bathmat': 97, 'liquid soap': 98, 'glass': 99, 'smoke detector': 100, 'toy': 101, 'wardrobe': 102, 'windoow shade': 103, 'shower cabin': 104, 'shower': 105, 'book': 106, 'tv stand door': 107, 'window fram': 108}

Scene: Jfyvj3xn2aJ, dict = {'Unknown': 0, 'wall': 1, 'ceiling': 2, 'toilet paper holder': 3, 'pipe': 4, 'sink pipe': 5, 'towel holder': 6, 'sink': 7, 'wall lamp': 8, 'toilet brush': 9, 'toilet brush holder': 10, 'toilet': 11, 'floor': 12, 'window': 13, 'door': 14, 'box': 15, 'tap': 16, 'mirror': 17, 'trash bag': 18, 'pot': 19, 'coffee maker': 20, 'coffee mug': 21, 'bowl': 22, 'cloth': 23, 'wine bottle': 24, 'plate': 25, 'lid': 26, 'jar': 27, 'bottle': 28, 'container': 29, 'floor mat': 30, 'curtain rod': 31, 'pillow': 32, 'toy': 33, 'parapet': 34, 'chest': 35, 'handbag': 36, 'wood': 37, 'seat': 38, 'dartboard': 39, 'rope': 40, 'foosball game table': 41, 'doll': 42, 'heater': 43, 'workout bike': 44, 'tv': 45, 'pad': 46, 'candle': 47, 'bag': 48, 'desk': 49, 'curtain': 50, 'painting': 51, 'canvas': 52, 'furnace': 53, 'cat food': 54, 'throw blanket': 55, 'decorative plant': 56, 'kitchen appliance': 57, 'dining table': 58, 'dining chair': 59, 'chair /w clutter': 60, 'bucket': 61, 'pan': 62, 'newspaper': 63, 'wreath': 64, 'shade': 65, 'book': 66, 'cabinet': 67, 'shelf': 68, 'plush toy': 69, 'unknown kitchen appliance': 70, 'clothes': 71, 'decoration': 72, 'exercise mat roll': 73, 'weight': 74, 'door frame': 75, 'support beam': 76, 'balcony railing': 77, 'lamp': 78, 'lamp stand': 79, 'flowerpot': 80, 'rod': 81, 'ceiling lamp': 82, 'stairs': 83, 'staircase trim': 84, 'rug': 85, 'bulletin board': 86, 'ceiling under stairs': 87, 'blinds': 88, 'basket': 89, 'toothbrush': 90, 'decoratiom': 91, 'wall soap shelf': 92, 'hairbrush': 93, 'brush': 94, 'hairdryer': 95, 'bathroom shelf': 96, 'bathroom towel': 97, 'faucet': 98, 'bench': 99, 'trashcan': 100, 'wall toilet paper': 101, 'shower wall': 102, 'shower tap': 103, 'shower hose': 104, 'shower hose/head': 105, 'shower rail': 106, 'bathtub': 107, 'shower door': 108, 'shampoo': 109, 'soap bottle': 110, 'soap dispenser': 111, 'cosmetic': 112, 'shower mat': 113, 'cosmetics': 114, 'clothes dryer': 115, 'towel': 116, 'bathroom cabinet': 117, 'mop': 118, 'wardrobe': 119, 'beanbag chair': 120, 'exercise ball': 121, 'yoga mat': 122, 'bed': 123, 'office chair': 124, 'mattress': 125, 'hanging clothes': 126, 'coat hanger': 127, 'stair': 128, 'chair': 129, 'monitor': 130, 'computer desk': 131, 'keyboard': 132, 'computer tower': 133, 'cabiinet': 134, 'appliance': 135, 'storage shelving': 136, 'carpet roll': 137, 'canister': 138, 'motorcycle': 139, 'table': 140, 'tool': 141, 'toolbox': 142, 'cardboard box': 143, 'vacuum cleaner': 144, 'board': 145, 'garage door': 146, 'doorstep': 147, 'shelf /w clutter': 148, 'shoe': 149, 'picture frame': 150, 'cabinet /w clutter': 151, 'doormat': 152, 'clutter': 153, 'folding chair': 154, 'ceiling door': 155, 'tire ': 156, 'machine': 157, 'trash bin': 158, 'stool': 159, 'basket of something': 160, 'stick': 161, 'ladder': 162, 'axe': 163, 'firewood': 164, 'partition': 165, 'electric wire casing': 166, 'boiler': 167, 'toilet paper': 168, 'refrigerator': 169, 'hose': 170, 'laundry basket': 171, 'tiled floor': 172, 'dishrag': 173, 'toilet cleaner': 174, 'cleaning clutter': 175, 'washing machine ': 176, 'toilet plunger': 177, 'toilet paper dispenser': 178, 'shower cabin': 179, 'radiator': 180, 'shower tray': 181, 'fuse box': 182, 'stairs railing': 183, 'locker': 184, 'unknown': 185, 'wall hanging decoration': 186, 'calendar': 187, 'mortar': 188, 'range hood': 189, 'cooker': 190, 'paper towel': 191, 'spice rack': 192, 'knife': 193, 'knife holder': 194, 'coffee machine': 195, 'soap dish cubby': 196, 'kitchen cabinet': 197, 'kitchen top': 198, 'oven': 199, 'sliding door': 200, 'dresser': 201, 'stove door': 202, 'picture': 203, 'curtain valence': 204, 'side table': 205, 'table plant': 206, 'l-shaped sofa': 207, 'blanket': 208, 'wall clock': 209, 'coffee table': 210, 'curtains': 211, 'speaker': 212, 'bookshelf': 213, 'tv stand': 214, 'hook': 215, 'can': 216}

srama2512 commented 2 years ago

@joaomcm - Apologies for the latency. The issue stems from the fact that the object names are not consistently mapped to the semantic categories in habitat-sim. There are no plans to currently address this. If you'd like to take a stab at it, @aclegg3 may have some suggestions.

At the moment, I map the raw text name to the matterport categories pythonically based on this TSV. That is, map from raw_category / category columns to mpcat40 column. You can then map it to the integer index of interest.

joaomcm commented 2 years ago

Thank you, @srama2512 - I'll proceed with mapping the classes using their names, then.

Dear @aclegg3, would you mind sharing your suggestions? Would correcting these labeling errors and standardizing object name to semantic category mapping bring any value to the dataset or would that be indifferent considering its intended use?

Once again, thank you for getting back to me.

Best,

Joao.

aclegg3 commented 2 years ago

@joaomcm,

I agree it would be useful to support the mapping of free form instance annotations back to a standard set of categories as @srama2512 linked above.

I'm sure part of this will require some standardization in the free form entry classes followed by a programmatic utility. Feel free to consider contributing such a tool and documenting any issues you find in the text files.

joaomcm commented 2 years ago

Dear @aclegg3,

Sure thing. If I end up doing that on my end I'll submit a PR with the correction tool and documenting the labeling differences. Hopefully It'll be useful to the community!

Kind regards,

Joao.